US20210043241A1 - Polarity Swapping Circuitry - Google Patents
Polarity Swapping Circuitry Download PDFInfo
- Publication number
- US20210043241A1 US20210043241A1 US16/534,942 US201916534942A US2021043241A1 US 20210043241 A1 US20210043241 A1 US 20210043241A1 US 201916534942 A US201916534942 A US 201916534942A US 2021043241 A1 US2021043241 A1 US 2021043241A1
- Authority
- US
- United States
- Prior art keywords
- bitline
- data line
- circuitry
- passgates
- ram
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims 11
- 230000000295 complement effect Effects 0.000 claims 10
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 230000003068 static effect Effects 0.000 claims 1
Images
Classifications
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1653—Address circuits or decoders
- G11C11/1655—Bit-line or column circuits
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/418—Address circuits
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/81—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a hierarchical redundancy scheme
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/814—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for optimized yield
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Definitions
- SRAM static random access memory
- MRAM magneto-resistive random access memory
- FIG. 1 illustrates a diagram of memory circuitry having polarity swapping circuitry in accordance with various implementations described herein.
- FIG. 2 illustrates a diagram of polarity swapping circuitry in accordance with various implementations described herein.
- FIG. 3 illustrates another diagram of polarity swapping circuitry in accordance with various implementations described herein.
- FIG. 4 illustrates a diagram of memory circuitry with redundancy for dynamic bit swapping in accordance with various implementations described herein.
- FIG. 5 illustrates a process flow diagram of a method for sequential access address counting in accordance with various implementations described herein.
- Various implementations described herein are directed to memory architecture and/or circuitry for implementing polarity swapping methodologies to improve aging and/or endurance of memory cells.
- Various schemes and techniques described herein provide for improved architectural design of memory circuitry to improve the aging effect of static random access memory (SRAM) and the endurance of magneto-resistive random access memory (MRAM).
- the memory architecture described herein provides for a multi-bank memory architecture having different polarities within each bank (i.e., bank_0, bank_1) and a single bit bank address to select which polarity to use.
- the same input data may be stored in a positive polarity bank (e.g., bank_0) or a negative polarity bank (e.g., bank_1) with the bank address toggling, so that a controller (e.g., CPU) may dynamically toggle the bank address to swap the polarity when in power down mode or at anytime that the SRAM logic state may be lost.
- a controller e.g., CPU
- the SRAM bitcell may switch logic state more frequently to thereby improve the aging effect of the SRAM bitcell.
- MRAM memory may be designed for polarity swapping by reading and/or writing positive polarity to bank_0, which refers to a parallel state that represents logic state 0, and an anti-parallel state that represents logic state 1 in a high current state.
- the MRAM memory may be designed for polarity swapping by reading and/or writing negative polarity to bank_1, which refers to logic state 1 being stored in the parallel state, and logic state 0 being stored in the anti-parallel state.
- the controller may detect a first bit of data (e.g., sign bit) to decide which bank to store the data to and then toggle the bank address accordingly.
- a first bit of data e.g., sign bit
- the LSB (least significant bit) of the input data may vary between 0 and 1, and to compensate for this situation, the controller may reverse the input data order of the LSB and the MSB (most significant bit), e.g., from Data[MSB:LSB] to Data[LSB:MSB].
- the frequency of writing logic 1 may be reduced significantly and the endurance of the MRAM bitcell may be maintained at a high level.
- FIG. 1 illustrates a diagram of memory circuitry 100 having polarity swapping circuitry 120 in accordance with implementations described herein.
- the memory circuitry 100 may be implemented as a system or device having various circuit components that are arranged and coupled together as an assemblage or combination of parts that provide for a physical circuit design and related structures.
- a method of designing, providing and building the memory circuitry 100 may involve use of the various circuit components described herein so as to thereby implement polarity swapping schemes and techniques associated therewith.
- the memory circuitry 100 includes various components including, e.g., core array circuitry 104 A, 104 B, row decoder circuitry 110 A, 110 B, column decoder circuitry 112 A, 112 B and control block circuitry 114 .
- the core array circuitry 104 A, 104 B may include upper bitcell arrays 104 A and lower bitcell arrays 104 B.
- the row decoder circuitry 110 A, 110 B may include an upper row decoder 110 A coupled between the upper bitcell arrays 104 A, and the row decoder circuitry 110 A, 110 B may include lower row decoder 110 B coupled between the lower bitcell arrays 104 B.
- the column decoder circuitry 112 A, 112 B may include first input-output (IO) circuitry 112 A coupled between upper/lower bitcell arrays 104 A, 104 B, and the column decoder circuitry 112 A, 112 B may include second IO circuitry 112 B coupled between upper/lower bitcell arrays 104 A, 104 B.
- the first IO circuitry 112 A may include the polarity swapping circuitry 120 , such as, e.g., first polarity swapping circuitry 120 A
- the second IO circuitry 112 B may include the polarity swapping circuitry 120 , such as, e.g., second polarity swapping circuitry 120 B.
- the control block circuitry 114 may be coupled between the first/second row decoders 110 A, 110 B, and the control block circuitry 114 may be coupled between the first/second IO circuitry 112 A, 112 B. Also, further description related to the memory circuitry 100 and various components associated therewith, such as, e.g., the swapping circuitry 120 , are described in greater detail herein below.
- the memory circuitry 100 provides for dynamic swapping of the LSB bits (least significant bits) and the MSB bits (most significant bits). Endurance may not be improved for the LSB bits, because the LSB bits may still be logic 0 or logic 1 for small input numbers. However, the endurance may be improved by re-ordering and/or swapping the LSB/MSB bits. To reverse order of Data[MSB:LSB] to Data[LSB:MSB], the original data order may be changed or modified by switching the LSB bit and the MSB bit, and also, the LSB+1 bit and the MSB ⁇ 1 bit. In some instances, an extra column redundant bit for the LSB bit may be used to compensate for uncertainty of polarity. Another scheme and technique may be used to add inversion on the LSB bits, and in this instance, the flag bit may be used to remember the inversion.
- the memory circuitry 100 may provide a sequential access address counter. For instance, in reference to ML applications, memory may be accessed sequentially. For instance, the input data may be stored in RAM until memory is full, the data may be read from RAM until all computation is completed, and as such, the RAM may be accessed sequentially.
- This technique may be achieved with a method to decide writing to bank_0 or bank_1. For instance, the method may reset a counter for bank_0 and/or bank_1, and when writing data into memory, there is a comparison on the input data to decide whether the input data is a small positive or small negative. Based on the decision, the input data may be written into bank_0 or bank_1, accordingly.
- the counter for bank_0 and/or bank_1 may be compared to the fullness of the memory. If the counter is not full, then the input data may be written into an expected bank, and if the counter is full, then the data may be written into the other bank (e.g., opposite bank).
- the memory circuitry 100 may be implemented as an integrated circuit (IC) in using various types of memory, such as, e.g., random access memory (RAM), including static RAM (SRAM), magneto-resistive RAM (MRAM), and/or any other type of similar memory.
- RAM random access memory
- SRAM static RAM
- MRAM magneto-resistive RAM
- the memory circuitry 100 may be implemented as an IC with dual rail memory architecture and related circuitry.
- the memory circuitry 100 may also be integrated with computing circuitry and related components on a single chip.
- the memory circuitry 100 may be implemented in various embedded systems for various electronic, mobile and Internet-of-things (IoT) applications, including low power sensor nodes.
- IoT Internet-of-things
- the memory circuitry 100 includes the core array circuitry (CORE) 104 A, 104 B that has an array of memory cells, wherein each memory cell may be referred to as a bitcell. Also, each memory cell may be configured to store at least one data bit value (e.g., a data value related to a logical ‘0’ or ‘1’).
- the array of memory cells may include any number (N) of memory cells (or bitcells) arranged in various applicable configurations, such as, e.g., a two-dimensional (2D) memory array having any number of columns (Ncolumns) and any number of rows (Nrows) with memory cells arranged in a 2D grid pattern with associated indexing capabilities.
- FIG. 2 illustrates a diagram of polarity swapping circuitry 120 S in accordance with various implementations described herein.
- the polarity swapping circuitry 120 S may be implemented as the polarity swapping circuitry 120 , 120 A, 120 B in the memory circuitry 102 of FIG. 1 .
- the polarity swapping circuitry 120 S may be implemented with SRAM architecture.
- the polarity swapping circuitry 120 S may be implemented as a system or device having various circuit components arranged and coupled together as an assemblage or combination of parts that provide for physical circuit design and related structures. Also, a method of designing, providing and/or building the polarity swapping circuitry 120 S may involve use of various circuit components described herein so as to implement polarity swapping schemes and techniques associated therewith.
- the polarity swapping circuitry 120 S may include memory circuitry having bitcells 204 A, 204 B coupled together via bitlines (BL, NBL).
- the bitcells 204 A, 204 B may include a first bitcell 204 A for storing a first logic state of zero (0), and the bitcells 204 A, 204 B may include a second bitcell 204 B for storing a second logic state of one (1).
- the bitcells 204 A, 204 B may be implemented with SRAM bitcells, such as, e.g., 6T SRAM bitcells.
- the first bitcell 204 A may include multiple inverters and data access transistors (N 1 , N 2 ) having a wordline (WL) coupled to gates thereof
- the second bitcell 204 B may include multiple inverters and data access transistors (N 3 , N 4 ) having the wordline (WL) coupled to gates thereof.
- the multiple bitlines (BL, NBL) may include a first bitline (BL) and a second bitline (NBL) that is a complement of the first bitline (BL), and the first bitcell 204 A and a second bitcell 204 B may be coupled together via the first bitline (BL) and the second bitline (NBL).
- the polarity swapping circuitry 120 S may include polarity swapping paths 220 as multiple conductive paths that are configured to couple the bitlines (BL, NBL) together, e.g., in a cross-coupled manner. As such, in some instances, the polarity swapping paths 220 may be used for swapping polarity of the bitlines (BL, NBL) with multiple conductive paths that are configured to couple the bitlines (BL, NBL) together.
- the polarity swapping paths 220 may include first paths 224 A, 224 B of the multiple conductive paths that are used to couple the bitlines (BL, NBL) together via first passgates (T 3 /T 8 , T 4 /T 7 ).
- the polarity swapping paths 220 may include second paths 228 A, 228 B of the multiple conductive paths that are used to couple the bitlines (BL, NBL) together via second passgates (T 1 /T 6 , T 2 /T 5 ).
- the first paths 224 A, 224 B and the second paths 228 A, 228 B may be configured to cross-couple the bitlines (BL, NBL) together in a manner as shown in FIG. 2 .
- the first paths 224 A, 224 B may include a first sense data line (sdl) 224 A and a second sense data line (nsdl) 224 B that couple the first bitline (BL) to the second bitline (NBL).
- the second paths 228 A, 228 B may include a first word data line (wdl) 228 A and a second word data line (nwdl) 228 B that couple the second bitline (NBL) to the first bitline (BL).
- the passgates (T 1 , T 2 , T 3 , T 4 ) may be coupled between the first bitcell 204 A and the polarity swapping paths 220
- the passgates (T 5 , T 6 , T 7 , T 8 ) may be coupled between the second bitcell 204 B and the polarity swapping paths 220 .
- the first sense data line path (sdl) and the second word data line path (nsdl) couple the first bitline (BL) to the second bitline (NBL) via the first passgates (T 3 /T 8 , T 4 /T 7 ), and also, the first word data line path (wdl) and the second sense data line path (nwdl) couple the second bitline (NBL) to the first bitline (BL) via the second passgates (T 1 /T 6 , T 2 /T 5 ).
- the second bitline (NBL) is a complement to the first bitline (BL)
- the second word data line (nwdl) is a complement to the first word data line (wdl)
- the second sense data line (nsdl) is a complement to the a first sense data line (sdl).
- the first passgates (T 3 /T 8 , T 4 /T 7 ) and the second passgates (T 1 /T 6 , T 2 /T 5 ) are complementary metal-oxide-semiconductor (CMOS) based transistors that are enabled with read-write selection signals (RWS, nRWS) coupled to gates thereof.
- CMOS complementary metal-oxide-semiconductor
- the first passgates (T 3 /T 8 , T 4 /T 7 ) may be implemented with p-type MOS (PMOS) transistors, and the second passgates (T 1 /T 6 , T 2 /T 5 ) may be implemented with n-type MOS (NMOS) transistors.
- the first passgates (T 3 /T 8 , T 4 /T 7 ) may be implemented with NMOS transistors, and the second passgates (T 1 /T 6 , T 2 /T 5 ) may be implemented with PMOS transistors.
- the first bitline (BL) may be coupled to the second bitline (NBL) via nodes (n 1 , n 4 ), wherein passgates (T 1 , T 6 ) may be coupled between nodes (n 1 , n 4 ) along word data line (wdl), and passgates (T 3 , T 8 ) may be coupled between nodes (n 1 , n 4 ) along source data line (sdl). Also, as shown in FIG.
- the second bitline (NBL) may be coupled to the first bitline (BL) via nodes (n 3 , n 2 ), wherein passgates (T 2 , T 5 ) may be coupled between nodes (n 3 , n 2 ) along complementary word data line (nwdl), and passgates (T 4 , T 7 ) may be coupled between nodes (n 3 , n 2 ) along complementary source data line (nsdl).
- the complementary word data lines (wdl, nwdl) are cross-coupled, and the complementary source data lines (sdl, nsdl) are also cross-coupled.
- each memory cell 204 A, 204 B may be implemented with RAM circuitry, or some other type of volatile type memory.
- each memory cell 204 A, 204 B may include a multi-transistor static RAM (SRAM) cell, such as, e.g., the 6T CMOS SRAM (as shown in FIG. 2 ) and/or various other types of complementary MOS (CMOS) SRAM cells, such as, e.g., 2T, 4T, 8T, or more transistors per bit.
- the RAM circuitry may operate at various source voltage levels (e.g., Vdd, Vss, etc.) with a voltage range that varies with applicable technology for specific ICs.
- FIG. 3 illustrates a diagram of polarity swapping circuitry 120 M in accordance with implementations described herein.
- the polarity swapping circuitry 120 M may be implemented as the polarity swapping circuitry 120 , 120 A, 120 B in the memory circuitry 102 of FIG. 1 .
- the polarity swapping circuitry 120 M may be implemented with MRAM architecture.
- the polarity swapping circuitry 120 M may be implemented as a system or device having various circuit components arranged and coupled together as an assemblage or combination of parts that provide for physical circuit design and related structures. Also, a method of designing, providing and/or building the polarity swapping circuitry 120 M may involve use of various circuit components described herein so as to implement polarity swapping schemes and techniques associated therewith.
- the polarity swapping circuitry 120 M may include memory circuitry having a first bitcell 304 A and a second bitcell 304 B coupled together via a first bitline (BL) and a source line (SL).
- the first bitcell 304 A may be configured for storing a first logic state of zero (0)
- the second bitcell 304 B may be configured for storing a second logic state of one (1).
- the bitcells 304 A, 304 B may be implemented with MRAM bitcells having free layers 312 A, 312 B and pinned layers 314 A, 314 B, respectively.
- the first bitcell 304 A may include a first free layer 312 A, a first pinned layer 314 A and a first data access transistor (N 11 ) having a wordline (WL) coupled to a gate thereof
- the second bitcell 304 B may include a second free layer 312 B, a second pinned layer 314 B and a second data access transistor (N 12 ) having the wordline (WL) coupled to a gate thereof.
- the multiple bitlines (BL, NBL) may include a first bitline (BL) and a source line (SL) that is a complement of the first bitline (BL), and also, the first bitcell 304 A and a second bitcell 304 B may be coupled together via the first bitline (BL) and the source line (SL).
- the polarity swapping circuitry 120 M may include polarity swapping paths 320 as conductive paths including a first word data line (wdl) path 328 A, a second word data line (nwdl) path 328 B, a first sense data line (sdl) path 324 A, and a second sense data line (nsdl) 324 B.
- the polarity swapping paths 320 may be used for swapping polarity of the bitline (BL) and source line (SL) with multiple conductive paths that are configured to couple the bitline (BL) and source line (SL) together.
- the polarity swapping circuitry 120 M may include write passgate circuitry having multiple passgates (T 11 , T 12 , T 13 , T 14 , T 15 , T 16 , T 17 , T 18 ) including passgates (T 11 , T 12 , T 13 , T 14 ) coupled between the first bitcell 304 A and the polarity swapping paths 320 and passgates (T 15 , T 16 , T 17 , T 18 ) coupled between the second bitcell 304 B and the polarity swapping circuitry 320 .
- the first sense data line path (sdl) 324 A and the second word data line path (nwdl) 328 A are used to couple the first bitline (BL) to the source line (SL) via first passgates (T 13 /T 18 , T 14 /T 17 ).
- the first word data line path (wdl) 328 A and the second sense data line path (nsdl) 324 B may be used to couple the source line (SL) to the first bitline (BL) via second passgates (T 11 /T 16 , T 12 /T 15 ).
- the conductive paths 320 may be used to cross-couple the first bitline (BL) and the source line (SL) together.
- the second word data line (nwdl) may be a complement to the first word data line (wdl)
- the second sense data line (nsdl) may be a complement to the first sense data line (sdl).
- each memory cell 304 A, 304 B may be implemented with RAM circuitry, or some other type of memory.
- each memory cell (or bitcell) 304 A, 304 B may include a multi-layer MRAM cell per bit.
- the MRAM circuitry may operate at various source voltage levels (e.g., Vdd, Vss, etc.) with a voltage range that varies with applicable technology for specific integrated circuits (ICs).
- FIG. 4 illustrates a diagram of the memory circuitry 400 with redundancy for dynamic bit swapping in accordance with implementations described herein.
- the memory circuitry 100 of FIG. 4 is similar to the memory circuitry 100 of FIG. 1 , wherein similar components have similar scope, function and operation.
- the bitcell arrays 104 A, 104 B may be implemented with SRAM or MRAM architecture, and the polarity swapping circuitry 120 , 120 A, 120 B may be implemented as described herein.
- the bitcell arrays 104 A, 104 B have a number of bitcells representing bits that are arranged in columns and rows, wherein each row of bitcells may refer to a number of bits including one or more least significant bits (e.g., LSB, LSB+1, etc.) and one or more most significant bits (e.g., MSB, MSB ⁇ 1, etc.).
- the polarity swapping circuitry 120 , 120 A, 120 B may be configured to dynamically swap the one or more LSB bits (e.g., LSB, LSB+1, etc.) with the one or more MSB bits (e.g., MSB, MSB ⁇ 1, etc.) so as to thereby improve endurance of the memory circuitry.
- bitcells may include a redundant bitcell representing a redundant bit (RB) in each row for tracking the swapping of the one or more LSB bits (e.g., LSB, LSB+1, etc.) with the one or more MSB bits (e.g., MSB, MSB ⁇ 1, etc.).
- This operational feature may be referred to as dynamic swapping of LSB bits and MSB bits.
- endurance of the memory circuitry may be improved by re-ordering and swapping of the LSB bits and MSB bits. For instance, to reverse order from data[MSB:LSB] to data[LSB:MSB], the original data order may be changed as shown in FIG. 4 , wherein when switching the LSB and MSB bits, LSB+1 and MSB ⁇ 1 bits, there may be a minimum penalty on wiring. Also, as shown, the bitcell arrays 104 A, 104 B may have an extra column of redundant bits (RB) for LSB to compensate for uncertainty of the polarity. Also, in other instances, this technique may include adding inversion on LSB bits, wherein a flag bit may be used to remember the inversion.
- RB redundant bits
- FIG. 5 illustrates a process diagram of a method 500 for sequential access address counting in accordance with various implementations described herein.
- method 500 may indicate a particular order of execution of operations, in some instances, certain portions of operations may be executed in a different order, and on different systems. In other instances, additional operations or steps may be added to and/or omitted from method 500 .
- a computing device may be configured to perform method 500 .
- method 500 may be implemented as a program or software instruction process that is configured to provide various schemes and techniques as described herein.
- method 500 may reset a first counter for a first memory bank (e.g., bank_0) and reset a second counter for a second memory bank (e.g., bank_1).
- method 500 may receive one or more data bits (e.g., 2 data bits) having a logical state value.
- method 500 may compare the logical state value of the one or more data bits (e.g., 2 data bits: [MSB:MSB ⁇ 1]) with a null state (e.g., 00). If the logical state value of the one or more data bits is equal to the null state, then increment the first counter (e.g., +1), and method 500 proceeds to block 540 .
- the logical state value of the one or more data bits is not equal to the null state, then increment the second counter (e.g., +1), and method 500 proceeds to block 550 .
- the first counter for the first bank e.g., bank_0
- the first counter is full, then at block 570 , write the logical state value of the one or more data bits into the second memory bank (e.g., bank_1).
- the device may include memory circuitry having bitcells coupled together via bitlines.
- the device may include polarity swapping circuitry having multiple conductive paths that are configured to couple the bitlines together. In some instances, first paths of the multiple conductive paths couple the bitlines together via first passgates, and second paths of the multiple conductive paths couple the bitlines together via second passgates.
- the system may include memory circuitry having a first bitcell and a second bitcell coupled together via a first bitline and a second bitline.
- the system may include polarity swapping circuitry having conductive paths including a first word data line, a second word data line, a first sense data line, and a second sense data line.
- the system may include write passgate circuitry having first passgates coupled between the first bitcell and the polarity swapping circuitry and second passgates coupled between the second bitcell and the polarity swapping circuitry.
- the first sense data line path and the second word data line path couple the first bitline to the second bitline via the first passgates.
- the first word data line path and the second sense data line path couple the second bitline to the first bitline via the second passgates.
- the method may include providing memory circuitry with bitcells.
- the method may include coupling the bitcells together with bitlines.
- the method may include swapping polarity of the bitlines with multiple conductive paths that are configured to couple the bitlines together using multiple passgates.
- the method may include resetting multiple counters for multiple memory banks and receiving one or more data bits having logical state values.
- the method may include comparing the logical state values of the one or more data bits with predetermined data bit values.
- the method may include incrementing one or more of the multiple counters if the logical state value of the one or more data bits is equal to the predetermined data bit values.
- the method may include writing the logical state values of the one or more data bits into polarity swapped memory banks.
- first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element. The first element and the second element are both elements, respectively, but they are not to be considered the same element.
- the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context.
- the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Semiconductor Memories (AREA)
Abstract
Description
- This section is intended to provide information relevant to understanding the various technologies described herein. As the section's title implies, this is a discussion of related art that should in no way imply that it is prior art. Generally, related art may or may not be considered prior art. It should therefore be understood that any statement in this section should be read in this light, and not as any admission of prior art.
- In conventional circuit designs, aging effect and endurance are important issues for performance of static random access memory (SRAM) and magneto-resistive random access memory (MRAM). For SRAM, if an SRAM bitcell stores the same value for a long duration, its performance can degrade, and an excessively long duration can lead to even more degradation, which refers to the aging effect for SRAM. For MRAM, specific physical properties can require higher write current to write
logic 1 into an MRAM bitcell. This high current can degrade endurance of the MRAM bitcell. In reference to logic state transition between 0 and 1 for the MRAM bitcell, when writinglogic 1 into the MRAM bitcell, voltage is higher, and resistance of the MRAM bitcell is low. Thus, the current is much higher forwriting logic 1 to the MRAM bitcell when compared towriting logic 0. As such, there exists a need to improve physical design implementation of SRAM and MRAM circuitry. - Implementations of various techniques are described herein with reference to the accompanying drawings. It should be understood, however, that the accompanying drawings illustrate only various implementations described herein and are not meant to limit embodiments of various techniques described herein.
-
FIG. 1 illustrates a diagram of memory circuitry having polarity swapping circuitry in accordance with various implementations described herein. -
FIG. 2 illustrates a diagram of polarity swapping circuitry in accordance with various implementations described herein. -
FIG. 3 illustrates another diagram of polarity swapping circuitry in accordance with various implementations described herein. -
FIG. 4 illustrates a diagram of memory circuitry with redundancy for dynamic bit swapping in accordance with various implementations described herein. -
FIG. 5 illustrates a process flow diagram of a method for sequential access address counting in accordance with various implementations described herein. - Various implementations described herein are directed to memory architecture and/or circuitry for implementing polarity swapping methodologies to improve aging and/or endurance of memory cells. Various schemes and techniques described herein provide for improved architectural design of memory circuitry to improve the aging effect of static random access memory (SRAM) and the endurance of magneto-resistive random access memory (MRAM). In some implementations, the memory architecture described herein provides for a multi-bank memory architecture having different polarities within each bank (i.e., bank_0, bank_1) and a single bit bank address to select which polarity to use.
- For instance, SRAM memory may be designed for polarity swapping by reading and/or writing positive polarity to bank_0, wherein
logic state 0 refers to bitline (BL)=Vss and nbitline (NBL)=Vdd. The SRAM memory may also be designed for polarity swapping by reading and/or writing negative polarity to bank_1, whereinlogic state 1 refers to bitline (BL)=Vss and nbitline (NBL)=Vdd. With this memory architecture, the same input data may be stored in a positive polarity bank (e.g., bank_0) or a negative polarity bank (e.g., bank_1) with the bank address toggling, so that a controller (e.g., CPU) may dynamically toggle the bank address to swap the polarity when in power down mode or at anytime that the SRAM logic state may be lost. Thus, with many logic zeros (0s) and ones (1s) stored in SRAM memory, the SRAM bitcell may switch logic state more frequently to thereby improve the aging effect of the SRAM bitcell. - In other instances, MRAM memory may be designed for polarity swapping by reading and/or writing positive polarity to bank_0, which refers to a parallel state that represents
logic state 0, and an anti-parallel state that representslogic state 1 in a high current state. Also, the MRAM memory may be designed for polarity swapping by reading and/or writing negative polarity to bank_1, which refers tologic state 1 being stored in the parallel state, andlogic state 0 being stored in the anti-parallel state. With this memory architecture, small positive data having many logic zeros (0s) may be written to bank_0, and small negative data having many logic ones (1s) may be written into bank_1. In this instance, the controller may detect a first bit of data (e.g., sign bit) to decide which bank to store the data to and then toggle the bank address accordingly. Based on the machine learning (ML) data characterization, the LSB (least significant bit) of the input data may vary between 0 and 1, and to compensate for this situation, the controller may reverse the input data order of the LSB and the MSB (most significant bit), e.g., from Data[MSB:LSB] to Data[LSB:MSB]. Thusly, the frequency ofwriting logic 1 may be reduced significantly and the endurance of the MRAM bitcell may be maintained at a high level. - Various implementations of polarity swapping schemes and techniques will now be described in detail herein with reference to
FIGS. 1-3 . -
FIG. 1 illustrates a diagram ofmemory circuitry 100 having polarity swapping circuitry 120 in accordance with implementations described herein. In some instances, thememory circuitry 100 may be implemented as a system or device having various circuit components that are arranged and coupled together as an assemblage or combination of parts that provide for a physical circuit design and related structures. Also, in some other instances, a method of designing, providing and building thememory circuitry 100 may involve use of the various circuit components described herein so as to thereby implement polarity swapping schemes and techniques associated therewith. - As shown in
FIG. 1 , thememory circuitry 100 includes various components including, e.g.,core array circuitry row decoder circuitry column decoder circuitry control block circuitry 114. In some instances, thecore array circuitry upper bitcell arrays 104A andlower bitcell arrays 104B. Therow decoder circuitry upper row decoder 110A coupled between theupper bitcell arrays 104A, and therow decoder circuitry lower row decoder 110B coupled between thelower bitcell arrays 104B. Thecolumn decoder circuitry circuitry 112A coupled between upper/lower bitcell arrays column decoder circuitry second IO circuitry 112B coupled between upper/lower bitcell arrays first IO circuitry 112A may include the polarity swapping circuitry 120, such as, e.g., first polarity swapping circuitry 120A, and thesecond IO circuitry 112B may include the polarity swapping circuitry 120, such as, e.g., second polarity swapping circuitry 120B. Thecontrol block circuitry 114 may be coupled between the first/second row decoders control block circuitry 114 may be coupled between the first/second IO circuitry memory circuitry 100 and various components associated therewith, such as, e.g., the swapping circuitry 120, are described in greater detail herein below. - In some instances, the
memory circuitry 100 provides for dynamic swapping of the LSB bits (least significant bits) and the MSB bits (most significant bits). Endurance may not be improved for the LSB bits, because the LSB bits may still belogic 0 orlogic 1 for small input numbers. However, the endurance may be improved by re-ordering and/or swapping the LSB/MSB bits. To reverse order of Data[MSB:LSB] to Data[LSB:MSB], the original data order may be changed or modified by switching the LSB bit and the MSB bit, and also, the LSB+1 bit and the MSB−1 bit. In some instances, an extra column redundant bit for the LSB bit may be used to compensate for uncertainty of polarity. Another scheme and technique may be used to add inversion on the LSB bits, and in this instance, the flag bit may be used to remember the inversion. - In some instances, the
memory circuitry 100 may provide a sequential access address counter. For instance, in reference to ML applications, memory may be accessed sequentially. For instance, the input data may be stored in RAM until memory is full, the data may be read from RAM until all computation is completed, and as such, the RAM may be accessed sequentially. This technique may be achieved with a method to decide writing to bank_0 or bank_1. For instance, the method may reset a counter for bank_0 and/or bank_1, and when writing data into memory, there is a comparison on the input data to decide whether the input data is a small positive or small negative. Based on the decision, the input data may be written into bank_0 or bank_1, accordingly. Then, the counter for bank_0 and/or bank_1 may be compared to the fullness of the memory. If the counter is not full, then the input data may be written into an expected bank, and if the counter is full, then the data may be written into the other bank (e.g., opposite bank). - The
memory circuitry 100 may be implemented as an integrated circuit (IC) in using various types of memory, such as, e.g., random access memory (RAM), including static RAM (SRAM), magneto-resistive RAM (MRAM), and/or any other type of similar memory. Thememory circuitry 100 may be implemented as an IC with dual rail memory architecture and related circuitry. Thememory circuitry 100 may also be integrated with computing circuitry and related components on a single chip. Also, thememory circuitry 100 may be implemented in various embedded systems for various electronic, mobile and Internet-of-things (IoT) applications, including low power sensor nodes. - As shown in
FIG. 1 , thememory circuitry 100 includes the core array circuitry (CORE) 104A, 104B that has an array of memory cells, wherein each memory cell may be referred to as a bitcell. Also, each memory cell may be configured to store at least one data bit value (e.g., a data value related to a logical ‘0’ or ‘1’). The array of memory cells may include any number (N) of memory cells (or bitcells) arranged in various applicable configurations, such as, e.g., a two-dimensional (2D) memory array having any number of columns (Ncolumns) and any number of rows (Nrows) with memory cells arranged in a 2D grid pattern with associated indexing capabilities. -
FIG. 2 illustrates a diagram ofpolarity swapping circuitry 120S in accordance with various implementations described herein. In some instances, thepolarity swapping circuitry 120S may be implemented as the polarity swapping circuitry 120, 120A, 120B in thememory circuitry 102 ofFIG. 1 . Also, as shown, thepolarity swapping circuitry 120S may be implemented with SRAM architecture. - In some instances, the
polarity swapping circuitry 120S may be implemented as a system or device having various circuit components arranged and coupled together as an assemblage or combination of parts that provide for physical circuit design and related structures. Also, a method of designing, providing and/or building thepolarity swapping circuitry 120S may involve use of various circuit components described herein so as to implement polarity swapping schemes and techniques associated therewith. - As shown in
FIG. 2 , thepolarity swapping circuitry 120S may include memory circuitry having bitcells 204A, 204B coupled together via bitlines (BL, NBL). Thebitcells first bitcell 204A for storing a first logic state of zero (0), and thebitcells second bitcell 204B for storing a second logic state of one (1). Thebitcells first bitcell 204A may include multiple inverters and data access transistors (N1, N2) having a wordline (WL) coupled to gates thereof, and thesecond bitcell 204B may include multiple inverters and data access transistors (N3, N4) having the wordline (WL) coupled to gates thereof. Also, the multiple bitlines (BL, NBL) may include a first bitline (BL) and a second bitline (NBL) that is a complement of the first bitline (BL), and thefirst bitcell 204A and asecond bitcell 204B may be coupled together via the first bitline (BL) and the second bitline (NBL). - The
polarity swapping circuitry 120S may includepolarity swapping paths 220 as multiple conductive paths that are configured to couple the bitlines (BL, NBL) together, e.g., in a cross-coupled manner. As such, in some instances, thepolarity swapping paths 220 may be used for swapping polarity of the bitlines (BL, NBL) with multiple conductive paths that are configured to couple the bitlines (BL, NBL) together. Thepolarity swapping paths 220 may includefirst paths polarity swapping paths 220 may includesecond paths first paths second paths FIG. 2 . - In some instances, the
first paths second paths first bitcell 204A and thepolarity swapping paths 220, and the passgates (T5, T6, T7, T8) may be coupled between thesecond bitcell 204B and thepolarity swapping paths 220. The first sense data line path (sdl) and the second word data line path (nsdl) couple the first bitline (BL) to the second bitline (NBL) via the first passgates (T3/T8, T4/T7), and also, the first word data line path (wdl) and the second sense data line path (nwdl) couple the second bitline (NBL) to the first bitline (BL) via the second passgates (T1/T6, T2/T5). - In some implementations, the second bitline (NBL) is a complement to the first bitline (BL), the second word data line (nwdl) is a complement to the first word data line (wdl), and also, the second sense data line (nsdl) is a complement to the a first sense data line (sdl). Also, the first passgates (T3/T8, T4/T7) and the second passgates (T1/T6, T2/T5) are complementary metal-oxide-semiconductor (CMOS) based transistors that are enabled with read-write selection signals (RWS, nRWS) coupled to gates thereof. Also, in some cases, the first passgates (T3/T8, T4/T7) may be implemented with p-type MOS (PMOS) transistors, and the second passgates (T1/T6, T2/T5) may be implemented with n-type MOS (NMOS) transistors. In other cases, the first passgates (T3/T8, T4/T7) may be implemented with NMOS transistors, and the second passgates (T1/T6, T2/T5) may be implemented with PMOS transistors.
- In some implementations, as shown in
FIG. 2A , the first bitline (BL) may be coupled to the second bitline (NBL) via nodes (n1, n4), wherein passgates (T1, T6) may be coupled between nodes (n1, n4) along word data line (wdl), and passgates (T3, T8) may be coupled between nodes (n1, n4) along source data line (sdl). Also, as shown inFIG. 2A , the second bitline (NBL) may be coupled to the first bitline (BL) via nodes (n3, n2), wherein passgates (T2, T5) may be coupled between nodes (n3, n2) along complementary word data line (nwdl), and passgates (T4, T7) may be coupled between nodes (n3, n2) along complementary source data line (nsdl). As such, the complementary word data lines (wdl, nwdl) are cross-coupled, and the complementary source data lines (sdl, nsdl) are also cross-coupled. - In various instances, each
memory cell memory cell FIG. 2 ) and/or various other types of complementary MOS (CMOS) SRAM cells, such as, e.g., 2T, 4T, 8T, or more transistors per bit. Also, the RAM circuitry may operate at various source voltage levels (e.g., Vdd, Vss, etc.) with a voltage range that varies with applicable technology for specific ICs. -
FIG. 3 illustrates a diagram ofpolarity swapping circuitry 120M in accordance with implementations described herein. In some instances, thepolarity swapping circuitry 120M may be implemented as the polarity swapping circuitry 120, 120A, 120B in thememory circuitry 102 ofFIG. 1 . Also, as shown, thepolarity swapping circuitry 120M may be implemented with MRAM architecture. - In some instances, the
polarity swapping circuitry 120M may be implemented as a system or device having various circuit components arranged and coupled together as an assemblage or combination of parts that provide for physical circuit design and related structures. Also, a method of designing, providing and/or building thepolarity swapping circuitry 120M may involve use of various circuit components described herein so as to implement polarity swapping schemes and techniques associated therewith. - As shown in
FIG. 3 , thepolarity swapping circuitry 120M may include memory circuitry having afirst bitcell 304A and asecond bitcell 304B coupled together via a first bitline (BL) and a source line (SL). Thefirst bitcell 304A may be configured for storing a first logic state of zero (0), and thesecond bitcell 304B may be configured for storing a second logic state of one (1). Thebitcells free layers layers first bitcell 304A may include a firstfree layer 312A, a first pinnedlayer 314A and a first data access transistor (N11) having a wordline (WL) coupled to a gate thereof, and thesecond bitcell 304B may include a secondfree layer 312B, a second pinnedlayer 314B and a second data access transistor (N12) having the wordline (WL) coupled to a gate thereof. In some instances, the multiple bitlines (BL, NBL) may include a first bitline (BL) and a source line (SL) that is a complement of the first bitline (BL), and also, thefirst bitcell 304A and asecond bitcell 304B may be coupled together via the first bitline (BL) and the source line (SL). - The
polarity swapping circuitry 120M may includepolarity swapping paths 320 as conductive paths including a first word data line (wdl)path 328A, a second word data line (nwdl)path 328B, a first sense data line (sdl)path 324A, and a second sense data line (nsdl) 324B. As such, in some instances, thepolarity swapping paths 320 may be used for swapping polarity of the bitline (BL) and source line (SL) with multiple conductive paths that are configured to couple the bitline (BL) and source line (SL) together. - The
polarity swapping circuitry 120M may include write passgate circuitry having multiple passgates (T11, T12, T13, T14, T15, T16, T17, T18) including passgates (T11, T12, T13, T14) coupled between thefirst bitcell 304A and thepolarity swapping paths 320 and passgates (T15, T16, T17, T18) coupled between thesecond bitcell 304B and thepolarity swapping circuitry 320. The first sense data line path (sdl) 324A and the second word data line path (nwdl) 328A are used to couple the first bitline (BL) to the source line (SL) via first passgates (T13/T18, T14/T17). The first word data line path (wdl) 328A and the second sense data line path (nsdl) 324B may be used to couple the source line (SL) to the first bitline (BL) via second passgates (T11/T16, T12/T15). In some instances, theconductive paths 320 may be used to cross-couple the first bitline (BL) and the source line (SL) together. Also, in some instances, the second word data line (nwdl) may be a complement to the first word data line (wdl), and the second sense data line (nsdl) may be a complement to the first sense data line (sdl). - In various instances, each
memory cell -
FIG. 4 illustrates a diagram of thememory circuitry 400 with redundancy for dynamic bit swapping in accordance with implementations described herein. Thememory circuitry 100 ofFIG. 4 is similar to thememory circuitry 100 ofFIG. 1 , wherein similar components have similar scope, function and operation. Also, thebitcell arrays - As described herein, the
bitcell arrays - In some implementations, endurance of the memory circuitry may be improved by re-ordering and swapping of the LSB bits and MSB bits. For instance, to reverse order from data[MSB:LSB] to data[LSB:MSB], the original data order may be changed as shown in
FIG. 4 , wherein when switching the LSB and MSB bits, LSB+1 and MSB−1 bits, there may be a minimum penalty on wiring. Also, as shown, thebitcell arrays -
FIG. 5 illustrates a process diagram of amethod 500 for sequential access address counting in accordance with various implementations described herein. - It should be understood that even though
method 500 may indicate a particular order of execution of operations, in some instances, certain portions of operations may be executed in a different order, and on different systems. In other instances, additional operations or steps may be added to and/or omitted frommethod 500. Also, a computing device may be configured to performmethod 500. As such, in some instances,method 500 may be implemented as a program or software instruction process that is configured to provide various schemes and techniques as described herein. - At
block 510,method 500 may reset a first counter for a first memory bank (e.g., bank_0) and reset a second counter for a second memory bank (e.g., bank_1). Atblock 520,method 500 may receive one or more data bits (e.g., 2 data bits) having a logical state value. Atdecision block 530,method 500 may compare the logical state value of the one or more data bits (e.g., 2 data bits: [MSB:MSB−1]) with a null state (e.g., 00). If the logical state value of the one or more data bits is equal to the null state, then increment the first counter (e.g., +1), andmethod 500 proceeds to block 540. Otherwise, if the logical state value of the one or more data bits is not equal to the null state, then increment the second counter (e.g., +1), andmethod 500 proceeds to block 550. Atdecision block 540, if the first counter for the first bank (e.g., bank_0) is less than full, then inblock 560, write the logical state value of the one or more data bits into the first memory bank (e.g., bank_0). Otherwise, atblock 540, if the first counter is full, then atblock 570, write the logical state value of the one or more data bits into the second memory bank (e.g., bank_1). Atdecision block 550, if the second counter for the second bank (e.g., bank_1) is less than full, then inblock 570, write the logical state value of the one or more data bits into the second memory bank (e.g., bank_1). Otherwise, atblock 550, if the second counter is full, then atblock 560, write the logical state value of the one or more data bits into the first memory bank (e.g., bank_0). - Described herein are various implementations of a device. The device may include memory circuitry having bitcells coupled together via bitlines. The device may include polarity swapping circuitry having multiple conductive paths that are configured to couple the bitlines together. In some instances, first paths of the multiple conductive paths couple the bitlines together via first passgates, and second paths of the multiple conductive paths couple the bitlines together via second passgates.
- Described herein are various implementations of a system. The system may include memory circuitry having a first bitcell and a second bitcell coupled together via a first bitline and a second bitline. The system may include polarity swapping circuitry having conductive paths including a first word data line, a second word data line, a first sense data line, and a second sense data line. The system may include write passgate circuitry having first passgates coupled between the first bitcell and the polarity swapping circuitry and second passgates coupled between the second bitcell and the polarity swapping circuitry. The first sense data line path and the second word data line path couple the first bitline to the second bitline via the first passgates. The first word data line path and the second sense data line path couple the second bitline to the first bitline via the second passgates.
- Described herein are various implementations of a method. The method may include providing memory circuitry with bitcells. The method may include coupling the bitcells together with bitlines. The method may include swapping polarity of the bitlines with multiple conductive paths that are configured to couple the bitlines together using multiple passgates.
- Described herein are various implementations of a method. The method may include resetting multiple counters for multiple memory banks and receiving one or more data bits having logical state values. The method may include comparing the logical state values of the one or more data bits with predetermined data bit values. The method may include incrementing one or more of the multiple counters if the logical state value of the one or more data bits is equal to the predetermined data bit values. When one or more of the multiple counters are full, the method may include writing the logical state values of the one or more data bits into polarity swapped memory banks.
- It should be intended that the subject matter of the claims not be limited to the implementations and illustrations provided herein, but include modified forms of those implementations including portions of implementations and combinations of elements of different implementations in accordance with the claims. It should be appreciated that in the development of any such implementation, as in any engineering or design project, numerous implementation-specific decisions should be made to achieve developers' specific goals, such as compliance with system-related and business related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort may be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having benefit of this disclosure.
- Reference has been made in detail to various implementations, examples of which are illustrated in the accompanying drawings and figures. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the disclosure provided herein. However, the disclosure provided herein may be practiced without these specific details. In some other instances, well-known methods, procedures, components, circuits and networks have not been described in detail so as not to unnecessarily obscure details of the embodiments.
- It should also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element. The first element and the second element are both elements, respectively, but they are not to be considered the same element.
- The terminology used in the description of the disclosure provided herein is for the purpose of describing particular implementations and is not intended to limit the disclosure provided herein. As used in the description of the disclosure provided herein and appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. The term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this specification, specify a presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.
- As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context. The terms “up” and “down”; “upper” and “lower”; “upwardly” and “downwardly”; “below” and “above”; and other similar terms indicating relative positions above or below a given point or element may be used in connection with some implementations of various technologies described herein.
- While the foregoing is directed to implementations of various techniques described herein, other and further implementations may be devised in accordance with the disclosure herein, which may be determined by the claims that follow.
- Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/534,942 US10937481B1 (en) | 2019-08-07 | 2019-08-07 | Polarity swapping circuitry |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/534,942 US10937481B1 (en) | 2019-08-07 | 2019-08-07 | Polarity swapping circuitry |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210043241A1 true US20210043241A1 (en) | 2021-02-11 |
US10937481B1 US10937481B1 (en) | 2021-03-02 |
Family
ID=74499383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/534,942 Active US10937481B1 (en) | 2019-08-07 | 2019-08-07 | Polarity swapping circuitry |
Country Status (1)
Country | Link |
---|---|
US (1) | US10937481B1 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203100B2 (en) * | 2004-11-01 | 2007-04-10 | Sun Mircosystems, Inc. | Efficient implementation of a read scheme for multi-threaded register file |
US7136308B2 (en) * | 2004-11-01 | 2006-11-14 | Sun Microsystems, Inc. | Efficient method of data transfer between register files and memories |
US7230869B1 (en) * | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
US7376027B1 (en) * | 2006-11-07 | 2008-05-20 | Taiwan Semiconductor Manufacturing Co., Ltd. | DRAM concurrent writing and sensing scheme |
JP4473943B2 (en) * | 2007-07-11 | 2010-06-02 | 富士通マイクロエレクトロニクス株式会社 | Semiconductor memory and system |
US7639546B2 (en) * | 2008-02-26 | 2009-12-29 | Nscore Inc. | Nonvolatile memory utilizing MIS memory transistors with function to correct data reversal |
US8218380B2 (en) * | 2009-10-30 | 2012-07-10 | Apple Inc. | Degradation equalization for a memory |
-
2019
- 2019-08-07 US US16/534,942 patent/US10937481B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10937481B1 (en) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8339838B2 (en) | In-line register file bitcell | |
US10049709B2 (en) | Port modes for use with memory | |
US9997238B2 (en) | Sense amplifier circuits and methods of operation | |
US7502273B2 (en) | Two-port SRAM with a high speed sensing scheme | |
US8451652B2 (en) | Write assist static random access memory cell | |
JP4988588B2 (en) | Word line driver circuit for static random access memory | |
US11043262B2 (en) | Write assist circuitry | |
US20200388309A1 (en) | Bitline Precharge Circuitry | |
KR102465101B1 (en) | Method and system to balance ground bounce | |
US11315654B2 (en) | Memory testing techniques | |
US9001611B1 (en) | Three-dimensional two port register file | |
US10755774B2 (en) | Coupling compensation circuitry | |
US11200922B2 (en) | Memory multiplexing techniques | |
CN112585678B (en) | Switching source line for memory applications | |
US10937481B1 (en) | Polarity swapping circuitry | |
US8787075B2 (en) | Low-voltage semiconductor memory | |
US10217496B1 (en) | Bitline write assist circuitry | |
CN114067872A (en) | Memory power gating techniques | |
US20210158865A1 (en) | Write Assist Circuitry | |
US12087357B2 (en) | Multi-port memory architecture | |
US10839934B2 (en) | Redundancy circuitry for memory application | |
US10622038B2 (en) | High-speed memory architecture | |
JP2008065863A (en) | Semiconductor memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ARM LIMITED, GREAT BRITAIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, ANDY WANGKUN;TAN, PEIXUAN;SIGNING DATES FROM 20190801 TO 20190805;REEL/FRAME:049995/0188 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |