DATA CHANNEL TEST APPARATUS AND METHOD THEREOF
A system includes a plurality of devices that are connected in series and a controller that communicates with the devices. Each of the devices has a plurality of input ports and corresponding output ports. The outputs of one device and the inputs of a next device are interconnected. The controller is coupled to the first device and the last device of the series-connection. The controller applies a test pattern to the plurality of input ports at the first device connected in series, by the controller. Each data channel defines a data path between corresponding pairs of input and output ports of the first and last devices. A data channel is enabled if the test pattern is detected at its corresponding output port.
Latest MOSAID TECHNOLOGIES INCORPORATED Patents:
- NAND flash memory with vertical cell stack structure and method for manufacturing same
- Non-volatile memory device with concurrent bank operations
- Clock mode determination in a memory system
- Structure and method for providing line end extensions for fin-type active regions
- Clock mode determination in a memory system
This application claims the benefit of priority from U.S. Provisional Patent Application No. 60/989,879 filed Nov. 23, 2007, the disclosure of which is expressly incorporated herein by reference in its entirety.
FIELD OF THE INVENTIONThe present invention relates generally to the testing of a system having a plurality of devices. More particularly, the present invention relates to the testing of data channels in a system of devices connected in series.
BACKGROUND OF THE INVENTIONSemiconductor memory devices are important components in presently available industrial and consumer electronics products. For example, computers, mobile phones, and other portable electronics all rely on some form of memory for storing data. While many memory devices are typically available as commodity devices, the need for higher integration has led to the development of embedded memory, which can be integrated with systems, such as microcontrollers and other processing circuits.
Unfortunately, the density of commodity memory cannot match the ever-increasing demand for memory. Hence multiple commodity memories are used together to fulfill the system memory requirements. Multi-device memory systems can be implemented as a set of silicon chips grouped together in a single package (called a multi chip system—MCP), or a multiplicity of memory device packages grouped together on a printed circuit board.
More often, the multi-device memory systems employ, non-volatile devices, such as flash devices, for storage. Demand for flash memory devices has continued to grow significantly because these devices are well suited in various embedded applications that require non-volatile storage. For example, flash is widely used in various consumer devices, such as digital cameras, cell phones, USB flash drives and portable music players, to store data used by these devices. Market demand for flash memory has led to tremendous improvements in flash memory technology over the past several years both in terms of speed and density.
Some flash devices employ serial interfaces such as, for example, multiple flash devices, which are used to perform operations, such as read, write and erase operations, on memory contained in the devices. A system of devices connected in series has input ports in the first device and output ports in the last device as shown in
Those skilled in the art understand that multi-device systems are tested at the individual component level and at the system level to ensure robustness of operation. In particular, memory devices are tested at the chip level to ensure that their memory cells are not defective. A defective memory cell is one that does not store data properly, due to fabrication defects or other defects that may occur during fabrication or assembly of the memory device.
Although each device is tested through functional and DC test steps at wafer-level and package level to screen out the device with defects on memory or logic blocks, it is difficult to find which devices have failed once they are mounted on the system board after packaging with stacked devices in a series-connection configuration. In conjunction with this problem, if there were any single failed device in the system of devices connected in series, all devices on the connection would be shown as defective devices due to data transmission failure caused by the failed device.
Typically, a fault in any single pin or in the interconnection between devices in the system of devices connected in series causes all devices to be judged as “failed” and no more testing is possible. Needless to say that the cost of stacked devices is much higher than the cost of a single device, and even good devices without any faults could be thrown away, or a system board with these devices may be replaced with a new one.
SUMMARY OF THE INVENTIONAn apparatus and method for testing and enabling data channels path in a system of devices connected in series is disclosed. The devices are, for example, memory devices, such as dynamic random access memories (DRAMs), static random access memories (SRAMs) and flash memories.
According to an aspect of the present invention, there is provided a method for enabling data channels in series-connected devices. The method comprises applying a test pattern to a plurality of input ports at a first device of the series-connected devices. The plurality of input ports has a corresponding plurality of output ports at a last device of the series-connected devices. Each data channel defines a data path between corresponding pairs of input and output ports. The method also comprises enabling a data channel if the test pattern is detected at its corresponding output port.
According to another aspect of the present invention, there is provided a device for use in a system of a plurality of devices connected in series and a controller. The device comprises a plurality of input connections and corresponding plurality of output connections; a plurality of use-state registers associated with each of the corresponding input and output connections to indicate a use-state of the corresponding input and output connections; and a data mode configuration register to indicate the maximum data width for transmission through the device.
According to another aspect of the present invention, there is provided a controller for enabling data channels in a plurality of devices connected in series. The controller comprises a test pattern generator for providing a test pattern to a plurality of input ports at a first device of the plurality of devices connected in series. The plurality of input ports has a corresponding plurality of output ports at a last device of the plurality of devices connected in series. Each data channel defines a data path between corresponding pairs of input and output ports of the plurality of devices connected in series in a data channel test operation. The controller enables data channels if the test pattern is detected at its corresponding output port.
According to another aspect of the present invention, there is provided a system comprising a plurality of devices, having a plurality of data channels, connected in series. The plurality of devices has a plurality of input ports at a first device of the plurality of devices connected in series. The plurality of input ports has a corresponding plurality of output ports at a last device of the plurality of devices connected in series. Each data channel defines a data path between corresponding pairs of input and output ports. The system also comprises a controller coupled to the plurality of input ports and the corresponding plurality of output ports. The controller has a test pattern generator for providing a test pattern to the plurality of input ports in a data channel test operation. The controller enables data channels if the test pattern is detected at its corresponding output port.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
BRIEF DESCRIPTION OF THE DRAWINGSEmbodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:
Generally, the present invention provides a system of devices connected in series. An apparatus and a method for testing of data channels in a system of devices connected in series are disclosed.
The method and apparatus in accordance with the techniques described herein may be applicable to a memory system having a plurality of devices connected in series. The devices are, for example, memory devices, such as dynamic random access memories (DRAMs), static random access memories (SRAMs) and flash memories.
The devices shown in
The configuration 100 of the devices 101-1-101-N in
Typically, in a system of memory devices connected in series, routine memory operations are executed on a device using command strings that are serially fed to the devices. The command strings typically contain a command that represents the operation to be selected, as well as other parameters. The operation to be performed may be indicated in an operation (OP) code that is provided to the devices. For example, a write operation can be executed by serially feeding an information string that contains a write command, the data to be written and an address in the memory to the device where the data is to be written.
For example, the command string is fed to all of the devices even though the command is executed on only one of the devices. For a particular example, to select the device on which the command is to be performed, the command string contains a device identifier (ID) that identifies the device to which the command is directed. Each device receiving the command string compares the device ID contained in the command string to an ID associated with the device. If the two match, the device assumes that the command is directed to the device and performs the command. Thus, input data are transmitted to the selected device without execution of the OP code in the unselected devices.
As discussed earlier, the plurality of devices connected in series has input ports in the first device and output ports in the last device. A data channel can be defined as a data path between corresponding pairs of input and output ports. In order for the plurality of devices connected in series to properly function, data must be propagated through the data channels from the first device to the last device in the system. Faults within a device or in the interconnection between devices connected in series will result in data not being transferred along a data path and hence result in the loss of use of a data channel.
The device 201-1 is shown in further detail at the bottom of
In conventional wafer-level and package level testing, faults within a device or in the interconnection between devices connected in series, such as those illustrated in
The devices 301-1-301-N have four data input pins D0-D3 and four data output pins Q0-Q3 Connected in series. The system 300 of devices connected in series has four data input ports to receive input serial data SD0-SD3 at the first device 301-1 of the system and four data output ports to output serial data SQ0-SQ3 at the last device 301-N of the system. Each of the devices have additional pins such as input port enable IPE, output port enable OPE, clock, reset, chip select (not shown) etc. for various signals. Each of the series-connected devices 301-1-301-N has the same structure. Each of the devices in the system 300 has a data processor 310, which will be described below with reference to
A controller 305 provides a group of signals including serial input port enable (SIPE), serial output port enable (SOPE), clock CLK and other control and data information (not shown) to the devices. The controller 305, is for example, a memory controller. The controller 305 also includes a data processor 350, a data register 352, a pattern generator 354, a comparator 356, a read data storage 358 and pins to receive the input port enable signal SIPEQ, the output port enable signal SOPEQ, and the output serial data SQ0-SQ3 from the last of the devices (device 301-N) connected in series. Individual elements of the controller 305 will be described in detail below.
As described earlier, a command string propagated in the system of devices connected in series contains a device ID that identifies the device to which the command is directed. Typically, ID assignments are done prior to any normal operations in the system of devices connected in series. In an exemplary embodiment of the present invention, during test mode (S601 ), the assigned IDs are initialized or reset in each device prior to enabling the data channels in the system. For example, the assigned IDs can be reset to ‘00’ for all devices, by using a commonly connected hard reset pin (RST#, low enable) (S602). This enables the selection of all devices at once. The hard reset can also initialize use-state registers in each of the device of the system of series-connected devices to a default disabled state.
The test mode is entered by simultaneously asserting input port enable SIPE and output port enable SOPE control signals (S603). When SIPE and SOPE are simultaneously asserted all input and output ports are accessible at the same time. All input ports receive input command from the controller as if each port is simultaneously operating in a X1 mode irrespective of previous data width setting. Typically, in normal operation mode, SIPE and SOPE are not asserted simultaneously.
In a system of devices connected in series, data flow is typically truncated at the device where a device ID match is found. Subsequent (or forward) devices in the system do not receive the input stream except for ID bits. However, by initializing the device IDs of the all the devices in the system to a common known value (for example, ‘00’) and by propagating a ‘non-00’ ID (no match), the system can be forced into a situation where none of the devices in the system is selected. Thus, the input stream traverses all the devices in the system of devices connected in series.
A test pattern with a ‘non-00’ ID, is applied to the input pins D0-D3 of the first device 301-1 of the system (S604). As described above, the test pattern flows through system of devices connected in series since no particular device is selected. Test patterns, such as checkerboard, scan zero, scan one etc. can be applied to the system. Once the test pattern has propagated through the system, the output patterns at the output pins Q0-Q3 of the last device 301-N of the system are detected (S605). If the test pattern is not detected in any of the data channels (S606), then the system is determined to have “failed” (S607). However, if the test pattern is detected in all the data channels (S608), the system is determined to have “passed” (S609). In the event that the test pattern is detected in some but not all the data channels, it is determined that the system cannot operate in the X4 mode. However, the system may still be able to operate in X1 or X2 mode and further determination of which of the data channels corresponding to D0-D3 pins are defective is made (S610, S612, S614, S616). The pins corresponding to “failed” data channels are determined to be of no use (S611, S613, S615, S617 ). Based on the number of “passed” data channels, the possible combinations of pins for X1 or X2 data width mode are determined (S618). A data mode configuration register in each of the devices and the controller is accordingly updated (S619).
All pins corresponding to “passed” data channels are enabled by setting the corresponding use-state registers (S620), in each of the devices in the system, to an enabled mode. Upon setting of use-state registers (S620), determination of the system being passed (S609) or determination of the system being failed (S607), the test mode exists (S621) and the testing is stopped (S622). It should be noted that although the system of devices connected in series can be operated at multi-data widths, the physical pin connection on the system board determines the maximum data width. For example, although the devices 301-1-301-N can be operated in the X4 mode, if there are only 2 physical pin connections in the system board, the devices can only be operated in the X2 mode.
In the above-described embodiment, the pattern generator 354 of the controller 305, can be used to generate and provide the test pattern to the input pins. The controller 305 outputs the test pattern based on a test_mode signal provided by the data processor 350. In addition, the comparator 356 of the controller 305 can compare the output patterns and determine whether a data channel is defective or not. In normal mode operation, the controller 305 outputs the contents of the data register 352. During normal mode operation, the output serial data or output data stream SQ0-SQ3 is typically stored in the read data storage 358. A controller with a pattern generator and comparator does not demand large area and its area penalty within conventional controller is negligible.
According to Table 1, data channel test results are categorized as two parts when X4 is a maximum physical data width limited by interconnection lines. As described earlier, when the test pattern is not detected in one or more data channels, the system can be operated in X2 and X1 modes only. In order for the system to be operated in X2 mode, two data channels are required. Therefore, in the event that only one data channel fails in a system having four data channels, there is a redundant data channel that is not used. For example, as shown in the last four rows of Table 1, only two of the three “passed” pins are used in the X2 mode.
As a result of test mode operation, the controller 305 knows the pins corresponding to “passed” data channels. The use-state registers corresponding to these pins will now have to be enabled from the default value assigned to the registers prior to the start of the test mode operation. The controller 305 issues a command (for example, Passed I/O set command) that sets a use state of the pins corresponding to the “passed” data channels in all the devices in the system of devices connected in series. Due to the reset operation prior to entering the test mode operation, all devices have the same ‘00’ IDs, as described earlier. Therefore, the Passed I/O set command to set a use state of the pins corresponding to the “passed” data channels has a ‘00’ ID number in the command string.
As described earlier, SIPE and SOPE are simultaneously asserted, all the devices in the system of devices connected in series function in X1 mode, ignoring the setting of a device configuration register (to be discussed with reference to
Both the test mode operation and the enabling of pins and setting of the corresponding use state registers are activated by simultaneously asserting SIPE and SOPE (see
The input/output controller 312 receives the ipei and opei signals corresponding to the SIPE and SOPE signals and issues a tm_en (test mode enable) signal during test mode operation. The SIPE and SOPE signals are provided to the input/output controller 312 either directly or indirectly from the controller 305. For example, the first device 301-1 receives, at its IPE and OPE pins, the SIPE and SOPE signals directly from the controller 305. Subsequent devices, 301-2 to 301-N, receive SIPE and SOPE signals propagated through the system of devices connected in series. Input data id0-id3, corresponding to input serial data SDO-SD3, is decoded during a test mode/pass I/O set command operation in response to the tm_en signal. For example, the first device 301-1 receives, at its input pins D0-D3, input serial data SD0-SD3 directly from the controller 305. Subsequent devices, 301-2 to 301-N, receive input serial data SD0-SD3 propagated through the system of devices connected in series. The I/O switch control logic 316 issues the switch logic control signals S1-S4 that determine the data width mode (X1/X2/X4 mode) as shown in
Table 2 shows the truth table of switch logic output control signals S1-S4 depending on the fail and pass combinations shown in Table 1. Xl and X 2 mode controls are performed with different control signals as shown in
An example of switch control logic circuit based on Table 2 is shown in
The embodiments disclosed herein are described with respect to a system of devices connected in series wherein each of the devices in the system has four input/output ports to support X1/X2/X4 modes depending on system requirements. Aspects of the present invention may be applicable to systems with more than two input/output ports without any restrictions, logically and technically.
In the above described embodiments of the present invention it is assumed that all devices in the system are connected in series as shown in FIGS. 1 or 4. It is also assumed that IPE and OPE ports and internal relevant circuits along with the interconnection lines between the respective IPE/OPE pins of the devices not defective. A device with defective IPE and/or OPE pins cannot enable serial data propagation. Furthermore, it is assumed that the reset pin is not defective and can initialize the device IDs, use-state registers, and the data mode configuration during hard reset prior to test mode operation. The default mode on power-up can be set to X1 mode.
Typically, the possibility of malfunction due to hard-defects on relevant logic and interconnections of input/output pins is not high, but if malfunction occurs while devices are being used, all modules on a system board are generally replaced. Replacement cost of all the modules or the entire system board is much higher than the replacement of a single device and data recovery from the failed device or system board may be impossible. The embodiments disclosed herein can allow cost reduction and provides more stable operating condition to the system. Using the embodiments disclosed herein, cumulative yield of device production, without many additional circuit implementations into the device, could be increased (more devices can be used even though operation at maximum data width configuration may not be possible).
The embodiments described herein also enable the recovery of any data on a failed device in the system of devices connected in series. For example, data can be recovered from failed hard disks, such as in Solid State Disk (SSD) based on flash memory. Ideally, SSD reliability and durability are much better than the hard disk that consists of mechanical parts like rapidly rotating platters and a motor. But, accidental damage or wearing out of routes or pins cannot be avoided and can result in the non-data recovery in SSD system. The embodiment disclosed herein resolves those problems without removing parts or breaking up the board or system parts.
In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments of the invention. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the invention. In other instances, well-known electrical structures and circuits are shown in block diagram form in order not to obscure the invention. For example, specific details are not provided as to whether the embodiments of the invention described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof.
Embodiments of the invention can be represented as a software product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor- readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the invention. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described invention can also be stored on the machine-readable medium. Software running from the machine-readable medium can interface with circuitry to perform the described tasks.
The above-described embodiments of the invention are intended to be examples only. Alterations, modifications and variations can be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.
Claims
1. A method for enabling data channels in series-connected devices, the method comprising:
- applying a test pattern to a plurality of input ports at a first device of the series-connected devices, the plurality of input ports having a corresponding plurality of output ports at a last device of the series-connected devices, each data channel defining a data path between corresponding pairs of input and output ports; and
- enabling a data channel if the test pattern is detected at its corresponding output port.
2. The method of claim 1, wherein enabling the data channel comprises:
- enabling corresponding use-state registers associated therewith in each of the series-connected devices.
3. The method of claim 2, further comprising:
- initializing use-state registers in each of the series-connected devices prior to applying the test pattern.
4. The method of claim 3, wherein the use-state registers in each of the series-connected devices is initialized to indicate a disabled state.
5. The method of claim 1, further comprising:
- determining maximum data width for transmission through a plurality of enabled data channels; and
- configuring a data mode configuration register in each of the series-connected devices to indicate the maximum data width for transmission.
6. The method of claim 1, further comprising:
- initializing device identifiers (IDs) in each of the series-connected devices prior to applying the test pattern.
7. The method of claim 6, wherein the initializing device IDs comprises:
- initializing the device IDs in each of the series-connected devices to a common value.
8. The method of claim 1, further comprising:
- simultaneously asserting an input port enable and an output port enable signal prior to applying the test pattern.
9. A device for use in a system including a plurality of devices connected in series and a controller, the device comprising:
- a plurality of input connections and corresponding plurality of output connections;
- a plurality of use-state registers associated with each of the corresponding input and output connections to indicate a use-state of the corresponding input and output connections; and
- a data mode configuration register to indicate the maximum data width for transmission through the device.
10. The device of claim 9, wherein a status of the plurality of use-state registers is set by the controller.
11. The device of claim 9, wherein a status of the data mode configuration registers is set by the controller.
12. The device of claim 9, wherein simultaneously asserting an input port enable signal and an output port enable signal causes the device to enter a test mode.
13. The device of claim 9, further comprising:
- a device ID register for holding a device ID associated with the device.
14. A controller for enabling data channels in a plurality of devices connected in series, the controller comprising:
- a test pattern provider for providing a test pattern to a plurality of input ports at a first device of the plurality of devices connected in series, the plurality of input ports having a corresponding plurality of output ports at a last device of the plurality of devices connected in series, each data channel defining a data path between corresponding pairs of input and output ports of the first and last devices in a data channel test operation, the controller enabling data channels if the test pattern is detected at its corresponding output port.
15. The controller of claim 14, further comprising:
- a comparator for comparing the test pattern detected at the plurality of the output ports to the test pattern provided to the plurality of input ports in the data channel test operation.
16. The controller of claim 14, further comprising:
- a plurality of controller use-state registers associated with each of the corresponding input and output ports to indicate a use-state of the corresponding input and output ports.
17. The controller of claim 14, wherein the controller further comprises:
- a controller data mode configuration register to indicate the maximum data width for transmission through the series-connected devices.
18. The controller of claim 16, wherein the controller sets a status of the controller use-state registers and a status of a plurality of use-state registers in each of the devices.
19. The controller of claim 17, wherein the controller sets a status of the controller data mode configuration registers and a status of data mode configuration registers in each of the devices.
20. The controller of claim 14, wherein the controller simultaneously asserts an input port enable signal and an output port enable signal causing the devices to enter a test mode.
21. A system comprising:
- a plurality of devices, having a plurality of data channels, connected in series; the plurality of devices having a plurality of input ports at a first device of the plurality of devices connected in series, the plurality of input ports having a corresponding plurality of output ports at a last device of the plurality of devices connected in series, each data channel defining a data path between corresponding pairs of input and output ports; and
- a controller coupled to the plurality of input ports and the corresponding plurality of output ports, the controller having a test pattern provider for providing a test pattern to the plurality of input ports in a data channel test operation, the controller enabling data channels if the test pattern is detected at its corresponding output port.
22. The system of claim 21, wherein each of the plurality of devices connected in series further comprises:
- a plurality of input connections and corresponding plurality of output connections, the plurality of the input connections of the first device of the plurality of devices connected in series defining the plurality of the input ports, and the plurality of the output connections of the last device of the plurality of devices connected in series defining the plurality of the output ports.
23. The system of claim 21, wherein each of the plurality of devices connected in series further comprises:
- a plurality of use-state registers associated with each of the corresponding input and output connections to indicate a use-state of the corresponding input and output connections.
24. The system of claim 21, wherein each of the plurality of devices connected in series further comprises:
- a data mode configuration register to indicate the maximum data width for transmission through the device.
25. The system of claim 21, wherein the controller further comprises:
- a comparator for comparing the test pattern detected at the plurality of the output ports to the test pattern provided to the plurality of input ports in the data channel test operation.
26. The system of claim 21, wherein the controller further comprises:
- a plurality of controller use-state registers associated with each of the corresponding input and output ports to indicate a use-state of the corresponding input and output ports.
27. The system of claim 21, wherein the controller further comprises:
- a controller data mode configuration register to indicate the maximum data width for transmission through the plurality of devices connected in series.
28. The system of claim 23, wherein the controller sets a status of the plurality of use-state registers of the plurality of devices connected in series.
29. The system of claim 24, wherein the controller sets a status of the date mode configuration registers of the plurality of devices connected in series.
Type: Application
Filed: Feb 8, 2008
Publication Date: Oct 22, 2009
Applicant: MOSAID TECHNOLOGIES INCORPORATED (Ottawa, ON)
Inventor: Hong Beom PYEON (Kanata, ON)
Application Number: 12/028,335
International Classification: H04B 17/00 (20060101); G06F 11/00 (20060101);