This disclosure is directed to the field of random access memory (RAM) and, in particular, to low power consumption write driving circuitry for a static random access memory (SRAM).
A conventional SRAM cell 1 is shown in
The SRAM cell 1 also includes p-channel pre-charge transistors PCH1 and PCH2 that are selectively activated by a pre-charge signal on a pre-charge line PCHG to connect the bit line BLT1 and complementary big line BLTB1, respectively, to a supply voltage VDD. In addition, the SRAM cell 1 includes write circuitry formed by series connected n-channel write transistors WT1 and WT2 selectively connecting the bit line BLT1 to ground, and by series connected n-channel write transistors WT3 and WT4 selectively connecting the complementary bit line BLTB1 to ground. The write transistors WT1 and WT3 are selectively activated by a write signal on a write line WRITE. The write transistor WT2 is selectively activated by the output of a write driver WD (that receives data to be written as input), and the write transistor WT4 is selectively activated by the output of an inverter INV3 (that receives the output of the write driver WD as input).
It will be noted that the read circuitry for the SRAM cell 1 is not shown for simplicity.
During a write operation, the pre-charge line PCHG is driven low by the precharge signal to thereby pre-charge the bit line BLT1 and complementary bit line BLTB1 to a logic high (this is generally done at the end of previous cycle for a single port SRAM so that next cycle is ready for read or write operation cycle). This is useful because it is unknown in random access memory whether the next cycle will be a read or write operation cycle. After pre-charge, during a write operation, then the write transistors WT1 and WT3 are turned on by the write signal driving the write line WRITE to a logic high. Thereafter, the word line WL is driven high by the word line signal. When the word line WL is driven high, the output of the write driver WD controls the write transistor WT2 and the output of the inverter INV3 controls the write transistor WT4. As an example, if the data is a logic one, the write driver WD outputs a logic low, and therefore the write transistor WT2 remains off, maintaining the bit line BLT1 at a logic high due to the precharge by the precharge transistor PCH1; at the same time, the inverter INV3 outputs a logic high, and therefore the write transistor WT4 turns on to discharge the complementary bit line BLTB1 to a logic low.
This operation is repeated for each write operation. As can be appreciated, repeating this operation for each write operation results in excess power consumption (from precharge and then discharge of either BLT1 or BLTB1) where the data bit to be written is equal to the data bit already stored by the SRAM cell formed from the cross coupled inverters INV1 and INV2. Since such SRAM cells are commonly used in devices which are powered by batteries, this excess power consumption is undesirable. Therefore, further development is needed to enable the formation of SRAM cells that consume less power during write operations.
Disclosed herein is a static random access memory (SRAM) architecture including: a first column of SRAM cells coupled between a first bit line and a first complementary bit line; and data maintenance circuitry configured to preserve data states on the first bit line and the first complementary bit line between consecutive write operations if those data states do not change between those consecutive write operations.
The data maintenance circuitry may include: a first write circuit for the first column, the first write circuit having a first latch receiving first input data and providing complementary outputs to the first bit line and the first complementary bit line; wherein the first write circuit has a latchable output state driving the first bit line and first complementary bit line, and wherein the latchable output state does not change between consecutive write operations if a state of the received first input data does not change between the consecutive write operations, but does change between the consecutive write operations if the state of the received first input data changes between the consecutive write operations.
The data maintenance circuitry may include first and second buffers buffering the latchable output states driving the first bit line and first complementary bit line. Alternatively, the data maintenance circuitry may include first and second inverters inverting the latchable output states driving the first bit line and first complementary bit line.
Also disclosed herein is a static random access memory (SRAM) architecture including a plurality of memory banks. Each memory bank includes: a first SRAM cell coupled between a bank bit line and a bank complementary bit line; a second SRAM cell coupled between the bank bit line and the bank complementary bit line; and a bank write circuit including a bank latch receiving bank input data and providing complementary outputs to the bank bit line and the bank complementary bit line. The bank write circuit has a latchable output state driving the bank bit line and bank complementary bit line, the latchable output state not changing between consecutive write operations if a state of the received bank input data does not change between the consecutive write operations, but changing between the consecutive write operations if the state of the received bank input data changes between the consecutive write operations.
Also disclosed herein is a method including: latching a first data state to be written, and driving a bit line and a complementary bit line with that latched data state to write that latched data state to a first cell in a column during a first write operation; and in a second write operation immediately following the first write operation, keeping the latched data state driving the bit line and the complementary bit line if a second data state to be written to a second cell in the column is equal to the latched data state, but if the second data state is not equal to the latched data state, changing the latched data state driving the bit line and the complementary bit line to thereby write the changed latched data to the second cell.
The following disclosure enables a person skilled in the art to make and use the subject matter disclosed herein. The general principles described herein may be applied to embodiments and applications other than those detailed above without departing from the spirit and scope of this disclosure. This disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed or suggested herein.
Disclosed herein with reference to
The SRAM architecture 10 is comprised of m columns and n rows of memory cells 11, with n and m being any integers; as labeled, the memory cell in the first column and first row is 11(1,1), the memory cell in the mth column and the first row is 11(m,1), the memory cell in the first column and nth row is 11(1,n), and so on until the memory cell in the mth column and nth row is 11(m,n). Each column has an associated bit line and complementary bit line, and each row has an associated word line; as labeled, the first column is associated with bit line BL1 and complementary bit line BLB1, the second column is associated with bit line BL2 and complementary bit line BLB2, and so on until the mth column is associated with bit line BLm and complementary bit line BLBm; the first row has word line WL1 associated therewith, the second row has word line WL2 associated therewith, and so on until the nth row has word line WLn associated therewith.
A write circuit 15 is associated with each column; as labeled, the first column is associated with write circuit 15(1), the second column is associated with write circuit 15(2), and so on until the mth column is associated with write circuit 15(m). Each write circuit 15 receives input from a respective data line Data, and is clocked by a respective clock CKM and inverse clock CKBM; as labeled, the write circuit 15(1) receives input from the data line Data1 and is clocked by clock CKM1 and inverse clock CKBM1, the write circuit 15(2) receives input from the data line Data2 and is clocked by clock CKM2 and inverse clock CKBM2, and the write circuit 15(m) receives input from the data line Datam and is clocked by clock CKMm and inverse clock CKBMm.
The structure and function of the SRAM cells 11 and the write circuit 15 is now described with additional reference to
Each SRAM cell 11 is comprised of cross coupled inverters 12 and 13, with an n-channel pass gate transistor MN1 selectively connecting the input of the inverter 12 (and the output of the inverter 13) to the bit line BL, and with the n-channel pass gate transistor MN2 selectively connecting the input of the inverter 13 (the output of the inverter 12) to the complementary bit line BLB. The gate of the n-channel transistor MN1 is connected to the word line WL, and the gate of the n-channel transistor MN2 is also connected to the word line WL.
The write circuit 15 for the column to which the illustrate SRAM cell 11 belongs is comprised of cross coupled inverters 16 and 17 (that collectively form a latch), with the output of the inverter 17 (the input of the inverter 16) being connected to the bit line BL, and with the output of the inverter 16 (the input of the inverter 17) being connected to the complementary bit line BLB. A clocked write driver 18 (illustratively a clocked inverter) receives the data as input, is clocked by the clock signal CKM and its inverse CKBM, and provides output to the bit line BL. When not being clocked by CKM and CKBM, the output of the clocked write driver 18 is tristated. As an alternative, shown in
For simplicity, readout circuitry is not shown for the SRAM cell, because any suitable readout circuitry may be utilized. This SRAM architecture 10, as shown, does not illustrate readout circuitry, because any suitable readout circuitry may be utilized. It should, however, be noted that while the illustrated examples apply to an SRAM with dedicated read and write ports, the illustrated write circuitry and principles may apply to any sort of memory with a dedicated write port.
Note that traditional prior art pre-charge circuitry (see,
To effectuate this, data to be written to the selected SRAM cell 11 of the column to which the SRAM cell 11 belongs is fed to the input of the write driver 18. Note that, in a steady state, the state of the bit line BL is the same as the state of the output of the inverter 17, and the state of the complementary bit line BLB is the same as the state of the output of the inverter 16. In other words, the state of the bit lines corresponds to the state of the outputs of the latch circuit formed by the inverters 16 and 17.
When data is to be written to the selected SRAM cell 11, the write driver 18 is clocked (by the clock signal CKM1 rising to a logic high and the clock signal CKBM1 falling to a logic low). If the data to be written to the SRAM cell 11 is a logic one and the same logic value (e.g., a logic one) is already held by the cross coupled inverters 16 and 17 (meaning that the output of the inverter 17 is a logic one and the output of the inverter 16 is a logic zero), the states of the inverters 16 and 17 do not change when the write driver 18 is clocked, meaning that the outputs of the inverters 16 and 17 do not alter the current state of the bit line BL and the complementary bit line BLB.
This means that when the data to be written to the SRAM cell 11 is the same as the data written to the column to which the SRAM cell 11 belongs during an immediately preceding write operation performed on any SRAM cell of that column, little power is consumed, since the inverters 17 and 16 do not need to change the states of the bit line BL and the complementary bit line BLB. As an example, referring back to
Note that reference to an immediately subsequent write operation or a consecutive write operation refers to the case where two write operations are made to cells in the same column which occur one after another without any intervening write operation made to cells of that same column.
However, if the data to be written to the SRAM cell 11 is not the same as the data written to the column to which the SRAM cell 11 belongs during an immediately preceding write operation performed on any SRAM cell of that column, the inverters 17 and 16 will change the states of the bit line BL and the complementary bit line BLB. As an example, referring back to
As another example, if a logic one was written to the SRAM cell 11(1,2), and then in the immediately subsequent write operation (performed on column 1) a logic zero is to be written to the SRAM cell 11(1,1), the states of the inverters 16 and 17 flip (such that the output of the inverter 16 rises to a logic one and the output of the inverter 17 falls to a logic zero), which has the result of changing the states of the bit line BL and the complementary bit line BLB. Thus, if the data to be written to the SRAM cell 11 is a logic zero, the bit line BL is driven to a logic low, and the complementary bit line BLB is driven to a logic high. Once sufficient time has passed for the bit line BL and the complementary bit line BLB to settle at their new values (e.g., BL being a logic zero and BLB being a logic high), the write operation proceeds with a logic high being applied to the word line WL, turning on the pass gate transistors MN1 and MN2, thereby allowing the output of the inverters 17 and 16 to flip the states of the inverters 12 and 13.
Shown in
The first memory bank is comprised of m columns and n rows of memory cells 11, with m and n being any integers; as labeled, the memory cell in the first column and first row is 11(1,1), the memory cell in the mth column and the first row is 11(m,1), the memory cell in the first column and nth row is 11(1,n), and so on until the memory cell in the mth column and nth row is 11(m,n). Each column has an associated bit line and complementary bit line, and each row has an associated word line; as labeled, the first column is associated with bit line BL1-1 and complementary bit line BLB1-1, the second column is associated with bit line BL2-1 and complementary bit line BLB2-1, and so on until the mth column is associated with bit line BLm-1 and complementary bit line BLBm-1; the first row has word line WL1-1 associated therewith, the second row has word line WL2-1 associated therewith, and so on until the nth row has word line WLn-1 associated therewith.
Write circuit 15 is associated with each column of the first memory bank; as labeled, the first column is associated with write circuit 15(1), the second column is associated with write circuit 15(2), and so on until the mth column is associated with write circuit 15(m). Each write circuit block 15 receives input from a respective data line D, and is clocked by a respective clock CKM and inverse clock CKBM; as labeled, the write circuit 15(1) receives input from the data line D1-1 and is clocked by clock CKM1-1 and inverse clock CKBM1-1, the write circuit 15(2) receives input from the data line D2-1 and is clocked by clock CKM2-1 and inverse clock CKBM2-1, and the write circuit 15(m) receives input from the data line Dm-1 and is clocked by clock CKMm-1 and inverse clock CKBMm-1.
The data line D1-1, D2-1, Dm-1 for each column of the first memory bank is driven by a flip flop 40-1, as shown in
The second memory bank is comprised of m columns and n rows of memory cells 32 that are identical to the memory cells 11 in structure and function as shown in
Write circuit 35 is associated with each column of the second memory bank; as labeled, the first column is associated with write circuit 35(1), the second column is associated with write circuit 35(2), and so on until the mth column is associated with write circuit 35(m). Each write circuit block 35 receives input from a respective data line D, and is clocked by a respective clock CKM and inverse clock CKBM; as labeled, the write circuit 35(1) receives input from the data line D1-2 and is clocked by clock CKM1-2 and inverse clock CKBM1-2, the write circuit 35(2) receives input from the data line D2-2 and is clocked by clock CKM2-2 and inverse clock CKBM2-2, and the write circuit 35(m) receives input from the data line Dm-2 and is clocked by clock CKMm-2 and inverse clock CKBMm-2.
The data line D1-2, D2-2, Dm-2 for each column of the second memory bank is driven by a flip flop 40-2, as also shown in
The operation of the individual SRAM cells 11 of each memory bank is the same as described above. The clock signal CKM1-1, CKBM1-1, CKM2-1, CKBM2-1, CKMm-1, CKBMm-1, CKM1-2, CKBM1-2, CKM2-2, CKBM2-2, CKMm-2, and CKBMm-2 are based upon the clock signal CK. Therefore, the purpose of the flip flops 40 is to ensure that the output on the data lines D1-1, D2-1, Dm-1, D1-2, D2-2, Dm-2 is stable at the beginning of the write operation. The clock scheme shown in this disclosure is solely for the purposes of illustration, and it will be understood by those of skill in the art that various clocking schemes and combinations can be used, for example based on bank by bank operation or multiplexing, as is desired by the specific SRAM design.
While the disclosure has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be envisioned that do not depart from the scope of the disclosure as disclosed herein. Accordingly, the scope of the disclosure shall be limited only by the attached claims.
This application claims priority to U.S. Provisional Patent Application No. 63/012,338, filed Apr. 20, 2020, the contents of which are incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
63012338 | Apr 2020 | US |