US9767905B2 - Scan chain circuits in non-volatile memory - Google Patents
Scan chain circuits in non-volatile memory Download PDFInfo
- Publication number
- US9767905B2 US9767905B2 US14/919,154 US201514919154A US9767905B2 US 9767905 B2 US9767905 B2 US 9767905B2 US 201514919154 A US201514919154 A US 201514919154A US 9767905 B2 US9767905 B2 US 9767905B2
- Authority
- US
- United States
- Prior art keywords
- scan
- scan block
- clock signal
- bit
- latch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing 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/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/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- 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/12015—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/30—Accessing single arrays
- G11C29/32—Serial access; Scan testing
-
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50012—Marginal testing, e.g. race, voltage or current testing of timing
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5644—Multilevel memory comprising counting devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5646—Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
Definitions
- the present disclosure is directed to bit scan technology.
- Non-volatile semiconductor memory has become increasingly popular for use in various electronic devices.
- non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices.
- Electrically Erasable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories.
- flash memory also a type of EEPROM, the contents of the whole memory array, or of a portion of the memory, can be erased in one step, in contrast to the traditional, full-featured EEPROM.
- Both the traditional EEPROM and the flash memory utilize a floating gate that is positioned above and insulated from a channel region in a semiconductor substrate.
- the floating gate is positioned between the source and drain regions.
- a control gate is provided over and insulated from the floating gate.
- the threshold voltage (VTH) of the transistor thus formed is controlled by the amount of charge that is retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to permit conduction between its source and drain is controlled by the level of charge on the floating gate.
- Another type of memory cell useful in flash EEPROM systems utilizes a non-conductive dielectric material in place of a conductive floating gate to store charge in a non-volatile manner.
- Some EEPROM and flash memory devices have a floating gate that is used to store two ranges of charges and, therefore, the memory element can be programmed/erased between two states, e.g., an erased state and a programmed state.
- Such a flash memory device is sometimes referred to as a binary flash memory device because each memory element can store one bit of data.
- a multi-state (also called multi-level) flash memory device is implemented by identifying multiple distinct allowed/valid programmed threshold voltage ranges.
- Each distinct threshold voltage range corresponds to a predetermined value for the set of data bits encoded in the memory device.
- each memory element can store two bits of data when the element can be placed in one of four discrete charge bands corresponding to four distinct threshold voltage ranges.
- a program voltage VPGM is applied to the control gate during a program operation as a series of pulses that increase in magnitude over time.
- the magnitude of the pulses is increased with each successive pulse by a predetermined step size, e.g., 0.2-0.4V.
- VPGM can be applied to the control gates of flash memory elements.
- verify operations are carried out. That is, the programming level of each element of a group of elements being programmed in parallel is read between successive programming pulses to determine whether it is equal to or greater than a verify level to which the element is being programmed.
- a verification step may be performed for each state of an element to determine whether the element has reached its data-associated verify level. For example, a multi-state memory element capable of storing data in four states may need to perform verify operations for three compare points.
- VPGM When programming an EEPROM or flash memory device, such as a NAND flash memory device in a NAND string, typically VPGM is applied to the control gate and the bit line is grounded, causing electrons from the channel of a cell or memory element, e.g., storage element, to be injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory element is raised so that the memory element is considered to be in a programmed state.
- VPGM When programming an EEPROM or flash memory device, such as a NAND flash memory device in a NAND string, typically VPGM is applied to the control gate and the bit line is grounded, causing electrons from the channel of a cell or memory element, e.g., storage element, to be injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory element is raised so that the memory element is considered to be in a programmed state.
- a page of binary target data may be provided in a first set of data latches of the memory device.
- a page (e.g., N) of memory cells are then programmed in parallel according to the target data to allow the N memory cells to reach their respective target states.
- the page of binary data is read back from the group of memory cells and stored in a second set of data latches.
- the binary data pages of the first and second sets of data latches can be compared to verify that the programming was performed correctly.
- an XOR operation is performed bit-by-bit between the two sets, and a ‘1’ indicates a disagreement between the two sets.
- the result of the comparison is an N-bit string where any occurrence of ‘1’s would indicate a memory cell that fails to program correctly.
- ‘0’s instead of ‘1’s could indicate an incorrectly programmed memory cell.
- the programming may be repeated or re-done.
- ECC error correction control
- the data page is typically quite large, as for example, of the order of 10 ⁇ 5 bits.
- Existing circuits and methods to scan this string for occurrence of “1”s can be time and/or hardware intensive.
- FIG. 1 is a block diagram of a bit scan circuit according to one embodiment.
- FIG. 2 is a timing diagram for the bit scan circuit of FIG. 1 according to one embodiment.
- FIG. 3 is a circuit diagram depicting a scan block group according to one embodiment.
- FIG. 4 is a block diagram including a detailed view of the token latches for a bit scan circuit according to one embodiment.
- FIG. 5 is a timing diagram depicting an example of scanning a string of binary data to determine a number of bits having a predetermined binary value.
- FIG. 6 is a block diagram of a bit scan circuit according to one embodiment.
- FIG. 7 is a timing diagram for the bit scan circuit of FIG. 6 according to one embodiment.
- FIG. 8 is a flowchart describing a bit scan operation according to one embodiment.
- FIG. 9 is a block diagram of a non-volatile memory system according to one embodiment.
- FIG. 10 is a block diagram of a sense block according to one embodiment.
- FIG. 11 is a block diagram of an example of three NAND strings in a block of non-volatile storage elements.
- FIGS. 12A-12B are cross-sectional and perspective views of three-dimensional NAND memory arrays.
- Embodiments of the disclosed technology are directed to bit scan circuits that are configured to scan an N-bit string of binary data using an input clock signal to count the number of bits having a predetermined binary value.
- the bit scan circuit includes N scan blocks in a scan chain with each scan block corresponding to one bit of the N-bit string. Each scan block utilizes a single latch circuit to transfer the loaded bit information and for reset to indicate that the corresponding bit has been counted in the scan operation.
- the plurality of scan blocks are organized into scan block groups including two or more scan blocks. Each scan block group is enabled by a corresponding token signal. The token signal for each scan block group is asserted after each preceding scan block stores a pass value.
- the first scan block in a scan block group When enabled by the corresponding token signal, the first scan block in a scan block group is reset in response to a first clock signal.
- a second scan block in the group is enabled for reset after the first scan block in the group is reset.
- the second scan block in the group is reset in response to a second clock signal having pulses that precede corresponding pulses from the first clock signal.
- the latch circuit of each scan block has a tag bit that controls the latch circuit to be either in a “no-pass” or “pass” state.
- the predetermined binary value may correspond to the no-pass state.
- the tag bits of each scan block are initially set according to the bits of the N-bit string.
- An input clock signal is provided as a first input to one or more gating circuits and an output of the bit scan circuit is provided as a second input to the gating circuit(s).
- the tag bit of any of the scan blocks is a no-pass value
- the output of the bit scan circuit is driven to a first value causing the input clock signal to be gated or otherwise blocked.
- the output of the bit scan circuit is driven to a second value causing the input clock signal to be passed in an output clock signal.
- the tag bit is reset to the pass value so that it does not affect subsequent input clock pulses.
- the number of bits having the predetermined binary value is given by the number of pulses missing from the output clock signal as compared with the input clock signal.
- the token signal for each scan block group is asserted when the tag bits for each preceding scan block in the chain are reset to the pass state.
- the first scan block group in the chain is enabled at the beginning of a scan operation by asserting the token signal for the first scan block group.
- Each remaining scan block group is connected to a corresponding one of a plurality of token latches.
- Each token latch asserts the token signal for the corresponding scan block group when the tag bits for each preceding scan block are set to the pass value.
- the first scan block of each scan block group resets its tag bit from the no-pass value to the pass value in response to a first clock signal pulse.
- the first scan block will generate an output signal including the first binary value to enable the second scan block of the scan block group for reset during the next second clock signal pulse.
- the second scan block of each scan block group resets its tag bit from the no-pass value to the pass value in response to the leading edge of a pulse from the second clock signal if the tag bit of the first scan block of the scan block group is the pass value.
- the second scan block of the scan block group will maintain the tag bit at the no-pass value in response to a second clock signal pulse if the tag bit of the first scan block of the scan block group is the no-pass value.
- FIG. 1 is a simplified block diagram including a bit scan circuit according to one embodiment of the disclosed technology.
- An input clock signal is gated using a scan chain (also referred to as a shooting chain) to scan the binary data from an N-bit string.
- the bit scan circuit may scan the number of logic “1”s and/or “0”s in the N-bit string.
- the bit scan circuit includes a plurality of scan blocks, each having a single latch circuit. The scan blocks are organized into groups with the individual scan blocks of a group using independent clock signals.
- the bit scan circuit 500 selectively gates an input clock signal SCLK_I according to a tag bit stored by a latch circuit for each scan block 506 .
- Various clock means may be used to generate the input clock signal, including hardware or software-based clock means.
- the input clock signal may be produced by a clock generator in one embodiment. In another embodiment, the input clock signal may be produced by one or more oscillators.
- the bit scan circuit includes a scan chain 504 or shooting chain including N scan blocks 506 corresponding to the N-bits of the N-bit string.
- Scan chain 504 includes scan block 1 , scan block 2 , scan block 3 , scan block 4 , scan block N ⁇ 1 and scan block N.
- the scan block at the beginning of the scan chain has the highest priority and the scan block at the end of the scan chain has the lowest priority.
- a scan chain may include any number of scan blocks.
- a scan block includes circuitry for latching one bit from the N-bit string and providing an indication when the bit has been considered in a scan operation.
- Each scan block 506 acts as a gating signal for the input clock signal SCLK_I.
- the transmission property of the gating signal is controlled by a tag bit.
- a tag bit provides a no-pass value or a pass value.
- the tag bit stores the bit latched from the N-bit string, and is reset after being considered in the scan operation.
- a coding of the tag bit establishes the no-pass value as logic ‘1’ and the pass value as logic ‘0’.
- One or more gating circuits 516 will gate or otherwise disable the input clock signal so that output clock signal SCLK_O does not contain a pulse corresponding to the input clock signal.
- the gating circuit 516 will allow the input clock signal SCLK_I to pass, generating the output clock signal SCLK_O with a pulse corresponding to the input clock signal pulse.
- the output of the gating circuit 516 can be fed to one or more control circuits 522 to count the number of pulses in or missing from the output clock signal relative to the input clock signal.
- control means including software and hardware-based control means may be used in accordance with one or more embodiments.
- the control means include control circuits 522 in one embodiment.
- the control circuits 522 may include a counter in one embodiment to count the number of pulses.
- control circuits 522 may include a processor or logic circuitry to count the number of pulses.
- the scan blocks are organized into scan block groups including two or more scan blocks for each group.
- a scan block group is a grouping of two or more scan blocks that are coupled to different clock signals.
- a scan block group is enabled by a token signal when each preceding scan block in the chain is at the pass value.
- the N scan blocks are divided into a first subset A of scan blocks that are coupled to a first clock signal CLK_A and a second subset B of scan blocks that are coupled to a second clock signal CLK_B.
- Various clock means may be used to generate the first and second clock signals, including hardware or software-based clock means.
- the first and second clock signals may be produced by one or more clock generator circuits in one embodiment.
- first and second clock signals may be produced by one or more oscillator circuits.
- Each scan block group includes one scan block from the first subset and one scan block from the second subset.
- scan block group 508 - 1 includes scan block 1 from a first subset A of scan blocks and scan block 2 from a second subset B of scan blocks.
- Various scan means may be used to scan and transfer one or more bits from an N-bit string.
- each scan means includes a scan block group having two data latches to scan and transfer two loaded bits from the N-bit string.
- each scan block group may include logic gates to scan and transfer the two loaded bits. It is noted that the plurality of scan blocks may be divided into additional subsets of scan blocks that are coupled to additional clock signals such that each scan block group includes more than two scan blocks.
- Each scan block of a scan block group includes a third input coupled to a token signal.
- the token signal is asserted to enable the corresponding scan block group.
- each scan block in the scan block group is responsive to the corresponding clock signal to which it is coupled.
- the first scan block group in the scan chain is coupled to a token signal TOKEN_ 1 that is enabled at the beginning of the scan operation.
- the remaining scan block groups are each coupled to a corresponding token latch.
- a token latch is a data latch associated with a scan block group that asserts the token signal for the corresponding scan block group when the tag bit for each preceding scan block is the pass value.
- the token latch may be used to select or enable a corresponding scan block group and may be referred to as a select latch.
- the output of the first scan block in each group is coupled to the output of the second scan block in the group to only enable the second scan block for reset when the first scan block is in the pass state.
- the shooting chain is established by coupling the output of the last scan block in each group (except for the final group) to a circuit for asserting the token signal for the next scan block group in the chain.
- the output of scan block 2 from the first group can be provided as a latch enable signal 512 - 1 to a token latch for generating the signal TOKEN_ 2 associated with the second scan block group.
- the output of scan block 4 from the second group can be output as a latch enable signal 512 - 2 to a token latch for generating the signal TOKEN_ 3 .
- the token signal for each scan block group enables each scan block within the group for reset during a next clock cycle.
- the output of the second scan block of each scan block group is coupled to the token latch for the next scan block group in the shooting chain.
- the output is configured so that the token signal is only asserted to enable the corresponding scan block group when the tag bits of the scan blocks for the preceding scan block groups are set or reset to the pass value.
- the one or more control circuits 522 control the operations of the scan bit circuit 500 .
- the control circuits can issue a reset control signal, causing the latch circuits of each scan block to be reset to a default value which corresponds to the pass value in one example.
- the control circuits may issue a load control signal load causing the N-bits of the N-bit string 502 to be loaded as loaded bits into the respective latch circuits of the N scan blocks in the scan chain 504 .
- the tag bit in each latch is initially set to the value of the loaded bit. For example, where the loaded bit is logic ‘0’, the tag bit is set to logic ‘0’ setting the latch circuit to the pass state. Where the loaded bit is logic ‘1’, the tag bit is set to logic ‘1’ setting the latch circuit to the no-pass state.
- Control circuits 522 may begin a scan operation for the number of logic ‘1’s in the N-bit string indicating a no-pass state for example.
- the control circuits 522 input the input clock signal SCLK_I as a pulse train into gating circuit 516 while inputting the first clock signal CLK_A and the second clock signal CLK_B to the inputs of the first and second subsets of scan blocks.
- the first scan block group 508 - 1 in the scan chain 504 is enabled at the beginning of the scan operation by the assertion of the first token signal TOKEN_ 1 . If both data latches for scan block 1 and scan block 2 are initially in a pass state, then the output of scan block 2 enables a token latch for the second scan block group 508 - 2 . In response, the token latch asserts the signal TOKEN_ 2 for the second scan block group 508 - 2 to enable the second scan block group. Similarly, if both latches for scan block 3 and scan block 4 are in a pass state, the output of scan block 4 will enable a token latch for the following scan block group. This process is repeated down the shooting chain.
- the shooting chain is interrupted causing the input clock signal 518 to be gated or otherwise disabled.
- the input clock signal pulses SCLK_I if any one of the scan blocks has a tag bit with the no-pass value then the output of the final scan block in the scan chain will cause the input clock signal to be gated.
- the tag bits for all scan blocks for all scan block groups in the scan chain are the pass value, the output of the final scan block of the scan chain will generate an output signal causing gating circuit 516 to pass the input clock signal.
- FIG. 2 is a timing diagram illustrating the input clock signal SCLK_I, the first clock signal CLK_A, and the second clock signal CLK_B as described in FIG. 1 .
- the input clock signal SCLK_I includes a pulse train having a plurality of pulses, each having a first pulse width ‘w’.
- the first clock signal CLK_A includes a pulse train having a plurality of pulses, each having a second pulse width that is half (‘w/2’) that of the input clock signal.
- a second clock signal CLK_B also includes a pulse train having a plurality of pulses with the second pulse width. Corresponding pulses from the first clock signal and the second clock signal are provided between the input clock signal pulses.
- Each pulse of the second clock signal precedes a corresponding pulse from the first clock signal.
- the first pulse from the second clock signal has a falling edge that corresponds with a rising or leading edge of the first pulse of the first clock signal.
- the falling edge of the input clock signal pulse corresponds with a rising edge of a pulse from the second clock signal and a rising edge of the next input clock signal pulse corresponds with a falling edge of the next first clock signal pulse.
- each scan block in FIG. 1 includes a single data latch to perform the scan operation.
- the input clock signal is passed directly to a gating circuit and two clock signals, CLK_A and CLK_B, are used to reset the scan blocks.
- the scan blocks are organized into scan block groups including one scan block coupled to the first clock signal and one scan block coupled to the second clock signal.
- the first scan block precedes the second scan block in each scan block group while the second clock signal precedes the first clock signal.
- the second scan block is only enabled when the first scan block is set to the pass value. In this manner, a correct error account can be made over two clock cycles when needed and while utilizing a single data latch for each scan block.
- the data latch is used to load the bit information from the N-bit string and is then reset after its consideration to also serve the function of a reset bit.
- a token signal is used for each scan block group so that a scan block group is only enabled after each preceding scan block group has been considered in the scan operation.
- FIG. 3 is a circuit diagram depicting a more detailed view of a scan block group 508 in accordance with one embodiment of the disclosed technology.
- Scan block group 508 includes a first scan block 506 - 1 that receives the first clock signal CLK_A at the gate of transistor 540 and a second scan block 506 - 2 that receives the second clock signal CLK_B at the gate of transistor 560 . As shown in FIG. 2 , each of the pulses of clock signal CLK_B precedes a corresponding pulse from the first clock signal CLK_A.
- Both scan blocks in the scan block group are selectively enabled by a token signal 510 for transfer of loaded bit information and reset.
- Token signal 510 may be generated by a constant supply voltage to enable the token signal at the beginning of a scan operation as with the first scan block group 508 - 1 shown in FIG. 1 , or may be generated by a token latch in response to the output of a preceding scan block group as with scan block groups 508 - 2 and 508 - 3 .
- the scan blocks are reset by setting the tag bit for latch circuit 530 and the tag bit for latch circuit 550 to the pass value (e.g., logic “0”).
- Reset transistors 542 and 562 have their gates coupled to control signal TRST and their second nodes coupled to ground.
- TRST is driven high, the input nodes 536 and 556 of scan block 506 - 1 and scan block 506 - 2 are pulled to ground, pulling the latch signals TAG 1 and TAG 2 low which are then latched in latches 530 and 550 as logic ‘0’ for the corresponding tag bits 537 and 539 .
- the tag bits 537 and 539 in latches 530 and 550 are initially set to the values of the loaded bits.
- transistor 546 is enabled by asserting a control signal CS 1 .
- Control signal CS 2 carries a value based on the loaded bit.
- CS 2 is driven low disabling transistor 548 .
- signal TAG 1 is driven high.
- Latch circuit 530 is formed of two inverters 532 and 534 such that TAG 1 is driven low, latching logic ‘0’ in latch circuit 530 as the tag bit 537 for scan block 506 - 1 .
- scan blocks 506 - 1 and 506 - 2 are enabled for transfer of their tag bits for selectively gating of the input clock signal when the token signal is driven high.
- Data latch 530 provides the signal TAG 1 at node 536 and the signal TAG 1 at node 544 based on the previously latched bit 537 .
- TAG 1 is low, the output from node 544 interrupts the scan chain or otherwise causes the input clock signal to be gated.
- the signal TAG 1 is provided at the output node to the next scan block X+1 in the chain.
- TAG 1 is low, the subsequent scan block X+1 is disabled causing the input clock signal to be gated.
- data latch 550 provides the signal TAG 2 at node 556 and the signal TAG 2 at node 564 based on the previously latched bit 539 .
- the output from node 564 interrupts the scan chain or otherwise causes the input clock signal to be gated.
- the output is provided to the next scan block X+1 in the chain.
- the subsequent scan block X+1 is disabled causing the input clock signal to be gated.
- scan block 506 - 2 is part of the final scan block in the chain, the signal TAG 2 is provided to the gating circuits directly to cause gating of the input clock signal when the signal TAG 2 is low.
- Reset of scan block 506 - 1 and the loaded bit information is controlled by the clock signal CLK_A.
- the value at node 536 is reset during the following pulse of CLK_A.
- the value of the tag bit in latch 530 is used to selectively gate an input clock signal pulse, and is then reset by the following pulse of the first clock signal CLK_A.
- latch 530 is reset when the clock signal CLK_A is driven high.
- the loaded bit information at node 536 is reset by the leading edge of a pulse from clock signal CLK_A.
- Reset of scan block 506 - 2 and the loaded bit information is controlled by the clock signal CLK_B.
- the tag bit 537 for latch 506 - 1 is loaded or reset to logic ‘0,’ the signal TAG 1 is driven high to enable the second scan block for reset during the next pulse of the clock signal CLK_B.
- Scan block 506 - 1 and scan block 506 - 2 are coupled together as a chain with the signal TAG 1 at the output node 544 of scan block 506 - 1 driving transistor 559 at the input node 561 of scan block 506 - 2 .
- transistor 559 turns on to enable scan block 506 - 2 for reset during the next pulse of the second clock signal CLK_B.
- latch 550 When the scan block group is enabled by the token signal and TAG 1 is driven high, latch 550 is reset when the clock signal CLK_B is driven high. The loaded bit information at node 556 is reset by the leading edge of a pulse from clock signal CLK_B. Thus, when the tag bit 539 is logic ‘1’, it will be reset to logic ‘0’ indicating the pass state in response to the leading edge of clock signal CLK_B.
- token signal 510 is asserted, transistor 538 is on. Transistor 559 turns on in response to TAG 1 going high. Transistor 560 turns on by a pulse of clock signal CLK_B. With transistors 558 , 559 , and 560 on, a path to ground is provided from node 556 , pulling the signal TAG 1 low which is stored in latch 550 as logic ‘0.’
- the next pulse of CLK_B follows the input clock signal SCLK_I pulse prior to the next pulse of CLK_A.
- TAG 1 is low which disables scan block 506 - 2 from reset. Accordingly, the tag bit at latch 550 remains at logic ‘1’.
- the next pulse of CLK_A follows the pulse of CLK_B. This pulse will reset the tag bit 537 at latch 530 to logic ‘0’ which will drive TAG 1 high.
- TAG 2 will either disable the next scan block group or gate the input clock signal directly.
- the next pulse of CLK_B then follows the input clock signal SCLK_I pulse.
- TAG 1 is high which enables scan block 506 - 2 for reset. Accordingly, the tag bit 539 at latch 550 is reset to logic ‘0’. As illustrated, both bits from latches 530 and 550 are used to gate the input clock signal twice while only using a single latch for each scan block.
- FIG. 4 is a block diagram depicting more detail of bit scan circuit 502 in accordance with one embodiment. Continuing with the example of FIG. 3 , three scan block groups each comprising two scan blocks are illustrated.
- a first subset of scan blocks 506 - 1 , 506 - 3 and 506 - 5 are coupled to a first clock signal CLK_A.
- a second subset of scan blocks 506 - 2 , 506 - 4 and 506 - 6 are coupled to a second clock signal CLK_B.
- the input clock signal SCLK_I is connected to the first input of AND gate 602 and the second input of AND gate 602 is coupled to the output of the final scan block 506 - 6 to form a gating circuit.
- Various gate mans may be used to gate or otherwise disable the input clock signal.
- the AND gate 602 forms a gate means for selectively gating the input clock signal in one embodiment. In another embodiment, an OR gate or one or more other logic gates may be used, while adjusting the outputs of SCLK_I and TAG 6 accordingly.
- Each scan block group is enabled by a corresponding token signal as earlier described.
- the first scan block group 508 - 1 is enabled at the beginning of a scan operation by token signal TOKEN_ 1 .
- the second scan block group 508 - 2 is enabled by control signal TOKEN_ 2
- the third scan block group 508 - 3 is enabled by a control signal TOKEN_ 3 .
- the second scan block group 508 - 2 is coupled to a token latch 572 - 1 which generates token signal TOKEN_ 2
- the third scan block 508 - 3 is coupled to a token latch 572 - 2 which generates token signal TOKEN_ 3 .
- control signal TRST is asserted to drain output nodes 583 and 587 to ground and thereby reset the token latch values.
- Token latch 572 - 1 is enabled when both scan blocks of scan block group 508 - 1 have tag bits in the pass state and token latch 572 - 2 is enabled when both scan blocks of scan block group 508 - 2 have tag bits in the pass state.
- Token latch 572 - 1 is coupled to the output of a first AND gate 574 - 1 to receive latch enable signal 512 - 1 and token latch 572 - 2 is coupled to the output of a second AND gate 574 - 2 to receive latch enable signal 512 - 2 .
- the first AND gate 574 - 1 is controlled by the outputs of scan block group 508 - 1 and token latch 572 - 2 is controlled by the outputs of scan block group 508 - 2 .
- the logic means includes an AND gate for each token latch, such as AND gate 574 - 1 which forms logic for enabling token latch 572 - 1 .
- an OR gate or one or more other logic gates may be used, while adjusting the outputs of Vdd, TAG 1 , and TAG 2 accordingly.
- the first AND gate 574 - 1 includes three inputs to receive a supply voltage (e.g., Vdd), the output TAG 1 from scan block 506 - 1 , and the output TAG 2 from scan block 506 - 2 .
- the output of AND gate 574 - 1 is driven low if any of the inputs are low. In this manner AND gate 574 - 1 is only driven high when TAG 1 and TAG 2 are both driven high to indicate that scan blocks 506 - 1 and 506 - 2 have tag bits at the pass value.
- token latch 572 - 1 When the output of AND gate 574 - 1 is driven high, transistor 582 in token latch 572 - 1 turns on. When the input clock signal SCLK_I goes high turning transistor 580 on, the voltage at node 581 is drained to ground. This sets node 583 high through inverters 576 and 578 . When node 583 is driven high, token signal TOKEN_ 2 is asserted to enable scan block group 508 - 2 .
- Various latch means may be used for latching the output of the logic means and enabling a corresponding scan block group.
- token latch 572 - 1 includes two inverters as shown to form a latching circuit. In another embodiment, the latch for token latch 572 - 1 may be formed using one or more flip flops.
- the second AND gate 574 - 2 includes three inputs to receive the output of the first AND gate 574 - 1 , the output signal TAG 3 from scan block 506 - 3 , and the output signal TAG 4 from scan block 506 - 4 .
- AND gate 574 - 2 is driven high when TAG 1 , TAG 2 , TAG 3 , and TAG 4 are all driven high. Therefore, the output only goes high when the tag bits for all preceding scan blocks in the group are the pass value.
- the second AND gate forms the logic means for enabling token latch 572 - 2 in one embodiment. In another embodiment, an OR gate or one or more other logic gates may be used, while adjusting the outputs of Vdd, TAG 3 , and TAG 4 accordingly.
- token latch 572 - 2 When the output of AND gate 574 - 2 is driven high, transistor 610 in token latch 572 - 2 turns on. When the input clock signal SCLK_I goes high turning transistor 608 on, the voltage at node 585 is drained to ground. This sets node 587 high through inverters 604 and 606 . When node 587 is driven high, token signal TOKEN_ 3 is asserted to enable scan block group 508 - 3 .
- Various latch means may be used for token latch 572 - 2 .
- token latch 572 - 2 includes two inverters as shown to form a latching circuit. In another embodiment, the latch for token latch 572 - 2 may be formed using one or more flip flops.
- FIG. 5 is a timing diagram illustrating various signals of the bit scan circuit 500 from FIG. 4 in accordance with one embodiment.
- FIG. 5 continues with an example of a scan chain including three scan block groups, each having two scan blocks connected to independent clock signals CLK_A and CLK_B.
- the input clock signal SCLK_I includes a plurality of pulses having a pulse width ‘w’.
- the clock signal pulses of CLK_A and CLK_B are asserted between each of the input clock pulses.
- Second clock signal CLK_B includes a pulse train with each pulse having a leading edge that corresponds with a falling edge of an input clock signal pulse. Each pulse has a pulse width of w/2 but different size pulse widths may be used.
- the first clock signal CLK_A includes a pulse train with each pulse having a leading edge that corresponds with a falling edge of a preceding pulse of the second clock signal CLK_B.
- the falling edge of each CLK_A pulse corresponds with a leading edge of a subsequent input clock signal pulse.
- N-bit string having binary values of “111001.”
- the N-bit string is loaded and latched into a set of a scan blocks as an initial set of loaded bit data shown in FIG. 5 .
- the loaded data sets the initial state of the tag bits controlling the various TAG signals.
- the scan chain is loaded with the N-bit string which is latched into the respective latches, thereby setting TAG 1 at scan chain 506 - 1 to logic 1 TAG 2 at scan block 506 - 2 to logic 1 TAG 3 at scan block 506 - 3 to logic 1, TAG 4 at scan block 506 - 4 to logic ‘0’, TAG 5 at scan block 506 - 5 to logic ‘0’, and TAG 6 at scan block 506 - 6 to logic ‘1’.
- a tag bit is logic ‘1’, the corresponding tag signal is driven high and the input clock signal is gated, thereby removing or disabling a pulse from the output clock signal SCLK_O.
- a tag bit is logic ‘0’, the corresponding tag signal is driven low and the input clock signal is not gated.
- the gating circuits will generate an output clock signal SCLK_O having a first pulse corresponding to the input clock signal.
- Control signal TOKEN_ 1 is driven high at the beginning of the scan operation to enable the first scan block group.
- the first input clock signal pulse SCLK_I is provided to the gating circuits and the inputs of the token latches as shown in FIG. 4 .
- the first pulse of the input clock signal is subjected to gating according to the tag bit of scan block 506 - 1 .
- the first pulse of the input clock signal SCLK_I pulse is gated according to TAG 1 for scan block 506 - 1 .
- TAG 1 is high, TAG 1 is driven low disabling the first AND gate and thereby interrupting the scan chain.
- the final scan block group 508 - 3 is not enabled by control signal TOKEN_ 3 . Therefore, the output of the final scan block 506 - 6 is driven low. Accordingly, AND gate 602 will be driven low gating the input clock signal pulse. Therefore the output clock signal SCLK_O does not contain a pulse corresponding to the first pulse of the input clock signal SCLK_I.
- the falling edge of the first input clock signal pulse SCLK_I corresponds with a leading edge of the first pulse of the second clock signal CLK_B.
- the second scan block 506 - 2 is not reset when CLK_B is driven high.
- the first pulse of CLK_B precedes that of the first pulse of CLK_A. Therefore, TAG 1 remains high during the first pulse of CLK_B. With TAG 1 high, TAG 1 is driven low which disables scan block 506 - 2 from being reset.
- the first pulse of the first clock signal CLK_A is then provided, having a leading edge that corresponds with the falling edge of the first pulse of CLK_B.
- the first pulse of CLK_A resets the tag bit of scan block 506 - 1 , driving TAG_ 1 low to indicate the pass value of logic ‘0’.
- the second pulse of the input clock signal SCLK_I is then provided.
- the second pulse is gated according to TAG 2 for scan block 506 - 2 .
- TAG 2 is high, which drives TAG 2 low to disable the second token latch in the scan chain.
- control signal TOKEN_ 3 is not asserted and the final scan block group is not enabled. Therefore, the output of the final scan block 506 - 6 is driven low. Accordingly, the output AND gate will be driven low again gating the input clock signal pulse. Therefore the output clock signal SCLK_O does not contain a pulse corresponding to the second pulse of the input clock signal SCLK_I.
- the falling edge of the second pulse of the input clock signal pulse SCLK_I corresponds with the leading edge of the second pulse of the second clock signal CLK_B.
- the second pulse of CLK_B resets the tag bit in scan block 506 - 2 to the pass value logic ‘0’ from its initial state of logic ‘1’.
- TAG 1 was driven low by resetting scan block 506 - 3 during the first pulse of CLK_A. Accordingly, TAG 1 is driven high during the second pulse of CLK_B. With TAG 1 high, scan block 506 - 2 is reset by the second pulse of CLK_B.
- the bit scan circuit of FIG. 4 is capable of correctly gating the input clock signal over two cycles according to the bit information associated with both scan blocks of the scan block group. Even though a single latch is used for each scan block, the loaded bit information from each scan block can be transferred for gating the input clock signal and then reset.
- the reset of scan block 506 - 2 on the tag bit of scan block 506 - 1 and utilizing a reset pulse for scan block 506 - 2 that precedes that of scan block 506 - 1 , a correct count of the bit information is made over two input clock cycles.
- the first tag bit has already been reset to logic 0 such that the second pulse of the first clock signal CLK_A has no effect on the first scan block 506 - 1 . It is worth noting that control signals TOKEN_ 2 and TOKEN_ 3 are low when the second pulse of the second clock signal CLK_B is driven high. Thus, the second and third scan block groups are not enabled and no reset is caused for the first scan blocks in these scan block groups.
- both TAG 1 and TAG 2 are driven high which enables the first AND gate 574 - 1 .
- the output of the first AND gate is driven high to enable the first token latch 572 - 1 .
- the first token latch asserts the control signal TOKEN_ 2 .
- Control signal TOKEN_ 2 is driven high by the leading edge of the third pulse of SCLK_I.
- the third pulse of the input clock signal pulse SCLK_I is provided to the gating circuits. With the third scan block group enabled, the third pulse of the input clock signal is subjected to gating according to the tag bit of scan block 506 - 3 . TAG 3 is driven high by the corresponding tag bit which causes the input clock signal to be gated. TAG 3 is driven low which disables the final scan block group, thereby driving the scan chain output low to gate the input clock signal and the output AND gate. Therefore the output clock signal SCLK_O does not contain a pulse corresponding to the third pulse of the input clock signal SCLK_I.
- the third pulse of the first clock signal CLK_A has a leading edge that resets the tag bit of scan block 506 - 3 , driving TAG 3 low to indicate the pass value of logic ‘0’.
- the fourth pulse of the input clock signal SCLK_I pulse is selectively gated according to TAG 4 for scan block 506 - 4 .
- TAG 4 is low, which drives TAG 4 high.
- TAG 3 was driven low during the third pulse of first clock signal CLK_A, thereby driving TAG 3 high.
- the second AND gate 574 - 2 in the scan chain is turned on to enable the second token latch.
- scan block 506 - 4 does not cause the input clock signal SCLK_I to be gated. Instead, scan block 506 - 4 enables the next scan block in the chain to determine whether the fourth pulse will be gated.
- the second token latch In response to the output of the second AND gate going high, the second token latch asserts the control signal TOKEN_ 3 .
- Token_ 3 is driven high by the leading edge of the fourth pulse of SCLK_I.
- Driving TOKEN_ 3 high enables scan blocks 506 - 5 and 506 - 6 for transfer.
- the fourth pulse of the input clock signal is also subjected to gating according to the tag bit of scan block 506 - 5 .
- the tag bit at scan block 506 - 5 is logic zero such that scan block 506 - 5 does not result in gating of the input clock signal.
- TAG 5 With TAG 5 low, TAG 5 is driven high. Driving TAG 5 high enables scan block 506 - 6 for transfer and reset.
- the tag bit of scan bit 506 - 6 is logic ‘1’ such that TAG 6 is high.
- TAG 6 With TAG 6 high, TAG 6 is driven low.
- the low output of TAG 6 disables AND gate 602 thereby gating the input clock signal. Accordingly, the tag bit of the final scan block 506 - 6 causes the fourth pulse of the input clock signal to be gated. Therefore the output clock signal SCLK_O does not contain a pulse corresponding to the fourth pulse of the input clock signal SCLK_I.
- the falling edge of the fourth pulse of the input clock signal pulse SCLK_I corresponds with the leading edge of the fourth pulse of the second clock signal CLK_B.
- the fourth pulse of CLK_B resets the tag bit in scan block 506 - 6 to the pass value logic ‘0’ from its initial state of logic ‘1’. Recall that TAG 5 is low, driving TAG 5 high to enable scan block 506 - 6 for reset.
- the assertion of the fourth pulse of CLK_B resets the tag bit of 506 - 6 to logic ‘0’. Resetting the tag bit of scan block 506 - 6 to the pass value drives TAG_ 6 low.
- Each tag bit is set to the pass value following the fourth input clock signal pulse and corresponding pulses of clock signals CLK_A and CLK_B. Accordingly, each tag bit and the corresponding tag signals are low.
- the fifth pulse of the input clock signal SCLK_I is then provided to the gating circuits. With all tag bits at logic ‘0’, the final scan block in the chain is enabled and its output is driven high by the tag bit. The output enables the output AND gate which allows the fifth pulse of the input clock signal to pass through. Accordingly, the gating circuits generate the output signal SCLK_O to include the fifth pulse from the input clock signal.
- the control circuits receive the output clock signal SCLK_O and determine that four pulses are missing relative to the input clock signal pulse train. Accordingly, a counter or other means can be used to determine that four bits contained a logic ‘1’ value during the scan operation.
- FIG. 6 is a block diagram depicting an embodiment of a bit scan circuit according to one embodiment, illustrating that the number of clock signals and the number of scan blocks in each scan block group may vary.
- three independent clock signals are used to drive scan block groups including three scan blocks each.
- Scan blocks 506 - 1 , 506 - 2 , and 506 - 3 comprise a first scan block group 508 - 1 ;
- scan blocks 506 - 4 , 506 - 5 , and 506 - 6 comprise a second scan block group 508 - 2 ;
- scan blocks 506 - 7 , 506 - 8 , and 506 - 9 comprise a third scan block group 508 - 3 .
- the first scan blocks of each scan block group including scan block 506 - 1 , 506 - 4 and 506 - 7 are connected to a first clock signal CLK_A.
- a second subset of scan blocks including scan blocks 506 - 2 , 506 - 5 and 506 - 8 are coupled to a second clock signal CLK_B.
- a third subset of scan blocks including scan blocks 506 - 3 , 506 - 6 and 506 - 9 are coupled to a third clock signal CLK_C.
- the input clock signal SCLK_I is connected to the first input of AND gate 602 .
- the second input of AND gate 602 is coupled to the output of the final scan block 506 - 9 in the scan chain.
- Each scan block group is enabled by a corresponding token signal as earlier described.
- the first scan block group 508 - 1 is enabled by a token signal TOKEN_ 1
- the second scan block group 508 - 2 is enabled by signal TOKEN_ 2
- the third scan block group 508 - 3 is enabled by a control signal TOKEN_ 3 .
- Token latch 572 - 1 is enabled by AND gate 574 - 1 when scan blocks 506 - 1 , 506 - 2 , and 506 - 3 of scan block group 508 - 1 have tag bits in the pass state.
- Token latch 572 - 2 is enabled when scan blocks 506 - 4 , 506 - 5 , and 506 - 6 of scan block 508 - 2 have tag bits in the pass state, and the output of AND gate 574 - 2 is high.
- FIG. 7 is a timing diagram illustrating the input clock signal SCLK_I, the first clock signal CLK_A, the second clock signal CLK_B, and the third clock signal as described in FIG. 6 .
- the first clock signal CLK_A includes a pulse train having a plurality of pulses, each having a pulse width that is one-third (‘w/3’) of that of the input clock signal.
- a second clock signal CLK_B and third clock signal CLK_C also include pulse trains having a plurality of pulses with the pulse width ‘w/3’.
- Corresponding pulses from the first clock signal, the second clock signal, and the third clock signal are provided between the input clock signal pulses. Each pulse of the third clock signal precedes a corresponding pulse from the second clock signal.
- Each pulse of the second clock signal precedes a corresponding pulse from the first clock signal.
- the first pulse from the third clock signal has a falling edge that corresponds with a leading edge of the first pulse of the second clock signal.
- the first pulse from the second clock signal has a falling edge that corresponds with a rising or leading edge of the first pulse of the first clock signal.
- the falling edge of an input clock signal pulse corresponds with a rising edge of a pulse from the third clock signal and a rising edge of the next input clock signal pulse corresponds with a falling edge of the a pulse from the first clock signal.
- FIG. 8 is a flowchart describing a process for performing a bit scan operation in accordance with one embodiment.
- two or more subsets of scan blocks are provided in a scan chain for an N-bit string.
- the scan chain includes N scan blocks coupled serially using token latches to generate an output for gating an input clock signal. As specifically shown in FIG. 8 , this includes providing a first subset of scan blocks coupled to a first clock signal and a second subset of scan blocks coupled to a second clock signal.
- the second clock signal includes a pulse train having pulses that precede corresponding pulses from a pulse train of the first clock signal.
- Each scan block includes a tag bit and acts as either a no-pass gate or a pass gate depending on the tag bit having a first binary value or a second binary value respectively.
- a plurality of token latches are provided for groups of scan blocks.
- the scan blocks are organized into scan block groups that each include a corresponding scan block from each subset.
- Each scan block within the group is connected together with the output of the first scan block in the group driving an input to enable the second scan block in the group for reset. If the groups include more than two scan blocks the output of the second scan block will drive a third scan block and so on.
- each token latch enables or disables its corresponding scan block group based on the tags from each preceding scan block in the scan chain.
- a token latch will generate a token signal to enable the corresponding group of scan blocks if the output of the scan blocks from each preceding scan block group in the scan chain is the second binary value for example.
- the gating circuits generate a gated clock signal by gating an input clock signal in response to any one of the N scan blocks having a tag bit with the first binary value.
- the gating circuit may receive the output of the final scan block in the chain.
- the final scan block in the chain will only generate a signal that permits the gating circuit to pass the input clock signal when the tag bits of all scan blocks in the scan chain are set to the pass value.
- one or more control circuits determine a number of bits in the N-bit string having the first binary value based on a number of pulses missing from the gated clock signal after the tag bit of all of the N scan blocks is set to the second binary value.
- FIG. 9 is a block diagram describing an example of a memory device 110 in which embodiments of the present disclosure may be incorporated.
- FIG. 9 illustrates a memory device 110 having read/write circuits for reading and programming a page of memory cells in parallel.
- Memory device 110 may include one or more memory die or chips 112 .
- Memory die 112 includes a two-dimensional or three-dimensional array of memory cells 100 .
- Control circuitry 120 and read/write circuits 130 A and 130 B are provided.
- access to the memory array 100 by the various peripheral circuits is implemented in a symmetric fashion, on opposite sides of the array, so that the densities of access lines and circuitry on each side are reduced by half.
- the various peripheral circuits may be provided in a non-symmetric fashion on single sides of the array.
- the read/write circuits 130 A and 130 B include multiple sense blocks 200 which allow a page of memory cells to be read or programmed in parallel. Read/write circuits 130 A and 130 B also include bit scan circuits 500 as earlier described.
- the memory array 100 is addressable by word lines via row decoders 140 A and 140 B and by bit lines via column decoders 142 A and 142 B.
- a controller 144 is included in the same memory device 110 (e.g., a removable storage card or package) as the one or more memory die 112 . Commands and data are transferred between the host and controller 144 via lines 132 and between the controller and the one or more memory die 112 via lines 134 .
- the control circuitry 120 cooperates with the read/write circuits 130 A and 130 B to perform memory operations on the memory array 100 .
- the control circuitry 120 includes a state machine 122 , an on-chip address decoder 124 and a power control module 126 .
- the state machine 122 provides chip-level control of memory operations.
- the on-chip address decoder 124 provides an address interface between that used by the host or a memory controller to the hardware address used by the decoders 140 A, 140 B, 142 A, and 142 B.
- the power control module 126 controls the power and voltages supplied to the word lines and bit lines during memory operations.
- Managing circuitry for memory array 100 can be considered to comprise one or more of the control circuitry 120 , row decoders 140 , column decoders 142 , read/write circuits 130 , or controller 144 , for example.
- FIG. 10 is a block diagram of an individual sense block 200 partitioned into a core portion, referred to as a sense module 210 , and a common portion 220 .
- a sense module 210 for each bit line and one common portion 220 for a set of multiple sense modules 210 .
- a sense block will include one common portion 220 and eight sense modules 210 . Each of the sense modules in a group will communicate with the associated common portion via a data bus 216 .
- Sense module 210 comprises sense circuitry 214 that determines whether a conduction current in a connected bit line is above or below a predetermined threshold level.
- Sense module 210 also includes a bit line latch 212 that is used to set a voltage condition on the connected bit line. For example, a predetermined state latched in bit line latch 212 will result in the connected bit line being pulled to a state designating program inhibit (e.g., V DD ).
- Common portion 220 comprises a processor 222 , a set of data latches 224 and an I/O Interface 226 coupled between the set of data latches 224 and data bus 230 .
- Processor 222 performs computations. For example, one of its functions is to determine the data stored in the sensed memory cell and store the determined data in the set of data latches.
- the set of data latches 224 is used to store data bits determined by processor 222 during a read operation. It is also used to store data bits imported from the data bus 230 during a program operation. The imported data bits represent write data meant to be programmed into the memory. Data read from a cell is stored in the set of data latches before being combined with additional data and sent to the controller via I/O interface 226 .
- bit line latch 212 serves double duty, both as a latch for latching the output of the sense module 210 and also as a bit line latch as described above.
- the data to be programmed is stored in the set of data latches 224 from the data bus 230 .
- the program operation under the control of the state machine, comprises a series of programming voltage pulses applied to the control gates of the addressed memory cells. Each programming pulse is followed by a read back (verify) to determine if the cell has been programmed to the desired memory state.
- Processor 222 monitors the read back memory state relative to the desired memory state. When the two are in agreement, the processor 222 sets the bit line latch 212 so as to cause the bit line to be pulled to a state designating program inhibit. This inhibits the cell coupled to the bit line from further programming even if programming pulses appear on its control gate. In other embodiments the processor initially loads the bit line latch 212 and the sense circuitry sets it to an inhibit value during the verify process.
- Data latch stack 224 contains a stack of data latches corresponding to the sense module. In one embodiment, there are at least four data latches per sense module 210 to store four bits of data for/from a cell. In some implementations (but not required), the data latches are implemented as a shift register so that the parallel data stored therein is converted to serial data for data bus 230 , and vice versa. In the preferred embodiment, all the data latches corresponding to the read/write block of m memory cells can be linked together to form a block shift register so that a block of data can be input or output by serial transfer. In particular, the bank of r read/write modules is adapted so that each of its set of data latches will shift data in to or out of the data bus in sequence as if they are part of a shift register for the entire read/write block.
- Typical flash memory architectures include NAND and NOR flash memories.
- NAND flash memory structures typically include many NAND strings.
- FIG. 11 depicts three NAND strings in a block BLK 0 .
- BLK 0 includes a number of NAND strings NS 0 , NS 1 , NS 2 , . . . and respective bit lines, e.g., BL 0 , BL 1 , BL 2 . . . in communication with respective sense amplifiers SA 0 , SA 1 , SA 2 , . . .
- BLK 0 comprises a set of non-volatile storage elements.
- Each NAND string is connected at one end to a select gate drain (SGD) transistor, and the control gates of the SGD transistors are connected via a common SGD line.
- the NAND strings are connected at their other end to a select gate source (SGS) transistor which, in turn, is connected to a common source line (SL).
- SGS select gate source
- SL common source line
- a number of word lines WL 0 -WL 63 extend between the SGS and SGD transistors.
- WL 0 is an edge word line which is adjacent to the source side (SS) of the block and WL 63 is an edge word line which is adjacent to the drain side (DS) of the block.
- NAND string NS 0 includes storage elements 301 , . . . , 302 - 306 , . . . , 307 with respective control gates CG 63 , . . . CG 32 -CG 28 , . . . CG 0 , an SGS transistor 308 with a control gate CGsgs and a SGD transistor 300 with a control gate CGsgd.
- NAND string NS 1 includes storage elements 311 , . . . , 312 - 316 , . . . , 317 , an SGS transistor 318 and a SGD transistor 310 .
- NAND string NS 2 includes storage elements 321 , . . .
- NAND strings NS 0 , NS 2 , . . . are even numbered, and NAND strings NS 1 , NS 3 (not shown), . . . are odd numbered.
- bit lines BL 0 , BL 2 , . . . are even numbered, and the NAND strings BL 1 , BL 3 (not shown), . . . are odd numbered.
- the storage elements can store user data and/or non-user data.
- FIGS. 12A-12B depict a three-dimensional NAND stacked non-volatile memory device including an array of alternating conductive and dielectric layers disposed above a substrate as may also be used in accordance with one embodiment.
- a memory hole is drilled in the layers to define many memory layers simultaneously.
- a NAND string is then formed by filling the memory hole with appropriate materials. Control gates of the memory cells are provided by the conductive layers.
- Each NAND string has a first “drain” end coupled via a drain-side select gate transistor (“SGD”) to a bit line, and a second “source” end coupled via a source-side select gate transistor (“SGS”) to a common source conductor.
- SGD and SGS may be used to selectively couple the drain and source ends, respectively, of a NAND string to the bit line and source line, respectively.
- FIG. 12A illustrates a TCAT (Terabit Cell Array Transistor) array 50 a
- FIG. 12B illustrates a BiCS (Bit Cost Scalable) array 50 b
- TCAT array 50 a includes a NAND string 52 a disposed above a substrate 54 a
- NAND string 52 a has a drain end 56 a coupled via SGD 58 a to a bit line 60 a , and a source end 62 a coupled via SGS 64 a to a source line 66 a
- BiCS array 110 b includes a NAND string 112 b disposed above a substrate 114 b
- NAND string 52 b has a drain end 56 b coupled via SGD 58 b to a bit line 60 b , and a source end 62 b coupled via SGS 64 b to a source line 66 b.
- Select gates SGD 116 a and SGS 120 a , and SGD 16 b and SGS 120 b are implemented above substrates 114 a and 114 b , respectively.
- SGD 116 a and SGS 120 a , and SGD 116 b and SGS 120 b consume a significant amount of area.
- Other 3D NAND non-volatile memory devices may include select gate transistors (SGD or SGS) disposed in the substrate below the NAND strings.
- 3D NAND memory arrays may include buried word lines as selector devices of select gate transistors (SGD or SGS).
- One approach to erasing in a 3D stacked non-volatile memory device is to generate gate induced drain leakage (GIDL) current to charge up the NAND string channel, raise the channel potential to an erase voltage, and maintain this channel potential during erase.
- the memory device includes NAND strings which have a drain-side select gate (SGD) transistor on one end and a source-side select gate (SGS) transistor on the other end.
- SGD drain-side select gate
- SGS source-side select gate
- the erase may be a “one-sided erase” or a “two-sided erase.”
- GIDL gate-induced drain leakage
- Vdg drain-to-gate voltage
- an apparatus including a plurality of scan block groups comprising a scan chain for a string of binary data.
- Each scan block group includes a first scan block having a tag bit and a second scan block having a tag bit.
- the first scan block of each scan block group is coupled to a first clock signal and the second scan block of each scan block group is coupled to a second clock signal.
- the apparatus includes a plurality of token latches. Each token latch is coupled to a corresponding scan block group and is configured to enable the corresponding scan block group in response to the tag bit of the first scan block having a pass value and the tag bit of the second scan block from each preceding scan block group in the scan chain having a pass value.
- a method has been described that includes providing N scan blocks in a scan chain for an N-bit string and providing a plurality of token latches.
- Each scan block includes a tag bit and acts as either a no-pass gate or a pass gate depending on the tag bit having a first binary value or a second binary value respectively.
- the N scan blocks include a first subset of scan blocks coupled to a first clock signal and a second subset of scan blocks coupled to a second clock signal.
- the second clock signal includes a pulse train having pulses that precede corresponding pulses from a pulse train of the first clock signal.
- Each token latch is coupled to a corresponding group of scan blocks including a first scan block from the first subset and a second scan block from the second subset.
- the method includes loading into the N scan blocks respective ones of the N bits of the N-bit string as respective tag bits, enabling by each token latch a corresponding scan block group based on an output of the first scan block and an output of the second scan block from each preceding scan block group in the scan chain being the second binary value, generating a gated clock signal by gating an input clock signal in response to any one of the N scan blocks having a tag bit with the first binary value, and determining a number of bits in the N-bit string having the first binary value based on a number of pulses missing from the gated clock signal after all of the N scan blocks have a tag bit with the second binary value.
- a system has been described that includes a first scan means for determining a binary value of a first bit and a second bit of an N-bit string and a second scan means for a determining a binary value of a third bit and a fourth bit of the N-bit string.
- the first scan means includes a first scan block having a tag bit associated with the first bit and a second scan block having a tag bit associated with the second bit.
- the second scan means includes a first scan block having a tag bit associated with the third bit and a second scan block having a tag bit associated with the fourth bit.
- the system includes a first latch means for enabling the first scan means in response to the tag bits of one or more preceding scan means in the bit scan circuit having a pass value, and a second latch means for enabling the second scan means in response to the tag bits of the first and second scan blocks of the first scan means having the pass value.
- the system includes a first clock means for resetting the first scan block of the first scan means and the second scan means, and a second clock means for resetting the second scan block of the first scan means and the second scan means.
- the first clock means includes a pulse train having a plurality of pulses and the second clock means includes a pulse train having a plurality of pulses that precede a corresponding pulse from the first clock means.
- a system has been described that includes a plurality of latch circuits comprising a scan chain for an N-bit string of binary data.
- the plurality of latch circuits include a first subset of latch circuits coupled to a first clock signal and a second subset of latch circuits coupled to a second clock signal.
- the system includes a plurality of token latches. Each token latch is coupled to at least one latch circuit of the first subset and at least one latch circuit of the second subset. Each token latch is configured to enable a corresponding latch circuit of the first subset and a corresponding latch circuit of the second subset in response to the tag bit of each preceding latch circuit in the scan chain having a pass value.
- the system includes one or more gating circuits configured to generate a gated clock signal by gating an input clock signal in response to the tag bit of any one of the latch circuits having a no-pass value.
- the system includes one or more control circuits configured to determine a number of bits in the string having a first binary value based on a number of pulses missing from the gated clock signal after the tag bits for all of the plurality of latch circuits have the pass value.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Description
Claims (24)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/919,154 US9767905B2 (en) | 2015-10-21 | 2015-10-21 | Scan chain circuits in non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/919,154 US9767905B2 (en) | 2015-10-21 | 2015-10-21 | Scan chain circuits in non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170115342A1 US20170115342A1 (en) | 2017-04-27 |
US9767905B2 true US9767905B2 (en) | 2017-09-19 |
Family
ID=58558487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/919,154 Active 2036-01-18 US9767905B2 (en) | 2015-10-21 | 2015-10-21 | Scan chain circuits in non-volatile memory |
Country Status (1)
Country | Link |
---|---|
US (1) | US9767905B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12300338B2 (en) | 2022-06-14 | 2025-05-13 | Arm Limited | Configurable scan chain architecture for multi-port memory |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10297337B2 (en) * | 2017-08-04 | 2019-05-21 | Sandisk Technologies Llc | Hierarchical fail bit counting circuit in memory device |
US10732000B2 (en) * | 2017-09-12 | 2020-08-04 | Uber Technologies, Inc. | Promoting user compliance with adaptive checkpoints |
US10847211B2 (en) * | 2018-04-18 | 2020-11-24 | Arm Limited | Latch circuitry for memory applications |
US10825526B1 (en) * | 2019-06-24 | 2020-11-03 | Sandisk Technologies Llc | Non-volatile memory with reduced data cache buffer |
JP2021124371A (en) * | 2020-02-05 | 2021-08-30 | キオクシア株式会社 | Semiconductor integrated circuit |
US11243554B1 (en) * | 2020-08-03 | 2022-02-08 | Micron Technology, Inc. | Temperature interpolation techniques for multiple integrated circuit references |
CN114927156B (en) * | 2022-07-21 | 2022-11-11 | 浙江力积存储科技有限公司 | Shift register method and shift register structure comprising redundant storage unit |
US20240112713A1 (en) * | 2022-10-03 | 2024-04-04 | Everspin Technologies, Inc. | Systems and methods for scan chain interface for non-volatile storage bits |
US12243604B1 (en) * | 2024-03-25 | 2025-03-04 | SambaNova Systems, Inc. | Scannable memory array and a method for scanning memory |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5905680A (en) * | 1996-04-30 | 1999-05-18 | Texas Instruments Incorporated | Self-timed comparison circuits and systems |
US20030036869A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Using clock gating or signal gating to partition a device for fault isolation and diagnostic data collection |
US20060236181A1 (en) * | 2005-04-01 | 2006-10-19 | Toshiba America Electronic Components | Systems and methods for LBIST testing using multiple functional subphases |
US7225374B2 (en) | 2003-12-04 | 2007-05-29 | International Business Machines Corporation | ABIST-assisted detection of scan chain defects |
US8266485B2 (en) | 2008-01-24 | 2012-09-11 | Sandisk Technologies Inc. | Test mode soft reset circuitry and methods |
US20120321032A1 (en) * | 2011-06-20 | 2012-12-20 | Bo Liu | Bit Scan Circuits and Method in Non-volatile Memory |
US20130271197A1 (en) * | 2012-04-11 | 2013-10-17 | Amit Sanghani | Power droop reduction via clock-gating for at-speed scan testing |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US20140126293A1 (en) | 2012-09-28 | 2014-05-08 | Sandisk Technologies Inc | Centralized Variable Rate Serializer and Deserializer for Bad Column Management |
US8811085B2 (en) | 2012-11-09 | 2014-08-19 | Sandisk Technologies Inc. | On-device data analytics using NAND flash based intelligent memory |
US8830745B2 (en) | 2012-07-17 | 2014-09-09 | Sandisk Technologies Inc. | Memory system with unverified program step |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
-
2015
- 2015-10-21 US US14/919,154 patent/US9767905B2/en active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5905680A (en) * | 1996-04-30 | 1999-05-18 | Texas Instruments Incorporated | Self-timed comparison circuits and systems |
US20030036869A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Using clock gating or signal gating to partition a device for fault isolation and diagnostic data collection |
US7225374B2 (en) | 2003-12-04 | 2007-05-29 | International Business Machines Corporation | ABIST-assisted detection of scan chain defects |
US20060236181A1 (en) * | 2005-04-01 | 2006-10-19 | Toshiba America Electronic Components | Systems and methods for LBIST testing using multiple functional subphases |
US8266485B2 (en) | 2008-01-24 | 2012-09-11 | Sandisk Technologies Inc. | Test mode soft reset circuitry and methods |
US20120321032A1 (en) * | 2011-06-20 | 2012-12-20 | Bo Liu | Bit Scan Circuits and Method in Non-volatile Memory |
US8427884B2 (en) * | 2011-06-20 | 2013-04-23 | SanDisk Technologies, Inc. | Bit scan circuits and method in non-volatile memory |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US20130271197A1 (en) * | 2012-04-11 | 2013-10-17 | Amit Sanghani | Power droop reduction via clock-gating for at-speed scan testing |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US8830745B2 (en) | 2012-07-17 | 2014-09-09 | Sandisk Technologies Inc. | Memory system with unverified program step |
US20140126293A1 (en) | 2012-09-28 | 2014-05-08 | Sandisk Technologies Inc | Centralized Variable Rate Serializer and Deserializer for Bad Column Management |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US8811085B2 (en) | 2012-11-09 | 2014-08-19 | Sandisk Technologies Inc. | On-device data analytics using NAND flash based intelligent memory |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12300338B2 (en) | 2022-06-14 | 2025-05-13 | Arm Limited | Configurable scan chain architecture for multi-port memory |
Also Published As
Publication number | Publication date |
---|---|
US20170115342A1 (en) | 2017-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9767905B2 (en) | Scan chain circuits in non-volatile memory | |
US11688458B2 (en) | Semiconductor memory device and memory system | |
US9437302B2 (en) | State-dependent lockout in non-volatile memory | |
US8130552B2 (en) | Multi-pass programming for memory with reduced data storage requirement | |
US9013928B1 (en) | Dynamic bit line bias for programming non-volatile memory | |
US7606079B2 (en) | Reducing power consumption during read operations in non-volatile storage | |
EP2529375B1 (en) | Multibit programming method in a non-volatile memory allowing a number of data state-fails and data recovery method in case of programming fail | |
US8520441B2 (en) | Word line kicking when sensing non-volatile storage | |
KR101787802B1 (en) | Programming non-volatile memory with bit line voltage step up | |
US7839687B2 (en) | Multi-pass programming for memory using word line coupling | |
US9412451B2 (en) | Apparatuses and methods using dummy cells programmed to different states | |
US10037797B2 (en) | Programming memories with stepped programming pulses including inhibiting a memory cell for a portion of a programming pulse and enabling that memory cell for another portion of that programming pulse | |
US7440327B1 (en) | Non-volatile storage with reduced power consumption during read operations | |
US20120250414A1 (en) | Reducing neighbor read disturb | |
US8917554B2 (en) | Back-biasing word line switch transistors | |
US7606071B2 (en) | Compensating source voltage drop in non-volatile storage | |
US7606072B2 (en) | Non-volatile storage with compensation for source voltage drop | |
US20130314989A1 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SANDISK 3D LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WANG, KESHENG;REEL/FRAME:036849/0679 Effective date: 20151016 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SANDISK 3D LLC.;REEL/FRAME:038300/0665 Effective date: 20160324 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES INC., TEXAS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT LISTED PATENT NUMBER 8853569 TO THE CORRECT PATENT NUMBER 8883569 PREVIOUSLY RECORDED ON REEL 038300 FRAME 0665. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:SANDISK 3D LLC;REEL/FRAME:038520/0552 Effective date: 20160324 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES LLC, TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:SANDISK TECHNOLOGIES INC;REEL/FRAME:038812/0954 Effective date: 20160516 |
|
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 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SANDISK TECHNOLOGIES LLC;REEL/FRAME:069796/0423 Effective date: 20241227 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY AGREEMENT;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:071050/0001 Effective date: 20250424 |