US12443675B2 - Crossbar circuits for performing convolution operations - Google Patents
Crossbar circuits for performing convolution operationsInfo
- Publication number
- US12443675B2 US12443675B2 US18/517,320 US202318517320A US12443675B2 US 12443675 B2 US12443675 B2 US 12443675B2 US 202318517320 A US202318517320 A US 202318517320A US 12443675 B2 US12443675 B2 US 12443675B2
- Authority
- US
- United States
- Prior art keywords
- cross
- point devices
- select
- line
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/79—Array wherein the access device being a transistor
Definitions
- the implementations of the disclosure relate generally to crossbar circuits and, more specifically, to crossbar circuits that can perform regular convolution operations and depth-wise convolution operations using the same crossbar arrays.
- a crossbar circuit may refer to a circuit structure with interconnecting electrically conductive lines sandwiching a memory element, such as a resistive switching material, at their intersections.
- the resistive switching material may include, for example, a memristor (also referred to as resistive random-access memory (RRAM or ReRAM)).
- Crossbar circuits may be used to implement in-memory computing applications, non-volatile solid-state memory, image processing applications, neural networks, etc.
- an apparatus for performing convolution operations includes a plurality of crossbar arrays of cross-point devices and one or more select circuits.
- the plurality of crossbar arrays of cross-point devices include a first plurality of cross-point devices connecting to a first plurality of word lines, a first bit line, and a first select line; a second plurality of cross-point devices connecting to the first plurality of word lines, a second bit line, and a second select line; and a third plurality of cross-point devices connecting to a second plurality of word lines, the second bit line, and a third select line.
- the one or more select circuits are configured to: select the first plurality of cross-point devices and the second plurality of cross-point devices in response to receiving a first control signal indicating that a regular convolution is to be performed using the plurality of crossbar arrays of cross-point devices; and select the first plurality of cross-point devices and the third plurality of cross-point devices in response to receiving a second control signal indicating that a depthwise convolution is to be performed using the plurality of crossbar arrays of cross-point devices.
- the one or more select circuits include a first multiplexer, wherein a first input of the first multiplexer is connected to the second select line, a second input of the first multiplexer is connected to the first select line, and wherein an output of the first multiplexer is connected to the third select line.
- the first multiplexer is configured to switch between the first input of the first multiplexer and the second input of the first multiplexer based on a control input of the first multiplexer, wherein the first control signal and the second control signal are provided to the first multiplexer via the control input.
- the one or more select circuits are further configured to select a fourth plurality of cross-point devices in response to receiving the second control signal, wherein the fourth plurality of cross-point devices is connected to a third plurality of word lines, a third bit line, and a fourth select line.
- the one or more select circuits include a second multiplexer, wherein a first input of the second multiplexer is connected to a fifth select line, wherein a second input of the second multiplexer is connected to the third select line, and wherein an output of the second multiplexer is connected to the fourth select line.
- a fifth plurality of cross-point devices is connected to the fifth select line, the second plurality of word lines, and the third bit line.
- the plurality of crossbar arrays of cross-point devices includes at least one of a phase-change memory device, a floating gate device, a spintronic device, a ferroelectric device, or a resistive random-access memory device.
- the apparatus further includes a programming circuit to program the conductance of the selected cross-point devices.
- the apparatus further includes a word line logic to provide input signals to the first plurality of word lines and the second plurality of word lines.
- the apparatus further includes a sensing circuit to generate a plurality of output signals representative of convolution results of the input signals and one or more convolution kernels.
- the apparatus further includes a control circuit configured to produce the first control signal and the second control signal.
- FIG. 1 is a schematic diagram illustrating an example of a crossbar-based apparatus in accordance with some implementations of the disclosure.
- FIGS. 2 A and 2 B are schematic diagrams illustrating example cross-point devices in accordance with some embodiments of the present disclosure.
- FIG. 3 is a diagram illustrating an example crossbar circuit in accordance with some embodiments of the present disclosure.
- FIGS. 4 A, 4 B, and 4 C are diagrams illustrating an example crossbar circuit in accordance with some embodiments of the present disclosure.
- FIG. 5 A is a diagram illustrating an example of a regular convolution operation in accordance with some embodiments of the present disclosure.
- FIG. 5 B is a diagram illustrating an example of a depthwise convolution operation in accordance with some embodiments of the present disclosure.
- FIG. 5 C is a diagram illustrating an example pointwise convolution operation in accordance with some embodiments of the present disclosure.
- FIGS. 6 A and 6 B are schematic diagrams illustrating example crossbar circuits in accordance with some embodiments of the present disclosure.
- aspects of the disclosure provide crossbar-based apparatuses and crossbar circuits for performing convolution operations and methods for performing the convolution operations using the crossbar-based apparatuses and the crossbar circuits.
- Crossbar circuits may be used to implement a neural network executing machine learning algorithms.
- the neural network may include multiple convolutional layers performing various types of convolution operations, such as regular convolution operations, depth-wise convolution operations, etc.
- a regular convolution may be performed by applying a single convolution kernel to input data or multiple convolution kernels in parallel to the same input data. More particularly, the convolution kernel may be used to scan each part of the input data with the same size as the convolution kernel to produce a convolution result.
- the convolution kernel and the input data have the same number of channels.
- performing a 2D convolution on an image of three channels using a 3 ⁇ 3 ⁇ 3 kernel may involve performing scalar matrix multiplication on portions of the image having a size of 3 ⁇ 3 ⁇ 3 using the 3 ⁇ 3 ⁇ 3 kernel.
- performing a depth-wise convolution on the input data may involve convolving each channel of the input data with a respective kernel and stacking the convolved outputs together.
- performing depth-wise convolution on the input data may involve convolving each channel of the input data using a 3 ⁇ 3 kernel.
- performing regular convolution and depth-wise convolution on the same input data may involve convolving different portions of the input data using different kernels.
- a crossbar-based apparatus may include cross-point devices arranged as multiple crossbar arrays.
- a first crossbar array may include cross-point devices connected to a first plurality of word lines and a plurality of bit lines.
- a second crossbar array may include cross-point devices connected to a second plurality of word lines and the bit lines.
- a third crossbar array may include cross-point devices connected to a third plurality of word lines and the bit lines.
- the crossbar-based apparatus may further include one or more select circuits configured to select one or more portions of the crossbar arrays for performing various types of convolution operations.
- the select circuits may select the cross-point devices in the first crossbar array, the second crossbar array, and the third crossbar array that are connected to a first bit line for storing a first kernel for performing a regular convolution operation.
- the select circuits may further select the cross-point devices in the first crossbar array, the second crossbar array, and the third crossbar array that are connected to a second bit line for storing a second kernel for performing the regular convolution operation.
- the selected cross-point devices may be programmed to store the kernels for performing the regular convolution operation.
- the select circuits may select the cross-point devices in the first crossbar array that are connected to the first bit line for storing a first channel of a depthwise convolution kernel.
- the select circuits may further select the cross-point devices in the second crossbar array that are connected to the second bit line for storing a second channel of the depthwise convolution kernel.
- the select circuits may further select the cross-point devices in the third crossbar array that are connected to a third bit line to store a third channel of the depthwise convolution kernel.
- While input signals representative of input data to be convolved are applied to the selected cross-point devices, the cumulative current through the bit lines connected to the selected cross-point devices may represent the convolution results.
- FIG. 1 is a schematic diagram illustrating an example 100 of a crossbar circuit for performing convolution operations in accordance with some embodiments of the present disclosure.
- the crossbar circuit 100 may also be referred to herein as a crossbar-based apparatus.
- the crossbar circuit 100 may be a neural processing unit (NPU) or a part of an NPU for executing machine learning algorithms.
- NPU neural processing unit
- the crossbar circuit 100 may include a plurality of intersecting wires, such as word lines 111 a - 1 , . . . , 111 a -M, 111 b - 1 , . . . , 111 b -M, 111 c - 1 , . . . , and 111 c -M, bit lines 113 a , 113 b , 113 c , . . . , 113 N.
- the crossbar array may further include one or more cross-point devices 120 a - 120 z connecting the intersections between the word lines and the bit lines.
- the cross-point device may be connected to the word line 111 a - 1 and the bit line 113 a .
- Each of the cross-point devices may include a device with programmable resistance, such as a phase-change memory device, a floating gate device, a spintronic device, a ferroelectric device, a resistive random-access memory device, etc.
- the cross-point device 120 a - 120 z may be and/or include a circuit structure of one-transistor-one-memristor (1T1M), a one-selector-one-resistor (1S1R) structure, a two-resistor (2R) structure, etc.
- one or more cross-point devices 120 a - 120 z may include a cross-point device as described in connection with FIG. 2 A and/or FIG. 2 B .
- the cross-point devices 120 a - z may be arranged as crossbar arrays 101 a , 101 b , and 101 c .
- Each of the crossbar arrays may include M ⁇ N cross-point devices connecting to M word lines and N bit lines. More particularly, for example, each cross-point device in the crossbar array 101 a may be connected to a word line 111 a - 1 , . . . , 111 a -M (also referred to as the “first plurality of word lines”), a bit line 113 a , 113 b , 113 c , . . .
- Each cross-point device in the second crossbar array 101 b may be connected to a word line 111 b - 1 , . . . , 111 b -M (also referred to as the “second plurality of word lines”), one of the bit lines 113 a , 113 b , 113 c , . . . , 113 N, and a select line 115 b - 1 , 115 b - 2 , 115 b - 3 , . . .
- Each cross-point device in the third crossbar array 101 c may be connected to a word line 111 c - 1 , . . . , 111 c -M (also referred to as the “third plurality of word lines”), one of the bit lines 113 a , 113 b , 113 c , . . . , 113 N, and a select line 115 c - 1 , 115 c - 2 , 115 c - 3 , . . . , 115 c -N.
- cross-point devices that are connected to bit line 113 a also referred to as the “first bit line”
- select line 115 a - 1 also referred to as the “first select line”
- one of the word lines 111 a - 1 , . . . , 111 a -M are collectively referred to as cross-point devices 121 a (also referred to as the “first plurality of cross-point devices”).
- the cross-point devices that are connected to bit line 113 b also referred to as the “second bit line”
- select line 115 a - 2 also referred to as the “second select line”
- cross-point devices 121 b also referred to as the “second plurality of cross-point devices”.
- the cross-point devices that are connected to bit line 113 c also referred to as the “third bit line”), select line 115 a - 3 , and one of the word lines 111 a - 1 , . . . , 111 a -M are collectively referred to as cross-point devices 121 c .
- cross-point devices 123 a are collectively referred to as cross-point devices 123 a .
- the cross-point devices that are connected to bit line 113 b , select line 115 b - 2 (also referred to as the “third select line”), and one of the word lines 111 b - 1 , . . . , 111 b -M are collectively referred to as cross-point devices 123 b (also referred to as the “third plurality of cross-point devices”).
- cross-point devices 125 a are collectively referred to as cross-point devices 125 a .
- the cross-point devices that are connected to bit line 113 b , select line 115 c - 2 , and one of the word lines 111 c - 1 , . . . , 111 c -M are collectively referred to as cross-point devices 125 b .
- the cross-point devices that are connected to bit line 113 c , select line 115 c - 3 also referred to as the “fourth select line”
- cross-point devices 125 c also referred to as the “fourth plurality of cross-point devices”.
- the cross-point devices that are connected to bit line 113 c , select line 115 b - 3 (also referred to as the “fifth select line”), and one of the word lines 111 b - 1 , . . . , 111 b -M are collectively referred to as cross-point devices 123 c (also referred to as the “fifth plurality of cross-point devices”).
- the crossbar circuit 100 may include any suitable number of crossbar arrays and/or cross-point devices for performing convolution operations using kernels of desirable sizes.
- the crossbar circuit 100 may include one or more select circuits 130 a , 130 b , . . . , 130 c for selecting and/or enabling one or more cross-point devices 120 a - z for in-memory computing.
- a cross-point device in the first crossbar array 101 a may be connected to select circuit 130 a via a select line 115 a - 1 , . . . , 115 a - j , . . . , or 115 a -M.
- a cross-point device in the second crossbar array 101 b may be connected to select circuit 130 b via a select line 115 b - 1 , . . .
- a cross-point device in the third crossbar array 101 c may be connected to select circuit 130 c via a respective select line 115 c - 1 , . . . , 115 c - j , . . . , or 115 c -M.
- Select circuits 130 a , 130 b , and/or 130 c may select a cross-point device by applying a suitable select voltage to a select line connected to the cross-point device.
- Control circuit 135 may produce and provide control signals (e.g., voltage signals, current signals) to control select circuits 130 a , 130 b , . . . , 130 c .
- the value of the control signals may indicate whether a regular convolution or a depthwise convolution is to be performed.
- control circuit 135 may produce a first control signal indicating that a regular convolution is to be performed using crossbar arrays 101 a , 101 b , 101 c , etc.
- control circuit 135 may produce a second control signal indicating that a depthwise convolution is to be performed using crossbar arrays 101 a , 101 b , 101 c , etc.
- each of the select circuits 130 a , 130 b , . . . , 130 c may include a plurality of multiplexers. Each of the multiplexers may include two inputs and may selectively output one of the inputs based on the control signals provided by control circuit 135 .
- each of the select circuits 130 a , 130 b , . . . , 130 c may include a select circuit 350 as described in connection with FIG. 3 .
- the select circuits 130 a , 130 b , and 130 c may be connected to each other as described in connection with FIGS. 4 A, 4 B, and 4 C .
- the first crossbar array 101 a , the second crossbar array 101 b , and the third crossbar array 101 c may be connected to a word line (WL) logic 160 via the word lines 111 a - 1 , 111 a -M, 111 b - 1 , 111 b -M, 111 c - 1 , 111 c -M, etc., and may be connected to a programming circuit 140 and a sensing circuit 150 via the bit lines 113 a -N.
- the WL logic 160 may include any suitable component for converting input data into input signals to be applied to crossbar arrays 101 a , 101 b , . . . , 101 c . Each of the input signals may be a voltage signal, a current signal, etc.
- the WL logic 160 may include one or more digital-to-analog converters (DACs) that may convert input data into analog signals.
- DACs digital-to-analog converters
- Programming circuit 140 may program one or more cross-point devices selected and/or enabled by select circuits 130 a - c to suitable conductance values.
- programming a cross-point device may involve applying a suitable voltage signal or current signal for the appropriate duration across the cross-point device (e.g., by applying a programming voltage or current to the word line and/or bit line connected to the cross-point device).
- the resistance of each cross-point device may be electrically switched between a high-resistance state and a low-resistance state.
- Setting a cross-point device may involve switching the resistance of the cross-point device from the high-resistance state to the low-resistance state.
- Resetting the cross-point device may involve switching the resistance of the cross-point device from the low-resistance state to the high-resistance state.
- Programming circuit 140 may program selected cross-point devices to store kernels for performing regular convolution operations and/or depthwise convolution operations. For example, a matrix or convolution kernel may be converted into a vector and mapped to the selected cross-point devices.
- the conductance values of the cross-point devices may be programmed to values representative of elements of the kernel. In some cases, multiple programming iterations may be required to program the conductance value to within the precision needed to reflect the neural network weight accurately.
- Sensing circuit 150 may generate output signals based on the cumulative current flowing through one or more bit lines 113 a - 113 N. Sensing circuit 150 may include any suitable component for converting the current into a digital output. For example, sensing circuit 150 may include multiple current or voltage sense amplifiers, operational amplifiers, comparators, and/or analog-digital converters (ADCs) (not shown). Each of the ADCs may convert the current flowing through a respective bit line into a digital output.
- the input signal may include a voltage signal V.
- the output signal may include a current signal I.
- the input signal is weighted at each of the cross-point devices by its conductance according to Ohm's law.
- the weighted current is output via each bit line and may be accumulated according to Kirchhoff's current law.
- Crossbar circuit 100 may be configured to perform vector-matrix multiplication (VMM).
- Matrix A may be mapped to conductance values G.
- the output current I may be read and mapped back to output results Y.
- the crossbar circuit 100 can perform different types of convolution operations, such as regular convolutions, depthwise convolutions, etc.
- Performing a regular convolution on input data may involve applying a single convolution kernel to the input data.
- the convolution kernel may have a particular size defined by multiple dimensions (e.g., a width, a height, a channel, etc.).
- the convolution kernel may be applied to a portion of the input data having the same size as the convolution kernel to produce an output.
- the output may be mapped to an element of the convolution result that is located at a position corresponding to the position of the portion of the input data.
- Select circuits 130 a - c may select one or more cross-point devices of crossbar arrays 101 a , 101 b , 101 c , etc. according to the control signal produced by control circuit 135 . For example, in response to receiving a first control signal indicating that a regular convolution is to be performed, select circuits 130 a - c may select a plurality of cross-point devices that are connected to a bit line to store a kernel for performing the regular convolution. More particularly, the cross-point devices 121 a , 123 a , and 125 a may be selected to store a first kernel (e.g., a kernel 520 a of FIG. 5 A ).
- a first kernel e.g., a kernel 520 a of FIG. 5 A
- the cross-point devices 121 b , 123 b , and 125 b may be selected to store a second kernel (e.g., a kernel 520 b of FIG. 5 B ).
- the cross-point devices 121 c , 123 c , and 125 c may be selected to store the Nth kernel.
- Programming circuit 140 may program the selected cross-point devices to store the kernels for performing regular convolution operations. For example, programming circuit 140 may program the cross-point devices 121 a , 123 a , and 125 a to store the first kernel (e.g., a kernel 520 a of FIG. 5 A ). The programming circuit 140 may program the cross-point devices 121 b , 123 b , and 125 b to store the second kernel (e.g., a kernel 520 b of FIG. 5 B ). The programming circuit 140 may program the cross-point devices 121 c , 123 c , and 125 c to store the Nth kernel.
- first kernel e.g., a kernel 520 a of FIG. 5 A
- the programming circuit 140 may program the cross-point devices 121 b , 123 b , and 125 b to store the second kernel (e.g., a kernel 520 b of FIG. 5 B ).
- the programming circuit 140 may program the cross
- Performing a depth-wise convolution on input data may involve convolving each channel of the input data with a respective channel of a depthwise convolution kernel and stacking the convolved outputs together.
- select circuits 130 a - c may select a plurality of cross-point devices connected to a particular bit line to store a channel of the depthwise convolution kernel. For example, the select circuits 130 a - c may select the cross-point devices 121 a , 123 b , and 125 c to store the first channel, the second channel, and the third channel of the depthwise convolution kernel, respectively.
- the programming circuit 140 may program the cross-point devices 121 a (the first plurality of cross-point devices), the cross-point devices 123 b (the third plurality of cross-point devices), and the cross-point devices 125 c (the fourth plurality of cross-point devices) to conductance values representative of the first channel of the depthwise convolution kernel, conductance values representative of the second channel of the depthwise convolution kernel, and conductance values representative of the third channel of the depthwise convolution kernel, respectively.
- the WL logic 160 may convert input data to be convolved into vectors and may further generate input signals representing the vectors.
- the input signals may be applied to the selected cross-point devices via the word lines connected to the selected cross-point devices.
- the cumulative current through the bit lines connected to the selected cross-point devices may represent the convolution results.
- the cumulative current through the first bit line 113 a may represent the convolution result of the input data and the first kernel (e.g., an output 530 a of FIG. 5 A ).
- the cumulative current through the second bit line 113 b may represent the convolution result of the input data and the second kernel (e.g., an output 530 b of FIG. 5 A ).
- the cumulative current through the Nth bit line 113 N may represent the convolution result of the input data and the Nth kernel.
- the cumulative current through the first bit line 113 a may represent the convolution result of the first channel of the input data and the first channel of the depthwise convolution kernel (e.g., an output 550 a of FIG. 5 B ).
- the cumulative current through the second bit line 113 b may represent the convolution result of the second channel of the input data and the second channel of the depthwise convolution kernel (e.g., an output 550 b of FIG. 5 B ).
- the cumulative current through the Nth bit line 113 N may represent the convolution result of the third channel of the input data and the third channel of the depthwise convolution kernel (e.g., an output 550 c of FIG. 5 B ).
- Sensing circuit 150 may generate output signals based on the current flowing through bit lines 113 a -N. The output signals may thus represent the convolution results.
- FIGS. 2 A and 2 B are schematic diagrams illustrating example cross-point devices 1220 a and 1220 b in accordance with some embodiments of the present disclosure.
- Each cross-point device 1220 a and 1220 b may be referred to as a 1-transistor-1-resistor (1T1R) configuration.
- each of cross-point devices 1220 a and 1220 b may include an RRAM device 1201 and a transistor 1203 that are connected in series.
- a transistor may include three terminals that may be marked as gate (G), source(S), and drain (D), respectively.
- G gate
- S source
- D drain
- a first terminal of RRAM device 1201 may be connected to the drain of transistor 1203 .
- a second terminal of RRAM device 1201 may be connected to a bit line 1211 .
- the source of the transistor 1203 may be connected to a word line 1215 .
- the gate of transistor 1203 may be connected to a select line 1213 .
- the second terminal of RRAM device 1201 may be connected to a word line 1215 , and the source of the transistor 1203 may be connected to a bit line 1211 in some embodiments.
- Word line 1215 may correspond to a word line 111 a - 1 , . . . , 111 c -M of FIG. 1 .
- Bit line 1211 may correspond to a bit line 113 a - 113 N of FIG. 1 .
- Transistor 1203 may function as a selector as well as a current limiter and may set the current compliance for RRAM device 1201 during programming.
- the gate voltage on transistor 1203 can set current compliance for cross-point devices 1220 a and 1220 b during programming and can thus control the conductance and analog behavior of cross-point devices 1220 a and 1220 b .
- a set signal e.g., a voltage signal, a current signal
- BL bit line
- WL word line
- select voltage or gate voltage Another voltage, also referred to as a select voltage or gate voltage, may be applied via select line (SEL) 1213 to the transistor gate to open the gate and set the current compliance, while word line (WL) 1215 (or bit line (BL)) may be grounded.
- SEL select voltage
- WL word line
- BL bit line
- a gate voltage may be applied to the gate of transistor 1203 via select line 1213 to open the transistor gate.
- a reset signal may be sent to RRAM device 1201 via word line 1215 (or bit line 1211 ), while bit line 1211 (or word line 1215 ) may be grounded.
- FIG. 3 is a diagram illustrating an example crossbar circuit 300 in accordance with some embodiments of the present disclosure.
- the crossbar circuit 300 is a portion of the crossbar circuit 100 in greater detail.
- crossbar circuit 300 may include a crossbar array 301 and a select circuit 350 .
- Crossbar array 301 may include cross-point devices 320 connected to word lines 311 _ 0 , . . . , 311 _M ⁇ 1 (i.e., WL_ 0 , . . . , WL_M ⁇ 1), bit lines 313 _ 0 , 313 _ 1 , . . . , 313 _N ⁇ 2, 313_N ⁇ 1 (i.e., BL_ 0 , BL_ 1 , . . . , BL_N ⁇ 2, BL_N ⁇ 1), and select lines 315 _ 0 , 315 _ 1 , . . .
- Crossbar array 301 may include M ⁇ N cross-point devices, each of which is connected to a word line, a bit line, and a select line.
- cross-point devices 320 (M ⁇ 1, 0), 320 (M ⁇ 1, 1), . . . , 320 (M ⁇ 1, N ⁇ 2), 320 (M ⁇ 1, N ⁇ 1) are connected to word line 311 _M ⁇ 1 and one of the bit lines 313 _ 0 , 313 _ 1 , . . .
- cross-point devices 320 ( 0 , 0 ), 320 ( 0 , 1 ), . . . , 320 ( 0 , N ⁇ 2), 320 ( 0 , N ⁇ 1) are connected to word line 311 _ 0 and one of the bit lines 313 _ 0 , 313 _ 1 , . . . , 313 _N ⁇ 2, 313 _N ⁇ 1.
- the cross-point devices that are connected to bit line 313 _ 1 are also connected to select line 315 _ 1 .
- the cross-point devices that are connected to bit line 313 _N ⁇ 1 are also connected to select line 315 _N ⁇ 1.
- Select circuit 350 may include multiplexers 351 _ 0 , 351 _ 1 , . . . , 351 _N ⁇ 2, 351 _N ⁇ 1.
- Each multiplexer (MUX) may include a first input D 0 , a second input D 1 , an output, and a control input.
- the first input D 0 and the second input D 1 may be connected to a first select signal SELIN (e.g., SELIN_ 0 , SELIN_ 1 , . . . , SELIN_N ⁇ 2, and SELIN_N ⁇ 1) and a second select signal SELIN_SHIFT (e.g., SELIN_SHIFT_ 0 , SELIN_SHIFT_ 1 , . . .
- SELIN_SHIFT e.g., SELIN_SHIFT_ 0 , SELIN_SHIFT_ 1 , . . .
- the output of the MUX may be connected to a respective select line 315 _ 0 , 315 _ 1 , . . . , 315 _N ⁇ 2, 315 _N ⁇ 1.
- the control input of the MUX may be connected to a control signal indicative of whether a depthwise convolution is to be performed by the crossbar circuit 300 .
- the control input may be connected to a word line 311 _M.
- the control signal may be provided to the multiplexers 351 _ 0 , 351 _ 1 , . . .
- Each MUX 351 _ 0 , 351 _ 1 . . . , 351 _N ⁇ 1 may output either the first select signal or the second select signal based on the control signal.
- the output of each MUX is the first select signal SELIN connected to the MUX (e.g., SELIN_ 0 connected to MUX 351 _ 0 , SELIN_ 1 connected to MUX 351 _ 1 , . . .
- the first select signal SELIN_ 0 , SELIN_ 1 , . . . , SELIN_N ⁇ 2, SELIN_N ⁇ 1 may be applied to the cross-point devices via select lines 315 _ 0 , 315 _ 1 , . . . , 315 _N ⁇ 2 and 315 _N ⁇ 1, respectively.
- the output of each MUX is the second select signal connected to the MUX (e.g., SELIN_SHIFT_ 0 connected to MUX 351 _ 0 , SELIN_SHIFT_ 1 connected to MUX 351 _ 1 , . . . , SELIN_SHIFT_N ⁇ 2 connected to MUX 351 _N ⁇ 2, and SELIN_SHIFT_N ⁇ 1 connected to MUX 351 _N ⁇ 1).
- the second select signal SELIN_SHIFT_ 0 , SELIN_SHIFT_ 1 , . . .
- SELIN_SHIFT_N ⁇ 2 SELIN_SHIFT_N ⁇ 1 may be applied to the cross-point devices via select lines 315 _ 0 , 315 _ 1 , . . . , 315 _N ⁇ 2 and 315 _N ⁇ 1, respectively.
- FIGS. 4 A, 4 B, and 4 C are diagrams illustrating an example crossbar circuit 400 in accordance with some embodiments of the present disclosure.
- the crossbar circuit 400 is split across FIGS. 4 A- 4 C .
- reference numbers A 1 , B 1 , C 1 , D 1 , E 1 , F 1 , G 1 , H 1 , A 2 , B 2 , C 2 , D 2 , E 2 , F 2 , G 2 , and H 2 represent common connection points for illustrating the crossbar circuit 400 across multiple drawing sheets and do not correspond to components of the crossbar circuit 400 .
- crossbar circuit 400 may include a first crossbar array 401 a , a second crossbar array 401 b , and a third crossbar array 401 c .
- Each of the crossbar arrays 401 a , 401 b , and 401 c may be and/or include a crossbar array 301 as described in connection with FIG. 3 .
- Crossbar circuit 400 may further include a first select circuit 450 a , a second select circuit 450 b , and a third select circuit 450 c .
- Each select circuit 450 a , 450 b , and 450 c may be and/or include a select circuit 350 of FIG. 3 and may include a plurality of multiplexers.
- the first crossbar array 401 a may include cross-point devices that are connected to a first plurality of word lines WL_ 2 M, . . . , WL_ 3 M ⁇ 1, bit lines BL_ 0 , . . . , BL_N ⁇ 1, and select lines 415 a _ 0 , 415 a _ 1 , 415 a _ 2 , . . . , 415 a _N ⁇ 2, 415 a _N ⁇ 1.
- the second crossbar array 401 b may include cross-point devices that are connected to a second plurality of word lines WL_M, . . . , WL_ 2 M ⁇ 1, the bit lines BL_ 0 , . . .
- the third crossbar array 401 c may include cross-point devices that are connected to word lines WL_ 0 , . . . , WL_M ⁇ 1, the bit lines BL_ 0 , . . . , BL_N ⁇ 1, and select lines 415 c _ 0 , 415 c _ 1 , 415 c _ 2 , . . . , 415 c _N ⁇ 2, 415c_N ⁇ 1.
- Word lines WL_ 2 M, . . . , WL_ 3 M ⁇ 1 may correspond to word lines 111 a - 1 , . . . , 111 a -M of FIG. 1 , respectively.
- Word lines WL_M, . . . , WL_ 2 M ⁇ 1 may correspond to word lines 111 b - 1 , . . . , 111 b -M of FIG. 1 , respectively.
- Word lines WL_ 0 , . . . , WL_M ⁇ 1 may correspond to word lines 111 c - 1 , . . .
- Bit lines BL_ 0 , . . . , BL_N ⁇ 1 may correspond to bit lines 113 a , . . . , 113 N of FIG. 1 , respectively.
- Select lines 415 a _ 0 , . . . , 415 a _N ⁇ 1 may correspond to select lines 115 a - 1 , . . . , 115 a -N, respectively.
- Select lines 415 b _ 0 , . . . , 415 b _N ⁇ 1 may correspond to select lines 115 b - 1 , . . . , 115 b -N, respectively.
- Select lines 415 c _ 0 , . . . , 415 c _N ⁇ 1 may correspond to select lines 115 c - 1 , . . . , 115 c -N, respectively.
- the cross-point devices (not shown) in the first crossbar array 401 a may correspond to cross-point devices 121 a , 121 b , 121 c , etc. in the crossbar array 101 a , as described in connection with FIG. 1 .
- the cross-point devices (not shown) in the second crossbar array 401 b may include cross-point devices 123 a , 123 b , 123 c , etc. in the crossbar array 101 b , as described in connection with FIG. 1 .
- the cross-point devices (not shown) in the third crossbar array 401 c may include cross-point devices 125 a , 125 b , 125 c , etc. in the crossbar array 101 c , as described in connection with FIG. 1 .
- a select line in a given crossbar array (e.g., the first crossbar array 401 a ) of the crossbar circuit 400 may be connected to a first input of a MUX in a neighboring crossbar array (e.g., the second crossbar array 401 b ) and a second input of another MUX in the neighboring crossbar array.
- select line 415 a _ 0 of the first crossbar array 401 a is connected to the first input SELIN ⁇ 0 > of MUX 451 b _ 0 and the second input SELIN_SHIFT ⁇ 1 > of MUX 451 b _ 1 (also referred to as the “first multiplexer”).
- Select line 415 a _ 0 corresponds to the first select line 115 a - 1 of FIG. 1 and is connected to a first plurality of cross-point devices (not shown in FIGS. 4 A- 4 C ) that are further connected to the first bit line BL_ 0 and the first plurality of word lines WL_ 2 M, . . . , WL_ 3 M ⁇ 1.
- the output of MUX 451 b _ 0 is connected to select line 415 b _ 0 of the second crossbar array.
- the output of MUX 451 b _ 1 may be connected to select line 415 b _ 1 of the second crossbar circuit.
- Select line 415 b _ 1 may correspond to the third select line 115 b - 2 of FIG.
- the first input SELIN ⁇ 1 > of MUX 451 b _ 1 is connected to select line 415 a _ 1 that corresponds to the second select line 115 a - 2 of FIG. 1 .
- select line 415 b _ 1 of the second crossbar array may be connected to the first input SELIN ⁇ 1 > of MUX 451 c _ 1 and the second input SELIN_SHIFT ⁇ 2 > of MUX 451 c _ 2 (also referred to as the “second multiplexer”).
- Select line 415 b _ 1 may correspond to select line 115 b - 2 of FIG. 1 (also referred to as the “third select line”).
- the first input SELIN ⁇ 2 > of MUX 451 c _ 2 is connected to select line 415 b _ 2 , which may correspond to select line 115 b - 3 of FIG. 1 (also referred to as the “fifth select line”).
- the output of MUX 451 c _ 2 may be connected to select line 415 c _ 2 , which may correspond to the select line 115 c - 3 of FIG. 1 (also referred to as the “fourth select line”).
- the output of each MUX in the crossbar circuit 400 is switched to the first input of the MUX.
- the output of MUX 451 a _ 0 is switched to its first input.
- the output of MUX 451 b _ 0 is also switched to its first input.
- the first input of MUX 451 a _ 0 is connected to a first select signal SELIN ⁇ 0 >.
- the first select signal SELIN ⁇ 0 > is applied to the select line 415 a _ 0 via MUX 451 a _ 0 .
- the cross-point devices that are connected to the first bit line BL_ 0 and the first plurality of word lines WL_ 2 M, . . . , WL_ 3 M ⁇ 1 are thus selected and enabled for in-memory computing.
- the select line 415 a _ 0 is connected to the first input of the MUX 451 b _ 0
- the output of the MUX 451 b _ 0 is also the first select signal.
- the cross-point devices connected to the first bit line BL_ 0 and the second plurality of word lines are also selected for programming and in-memory computing.
- the cross-point devices connected to the first bit line BL_ 0 and the third plurality of word lines may also be selected for programming and in-memory computing because the first input of MUX 451 c _ 0 is connected to the select line 415 b _ 0 .
- the output of each MUX in the crossbar circuit 400 is switched to the second input of the MUX.
- the output of MUX 451 a _ 0 is switched to its second input.
- the second select signal is applied to the select line 415 a _ 0 .
- the cross-point devices that are connected to the first select line 415 a _ 0 i.e., the cross-point devices that are connected to the first bit line BL_ 0 and the first plurality of word lines WL_ 2 M, . . .
- WL_ 3 M ⁇ 1) may be selected and enabled for programming and in-memory computing.
- the output of the MUX 451 b _ 1 is also the second select signal.
- the cross-point devices connected to select line 415 b _ 1 i.e., the cross-point devices that are connected to the second bit line BL_ 1 and the second plurality of word lines WL_M, . . . , WL_ 2 M ⁇ 1 are selected and enabled for programming and in-memory computing.
- the cross-point devices that are connected to the third plurality of word lines and the third bit line BL_ 2 are also selected for programming and in-memory computing.
- the selected/enabled cross-point devices may be programmed to store depth-wise convolution kernels for performing depth-wise convolution operations.
- FIG. 5 A is a diagram illustrating an example regular convolution operation in accordance with some embodiments of the present disclosure.
- Kernels 520 a and 520 b may be used to perform regular convolution on input data 510 to produce outputs 530 a and 530 b .
- Each of kernels 520 a and 520 b may be a 3 ⁇ 3 ⁇ 3 filter, filled with a set of weights.
- the size of input data 510 may be defined by its width (w), height (h), and channels (c).
- input data 510 may be a 6 ⁇ 6 ⁇ 3 volume including a first channel 510 a , a second channel 510 b , and a third channel 510 c .
- Each kernel 520 a and kernel 520 b may be applied to the input data 510 by multiplying a portion of input data 510 with the kernel elementwise and then summing all the results.
- kernel 520 a may be applied to a portion of input data 510 of the same size as that of kernel 520 a and kernel 520 b .
- a scalar multiplication of the first portion by kernel 520 a may be performed to obtain the first element of the output 530 a .
- Kernel 520 a and kernel 520 b may be used to scan each of a plurality of 3 ⁇ 3 ⁇ 3-sized portions of input data 510 to produce output 530 a and output 530 b , respectively.
- each kernel 520 a and 520 b may produce a channel of the convolution result (i.e., a 4 ⁇ 4 ⁇ 1 output 530 a or output 530 b ).
- the convolution result of the regular convolution may be a 4 ⁇ 4 ⁇ 2 output including a first channel 530 a and a second channel 530 b.
- FIG. 5 B is a diagram illustrating a depthwise convolution operation in accordance with some embodiments of the present disclosure.
- Performing a depth-wise convolution on input data 510 may involve convolving each channel of input data 510 with a respective kernel corresponding to the channel and stacking the convolved outputs together.
- performing depth-wise convolution on input data 510 may involve convolving a first channel 510 a , a second channel 510 b , and a third channel 510 c of input data 510 using a kernel 540 a , a kernel 540 b , and a kernel 540 c , respectively.
- Each of kernels 540 a , 540 b , and 540 c may correspond to a channel of a depth-wise convolution kernel 540 .
- Convolving first channel 510 a of input data 510 with the kernel 540 a may involve performing element-wise multiplication between an element of first channel 510 a and an element of the kernel 540 a that are located at the same position. Convolving the first channel 510 a of input data 510 using kernel 540 a may produce an output 550 a . Convolving the second channel 510 b of input data 510 using kernel 540 b may produce an output 550 b . Convolving the third channel 510 c of input data 510 using the kernel 540 c may produce an output 550 c . The outputs 550 a , 550 b , and 550 c may be stacked together as an output 550 .
- FIG. 5 C is a diagram illustrating a pointwise convolution operation in accordance with some embodiments of the present disclosure.
- a pointwise convolution may be performed on an M ⁇ H ⁇ W input 560 using an N ⁇ M ⁇ 1 ⁇ 1 kernel 570 to produce an output 580 .
- H and W are the height and width of the input 560 , respectively.
- N is the number of output channels.
- M is the number of input channels.
- Kernel 570 may be applied to input 560 , for example, by taking a 1 ⁇ 1 ⁇ 3 portion of the input 560 (which corresponds to the three channels at a single spatial location) and multiplying it elementwise with kernel 570 , then summing all the results. This operation is applied at each spatial location in input 560 .
- the output 580 may be a 2 ⁇ H ⁇ W volume.
- FIGS. 6 A and 6 B are schematic diagrams illustrating example crossbar circuits 600 a and 600 b in accordance with some embodiments.
- Crossbar circuits 600 a and 600 b may represent the same crossbar circuit configured to perform standard convolutions and depthwise convolutions, respectively.
- crossbar circuit 600 a and crossbar circuit 600 b may include cross-point devices 620 a , . . . , 620 z connecting to word lines WL 0 , WL 1 , WL 2 , . . . , WL 26 , and bit lines BL 0 , BL 1 , and BL 2 .
- Crossbar circuit 600 a and crossbar circuit 600 b may further include select lines SELa- 0 , SELa- 1 , SELa- 2 , SELb- 0 , SELb- 1 , SELb- 2 , SELc- 0 , SELc- 1 , and SELc- 2 .
- the cross-point devices 620 a - z may be arranged as a first crossbar array 601 a , a second crossbar array 601 b , and a third crossbar array 601 c .
- Each of the first crossbar array 601 a , the second crossbar array 601 b , and the third crossbar array 601 c may include cross-point devices connected to three bit lines and nine word lines.
- the cross-point devices that are connected to bit line BL_ 0 , select line SELa- 0 , and one of the word lines WL 18 , WL 19 , . . . , WL 26 are collectively referred to as cross-point devices 621 a .
- cross-point devices 621 b The cross-point devices that are connected to bit line BL 1 , select line SELa- 1 , and one of the word lines WL 18 , WL 19 , . . . , WL 26 are collectively referred to as cross-point devices 621 b .
- the cross-point devices that are connected to bit line BL 2 , select line SELa- 2 , and one of the word lines WL 18 , WL 19 , . . . , WL 26 are collectively referred to as cross-point devices 621 c .
- cross-point devices 623 a are collectively referred to as cross-point devices 623 a .
- the cross-point devices that are connected to bit line BL 1 , select line SELb- 1 , and one of the word lines WL 9 , WL 10 , . . . , WL 17 are collectively referred to as cross-point devices 623 b .
- the cross-point devices that are connected to bit line BL 2 , select line SELb- 2 , and one of the word lines WL 9 , WL 10 , . . . , WL 17 are collectively referred to as cross-point devices 623 c .
- cross-point devices 625 a The cross-point devices that are connected to bit line BL 1 , select line SELc- 1 , and one of the word lines WL 0 , WL 1 , . . . , WL 8 are collectively referred to as cross-point devices 625 a .
- the cross-point devices that are connected to bit line BL 1 , select line SELc- 1 , and one of the word lines WL 0 , WL 1 , . . . , WL 8 are collectively referred to as cross-point devices 625 b .
- cross-point devices 625 c are collectively referred to as cross-point devices 625 c .
- cross-point devices 621 a , cross-point devices 621 b , and cross-point devices 621 c may correspond to cross-point devices 121 a , cross-point devices 121 b , and cross-point devices 121 c of FIG. 1 , respectively.
- Cross-point devices 623 a , cross-point devices 623 b , and cross-point devices 623 c may correspond to cross-point devices 123 a , cross-point devices 123 b , and cross-point devices 123 c of FIG. 1 , respectively.
- Cross-point devices 625 a , cross-point devices 625 b , and cross-point devices 625 c may correspond to cross-point devices 125 a , cross-point devices 125 b , and cross-point devices 125 c of FIG. 1 , respectively.
- Cross-point devices 621 a , 621 b , 623 b , 625 c , and 623 c may also be referred to as the first plurality of cross-point devices, the second plurality of cross-point devices, the third plurality of cross-point devices, the fourth plurality of cross-point devices, and the fifth plurality of cross-point devices, respectively.
- select line SELa- 0 may be connected to select line SELb- 0 , which is further connected to select line SELc- 0 .
- Select line SELa- 1 may be connected to select line SELb- 1 , which is further connected to select line SELc- 1 .
- Select line SELa- 2 may be connected to select line SELb- 2 , which is further connected to select line SELc- 2 .
- Performing a regular convolution operation as described in connection with FIG. 5 A may involve storing kernel 520 a of FIG. 5 A in cross-point devices connected to a first bit line BL_ 0 and word lines WL 0 , WL 1 , . . .
- Kernel 520 b of FIG. 5 A may be stored in cross-point devices connected to a second bit line BL 1 and word lines WL 0 , WL 1 , . . . , WL 26 by programming each of the cross-point devices 621 b , 623 b , and 625 b to store a respective element of kernel 520 b of FIG. 5 A .
- a plurality of input signals representative of a portion of input data 510 to be convolved with the kernel may then be applied to the word lines WL_ 0 , WL_ 1 , . . . , WL_ 26 .
- Each of the input signals may represent a respective element of the input data 510 .
- the cumulative current output via the first bit line BL_ 0 may correspond to the first channel of the convolution result (e.g., output 530 a of FIG. 5 A ).
- the cumulative current output via the second bit line BL 1 may correspond to the second channel of the convolution results (e.g., output 530 b of FIG. 5 A ).
- select line SELa- 0 may be connected to select line SELb- 1 (e.g., via a MUX as described herein, not shown in FIG. 6 B ).
- Select line SELb- 1 is further connected to select line SELc- 2 (e.g., via a MUX as described herein, not shown in FIG. 6 B ).
- a select voltage applied to select line SELa- 0 may also be applied to select lines SELb- 1 and SELc- 2 .
- the cross-point devices connected to the select lines SELa- 0 , SELb- 1 , and SELc- 2 are selected in response to the application of the select voltage to select line SELa- 0 .
- the kernels 540 a , 540 b , and 540 c of FIG. 5 B may be used for performing depthwise convolution operations as described in connection with FIG. 5 B .
- each of the cross-point devices 621 a may be programmed to store a respective element of the kernel 540 a of FIG. 5 B .
- Each of the cross-point devices 623 b may be programmed to store a respective element of the kernel 540 b of FIG. 5 B .
- Each of the cross-point devices 625 c may be programmed to store a respective element of the kernel 540 c .
- a plurality of input signals may be applied to the word lines WL 0 -WL 26 to perform the depth-wise convolution operations.
- Each of the input signals may represent a portion of the input data (e.g., input data 510 of FIG. 5 B ) to be convolved.
- each of the input signals applied to a word line WL 18 , . . . , WL 26 may represent an element of the first channel 510 a of the input data 510 as illustrated in FIG. 5 B .
- WL 17 may represent an element of the second channel 510 b of the input data 510 as illustrated in FIG. 5 B .
- Each of the input signals applied to a word line WL 0 , . . . , WL 8 may represent an element of the third channel 510 c of the input data 510 as illustrated in FIG. 5 B .
- the cumulative current output via the first bit line BL_ 0 may represent a convolution of the first channel of the input data and the first kernel (the output 550 a of FIG. 5 B ).
- the cumulative current output via the second bit line BL_ 1 may represent a convolution of the second channel of the input data and the second kernel (the output 550 b of FIG. 5 B ).
- the cumulative current output via the third bit line BL_ 2 may represent a convolution of the third channel of the image and the third kernel (the output 550 c of FIG. 5 B ).
- the crossbar circuit 600 a may store the kernel 570 of FIG. 5 C for performing pointwise convolution operations as described in connection with FIG. 5 C .
- the terms “approximately,” “about,” and “substantially” may be used to mean within ⁇ 20% of a target dimension in some embodiments, within ⁇ 10% of a target dimension in some embodiments, within ⁇ 5% of a target dimension in some embodiments, and yet within ⁇ 2% in some embodiments.
- the terms “approximately” and “about” may include the target dimension.
- example or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion.
- the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Logic Circuits (AREA)
Abstract
Description
Claims (11)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/517,320 US12443675B2 (en) | 2023-11-22 | 2023-11-22 | Crossbar circuits for performing convolution operations |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/517,320 US12443675B2 (en) | 2023-11-22 | 2023-11-22 | Crossbar circuits for performing convolution operations |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20250165555A1 US20250165555A1 (en) | 2025-05-22 |
| US12443675B2 true US12443675B2 (en) | 2025-10-14 |
Family
ID=95715262
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/517,320 Active 2044-01-08 US12443675B2 (en) | 2023-11-22 | 2023-11-22 | Crossbar circuits for performing convolution operations |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US12443675B2 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200082252A1 (en) * | 2018-09-07 | 2020-03-12 | Tetramem Inc. | Implementing a multi-layer neural network using crossbar array |
| US20200193277A1 (en) * | 2018-12-18 | 2020-06-18 | Samsung Electronics Co., Ltd. | Non-volatile memory device including arithmetic circuitry for neural network processing and neural network system including the same |
| US11107527B1 (en) * | 2020-02-26 | 2021-08-31 | Tetramem Inc. | Reducing sneak current path in crossbar array circuits |
| US20230097363A1 (en) * | 2021-09-24 | 2023-03-30 | SK Hynix Inc. | Data processing system, operating method thereof, and computing system using the same |
-
2023
- 2023-11-22 US US18/517,320 patent/US12443675B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200082252A1 (en) * | 2018-09-07 | 2020-03-12 | Tetramem Inc. | Implementing a multi-layer neural network using crossbar array |
| US20200193277A1 (en) * | 2018-12-18 | 2020-06-18 | Samsung Electronics Co., Ltd. | Non-volatile memory device including arithmetic circuitry for neural network processing and neural network system including the same |
| US11107527B1 (en) * | 2020-02-26 | 2021-08-31 | Tetramem Inc. | Reducing sneak current path in crossbar array circuits |
| US20230097363A1 (en) * | 2021-09-24 | 2023-03-30 | SK Hynix Inc. | Data processing system, operating method thereof, and computing system using the same |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250165555A1 (en) | 2025-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10534840B1 (en) | Multiplication using non-volatile memory cells | |
| EP3284092B1 (en) | Crossbar arrays for calculating matrix multiplication | |
| EP3262651B1 (en) | Crossbar arrays for calculating matrix multiplication | |
| EP3267355A1 (en) | Vector-matrix multiplications involving negative values | |
| KR20190005101A (en) | A MULTI-BIT, SoC-COMPATIBLE NEUROMORPHIC WEIGHT CELL USING FERROELECTRIC FETS | |
| US10042819B2 (en) | Convolution accelerators | |
| CN113222128A (en) | Memristor-based 2T1R array and parallel operation method and algorithm thereof | |
| US20240379140A1 (en) | Crossbar circuits utilizing current-mode digital-to-analog converters | |
| US12443675B2 (en) | Crossbar circuits for performing convolution operations | |
| US20250273268A1 (en) | Read-out circuits for rram-based crossbar circuits | |
| US12040016B2 (en) | Crossbar circuits for performing convolution operations | |
| US20200134438A1 (en) | Dynamic range and linearity of resistive elements for analog computing | |
| US12406723B2 (en) | Voltage-mode crossbar circuits | |
| US12354655B2 (en) | Transimpedance amplifiers for crossbar circuits | |
| US12451186B2 (en) | Multi-step programming schemes for programming crossbar circuits | |
| US20250069655A1 (en) | Bit-serial input schemes for crossbar circuits | |
| US20250370715A1 (en) | Control circuit, memory system, and operating method | |
| WO2022189872A1 (en) | Resistive memory device for matrix-vector multiplications | |
| WO2016190838A1 (en) | Hybrid selectors | |
| JPWO2022189872A5 (en) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| AS | Assignment |
Owner name: TETRAMEM INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YIN, WENBO;ZHU, HENGFANG;SIGNING DATES FROM 20231114 TO 20231115;REEL/FRAME:065720/0671 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |