Scan chain operations

Information

  • Patent Grant
  • 10712389
  • Patent Number
    10,712,389
  • Date Filed
    Friday, December 14, 2018
    6 years ago
  • Date Issued
    Tuesday, July 14, 2020
    4 years ago
Abstract
A number of embodiments include an apparatus comprising a memory array including a first memory bank and a second memory bank and a serializer/de-serializer coupled to the first memory bank and the second memory bank. The serializer/de-serializer may be configured to receive a scan vector from the first memory bank, send the scan vector to a device under test, receive scan test responses from the device under test, and send the scan test responses to the second memory bank. Scan control logic may be coupled to the serializer/de-serializer and the device under test. The scan control logic may be configured to control operation of the serializer/de-serializer and send a scan chain control signal to the device under test, wherein the scan chain control signal is to initiate performance of a scan chain operation using the scan vector.
Description
TECHNICAL FIELD

The present disclosure relates generally to semiconductor memory and methods, and more particularly, to apparatuses and methods related to scan chain operations.


BACKGROUND

Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic systems. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data (e.g., host data, error data, etc.) and includes random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and thyristor random access memory (TRAM), among others. Non-volatile memory can provide persistent data by retaining stored data when not powered and can include NAND flash memory, NOR flash memory, and resistance variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM), such as spin torque transfer random access memory (STT RAM), among others.


Electronic systems often include a number of processing resources (e.g., one or more processors), which may retrieve and execute instructions and store the results of the executed instructions to a suitable location. A processor can comprise a number of functional units such as arithmetic logic unit (ALU) circuitry, floating point unit (FPU) circuitry, and a combinatorial logic block, for example, which can be used to execute instructions by performing logical operations such as AND, OR, NOT, NAND, NOR, and XOR logical operations on data (e.g., one or more operands). For example, functional unit circuitry may be used to perform arithmetic operations such as addition, subtraction, multiplication, and division on operands via a number of logical operations in addition to scan chain operations.


A number of components in an electronic system may be involved in providing instructions to the functional unit circuitry for execution. The instructions may be executed, for instance, by a processing resource such as a controller and/or host processor. Data (e.g., the operands on which the instructions will be executed) may be stored in a memory array that is accessible by the functional unit circuitry. The instructions and data may be retrieved from the memory array and sequenced and/or buffered before the functional unit circuitry begins to execute instructions on the data. Furthermore, as different types of operations may be executed in one or multiple clock cycles through the functional unit circuitry, intermediate results of the instructions and data may also be sequenced and/or buffered.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of an apparatus in the form of a computing system including a memory device in accordance with a number of embodiments of the present disclosure.



FIG. 2 is a prior art block diagram of an apparatus for performing scan chain operations in a computing system in accordance with a number of previous approaches to scan chain testing.



FIG. 3 is a block diagram of an apparatus for performing scan chain operations in a computing system in accordance with a number of embodiments of the present disclosure.



FIG. 4 is a timing diagram for performing scan chain operations in accordance with a number of embodiments of the present disclosure.





DETAILED DESCRIPTION

The present disclosure includes apparatuses and methods related to scan chain operations. A number of embodiments include an apparatus comprising a memory array including a first memory bank and a second memory bank and a serializer/de-serializer coupled to the first memory bank and the second memory bank. The serializer/de-serializer may be configured to receive a scan vector from the first memory bank, send the scan vector to a device under test, receive scan test responses from the device under test, and send the scan test responses to the second memory bank. Scan control logic may be coupled to the serializer/de-serializer and the device under test. The scan control logic may be configured to control operation of the serializer/de-serializer and send a scan chain control signal to the device under test, wherein the scan chain control signal is to initiate performance of a scan chain operation using the scan vector. As used herein, a “scan vector” or “scan chain vector” is a physically contiguous number of bits that can be stored, shifted, read, and/or written to and/or from a memory device and/or device under test.


Scan chain testing may be used to detect various manufacturing faults in an electronic system. Such faults may include shorts and opens exhibited in components associated with the electronic system. Scan chain testing may be desirable to minimize the chance of selling or shipping a defective part to a customer, which could not only result in a loss of good will toward the manufacturer or reseller of the defective part, but may also have more dire consequences, for example in the case of electronic systems for automotive or medical applications.


In some approaches, a flip-flop is coupled via its input to a multiplexer. One input of the multiplexer may act as a functional input, while the other input of the multiplexer may be a scan-in input. A scan enable signal may be provided to the multiplexer to select between the functional input and the scan-in input. The output of the flip-flop is coupled to another multiplexer that is coupled to another flip-flop in the same manner as described above. Accordingly, a plurality of flip-flops may be connected together via a plurality of multiplexers to form a chain, which may effectively act as a shift register.


In such approaches, the first flip-flop of the chain is coupled to a scan-in port, and the last flip-flop of the chain is coupled to a scan-out port. In general, a clock signal is provided to each flip-flop in the chain. The clock signal may be provided to each flip-flop to coordinate transfer of data from one flip-flop to the next flip-flop in the chain.


In contrast, a number of embodiments of the present disclosure can utilize a native datapath and a serializer/de-serializer to transfer data to and from a memory array to a device under test in a more efficient manner as compared to previous approaches. For example, scan vectors may be stored in the memory array and subsequently transferred through a native datapath to a device under test. A resultant scan vector may then be transferred from the device under test back to the memory array. Further, various embodiments can utilize a native datapath and a serializer/de-serializer to transfer data into and/or out of periphery logic as part of performing a scan chain operation.


As used herein, a “native datapath” is a data path which allows data to be written to and read from specific memory locations. The native datapath may allow for bidirectional transfer of data to and from the specific memory locations. In some embodiments, the native datapath may include sense amplifier, input/output (I/O) devices, multiplexers, write drivers, and/or data amplifiers. Some of the circuits of the native datapath may be truly bidirectional (e.g., they may pass data in for write operations and out for read operations), while some of the circuits of the native datapath may be unidirectional but occurring in complementary pairs such that data can be transferred bidirectionally.


In the following detailed description of the present disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how one or more embodiments of the disclosure may be practiced. These embodiments are described in sufficient detail to enable those of ordinary skill in the art to practice the embodiments of this disclosure, and it is to be understood that other embodiments may be utilized and that process, electrical, and/or structural changes may be made without departing from the scope of the present disclosure. As used herein, designators such as “N,” particularly with respect to reference numerals in the drawings, indicate that a number of the particular feature so designated can be included. As used herein, “a number of” a particular thing can refer to one or more of such things (e.g., a number of memory arrays can refer to one or more memory arrays). A “plurality of” is intended to refer to more than one of such things.


The figures herein follow a numbering convention in which the first digit or digits correspond to the drawing figure number and the remaining digits identify an element or component in the drawing. Similar elements or components between different figures may be identified by the use of similar digits. For example, 130 may reference element “30” in FIG. 1, and a similar element may be referenced as 330 in FIG. 3. As will be appreciated, elements shown in the various embodiments herein can be added, exchanged, and/or eliminated so as to provide a number of additional embodiments of the present disclosure. In addition, as will be appreciated, the proportion and the relative scale of the elements provided in the figures are intended to illustrate certain embodiments of the present invention, and should not be taken in a limiting sense.



FIG. 1 is a block diagram of an apparatus in the form of a computing system 100 including a memory device 120 in accordance with a number of embodiments of the present disclosure. As used herein, a memory device 120, controller 140, and memory array 130 might also be separately considered an “apparatus.”


System 100 includes a host 110 coupled (e.g., connected) to memory device 120, which includes a memory array 130. Host 110 can be a host system such as a personal laptop computer, a desktop computer, a digital camera, a smart phone, or a memory card reader, among various other types of hosts. Host 110 can include a system motherboard and/or backplane and can include a number of processing resources (e.g., one or more processors, microprocessors, or some other type of controlling circuitry). The system 100 can include separate integrated circuits or both the host 110 and the memory device 120 can be on the same integrated circuit. The system 100 can be, for instance, a server system and/or a high performance computing (HPC) system and/or a portion thereof. Although the example shown in FIG. 1 illustrates a system having a Von Neumann architecture, embodiments of the present disclosure can be implemented in non-Von Neumann architectures, which may not include one or more components (e.g., CPU, ALU, etc.) often associated with a Von Neumann architecture.


For clarity, the system 100 has been simplified to focus on features with particular relevance to the present disclosure. The memory array 130 can be a DRAM array, SRAM array, STT RAM array, PCRAM array, TRAM array, RRAM array, NAND flash array, and/or NOR flash array, for instance. The array 130 can comprise memory cells arranged in rows coupled by access lines, which may be referred to herein as word lines or select lines, and columns coupled by sense lines, which may be referred to herein as data lines or digit lines. Although a single array 130 is shown in FIG. 1, embodiments are not so limited. For instance, memory device 120 may include a number of arrays 130 (e.g., a number of banks of DRAM cells, NAND flash cells, etc.).


The memory device 120 includes address circuitry 142 to latch address signals provided over a bus 156 through I/O circuitry 144 and/or to latch address signals provided over control bus 154. Address signals are received through address circuitry 142 and decoded by a row decoder 146 and a column decoder 152 to access the memory array 130. The I/O circuitry 144 can be used for bidirectional data communication with host 110 over the bus 156. The write circuitry 148 is used to write data to the memory array 130. In FIG. 1, bus 156 serves as a combined address/data bus; however, embodiments are not so limited. For example, a control bus, address bus, and/or data bus may be separate buses.


Controller 140, e.g., bank control logic and/or sequencer, decodes signals provided by control bus 154 from the host 110. These signals can include chip enable signals, write enable signals, and address latch signals that are used to control operations performed on the memory array 130, including data read, data write, and data erase operations. In various embodiments, the controller 140 is responsible for executing instructions from the host 110 and sequencing access to the array 130. The controller 140 can be a state machine (e.g., hardware and/or firmware in the form of an application specific integrated circuit (ASIC)), a sequencer, or some other type of controller.


The controller 140 can control, for example, reading and writing scan vectors into and out of the memory array 130, and/or can control timing of scan chain operations performed on a scan vector. As used herein, a “scan chain operation” includes one or more of: receiving (e.g., scanning in, shifting in) an input scan vector, storing (e.g., capturing) the scan vector, and writing (e.g., scanning out, shifting out) the resultant scan vector out of a serializer/de-serializer and/or device under test. For example, according to embodiments, a scan vector can be loaded into a serializer/de-serializer and/or device under test. The scan vector can be stored, for example, by asserting a capture clock pulse, and the resultant scan vector can be shifted out of the serializer/de-serializer and/or device under test, for example, to a portion of the memory array 130.



FIG. 2 is a prior art block diagram of an apparatus for performing scan chain operations in a computing system in accordance with some previous approaches to scan chain testing. Scan chain testing can be used to set and observe storage elements in a piece of hardware, for example. By setting and observing storage elements in a scan, internal nodes of a piece of hardware can be tested. In the previous approach shown in FIG. 2, a scan chain is formed by a plurality of flip-flops 294-1, 294-2, . . . , 294-N. Each of the flip-flops 294-1, 294-2, . . . , 294-N can include a data input D, a data output Q, and/or clock signal input 295-1, 295-2, . . . , 295-N. In some embodiments, the flip-flops 294-1, 294-2, . . . , 294-N can be serially coupled to form the scan chain. That is, the plurality of flip-flops 294-1, 294-2, . . . , 294-N can be configured for use in scan chain testing. For example, a data input D of a respective storage element (e.g., 294-2) is coupled to data output Q of a preceding storage element (e.g., 294-1).


Scan testing may be done using the apparatus shown in FIG. 2 in order to detect manufacturing faults in the combinational logic 296. In order to do so, nodes within the combinational logic 296 may be excited by applying input vectors at the flip-flops of the scan chain. At the beginning of a scan testing operation, a scan enable signal may be asserted on scan enable signal line 253. Responsive to assertion of the scan enable signal, data may be shifted in to each of the flip-flops 294-1, . . . , 294-N such that the flip-flops 294-1, . . . , 294-N are loaded with an input vector. Subsequently, a clock pulse may be asserted on CLK signal line 251 to excite the combinational logic 296. The output is then captured and compared to an expected signature to determine if there are manufacturing faults in the combinational logic 296.



FIG. 3 is a block diagram of an apparatus for performing scan chain operations in a computing system in accordance with a number of embodiments of the present disclosure. As shown in FIG. 3, a memory array 330 may include a plurality of memory banks 331-1 (Bank A), . . . , 331-N (Bank N), which may be coupled to a serializer/de-serializer 334 via native data paths 373 and 375. The native datapaths 373 and 375 may include functional units (e.g., arithmetic logic units, multipliers, etc. to perform data processing operations), registers, and/or buses. In some embodiments, the native datapaths may be DRAM or DDR data paths configured to allow data transfer between specific locations of the memory.


The native datapaths 373 and 375 may be used to transfer data from the memory array 330 to the serializer/de-serializer 334 and from the serializer/de-serializer 334 to the memory array 330. In some embodiments, native datapath 373 may be used to transfer a scan vector from memory bank 331-1 of the memory array 330 to the serializer/de-serializer 334, while native datapath 375 may be used to transfer a scan vector (e.g., a resultant scan vector as described in more detail, herein) from the serializer/de-serializer 334 to another memory bank 331-N of the memory array 330.


The serializer/de-serializer 334 may include logic and/or a plurality of data (DQ) pins. Bidirectional data signals may be sent and/or received via the DQ. In some embodiments, the serializer/de-serializer 334 may include parallel-to-serial converters and/or serial-to-parallel converters to serialize or de-serialize data received or sent by the serializer/de-serializer 334. For example, the serializer/de-serializer 334 may be configured to read data (e.g., receive data) in parallel (e.g., using the DQ pins) from the memory array 330 and convert the data to a serial data stream. Similarly, the serializer/de-serializer may be configured to convert the serial data into parallel data and write the data (e.g., send the data) in parallel (e.g., using the DQ pins) to a device under test 338. The device under test 338 may be any electronic assembly that is testable using scan insertion techniques. In some embodiments, the serializer/de-serializer 334 may receive serial data from the device under test 338 (e.g., a resultant serial scan vector), convert the data to parallel, and send the parallel data (e.g., the resultant parallelized scan vector) to the memory array 330. Parallel data may be transferred via native datapaths 373 and 375, and serial data may be transferred via SCAN IN path 355 and SCAN OUT path 357.


In some embodiments, native datapath 373 and/or native datapath 375 may be n-bit datapaths. For example, native datapath 373 and/or native datapath 375 may be capable of transferring n-bits of data in a given period of time. The serializer/de-serializer 334 may, in some embodiments, include m DQ pins and therefore may be capable of outputting an m-bit parallel word. In such examples,






n
2





bits may be scanned into the device under test 338, and






n
2





bits may be scanned out of the device under test 338 in






m
2





parallel scan chains. That is, in some embodiments, the serializer/de-serializer 334 may be configured to send an






n
2





bit scan vector to the device under test 338 via SCAN IN path 355, and receive an






n
2





bit resultant scan vector output from the device under test 338 via SCAN OUT path 357.


In some embodiments, the datapath (e.g., native datapaths 373/375 and/or SCAN IN path 355/SCAN OUT path 357) may be modified such that half of the datapath (e.g., native data path 373 and/or SCAN IN path 355) may be used for writes and half of the datapath (e.g., native datapath 375 and/or SCAN OUT path 357) may be used for reads at any given time. For example, half of the datapath






(


e
.
g
.

,


n
2






bits


)





may be used for writes concurrently with the other half of the datapath






(


e
.
g
.

,


n
2






bits


)





being used for reads.


As an example, the memory array 330 may comprise a 4 Gb×8 DDR4 SDRAM memory device, which may have n=64 and m=8. In this example, the serializer/de-serializer 334 may include a 32-bit






(

n
2

)





read bus (e.g., may include 4 input DQ pins by 8 burst bits) and a 32-bit






(

n
2

)





write bus (e.g., may include 4 output DQ pins by 8 burst bits) with






4


(

m
2

)






parallel scan chains. Embodiments are not so limited; however. Although described above in connection with a DDR4 SDRAM device, the memory array 330 may include a DDR2, DDR3, or other suitable DRAM memory device.


In some embodiments, scan control logic 336 is configured to control which half of a word (e.g., which






n
2





bit portion of an n-bit word) is used for writes and which half of the word is used for reads. For example, scan control logic 336 may be configured to control which 32-bit portion of a 64-bit word is used for writes and which 32-bit portion of the 64-bit word is used for reads. In some embodiments, a first






n
2





bit portion of the word may be a scan vector, and a second






n
2





bit portion of the word may be a resultant scan vector.


The serializer/de-serializer 334 may include circuitry to control operation of the serializer/de-serializer 334. For example, the serializer/de-serializer 334 may include driver and/or input buffers, parallel-to-serial and/or serial-to-parallel converters, circuitry for receiving data (e.g., scan vectors from memory array 330) and/or clock signals (e.g., external clock signal XCLK 359), and circuitry for receiving control signals (e.g., via scan control signal line 368) from the scan control logic 336.


In some embodiments, the serializer/de-serializer 334 is configured to transfer a scan vector via SCAN IN path 355, such as a scan vector received from the memory array 330 via native datapath 373, to the device under test 338. The serializer/de-serializer 334 may be configured to transfer the scan vector to the device under test 338 in response to receipt of a scan control signal from the scan control logic 336. The scan control signal may be sent from the scan control logic 336 to the serializer/de-serializer 334 via scan control signal line 368.


The scan control logic 336 may be provided on-chip and may be configured to control operation of the serializer/de-serializer 334 via scan control signals sent via scan control signal line 368. Scan control logic 336 may include an interface for interacting with the memory array 330 (e.g., via bank control 332), serializer/de-serializer 334, and/or device under test 338. For example, scan control logic 336 may include an interface that may be configured to control data movement (e.g., may control “steering” data into the scan chain) to facilitate performance of a scan chain operation. In some embodiments, the scan control logic 336 may keep track of which bit in the scan vector is currently be used in order to control timing (e.g., clocking) of the scan vector.


Scan control logic 336 may be configured to generate and assert various signals via scan control signal line 368, CLK signal line 351, read/write activation signal line 364, and scan enable signal line 353/365, etc. For example, scan control logic 336 may assert first-in-first-out (FIFO)/serializer/de-serializer/clocking signals via scan control signal line 368 to control the serializer/de-serializer 334 to perform various tasks and/or operations, as described above. In some embodiments, clock signals may be asserted on CLK signal line 351. For example, clock signals to control timing of performance of a scan chain operation may be asserted by the scan control logic 336 to the device under test 338 via CLK signal line 351.


A control signal to activate read and write operations for the memory array 330 may be asserted on read/write activation signal line 364. In some embodiments, the control signal to activate read and write operations for the memory array 330 may activate bank control 332, which is coupled to each bank in the memory array 330 via bank control signal lines 366-1, . . . , 366-N. For example, responsive to receipt of the control signal to activate read and write operations for the memory array 330, bank control 332 may send additional control signals to banks 331-1, . . . , 331-N of the memory array 330 to cause data to be read from the memory array 330 or written to the memory array 330.


In some embodiments, the scan control logic 336 may be configured to assert a scan enable signal on scan enable signal line 353/365 to enable a scan chain operation to be performed. When the scan enable signal is asserted on scan enable signal line 353/365, the scan control logic 336 may take over control of access of the memory array 330. By providing control of access to the memory array 330 to the scan control logic 336 responsive to assertion of the scan enable signal, the scan control logic 336 can coordinate operation of the serializer/de-serializer 334 as part of performing a scan chain operation on a scan vector.


Scan control logic 336 may include one or more state machines to access the memory array 330. The state machine(s) may be used to keep track of row and column addresses for data in the memory array 330 as scan vectors are transferred into or out of the memory array 330, for example to the serializer/de-serializer 334 and/or the device under test 338. In some embodiments, the state machine(s) may receive input from a register (e.g., a current bit register), which is not explicitly shown in FIG. 3, to select a next row of data to be used for a scan chain operation once the current row of data is exhausted.


The current bit register may be used to count (or keep track of) a bit in the scan vector that is currently being read from the memory array 330, scanned in (e.g., at 355) to the device under test 338, scanned out (e.g., at 357) of the device under test 338, and/or written to the memory array 330. The current bit register may be included in the scan control logic 336, or the current bit register may be located external to the scan control logic 336 so long as the current bit register is communicatively coupled to the scan control logic 336. The current bit register may be used as a counter when performing a scan chain operation on a scan vector. In some embodiments, when the current bit (as determined by the current bit register, for example) is the last bit in a scan vector (e.g., when current bit==vector length), the device under test 338 may be clocked and a next scan vector may be scanned in (e.g., loaded) into the device under test 338. This may occur during a “cycle machine” mode (e.g., cycle machine 463 illustrated and discussed in more detail in connection with FIG. 4, herein) of the scan chain operation.


In some embodiments, the scan control logic 336 may include other registers in addition to the current bit register. For example, the scan control logic 336 may include vector length register(s), number of tests register(s), test number register(s), etc. that may be used to control performance of the scan chain operation and/or may be used as part of preparing for performing a scan chain operation.


The vector length register(s) may be used to control the length of the scan vector. In the case of a 16 bit vector length register, there may be 64 pre-fetches, however, the vector length register may comprise more than 16 bits or fewer than 16 bits, which may alter the number of pre-fetches that may be performed. In the example where the memory array 330 is a DDR4 memory device, there may be 32 bits per pre-fetch, which may allow for a scan vector length of 2 Mb.


The number of tests register(s) may be used to determine how many scan vectors are to be scanned in (e.g., at 355) to the device under test 338 and have a scan chain operation performed thereon. In some embodiments, the number of tests register(s) may be 16 bits in length, however, the number of tests register(s) may comprise more than 16 bits or fewer than 16 bits, which may alter the number of scan vectors that may have a scan chain operation performed thereon.


The test number register(s) may be used to count (or keep track of) how many scan vectors are to be scanned in to the device under test 338 for scan chain operations and/or may count (or keep track of) how many scan vectors have already been scanned in to the device under test 338 for scan chain operations. When a threshold number of scan vectors have been scanned in to the device under test 338 for scan chain operations, the test number register(s) may cause performance of scan chain operations to stop. For example, when test number==number of tests, scan chain operations may be stopped. In some embodiments, the test number register(s) may be 16 bits in length, however, the test number register(s) may comprise more than 16 bits or fewer than 16 bits.


In some embodiments, the scan control logic 336 may include an interface to facilitate access to the registers. The scan control logic 336 may be programmed using a load mode register (LMR) command. For example, the scan control logic 336 may include address buses (e.g., a row address bus and a column address bus), which may be activated responsive to the LMR command, to facilitate access to the scan control logic 336 registers. In some embodiments, a test-mode LMR command may be received by the scan control logic 336 prior to loading data into the registers.


In some embodiments, the scan control logic 336 may issue commands (e.g., via its state machine(s)) to read data from the memory array 330 or write data to the memory array 330 until a current bit is the length of the scan vector (e.g., until a particular row of data is exhausted). Such commands may include commands to read data from a source memory bank (e.g., Bank A) of the memory array 330 and commands to write data to a destination memory bank (e.g., Bank B) of the memory array 330. Once the particular row of data is exhausted, the scan control logic 336 may close the particular row, open a new row of data, and continue issuing commands to the memory array to read the new row of data from the memory array 330 or write a new row of data to the memory array 330. As described above, such commands may be issued via assertion of a signal on the read/write activation signal line 364 and/or in response to assertion of signals by the bank control 332 to the memory array 330 via bank control signal lines 366-1, . . . , 366-N. In some embodiments, the bank control 332 may assert such signals in response to receipt of a signal asserted by the scan control logic 336 via the read/write activation signal line 364.


In some embodiments, the source addresses and destination addresses of scan vectors stored in the memory array 330 may be the same, but located in different banks of the memory array 330. For example, a source address for a scan vector in a first bank (e.g., 331-1) may be the same address as a destination address for a resultant scan vector in a second bank (e.g., 331-N). In some embodiments, the different banks (e.g., Bank A, Bank N, etc.) may share portions of a global data bus to facilitate communication between the banks of the memory array 330. Embodiments are not so limited, however, and the source and destination addresses of scan vectors stored in the memory array 330 may be different and may be located in different banks of the memory array 330.


As described above, the device under test 338 is configured to receive scan vectors during SCAN IN 355, perform a scan chain operation on the scan vector, and output a resultant scan vector during SCAN OUT 357. The scan vector may be received from the serializer/de-serializer 334, and the resultant scan vector may be sent back to the serializer/de-serializer 334. In some embodiments, the device under test 338 may include logic (e.g., flip-flops, shift registers, etc.) to be tested during the scan chain operation. The device under test may be any device that is capable of scan insertion. For example, the device under test 338 may be a synchronously clocked device.


In some embodiments, the device under test may be coupled to an external interface via external interface signal line 372. The external interface may be an external DRAM interface and may include, for example, a command bus, address bus, on-die termination, and pins to asserts row address strobe signals, column address strobe signals, activate signals (e.g., ACT signals to activate a row or page of DRAM), column select signals, and/or clock enable signals. The device under test 338 may also be coupled to an external clock signal which may be asserted via XCLK signal line 359. As shown in FIG. 3, XCLK signal line 359 may also be coupled to the serializer/de-serializer 334 and/or scan chain logic 336, and may be configured to pass the asserted external clock signal to serializer/de-serializer 334 and/or the scan chain logic 336.


The device under test 338 may receive a clock signal from the scan control logic 336 via CLK signal line 351. The clock signal may be used to facilitate timing of performance of the scan chain operation by the device under test 338. Further details regarding assertion of the clock signal to control timing of the scan chain operation are described in connection with FIG. 4, herein.


The device under test 338 may receive a scan enable signal from the scan control logic 336 via scan enable signal line 353 to enable a scan chain operation to be performed. As described above, when the scan enable signal is asserted on scan enable signal line 353, the scan control logic 336 may take over control of access of the memory array 330.


In some embodiments, the device under test may send array control signals via array control interface 362. The array control signals asserted via the array control interface 362 may include read/write signals, row address select and/or column address select signals, as well as various activate signals such as activate bank signals and/or activate column signals. The array control signals may be muxed (e.g., by multiplexer 377) scan control signals sent from the scan control logic 336 via scan control signal line 371. In some embodiments, the select line of the multiplexer 377 may be driven with the scan enable signal sent from the scan control logic 336 via scan enable signal line 365 to select between asserting the array control signals or the scan control signals.



FIG. 4 is a timing diagram for performing scan chain operations in accordance with a number of embodiments of the present disclosure. Timing as described in connection with FIG. 4 may be controlled by a controller such as controller 140 illustrated in FIG. 1 or scan control logic 336 illustrated in FIG. 3. The controller can include a clock signal 451, for example, a timing component or timing circuitry in the form of hardware and/or transistor circuitry. Clock signal 451 can be provided to control timing of performing a scan chain operation. In order to initiate a scan chain operation, scan enable signal 453 can be driven to a high state by the controller to scan in signal 455 a scan vector 461. As shown in FIG. 4, the scan in vector 461 (e.g., a first scan in vector) can include a plurality of data values AI5, AI4, AI3, AI2, AI1, and AI0. A second scan in vector is represented by BI5, BI4, BI3, BI2, BI1, BI0, and a third scan in vector is shown starting with CI5. Although 6 data values are shown for the first and second scan in vectors, the number of data values may be greater than or less than 6 data values.


Once the scan vector 461 has been scanned in (e.g., by asserting scan in signal 455) the scan enable signal 453 can be driven low to store (e.g., “capture”) the scan vector 461, for example, by providing a clock cycle signal 463. The clock cycle pulse 463 can toggle logic of the scan chain. In at least one embodiment, capturing the scan vector 461 can include exciting the device under test (e.g., device under test 338 illustrated in FIG. 3). In some embodiments, the clock cycle pulse 463 may be a capture pulse.


Following the clock cycle pulse 463, scan enable 453 can be driven high again and a second scan vector 467 can be scanned in (e.g., by asserting scan in signal 455). The resultant scan vector 469 from scan vector 461 can be scanned out (e.g., by asserting scan out signal 457). A first scan out vector is shown in FIG. 4 as AO5, AO4, AO3, AO2, AO1, AO0. In at least one embodiment, resultant scan vector 469 can be scanned out in parallel with second scan vector 467 being scanned in (e.g., by asserting scan in signal 453), as shown at the bottom portion of FIG. 4 where a scan in vector containing data values BI5-BI0 is scanned in parallel with scan out vector containing data values AO5-AO0 being scanned out.


In some embodiments, scan vectors 461 of various lengths can be subjected to scan chain operations. For example, if a scan vector (e.g., second scan vector 467) is longer than a remaining length of a page of DRAM, the scan vector (e.g., second scan vector 467) can be split into one or more portions that are each shorter than a maximum length available to be scanned in. In this example, a next portion of the scan vector can be scanned in (e.g., by asserting scan enable signal 453) in response to completion of a scan chain operation on a previous portion of the scan vector. However, if the length of the scan vector (e.g., scan vector 461) is less than a page size of DRAM, the scan vector may not need to be divided into one or more portions, and the scan chain operation can be completed without fetching additional portions of the scan vector. In at least one embodiment, determining if a scan vector 461 is to be split into one or more portions, and/or coordination of performing scan chain operations on one or more portions of a truncated scan vector 461 is controlled by a controller (e.g., controller 140, scan control logic 336). In some embodiments, a memory tester can be provided to perform scan vector 461 truncation and coordination.


Some embodiments allow for on-die comparison between a resultant scan vector 469 and an expected result vector. In at least one embodiment, compression can be implemented in the memory array (e.g., memory array 130 illustrated in FIG. 1, memory array 330 illustrated in FIG. 3), which can allow for a final pattern read out to be presented as a pass/fail flag. For example, the sensing circuitry can provide ample elements to perform a comparison of the resultant scan vector 469 to a base set of expected data and/or to perform compression computations to reduce a size of the resultant scan vector 469.


In some embodiments, an example procedure for performing scan chain operations can include writing one or more input scan vectors and/or expected output vectors to DRAM. In some embodiments, applying an XNOR operation to the output scan vector 469 and the expected output vector can compress the result such that the final result can be stored as a single bit (e.g., a pass/fail flag).


Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement calculated to achieve the same results can be substituted for the specific embodiments shown. This disclosure is intended to cover adaptations or variations of one or more embodiments of the present disclosure. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Combination of the above embodiments, and other embodiments not specifically described herein will be apparent to those of skill in the art upon reviewing the above description. The scope of the one or more embodiments of the present disclosure includes other applications in which the above structures and methods are used. Therefore, the scope of one or more embodiments of the present disclosure should be determined with reference to the appended claims, along with the full range of equivalents to which such claims are entitled.


In the foregoing Detailed Description, some features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the disclosed embodiments of the present disclosure have to use more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.

Claims
  • 1. An apparatus, comprising: a device under test; andscan control logic coupled to the device under test, the scan control logic comprising: an interface to provide communication with a memory array; anda state machine to determine a row of data stored in the memory array to be used as a scan vector,wherein the device under test is configured to: perform a scan chain operation on the scan vector responsive to receipt of a scan chain control signal, andsend a resultant output scan vector to a serializer/de-serializer coupled to the device under test, the scan control logic, and the memory array.
  • 2. The apparatus of claim 1, wherein the serializer/de-serializer is further configured to send the resultant output scan vector to the memory array.
  • 3. The apparatus of claim 1, wherein the memory array comprises: a first memory bank to: store the scan vector; andcontrol sending the scan vector to a serializer/de-serializer coupled to the memory array and the scan control logic; anda second memory bank to receive a resultant output scan vector from the serializer/de-serializer in response to completion of the scan chain operation.
  • 4. The apparatus of claim 1, wherein the scan control logic is configured to control access to the memory array responsive to initiation of the scan chain control signal.
  • 5. The apparatus of claim 1, wherein the scan control logic is configured to issue column commands to the memory array to cause the scan vector to be read from a first memory bank of the array and resultant output scan vectors to be written to a second memory bank of the array.
  • 6. The apparatus of claim 1, further comprising timing control circuitry to send the scan chain control signal to the device under test.
  • 7. An apparatus, comprising: a memory array comprising a plurality of memory banks and coupled to a serializer/de-serializer;scan control logic coupled to the serializer/de-serializer and a device under test, the scan control logic comprising logic configured to: determine data stored in the memory array to be used as a scan vector; andsend a scan chain control signal to the device under test to cause the device under test to perform a scan chain operation using the scan vector.
  • 8. The apparatus of claim 7, wherein the scan control logic further comprises a register to track a bit of the scan vector that is being read from the memory array, a bit of the scan vector that is being scanned into the device under test, a bit of the scan vector that is being scanned out of the device under test, or combinations thereof.
  • 9. The apparatus of claim 7, wherein the logic comprises a state machine configured to cause the scan vector to be transferred from the memory array to the device under test.
  • 10. The apparatus of claim 7, wherein the logic comprises a state machine configured to cause a resultant output scan vector to be transferred to the serializer/de-serializer.
  • 11. The apparatus of claim 7, wherein the scan control logic further comprises timing control circuitry, and wherein a state machine is further configured to cause the timing control circuitry to generate the scan chain control signal.
  • 12. The apparatus of claim 7, wherein the serializer/de-serializer is further configured to cause a resultant output scan vector to be transferred to the memory array.
  • 13. The apparatus of claim 7, wherein logic comprises a state machine configured to: cause the scan vector to be read from a first memory bank of the memory array; and cause a resultant output scan vector to be written to a second memory bank of the memory array.
  • 14. A method, comprising: determining, by control logic coupled to a device under test, data stored in a memory array to be used as a scan vector;receiving, by the device under test, a scan chain control signal;performing a scan chain operation on the scan vector in response to receipt of the scan chain control signal; andtransferring a resultant output scan vector to a serializer/de-serializer coupled to the device under test.
  • 15. The method of claim 14, wherein receiving the scan chain control signal further comprises receiving the scan chain control signal from timing control circuitry coupled to the device under test.
  • 16. The method of claim 14, further comprising transferring, by the serializer/de-serialized the resultant output scan vector to the memory array.
  • 17. The method of claim 14, further comprising issuing a command to the memory array to cause the scan vector to be read from a first memory bank of the array and a resultant output scan vector to be written to a second memory bank of the array.
  • 18. The method of claim 14, further comprising receiving, by the device under test, the scan vector via a native datapath of the memory array.
  • 19. An apparatus, comprising: a device under test; andscan control logic coupled to the device under test, the scan control logic comprising: an interface to provide communication with a memory array; anda state machine to determine a row of data stored in the memory array to be used as a scan vector,wherein the device under test is configured to perform a scan chain operation on the scan vector responsive to receipt of a scan chain control signal, andwherein the memory array comprises: a first memory bank to: store the scan vector; andcontrol sending the scan vector to a serializer/de-serializer coupled to the memory array and the scan control logic; anda second memory bank to receive a resultant output scan vector from the serializer/de-serializer in response to completion of the scan chain operation.
  • 20. An apparatus, comprising: a device under test; andscan control logic coupled to the device under test, the scan control logic comprising: an interface to provide communication with a memory array; anda state machine to determine a row of data stored in the memory array to be used as a scan vector,wherein the device under test is configured to perform a scan chain operation on the scan vector responsive to receipt of a scan chain control signal, andwherein the scan control logic is configured to issue column commands to the memory array to cause the scan vector to be read from a first memory bank of the array and resultant output scan vectors to be written to a second memory bank of the array.
  • 21. A method, comprising: determining, by control logic coupled to a device under test, data stored in a memory array to be used as a scan vector;receiving, by the device under test, a scan chain control signal;performing a scan chain operation on the scan vector in response to receipt of the scan chain control signal; andissuing a command to the memory array to cause the scan vector to be read from a first memory bank of the array and a resultant output scan vector to be written to a second memory bank of the array.
PRIORITY INFORMATION

This application is a Divisional of U.S. application Ser. No. 15/672,512, filed Aug. 9, 2017, which issues as U.S. Pat. No. 10,162,005 on Dec. 25, 2018, the contents of which are included herein by reference.

US Referenced Citations (329)
Number Name Date Kind
4380046 Fung Apr 1983 A
4435792 Bechtolsheim Mar 1984 A
4435793 Ochii Mar 1984 A
4727474 Batcher Feb 1988 A
4843264 Galbraith Jun 1989 A
4891809 Hazawa Jan 1990 A
4958378 Bell Sep 1990 A
4977542 Matsuda et al. Dec 1990 A
5023838 Herbert Jun 1991 A
5034636 Reis et al. Jul 1991 A
5201039 Sakamura Apr 1993 A
5210850 Kelly et al. May 1993 A
5253308 Johnson Oct 1993 A
5276643 Hoffmann et al. Jan 1994 A
5325519 Long et al. Jun 1994 A
5341382 Levitt Aug 1994 A
5349587 Nadeau-Dostie et al. Sep 1994 A
5367488 An Nov 1994 A
5379257 Matsumura et al. Jan 1995 A
5383143 Crouch et al. Jan 1995 A
5386379 Ali-Yahia et al. Jan 1995 A
5398213 Yeon et al. Mar 1995 A
5414714 Gladden May 1995 A
5440482 Davis Aug 1995 A
5446690 Tanaka et al. Aug 1995 A
5473576 Matsui Dec 1995 A
5481500 Reohr et al. Jan 1996 A
5485373 Davis et al. Jan 1996 A
5506811 McLaury Apr 1996 A
5550843 Yee Aug 1996 A
5615404 Knoll et al. Mar 1997 A
5638128 Hoogenboom Jun 1997 A
5638317 Tran Jun 1997 A
5654936 Cho Aug 1997 A
5678021 Pawate et al. Oct 1997 A
5724291 Matano Mar 1998 A
5724366 Furutani Mar 1998 A
5751987 Mahant-Shetti et al. May 1998 A
5787458 Miwa Jul 1998 A
5854636 Watanabe et al. Dec 1998 A
5867429 Chen et al. Feb 1999 A
5870504 Nemoto et al. Feb 1999 A
5915084 Wendell Jun 1999 A
5935263 Keeth et al. Aug 1999 A
5986942 Sugibayashi Nov 1999 A
5991209 Chow Nov 1999 A
5991785 Alidina et al. Nov 1999 A
6005799 Rao Dec 1999 A
6009020 Nagata Dec 1999 A
6070255 Dell et al. May 2000 A
6092186 Betker et al. Jul 2000 A
6122211 Morgan et al. Sep 2000 A
6125071 Kohno et al. Sep 2000 A
6134164 Lattimore et al. Oct 2000 A
6147514 Shiratake Nov 2000 A
6151244 Fujino et al. Nov 2000 A
6157578 Brady Dec 2000 A
6163862 Adams et al. Dec 2000 A
6166942 Vo et al. Dec 2000 A
6172918 Hidaka Jan 2001 B1
6175514 Henderson Jan 2001 B1
6181698 Hariguchi Jan 2001 B1
6208544 Beadle et al. Mar 2001 B1
6226215 Yoon May 2001 B1
6301153 Takeuchi et al. Oct 2001 B1
6301164 Manning et al. Oct 2001 B1
6304477 Naji Oct 2001 B1
6389507 Sherman May 2002 B1
6418498 Martwick Jul 2002 B1
6466499 Blodgett Oct 2002 B1
6510098 Taylor Jan 2003 B1
6563754 Lien et al. May 2003 B1
6578058 Nygaard Jun 2003 B1
6731542 Le et al. May 2004 B1
6754746 Leung et al. Jun 2004 B1
6768679 Le et al. Jul 2004 B1
6807614 Chung Oct 2004 B2
6816422 Hamade et al. Nov 2004 B2
6819612 Achter Nov 2004 B1
6894549 Eliason May 2005 B2
6943579 Hazanchuk et al. Sep 2005 B1
6948056 Roth Sep 2005 B1
6950771 Fan et al. Sep 2005 B1
6950898 Merritt et al. Sep 2005 B2
6956770 Khalid et al. Oct 2005 B2
6961272 Schreck Nov 2005 B2
6965648 Smith et al. Nov 2005 B1
6985394 Kim Jan 2006 B2
6987693 Cernea et al. Jan 2006 B2
7020017 Chen et al. Mar 2006 B2
7028170 Saulsbury Apr 2006 B2
7045834 Tran et al. May 2006 B2
7054178 Shiah et al. May 2006 B1
7061817 Raad et al. Jun 2006 B2
7079407 Dimitrelis Jul 2006 B1
7173857 Kato et al. Feb 2007 B2
7187585 Li et al. Mar 2007 B2
7196928 Chen Mar 2007 B2
7260565 Lee et al. Aug 2007 B2
7260672 Garney Aug 2007 B2
7372715 Han May 2008 B2
7400532 Aritome Jul 2008 B2
7406494 Magee Jul 2008 B2
7447720 Beaumont Nov 2008 B2
7454451 Beaumont Nov 2008 B2
7457181 Lee et al. Nov 2008 B2
7535769 Cernea May 2009 B2
7546438 Chung Jun 2009 B2
7562198 Noda et al. Jul 2009 B2
7574466 Beaumont Aug 2009 B2
7602647 Li et al. Oct 2009 B2
7663928 Tsai et al. Feb 2010 B2
7685365 Rajwar et al. Mar 2010 B2
7692466 Ahmadi Apr 2010 B2
7752417 Manczak et al. Jul 2010 B2
7791962 Noda et al. Sep 2010 B2
7796453 Riho et al. Sep 2010 B2
7805587 Van Dyke et al. Sep 2010 B1
7808854 Takase Oct 2010 B2
7827372 Bink et al. Nov 2010 B2
7869273 Lee et al. Jan 2011 B2
7898864 Dong Mar 2011 B2
7924628 Danon et al. Apr 2011 B2
7937535 Ozer et al. May 2011 B2
7957206 Bauser Jun 2011 B2
7979667 Allen et al. Jul 2011 B2
7996749 Ding et al. Aug 2011 B2
8042082 Solomon Oct 2011 B2
8045391 Mohklesi Oct 2011 B2
8059438 Chang et al. Nov 2011 B2
8095825 Hirotsu et al. Jan 2012 B2
8117462 Snapp et al. Feb 2012 B2
8127187 Xia Feb 2012 B2
8164942 Gebara et al. Apr 2012 B2
8208328 Hong Jun 2012 B2
8213248 Moon et al. Jul 2012 B2
8223568 Seo Jul 2012 B2
8238173 Akerib et al. Aug 2012 B2
8274841 Shimano et al. Sep 2012 B2
8279683 Klein Oct 2012 B2
8310884 Iwai et al. Nov 2012 B2
8332367 Bhattacherjee et al. Dec 2012 B2
8339824 Cooke Dec 2012 B2
8339883 Yu et al. Dec 2012 B2
8347154 Bahali et al. Jan 2013 B2
8351292 Matano Jan 2013 B2
8356144 Hessel et al. Jan 2013 B2
8417921 Gonion et al. Apr 2013 B2
8462532 Argyres Jun 2013 B1
8484276 Carlson et al. Jul 2013 B2
8495438 Roine Jul 2013 B2
8499209 Rajski Jul 2013 B2
8503250 Demone Aug 2013 B2
8526239 Kim Sep 2013 B2
8533245 Cheung Sep 2013 B1
8555037 Gonion Oct 2013 B2
8599613 Abiko et al. Dec 2013 B2
8605015 Guttag et al. Dec 2013 B2
8625376 Jung et al. Jan 2014 B2
8644101 Jun et al. Feb 2014 B2
8650232 Stortz et al. Feb 2014 B2
8873272 Lee Oct 2014 B2
8964496 Manning Feb 2015 B2
8971124 Manning Mar 2015 B1
9015390 Klein Apr 2015 B2
9047193 Lin et al. Jun 2015 B2
9165023 Moskovich et al. Oct 2015 B2
9383409 Chen et al. Jul 2016 B2
20010007112 Porterfield Jul 2001 A1
20010008492 Higashiho Jul 2001 A1
20010010057 Yamada Jul 2001 A1
20010028584 Nakayama et al. Oct 2001 A1
20010043089 Forbes et al. Nov 2001 A1
20020059355 Peleg et al. May 2002 A1
20020154536 Perner Oct 2002 A1
20020162069 Laurent Oct 2002 A1
20030005359 Magliocco Jan 2003 A1
20030056164 Lauga Mar 2003 A1
20030065996 Shimada et al. Apr 2003 A1
20030067043 Zhang Apr 2003 A1
20030167426 Slobodnik Sep 2003 A1
20030204795 Adams et al. Oct 2003 A1
20030222879 Lin et al. Dec 2003 A1
20040073592 Kim et al. Apr 2004 A1
20040073773 Demjanenko Apr 2004 A1
20040085840 Vali et al. May 2004 A1
20040095826 Perner May 2004 A1
20040154002 Ball et al. Aug 2004 A1
20040205289 Srinivasan Oct 2004 A1
20040240251 Nozawa et al. Dec 2004 A1
20050015557 Wang et al. Jan 2005 A1
20050078514 Scheuerlein et al. Apr 2005 A1
20050097417 Agrawal et al. May 2005 A1
20060047937 Selvaggi et al. Mar 2006 A1
20060069849 Rudelic Mar 2006 A1
20060146623 Mizuno et al. Jul 2006 A1
20060149804 Luick et al. Jul 2006 A1
20060181917 Kang et al. Aug 2006 A1
20060215432 Wickeraad et al. Sep 2006 A1
20060225072 Lari et al. Oct 2006 A1
20060291282 Liu et al. Dec 2006 A1
20070103986 Chen May 2007 A1
20070171747 Hunter et al. Jul 2007 A1
20070180006 Gyoten et al. Aug 2007 A1
20070180184 Sakashita et al. Aug 2007 A1
20070195602 Fong et al. Aug 2007 A1
20070285131 Sohn Dec 2007 A1
20070285979 Turner Dec 2007 A1
20070291532 Tsuji Dec 2007 A1
20080025073 Arsovski Jan 2008 A1
20080037333 Kim et al. Feb 2008 A1
20080052711 Forin et al. Feb 2008 A1
20080137388 Krishnan et al. Jun 2008 A1
20080165601 Matick et al. Jul 2008 A1
20080178053 Gorman et al. Jul 2008 A1
20080215937 Dreibelbis et al. Sep 2008 A1
20090067218 Graber Mar 2009 A1
20090154238 Lee Jun 2009 A1
20090154273 Borot et al. Jun 2009 A1
20090254697 Akerib Oct 2009 A1
20090265596 Chen et al. Oct 2009 A1
20100067296 Li Mar 2010 A1
20100091582 Vali et al. Apr 2010 A1
20100172190 Lavi et al. Jul 2010 A1
20100210076 Gruber et al. Aug 2010 A1
20100226183 Kim Sep 2010 A1
20100308858 Noda et al. Dec 2010 A1
20100313089 Rajski Dec 2010 A1
20100332895 Billing et al. Dec 2010 A1
20110051523 Manabe et al. Mar 2011 A1
20110063919 Chandrasekhar et al. Mar 2011 A1
20110093662 Walker et al. Apr 2011 A1
20110103151 Kim et al. May 2011 A1
20110119467 Cadambi et al. May 2011 A1
20110122695 Li et al. May 2011 A1
20110140741 Zerbe et al. Jun 2011 A1
20110219260 Nobunaga et al. Sep 2011 A1
20110267883 Lee et al. Nov 2011 A1
20110317496 Bunce et al. Dec 2011 A1
20120005397 Lim et al. Jan 2012 A1
20120017039 Margetts Jan 2012 A1
20120023281 Kawasaki et al. Jan 2012 A1
20120117436 Portolan May 2012 A1
20120120705 Mitsubori et al. May 2012 A1
20120134216 Singh May 2012 A1
20120134225 Chow May 2012 A1
20120134226 Chow May 2012 A1
20120140540 Agam et al. Jun 2012 A1
20120182798 Hosono et al. Jul 2012 A1
20120195146 Jun et al. Aug 2012 A1
20120198310 Tran et al. Aug 2012 A1
20120246380 Akerib et al. Sep 2012 A1
20120265964 Murata et al. Oct 2012 A1
20120281486 Rao et al. Nov 2012 A1
20120303627 Keeton et al. Nov 2012 A1
20130003467 Klein Jan 2013 A1
20130061006 Hein Mar 2013 A1
20130107623 Kavalipurapu et al. May 2013 A1
20130117541 Choquette et al. May 2013 A1
20130124783 Yoon et al. May 2013 A1
20130132702 Patel et al. May 2013 A1
20130138646 Sirer et al. May 2013 A1
20130163362 Kim Jun 2013 A1
20130173888 Hansen et al. Jul 2013 A1
20130205114 Badam et al. Aug 2013 A1
20130219112 Okin et al. Aug 2013 A1
20130227361 Bowers et al. Aug 2013 A1
20130283122 Anholt et al. Oct 2013 A1
20130286705 Grover et al. Oct 2013 A1
20130318410 Jun et al. Nov 2013 A1
20130326154 Haswell Dec 2013 A1
20130332707 Gueron et al. Dec 2013 A1
20140149812 Tekumalla May 2014 A1
20140185395 Seo Jul 2014 A1
20140215185 Danielsen Jul 2014 A1
20140250279 Manning Sep 2014 A1
20140344934 Jorgensen Nov 2014 A1
20150029798 Manning Jan 2015 A1
20150042380 Manning Feb 2015 A1
20150063052 Manning Mar 2015 A1
20150078108 Cowles et al. Mar 2015 A1
20150120987 Wheeler Apr 2015 A1
20150134713 Wheeler May 2015 A1
20150212151 Picalausa Jul 2015 A1
20150270015 Murphy et al. Sep 2015 A1
20150279466 Manning Oct 2015 A1
20150324290 Leidel Nov 2015 A1
20150325272 Murphy Nov 2015 A1
20150356009 Wheeler et al. Dec 2015 A1
20150356022 Leidel et al. Dec 2015 A1
20150357007 Manning et al. Dec 2015 A1
20150357008 Manning et al. Dec 2015 A1
20150357019 Wheeler et al. Dec 2015 A1
20150357020 Manning Dec 2015 A1
20150357021 Hush Dec 2015 A1
20150357022 Hush Dec 2015 A1
20150357023 Hush Dec 2015 A1
20150357024 Hush et al. Dec 2015 A1
20150357047 Tiwari Dec 2015 A1
20160062672 Wheeler Mar 2016 A1
20160062673 Tiwari Mar 2016 A1
20160062692 Finkbeiner et al. Mar 2016 A1
20160062733 Tiwari Mar 2016 A1
20160063284 Tiwari Mar 2016 A1
20160064045 La Fratta Mar 2016 A1
20160064047 Tiwari Mar 2016 A1
20160098208 Willcock Apr 2016 A1
20160098209 Leidel et al. Apr 2016 A1
20160110135 Wheeler et al. Apr 2016 A1
20160125919 Hush May 2016 A1
20160154596 Willcock et al. Jun 2016 A1
20160155482 La Fratta Jun 2016 A1
20160169966 Abshishek Jun 2016 A1
20160188250 Wheeler Jun 2016 A1
20160196142 Wheeler et al. Jul 2016 A1
20160196856 Tiwari et al. Jul 2016 A1
20160225422 Tiwari et al. Aug 2016 A1
20160266873 Tiwari et al. Sep 2016 A1
20160266899 Tiwari Sep 2016 A1
20160267951 Tiwari Sep 2016 A1
20160292080 Leidel et al. Oct 2016 A1
20160306584 Zawodny et al. Oct 2016 A1
20160306614 Leidel et al. Oct 2016 A1
20160365129 Willcock Dec 2016 A1
20160371033 La Fratta et al. Dec 2016 A1
20170052906 Lea Feb 2017 A1
20170178701 Willcock et al. Jun 2017 A1
20170192844 Lea et al. Jul 2017 A1
20180038910 Kawoosa et al. Feb 2018 A1
Foreign Referenced Citations (13)
Number Date Country
102141905 Aug 2011 CN
0214718 Mar 1987 EP
2026209 Feb 2009 EP
H0831168 Feb 1996 JP
2009259193 Mar 2015 JP
10-0211482 Aug 1998 KR
10-2010-0134235 Dec 2010 KR
10-2013-0049421 May 2013 KR
2001065359 Sep 2001 WO
2010079451 Jul 2010 WO
2013062596 May 2013 WO
2013081588 Jun 2013 WO
2013095592 Jun 2013 WO
Non-Patent Literature Citations (18)
Entry
Dybdahl, et al., “Destructive-Read in Embedded DRAM, Impact on Power Consumption,” Apr. 2006, (10 pgs.), vol. 2, Issue 2, Journal of Embedded Computing-Issues in embedded single-chip multicore architectures.
Kogge, et al., “Processing In Memory: Chips to Petaflops,” May 23, 1997, (8 pgs.), retrieved from: http://www.cs.ucf.edu/courses/cda5106/summer02/papers/kogge97PIM.pdf.
Draper, et al., “The Architecture of the DIVA Processing-In-Memory Chip,” Jun. 22-26, 2002, (12 pgs.), ICS '02, retrieved from: http://www.isi.edu/˜draper/papers/ics02.pdf.
Adibi, et al., “Processing-In-Memory Technology for Knowledge Discovery Algorithms,” Jun. 25, 2006, (10 pgs.), Proceeding of the Second International Workshop on Data Management on New Hardware, retrieved from: http://www.cs.cmu.edu/˜damon2006/pdf/adibi06inmemory.pdf.
U.S. Appl. No. 13/449,082, entitled, “Methods and Apparatus for Pattern Matching,” filed Apr. 17, 2012, (37 pgs.).
U.S. Appl. No. 13/743,686, entitled, “Weighted Search and Compare in a Memory Device,” filed Jan. 17, 2013, (25 pgs.).
U.S. Appl. No. 13/774,636, entitled, “Memory as a Programmable Logic Device,” filed Feb. 22, 2013, (30 pgs.).
U.S. Appl. No. 13/774,553, entitled, “Neural Network in a Memory Device,” filed Feb. 22, 2013, (63 pgs.).
U.S. Appl. No. 13/796,189, entitled, “Performing Complex Arithmetic Functions in a Memory Device,” filed Mar. 12, 2013, (23 pgs.).
International Search Report and Written Opinion for PCT Application No. PCT/US2013/043702, dated Sep. 26, 2013, (11 pgs.).
Pagiamtzis, et al., “Content-Addressable Memory (CAM) Circuits and Architectures: A Tutorial and Survey”, Mar. 2006, (16 pgs.), vol. 41, No. 3, IEEE Journal of Solid-State Circuits.
Pagiamtzis, Kostas, “Content-Addressable Memory Introduction”, Jun. 25, 2007, (6 pgs.), retrieved from: http://www.pagiamtzis.com/cam/camintro.
Debnath, Biplob, Bloomflash: Bloom Filter on Flash-Based Storage, 2011 31st Annual Conference on Distributed Computing Systems, Jun. 20-24, 2011, 10 pgs.
Derby, et al., “A High-Performance Embedded DSP Core with Novel SIMD Features”, Apr. 6-10, 2003, (4 pgs), vol. 2, pp. 301-304, 2003 IEEE International Conference on Accoustics, Speech, and Signal Processing.
“4.9.3 MINLOC and MAXLOC”, Jun. 12, 1995, (5pgs.), Message Passing Interface Forum 1.1, retrieved from http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node79.html.
Stojmenovic, “Multiplicative Circulant Networks Topological Properties and Communication Algorithms”, (25 pgs.), Discrete Applied Mathematics 77 (1997) 281-305.
Boyd et al., “On the General Applicability of Instruction-Set Randomization”, Jul.-Sep. 2010, (14 pgs.), vol. 7, Issue 3, IEEE Transactions on Dependable and Secure Computing.
Elliot, et al., “Computational RAM: Implementing Processors in Memory”, Jan.-Mar. 1999, (10 pgs.), vol. 16, Issue 1, IEEE Design and Test of Computers Magazine.
Related Publications (1)
Number Date Country
20190120902 A1 Apr 2019 US
Divisions (1)
Number Date Country
Parent 15672512 Aug 2017 US
Child 16221233 US