The present invention generally relates to a system, apparatus, and method for testing a memory device and its internal components by coupling the input and the output of the memory device together.
The features of embodiments will become clear from the following description, taking in conjunction with the accompanying drawings. It is to be noted, however, that the accompanying drawings illustrate only typical embodiments and are, therefore, not to be considered limiting of the scope of the invention. It may admit other equally effective embodiments.
The
For example, each storage location 12 is a group of memory cells coupled to one of a plurality of word lines. When a word line is identified by an address, the word line is activated and all the memory cells coupled to the word line are coupled to a corresponding number of sense amplifiers or other kinds of read and write amplifiers via a corresponding number of bit lines.
Each of the memory devices 10 described below with reference to
As an alternative, the memory device 10 comprises one or several semiconductor chips, or dies, (for example semiconductor chips) in a package. In this case, each of the input 13 and the output 14 comprises a number of contacts at one or several outer surfaces of the package. For example, these contacts are small solder contacts arranged in a fine ball grid array (FBGA). Again, at least one of input 13 and the output 14 can, as an alternative or in addition, comprises other kinds of electrical contacts or an optical interface for the reception or transmission, respectively, of optical signals.
As a further alternative, the memory device 10 can be a memory module comprising a printed circuit board and a number of packaged or non-packaged memory devices of any technology (for example DRAM, SRAM, MRAM, FRAM, CBRAM, PCRAM, EEPROM, Flash etc.).
In any case, the input 13 and the output 14 comprise electrical, optical or other interfaces for the reception or transmission, respectively, of signals comprising, or encoding, or representing, data, address or control information.
Each of the memory devices 10 described below with reference to the
Each of the memory devices 10 described below with reference to the
The subsequent description merely refers to one-way communication via each of the input 13, the input path 30, the output 14 and the output path 40. However, each of the input 13, the input path 30, the output 14 and the output path 40 can also be configured for a communication in both directions.
In a normal operating mode, each of the memory devices 10 described below with reference to the
With the particular components described above, the input receiver 31 receives and amplifies the input signals and, to some extent, decodes the information encoded in the input signals. The de-serializing circuit 32 (at least partly) de-serializes the information. In one embodiment of the memory device 10, the de-serializing circuit 32 comprises a number of signal input lines and a number of signal output lines, wherein the number of signal output lines is larger than the number of signal input lines. For example, the input of the de-serializing circuit 32 is coupled to the output of the input receiver 31 via ni parallel lines, and the output of the de-serializing circuit 32 is coupled to the input of the protocol decoder 34 via no parallel lines, wherein no>ni. In this case, the parallelism is increased by the factor no/ni, and the clock of the output of the de-serializing circuit 32 can be smaller than the clock of the input of the de-serializing circuit 32 by a factor ni/no.
The protocol decoder 34 decodes the protocol of the information encoded in the input signal. For example, in a frame-based protocol, the information is comprised in frames with a predefined length, or size, and/or the beginning and/or the end of each frame is identified by a predefined pattern. Each frame comprises data and/or address information and/or a control command. For example, one frame or several subsequent frames comprise a write comment, an address identifying a storage location 12 or addresses identifying storage locations 12 of the memory core 11, and data to be written to one or more storage locations 12 identified by the addresses, respectively. As a further example, a frame or several subsequent frames comprise a read command, and an address or addresses identifying one or more storage locations 12, respectively, wherefrom data are to be read.
Further control commands can be comprised in the frames. In one embodiment of the memory device 10, the frame can comprise a posting command controlling the writing of control commands and/or data and/or address information to the posted write buffer 35. The information stored in the posted write buffer 35 is then forwarded to the memory core 11 at a later moment in time.
With the above described internal structure of the output path 40, the serializing circuit 42 (at least partly) serializes information received from the memory core 11. For example, the input of the serializing circuit 42 is coupled to the output of the memory core 11 via ni parallel lines, and the output of the serializing circuit 42 is coupled to the input of the output driver 41 via no parallel lines, wherein ni>no. In this case, the serializing circuit 42 reduces parallelism by a factor no/ni, and the clock of the output of the serializing circuit 42 can be larger than the clock of the input of the serializing circuit 42 by a factor ni/no. Signals encoding the frames are generated or amplified by the output driver 41.
Similar to the communication via the input 13 described above, the communication via the output 14 can be in accordance with a frame-based protocol. In this case, the memory core 11 provides frames to the serializing circuit 42, or a protocol encoder not displayed in
Referring to
The memory device 10 further comprises a test mode controller 58 coupled to the coupling switch 27 and configured to control the coupling switch 27. As an option, the test mode controller 58 is further coupled to the input receiver 31 and is configured to control the input receiver 31. As a further option, the test mode controller 58 is coupled to and configured to control the output driver 41. When the test mode controller 58 is coupled to the input receiver 31 and/or to the output driver 41, it is configured to control, in a test mode of the memory device 10, one or several parameters of the respective components. These parameters can comprise an amplification gain, a detection threshold, a swing, a phase offset, a voltage offset etc.
In the embodiment schematically represented in
Each of the error detection circuits 51, 52, and 53 can comprise a multiple input shift register (MISR). Each of the error detection circuits 51, 52, and 53 can also comprise circuitry implementing a pseudo random bit sequence (PRBS) algorithm, for example a feedback shift register. Any of the error detection circuits 51, 52, and 53 can be provided for and configured to detect an error, or failure, of the memory device 10, for example in one of the methods described below.
In a testing mode of the memory device 10, controlled by the test mode controller 58, the coupling switch 27 is closed. Thereby, the input 13, or to be more specific, the input of the input path 30 is coupled to the output 14, or to be more specific, to the output of the output path 40. As a consequence, any signal transmitted via the output path 40 is received via the input path 30. This can be used to test the entire memory device 10 and, the output path 40, and the input path 30. In a testing procedure, a test pattern is read from one or several storage locations 12 of the memory core 11, transmitted via the output path 40, transferred via the degrading device 28, the coupling switch 27 and the coupling device 26 and received via the input path 30. In this testing procedure, one or several of the error detection circuits 51, 52, and 53 can detect errors, or failures, of the memory device 10. Examples for testing procedures will be described below.
Like the memory device 10 described above with reference to
In both memory devices 10 described above with reference to the
As already mentioned above, each of the memory devices 10 described above with reference to the
An input 63 and an output 64 are provided on the semiconductor die 60. For example, each of the input 63 and the output 64 of the semiconductor die 60 comprises a number of bond pads, wherein each of the bond pads is connected to one contact of the input 13 or the output 14, respectively, of the memory device 10 via a bond wire. Each of reference numerals 66 and 67 represents one or several bond wires or other means coupling the input 13 of the memory device 10 to the input 63 of the die 60 and coupling the output 14 of the memory device 10 to the output 64 of the die 60, respectively.
As already described above, the input 13 can be coupled to the output 14 of the memory device 10 by a coupling device 21 optionally comprising a degrading device 22. The coupling device 21 and the degrading device 22 can be part of a testing apparatus provided for and configured to test a memory device 10. As an alternative, the coupling device 26, the coupling switch 27 and the degrading device 28 shown in
The
Referring to
Referring to
Referring to
As already mentioned in the description of the
As an alternative, the coupling device as a whole, including an input connector 23, an output connector 24, electrical lines, a coupling switch 27, mirrors 91 or 94, lenses 93 or an optical fiber 97, can degrade the signal transferred from the output 14 to the input 13 of the memory device 10. In any case, the degradation of the signal can simulate the degradation of a signal by any signal path to or from external circuitry in a normal operating mode.
In a first step 101, the storage location 12 or a plurality of storage locations 12 or all the storage locations 12 of the memory device 10 are tested. With this test, an auxiliary interface 15 can be used, wherein the auxiliary interface 15 can be partly or completely integrated with at least one of the input 13 and the output 14 of the memory device 10. For example, some or all of electrical contacts of the auxiliary interface 15 can be identical with some or all of electrical contacts of the input 13 and the output 14. As an alternative, the auxiliary interface 15 is completely separate from the input 13 and the output 14.
The auxiliary interface 15 may provide a slow and simple access to the storage locations 12 without the use of the output path 40 or the input path 30. The auxiliary interface 15 may be configured for a test mode protocol which is less complex than the protocol used with the input 13 of the memory device 10 in a normal operating mode of the memory device 10. The test mode protocol can be a quite simple protocol, for example a protocol merely allocating or assigning each of a number of simultaneously transferred bits to one of a corresponding number of parallel lines.
As an alternative, at least one of the input 13 and the output 14 of the memory device 10 can be used during the first step 101. In this case no auxiliary interface 15 needs to be provided. A test mode protocol can be used for the first step 101 which is less complex than the protocol used with the input 13 of the memory device 10 in a normal operating mode of the memory device 10. Again, the test mode protocol can be a quite simple protocol, for example a protocol merely allocating or assigning each of a number of simultaneously transferred bits to one of a corresponding number of parallel lines.
The first step 101 may include a replacement of defective storage locations 12 by redundant storage locations 12. Only when it is possible to replace all defective storage locations 12 by redundant storage locations 12, the subsequent steps described below will be conducted.
The first step 101 is optional. The subsequent steps described below can be applied to any memory device 10, the storage locations 12 of which are known to be defect-free. For example, the storage locations 12 of a memory device 10 can be known to be defect-free when they already have been tested in a separate procedure. As an alternative, an error correction circuit corrects errors resulting from defective storage locations 12 which are not replaced by redundant storage locations 12. As a further alternative, the subsequent steps described below are applied to a memory device 10, the storage locations 12 of which are not known to be defect free. In this case, any defect of storage locations 12 will be detected, although not necessarily localized, in the subsequent steps.
In a second step 102, an output 14 and an input 13 of the memory device 10 are coupled to each other. This step can be conducted by means of internal features, for example by means of the coupling device 26, the coupling switch 27 and the optional degrading device 28 described above with reference to the
In a third step 103, a test pattern is generated. For example, this test pattern is a pseudo random pattern or any other predefined test pattern generated by a test pattern generator 54, 55, or 56, wherein the test pattern generator 54, 55, or 56 can be an internal member of the memory device 10 or can be external to the memory device 10. When the test pattern is generated external to the memory device 10, the test pattern can, for example, be provided to the memory core 11 of the memory device 10 via the auxiliary interface 15 or via the input 13 and the input path 30 of the memory device 10. When the test pattern is generated within the memory device 10, the test pattern can, for example, be generated by one of the test pattern generators 54, 55, and 56 described above with reference to the
In a fourth step 104 the test pattern is stored in one or several storage locations 12 out of a plurality of storage locations 12 of the memory device 10.
In a fifth step 105, the test pattern is read from the storage location 12 or from the plurality of storage locations 12. In a sixth step 106, a signal is transmitted via the output 14 of the memory device 10. The test pattern read in the fifth step 105 is encoded in this signal or controls the signal in another way. In a seventh step 107, the signal is transferred from the output 14 of the memory device 10 to the input 13 of the memory device 10. As already described above, this transfer may include a degradation of the signal. In an eighth step 108, the (degraded) signal is received via an input path 30 of the memory device 10. In a ninth step 109, the received signal is evaluated within the memory device 10.
In the embodiments described above with reference to the
In case of one of the memory devices 10 described above with reference to
In the memory devices 10 described above with reference to
In all the memory devices 10 described above with reference to the
The error detection circuit 51 coupled to the output of the memory core 11 can monitor the data provided at the output of the memory core 11, for example by comparing the data with the pattern generated by the test pattern generator 56 described above with reference to
Monitoring, or comparing, all the bits of data in all cycles can, under certain conditions, provide a very high coverage and can facilitate that the point of time of the occurrence of almost any potential error, or failure of the memory device 10 can be detected. Thereby, monitoring all bits in all cycles can facilitate the detection and even the localization of errors. As an alternative, only one or few bits in each cycle are monitored. As a further alternative, only predefined cycles are monitored, for example only every nth command or data. As a further alternative, only one command or data after a predefined number of cycles is evaluated. In the last two cases, the error detection circuit 51, 52 or 53 or the test mode controller 58 or any other internal or external circuitry counts the cycles and starts an evaluation of the present data or command, respectively after the predefined number of cycles.
As a further alternative, only a predefined command is evaluated. For example, the pattern stored in the memory core 11 is such that a predefined number of cycles are conducted, wherein in each of the predefined number of cycles a read command is provided to the memory core 11, and wherein a predefined command different from the read command and identifying the end of the predefined number of cycles occurs after the predefined number of cycles. The error detection circuit 51, 52 or 53 identifies this predefined command and checks whether this command provides predefined details or whether the predefined command occurred after the predefined number of cycles.
As a variant of all the embodiments described above, the test mode controller 58, after storing 104 the test pattern in the storage locations 12, starts the first reading 105 from a predefined storage location 12. The pattern stored in the storage locations 12 of the memory core 11 is such that a predefined number (including one) of cycles is conducted, each cycle comprising the fifth step 105, the sixth step 106, the seventh step 107 and the eighth step 108. The ninth step 109 may be conducted in each cycle or at the occurrence of a predefined data, or command, or after a predefined number of cycles. As an alternative, the test mode controller 58 controls the third step 103 of generating a test pattern and the fourth step 104 of storing the test pattern in the storage locations 12, too, in particular when the test pattern is generated within the memory device 10, for example by one of the test pattern generators 54, 55, and 56.
As a further alternative the posted write buffer 35 of the protocol decoder 34 can be used for the storage of a control pattern. This control pattern is stored in the posted write buffer 35 with a normal or a slightly modified posted write command or with a dedicated command. The protocol decoder 34 can be configured to compare each and every command, address or data information received from the de-serializer 32 with the control pattern stored in the posted write buffer 35, wherein any occurrence of the control pattern at the input of the protocol decoder 34 is notified to the test mode controller 58 or to other internal or external circuitry. As a further alternative, the protocol decoder 34 is coupled to the test mode controller 58 and is configured to compare, controlled by the test mode controller 58, any command provided to the input of the protocol decoder 34 with the control pattern stored in the posted write buffer 35. In any case, the test mode controller 58 can be integrated with the protocol decoder 34.
In case of the memory device 10 described above with reference to
As a further variant of all the embodiments described above, the test mode controller 58 can, before or during the test of the memory device 10, tune or adjust detection thresholds, phase offsets, voltage offsets or other parameters of the input receiver 31 or other components of the input path 30 or phase offsets, amplitudes, voltage offsets or other parameters of the output driver 41 or other components of the output path 40. Tuning these parameters can facilitate a test of the set points of the parameters or of the robustness of the entire configurations of the output path 40 and the input path 30.
According to one embodiment, the communication of a memory device 10 via the input 13 and the output 14 is based on frames. Each frame provided at the output 14 of the memory device 10 comprises a predefined number of bits, or channels, in parallel and a sequence of a predefined number of bits at each channel, and each frame received at the input of the memory device 10 comprises a predefined number of bits, or channels in parallel and a sequence of a predefined number of bits at each channel. For example, each frame comprises eight bits, or channels in parallel, transmitted via at least eight parallel lines, and eighteen bits in serial in each channel. In this example, each frame received at the input of the memory device 10 comprises eight bits, or channels, in parallel to be received via at least eight parallel lines, and a sequence of nine bits at each channel. As a consequence, each frame transmitted from the output of the output path 40 of the memory device 10 will be interpreted as two frames in the input path 30 of the memory device 10.
As an alternative, the beginning of each frame or the end of each frame or the border between each pair of two consecutive frames is identified by a predefined pattern which is not allowed to appear within a frame. In this case, the length of each frame is variable.
In case of predefined lengths of the frames, the length of each frame provided at the output 14 of the memory device 10 can be a predefined integer multiple of the length of each frame received at the input 13 of the memory device 10. For example, each of the above-described cycles comprises the transmission of one frame (of eighteen bits per channel) at the output path 40 and the reception of two frames (of nine bits per channel) at the input path 30 of the memory device 10. As long as one of the frames received in one cycle comprises a read command, data will be read from the memory core 11 again and again. For some protocols, it might be helpful to avoid any situation in which both frames received in one cycle comprise a read command. As long as these two conditions are fulfilled, one frame received in each cycle can comprise any command, for example a NOP (No Operation), ACT, BRCH or any other command which is no read command and which is not in conflict with the read command in the other frame received in the same cycle.
The non-read command or commands in each cycle can be called payload of the respective cycle. For example, this payload can be used to monitor the testing procedure by one of the error detection circuits 51, 52, and 53 or the external memory tester 80. In some embodiments, the payload can also be used to load a new compare pattern into the posted write buffer 35 or into one of the error detection circuits 51, 52, and 53.
It has been described that the data read in each cycle from the memory core 11 comprise one read command controlling the next cycle and implicitly determining which data will be read from the memory core 11 in the next cycle. As an alternative, in the test mode, a predefined number of storage locations 12 are read in sequence. For example, an interval of consecutive addresses is called by the test mode controller 58 or by circuitry within the memory core 11 or by any other circuitry within the memory device 10, wherein the addresses are simply incremented by one or any other predefined value in each cycle. A test pattern is stored at the storage locations 12 identified by these addresses. The error detection circuit 52 coupled to the output of the input path 30 or the error detection circuit 53 coupled to the output of the de-serializing circuit 32 monitors what arrives after transmission by the output path 40, transfer via the degrading device 28, the coupling switch 27 and the coupling device 26 or the degrading device 22 and the coupling device 21 and reception by the input path 30. For this purpose, each of the error detection circuits 52, 53, and 54 has built-in algorithm providing the same pattern that is stored at the predefined sequence of addresses in the memory core 11.
As a further alternative, a pseudo random address sequence is provided to the input of the memory core 11. This pseudo random address sequences for example generated by the test mode controller 58 or test mode circuitry within the memory core 11 or by any other circuitry within the memory device 10. At the storage locations 12 identified by the addresses of the pseudo random address sequence, a predefined sequence of data is stored. Monitoring these predefined sequences of data can be simplified by the provision of only a small number of different data, for example four different data.
The above described method and its variants can include the transmission and reception of an error correction code, for example in accordance with a cyclic redundancy check. The production of an error correction code can be integrated in the output path 40, and the detection of the error correction code can be integrated in the input path 30. Thereby, the production and the detection of an error detection code can be tested with the above-described method, too.
All or some of the above-described steps can be conducted before or after cutting or cleaving a wafer comprising a large number of dies and before or after packaging of the single dies. For example, the first step 101 is conducted before a die is cut out of the wafer or before the die is packaged. Some of the above-described steps can be conducted in a sequence different from the sequence displayed in
Some of the embodiments described above comprise a protocol decoder 34, explicitly or implicitly refer to a protocol decoder 34, or refer to the decoding of a protocol. The protocol decoder 34 may provide a specific advantage, at least under certain conditions. However, it is to be noted that the protocol decoder 34 can be omitted in each of the embodiments and many of their variants described above or not described above. The invention may also be applied to memory devices 10 without a protocol decoder 34.
The preceding description describes advantageous exemplary embodiments. The features disclosed therein and the claims and the drawings can, therefore, be useful for realizing various embodiments, both individually and in any combination. While the foregoing is directed to specific embodiments, other and further embodiments may be devised without departing from the basic scope, the scope being determined by the claims that follow.