Bit line accumulation readout scheme for an analog in-memory computation processing circuit
A memory array includes memory cells arranged in rows and columns where each row includes a word line connected to memory cells of the row and each column includes a bit line connected to memory cells of the column. Each memory cell stores a bit of weight data for an in-memory computation operation. A row controller circuit coupled to the word lines through drive circuits is configured to simultaneously actuate multiple word lines during the in-memory computation operation. A column processing circuit includes a discharge time sensing circuit for each column that generates an analog signal indicative of a time taken during the in-memory computation operation to discharge the bit line from a precharge voltage to a threshold voltage. The analog signals are converted to digital signal and a computation circuitry performs digital signal processing calculations on the digital signals to generate a decision output for the in-memory computation operation.
1 . A circuit, comprising:
a memory array including memory cells arranged in a matrix with plural rows and plural columns, each row including a word line connected to the memory cells of the row, each column including a bit line connected to the memory cells of the column, and each memory cell storing a bit of weight data for an in-memory computation operation;
a word line driver circuit for each row having an output connected to drive the word line of the row;
a row controller circuit coupled to the word line driver circuits and configured to simultaneously actuate a plurality of word lines during said in-memory computation operation; and
a column processing circuit including: a discharge time sensing circuit for each column that generates an analog signal indicative of a time taken during said in-memory computation operation to discharge the bit line from a precharge voltage to a threshold voltage; analog-to-digital conversion circuitry configured to convert the analog signals to digital signals; and computation circuitry configured to perform digital signal processing calculations on the digital signals and generate a decision output for the in-memory computation operation;
wherein the discharge time sensing circuit comprises:
a timing capacitor;
a capacitor charging circuit configured to charge the timing capacitor to a first voltage level prior to the in-memory computation operation;
a capacitor discharging circuit configured to apply a discharge current to the timing capacitor during the in-memory computation operation; and
a timing control circuit configured to terminate application of the discharge current when the discharge of the bit line from the precharge voltage reaches the threshold voltage;
wherein the analog signal is a second voltage level remaining on the timing capacitor after termination of the discharge current application.
2 . The circuit of claim 1 , wherein the discharge time sensing circuit comprises a bit line clamping circuit configured, after termination of the discharge current application, to clamp the bit line to a clamping voltage.
3 . The circuit of claim 2 , wherein the clamping voltage is greater than the threshold voltage.
4 . The circuit of claim 2 , wherein the clamping voltage is greater than a voltage on bit line where there is a risk of an inadvertent bit flip of the weight data stored in the memory cell.
5 . The circuit of claim 1 , further comprising a bit line precharge circuit that is actuated before the in-memory computation operation to precharge the bit line to the precharge voltage and deactuated to trigger application of the discharge current to the timing capacitor during the in-memory computation operation.
6 . The circuit of claim 1 , wherein the capacitor charging circuit is actuated before the in-memory computation operation to charge the timing capacitor and deactuated to trigger application of the discharge current to the timing capacitor during the in-memory computation operation.
7 . The circuit of claim 1 , wherein the timing capacitor is a variable capacitance circuit and further comprising a control circuit configured to generate a control signal for setting a capacitance of the variable capacitance circuit for the timing capacitor.
8 . The circuit of claim 1 , wherein each memory cell comprises a 6T-type static random access memory (SRAM) cell and the bit line is one bit line of a complementary pair of bit lines for the SRAM cells.
9 . The circuit of claim 1 , wherein each memory cell comprises a 6T-type static random access memory (SRAM) cell and the bit line is both bit lines of a complementary pair of bit lines for the SRAM cells.
10 . The circuit of claim 1 , wherein each memory cell comprises an 8T-type static random access memory (SRAM) cell and the bit line is a read bit line for the SRAM cells.
11 . The circuit of claim 1 , wherein the memory cells are non-volatile memory (NVM) cells and the bit line is an NVM cell bit line.
12 . The circuit of claim 1 , wherein the row controller circuit simultaneously actuates the plurality of word lines in response to feature data for the in-memory computation operation.
13 . The circuit of claim 1 , further comprising:
a variable capacitance circuit coupled to each bit line; and
a control circuit configured to generate a control signal for setting a capacitance of the variable capacitance circuit coupled to each bit line.
14 . A circuit, comprising:
a memory array including memory cells arranged in a matrix with plural rows and plural columns, each row including a word line connected to the memory cells of the row, each column including a bit line connected to the memory cells of the column, and each memory cell storing a bit of weight data for an in-memory computation operation;
a word line driver circuit for each row having an output connected to drive the word line of the row;
a row controller circuit coupled to the word line driver circuits and configured to simultaneously actuate a plurality of word lines during said in-memory computation operation; and
a column processing circuit including:
a discharge time sensing circuit for each column comprising:
a timing capacitor having a capacitor voltage that is selectively discharged by a discharge current during said in-memory computation operation; and
a comparator circuit configured to control termination of the discharge current in response to a comparison of a bit line voltage to a threshold voltage;
a bit line clamping circuit configured to clamp the bit line to a clamp voltage following discharge of the bit line to the threshold voltage;
analog-to-digital conversion circuitry configured to convert the capacitor voltages to digital signals; and
computation circuitry configured to perform digital signal processing calculations on the digital signals and generate a decision output for the in-memory computation operation.
15 . The circuit of claim 14 , wherein the clamping voltage is greater than the threshold voltage.
16 . The circuit of claim 14 , wherein the clamping voltage is greater than a voltage on bit line where there is a risk of an inadvertent bit flip of the weight data stored in the memory cell.
17 . The circuit of claim 14 , wherein each memory cell comprises a 6T-type static random access memory (SRAM) cell and the bit line is one bit line of a complementary pair of bit lines for the SRAM cells.
18 . The circuit of claim 14 , wherein each memory cell comprises a 6T-type static random access memory (SRAM) cell and the bit line is both bit lines of a complementary pair of bit lines for the SRAM cells.
19 . The circuit of claim 14 , wherein the memory cells are non-volatile memory (NVM) cells and the bit line is an NVM cell bit line.
20 . The circuit of claim 14 , wherein the row controller circuit simultaneously actuates the plurality of word lines in response to feature data for the in-memory computation operation.
21 . The circuit of claim 14 , wherein the discharge time sensing circuit further comprises:
a capacitor charging circuit configured to charge the timing capacitor to a first voltage level prior to the in-memory computation operation; and
a capacitor discharging circuit configured to apply the discharge current to the timing capacitor during the in-memory computation operation to discharge the timing capacitor to a second voltage level after termination of the discharge current application.
22 . The circuit of claim 21 , wherein the timing capacitor is a variable capacitance circuit and further comprising a control circuit configured to generate a control signal for setting a capacitance of the variable capacitance circuit for the timing capacitor.
23 . The circuit of claim 14 , further comprising:
a variable capacitance circuit coupled to each bit line; and
a control circuit configured to generate a control signal for setting a capacitance of the variable capacitance circuit coupled to each bit line.
24 . A method, comprising:
storing bits of weight data for an in-memory computation operation in memory cells of a memory array including plural rows and plural columns, each row including a word line connected to the memory cells of the row, and each column including a bit line connected to the memory cells of the column;
simultaneously actuating a plurality of word lines during said in-memory computation operation;
generating an analog signal indicative of a time taken during said in-memory computation operation to discharge each bit line from a precharge voltage to a threshold voltage;
converting the analog signals to digital signals; and
performing digital signal processing calculations on the digital signals to generate a decision output for the in-memory computation operation;
wherein generating the analog signal comprises:
charging a timing capacitor to a first voltage level prior to the in-memory computation operation;
applying a discharge current to the timing capacitor during the in-memory computation operation; and
terminating application of the discharge current when the discharge of the bit line from the precharge voltage reaches the threshold voltage;
wherein the analog signal is a second voltage level remaining on the timing capacitor after termination of the discharge current application.
25 . The method of claim 24 , further comprising clamp the bit line to a clamping voltage after termination of the discharge current application.
26 . The method of claim 25 , wherein the clamping voltage is greater than the threshold voltage.
27 . The method of claim 25 , wherein the clamping voltage is greater than a voltage on bit line where there is a risk of an inadvertent bit flip of the weight data stored in the memory cell.
28 . The method of claim 24 , further comprising precharging the bit line to the precharge voltage before the in-memory computation operation and deactuating precharging to trigger application of the discharge current to the timing capacitor during the in-memory computation operation.
29 . The method of claim 24 , further comprising charging the timing capacitor before the in-memory computation operation and deactuating charging to trigger application of the discharge current to the timing capacitor during the in-memory computation operation.
30 . The method of claim 24 , wherein the timing capacitor is a variable capacitance circuit and further comprising setting a capacitance of the variable capacitance circuit for the timing capacitor.
31 . The method of claim 24 , wherein the simultaneously actuated plurality of word lines are selected in response to feature data for the in-memory computation operation.
32 . The method of claim 24 , where a variable capacitance circuit is coupled to each bit line, and further comprising setting a capacitance of the variable capacitance circuit coupled to each bit line.