Duplexed multi-bit memory loopback test

WO2026199152A1PCT designated stage Publication Date: 2026-10-01QUALCOMM INC +6
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/084622
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-25
Publication Date
2026-10-01

Smart Images

  • Figure CN2025084622_01102026_PF_FP_ABST
    Figure CN2025084622_01102026_PF_FP_ABST
Patent Text Reader

Abstract

A duplexed multi-bit memory loopback test is described. In an example, a method includes configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines. Each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines. The number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines. Target data is received on the first set of loopback target data lines through a DRAM interface of the DRAM. The target data is looped back through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.
Need to check novelty before this filing date? Find Prior Art

Description

DUPLEXED MULTI-BIT MEMORY LOOPBACK TESTTECHNICAL FIELD

[0001] The present application relates generally to a memory loopback test and, in particular, to a duplexed multi-bit memory loopback test.BACKGROUND

[0002] Computing systems, mobile devices, and fixed devices, rely on memory for both storage and operation. One common type of memory used for operation is Double Data Rate (DDR) Synchronous Dynamic Random-Access Memory (SDRAM) . SDRAM is relatively fast and reliable type of Dynamic Random-Access Memory (DRAM) because it relies on the presence or absence of a charge on a capacitor in a memory array to indicate a bit value. For example, a charged capacitor typically indicates a bit value of logical one (1) . A discharged capacitor typically indicates a bit value of logical zero (0) . Because the capacitors slowly lose charge, a periodic refresh, typically a self-refresh is applied. When power is terminated, all of the capacitors eventually discharge and the memory loses any data that had been stored in the SDRAM.

[0003] Read and write operations between a processor and the memory are performed at high speed and high volume. Thus, signal quality and stability through different temperatures is important. Depending on the nature of the computing system, the signal routing may traverse die interfaces, packet interfaces, printed circuit boards, solder joints and interface card slots. Variations in manufacturing processes for the die, the package, and other parts in the route may result in variations in signal quality, voltage, resistance, and timing. In some cases, one or more of the memory cells may be inoperative due to a faulty capacitor or another component.

[0004] Memory tests may be is conducted to ensure that all of the memory cells are working properly. For serial write testing, a write command is sent to an array element. Data is written to the SDRAM memory array element, and the data is then read from the same SDRAM memory array element. A state machine or software at a processor or test circuit compares the write data to the read data to determine the test result. Each memory array element may be tested in turn. Parallel memory routing allows multiple memory array elements to be tested at the same time. BRIEF SUMMARY

[0005] The following presents a summary of one or more implementations in order to provide a basic understanding of such implementations. The invention is defined by the independent claims. More particular examples are set out in the dependent claims. Examples and aspects that do not fall within the scope of the claims are merely examples used for explanation of the invention. This summary is not an extensive overview of all contemplated implementations and is intended to neither identify key or critical elements of all implementations nor delineate the scope of any or all implementations. Its sole purpose is to present some concepts of one or more implementations in a form as a prelude to the more detailed description that is presented later.

[0006] In one example, an apparatus includes a Dynamic Random Access Memory (DRAM) , a first set of loopback target data lines, and a second set of loopback output data lines. A loopback switch connects the first set of loopback target data lines to the second set of loopback output data lines. Each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines. A DRAM interface receives target data on the first set of loopback target data lines and sends the target data looped back from the loopback switch as loopback data output on the second set of loopback output data lines.

[0007] In another example, a method includes configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines. Each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines. The number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines. Target data is received on the first set of loopback target data lines through a DRAM interface of the DRAM. The target data is looped back through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.

[0008] In another example an apparatus includes means for configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines. Each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines. The apparatus further includes means for receiving target data on the first set of loopback target data lines through a DRAM interface of the DRAM, and means for looping back the target data through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.

[0009] To the accomplishment of the foregoing and related ends, the one or more implementations include the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative aspects of the one or more implementations. These aspects are indicative, however, of but a few of the various ways in which the principles of various implementations may be employed and the described implementations are intended to include all such aspects and their equivalents.BRIEF DESCRIPTION OF THE DRAWINGS

[0010] FIG. 1 is a block diagram of a computing system with a memory route test according to aspects of the present disclosure.

[0011] FIG. 2 is a block diagram of an example loopback test system according to aspects of the present disclosure.

[0012] FIG. 3 is a diagram of a portion of a DRAM with full duplexing of a 16-bit data line loopback according to aspects of the present disclosure.

[0013] FIG. 4 is a diagram of a loopback circuit and DRAM Internal Block showing switches for a 16-bit data line loopback mode according to aspects of the present disclosure.

[0014] FIG. 5 is a diagram of an example mode register to control a loopback switch according to aspects of the present disclosure.

[0015] FIG. 6 is a diagram of a portion of a DRAM with full duplexing of a 12-bit data line loopback according to aspects of the present disclosure.

[0016] FIG. 7 is a diagram of a loopback circuit and DRAM Internal Block showing switches for a 12-bit data line loopback mode according to aspects of the present disclosure.

[0017] FIG. 8 is a diagram of a portion of a DRAM with full duplexing across two 12-bit subchannels through a cross-channel loopback according to aspects of the present disclosure.

[0018] FIG. 9 is a diagram of a diagram of a loopback circuit and DRAM Internal Block showing switches for a cross-channel loopback mode according to aspects of the present disclosure.

[0019] FIG. 10 is a diagram of an example mode register to control subchannels of an inter-subchannel or intra-subchannel loopback switch according to aspects of the present disclosure.

[0020] FIG. 11 is an overview of a process for a multi-bit data line loopback test according to aspects of the present disclosure.

[0021] FIG. 12 is a process flow diagram of performing a loopback test at a DRAM according to aspects of the present disclosure.

[0022] FIG. 13 is a process flow diagram of performing a loopback test at an SoC or processor according to aspects of the present disclosure.DETAILED DESCRIPTION

[0023] The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.

[0024] A loopback test is used on a memory, e.g., DDR SDRAM, to test the route separate from the DRAM cells. The route may include multiple connections, joints, and interfaces. A faster and more accurate test may be performed as described herein by configuring a loopback switch of a DRAM to connect a first set of loopback target data lines to a second set of loopback output data lines. Each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines. Target data is received on the first set of loopback data lines through a DRAM interface of the DRAM. The target data is looped back through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.

[0025] Such a loopback test allows heavy IO stress to be imposed on the data lines. In some examples, the memory operates with multiple lines simultaneously at high speed which puts a heavy stress on all of the components in the route. By testing multiple data lines simultaneously, crosstalk may be tested between the many data lines. A multi-bit data line loopback test is described below with duplex multi-bit return line loopback. In an example with 16 lines, a first subchannel is defined for half the lines e.g. DQ0-DQ7, as the loopback target data lines (DQs) and a second subchannel is defined for the other half of the lines e.g. DQ8-DQ15, as the loopback data output lines. This tests all 16 lines simultaneously. A loopback switch across all of the data lines allows the multi-bit duplex configuration to be set using mode registers.

[0026] In a different type of loopback test, the route is tested one line at a time. This is very slow and does not present significant stress on the routs. Each 1-bit data line is tested from a memory interface of a system-on-chip (SoC) or processor to a loopback switch on a DRAM die and back again. As in a memory test of the DRAM cells, the state of the returned line is compared to the high or low value that was sent to ensure that the route to the loopback switch and back operates well. In some examples, the loopback switch is implemented as a First In First Out (FIFO) buffer.

[0027] FIG. 1 is a block diagram of a computing system with a memory route test. In this example, a System-on-Chip (SoC) 102 and a DRAM 104 are mounted to a printed circuit board (PCB) 106. A write command from an SoC die 110 of the SoC 102 is sent through a package interface 112 of the SoC through the PCB 106 to a DRAM interface 120 of the DRAM 104. The write command is sent from the DRAM interface 120 to a DRAM die 122 of the DRAM 104. A read command travels the same path in the opposite direction which results in data read from the DRAM die 122 being sent back to the SoC die in the opposite direction. The hardware configuration shown in FIG. 1 illustrates a general relationship of parts and may be modified to suit different cost, packaging, and performance objectives.

[0028] The package interface 112 may be on the same die as the SoC die 110 or a different die. The SoC 102 may have a package substrate that includes the SoC die 110, package interface 112 and other components. Similarly, the DRAM interface 120 may be a part of a DRAM die 122 or on a different die. The DRAM 104 may be formed on a single die or there may be many different components on a common substrate or in a common package. The SoC 102 and DRAM 104 may be in the same or different packages. The PCB 106 may be a package substrate or a system board or a combination of different physical parts connected together with traces, wirelines, bonding pads, and other connectors. The PCB may be a substrate for a system in a package. Alternatively, the PCB may be a system board and the DRAM may be soldered to the system board or mounted to another PCB as a Dual Inline Memory Module (DIMM) that is coupled to the PCB 106 through a socket.

[0029] The computing system may include one or more additional components. In this example, the SoC 102 is coupled through a bus 130 to a mass storage 132 to store data and instructions, a sensor suite 134 that may contain telemetry, ambient, and navigation sensors, a camera array 136, a user interface 138 that may include buttons, displays, microphones, speakers, etc., a network interface 140 that may include wired and wired network connections, and a radio interface 142 that may include short and long range radio interfaces for data and communications.

[0030] To travel between the SoC die 110 and the DRAM die 122, a signal, whether control or data, must traverse at least through the package interface, the PCB, and the DRAM interface. Each connection from one component to the next may cause an error or degrade performance of the memory. There may be flaws within any of the components or in the connections between any one component and another. In some instances, two or more weaknesses may be too small individually to affect a signal but together may cause errors, slow performance, or render a memory array element inoperative.

[0031] A DRAM IO routing test from the SoC die 110 to the DRAM die 122 may be initiated by a test block 114 of the SoC die. The SoC die 110 may also include a cache 116 for high-speed storage of instructions and intermediate results. The DRAM 104 allows for storage of larger instruction and data sets. The test block 114 may include signal and test pattern generators as well as systems to determine the results of any tests. The test block 114 is coupled to configuration registers 118 within the SoC 102. The configuration registers are used to set the parameters of a loopback test that is performed by the test block 114. As described below, the registers may be used to configure the data lines that will be used as loopback target data lines and the data lines that will be used as loopback data output lines. The configuration registers 118 may also be used to determine whether full duplexing, multi-bit, or inter-subchannel loopback tests are performed. The test is initiated at the test block 114 and routed through the package interface 112 to the DRAM die 122 and back. A routing test to a DRAM memory cell 128 of the DRAM die 122 does not pinpoint whether a failure or degraded performance is caused by the connected memory array element of the DRAM or by something else along the route. In other words, errors are not segregated between the DRAM cells within the DRAM die 122 and the route. To this end, the DRAM includes a loopback switch 124 between the DRAM interface 120 and the DRAM die 122. The loopback switch 124 may be activated by the test block 114 by setting DRAM control registers 126 in the DRAM 104. When the loopback switch 124 is open, as shown, then the routing test includes the memory cells 128 of the DRAM die 122. The open switch also allows for normal operation of the memory in use by the SoC 102. When the loopback switch 124 is closed, then a loopback test may be performed that tests only the IO route between the SoC die 110 and the DRAM die 122. The test will not be affected by any particular memory cell 128 of the DRAM die 122. Using the loopback switch 124 allows errors of the DRAM cells to be segregated from errors of the route.

[0032] For DDR SDRAM and other high-performance memory, a realistic test may have high, persistent I / O traffic to stress the route and the components along the route. Parallel data lines are used simultaneously to also test crosstalk effects between the parallel data lines.

[0033] FIG. 2 is a block diagram of a simplified example loopback test system 200. There may be many more components of the system 200 than are shown in the diagram including processors, controllers, registers, instructions, etc. The loopback test may be initiated by an SoC 204 which sends control information to a DRAM 206 to configure the DRAM, e.g., at a loopback switch for a loopback test. In an example, the SoC sets configuration registers, e.g., mode registers on the DRAM to set the configuration of the loopback test and to disable memory operations on all or part of the IO channel to the DRAM.

[0034] After configuration, the SoC 204 may generate multi-bit data 210 for a loopback test. The SoC may include, for example, a number generator, e.g., a pseudorandom number generator, a register, or any other suitable number generator (not shown) . The multi-bit data propagates through paths of the SoC die, i.e., an SoC die path 212 to come to the SoC package interface 214. The interface 214 may include the die, connectors, traces, and other components. The multi-bit data then propagates through a PCB 242 to which the SoC 204 and DRAM 206 are mounted. The PCB 242 may be a package substrate, a system board, an interposer, or any other suitable material or combination of materials, depending on the particular implementation of the system 200.

[0035] From the PCB 242, the multi-bit data passes through a DRAM package interface 230 which may include any number of connectors, pins, tabs, slots, etc. and through a DRAM die path 232 to a loopback switch 234. The DRAM package interface 230 is coupled to the SoC package interface 214 through the PCB 242. The loopback switch 234 is coupled to the DRAM package interface 230 through the DRAM die path 232. The loopback switch 234 is configured to connect the loopback target data line 246 from the PCB 242 to a loopback data output line 248 to the PCB 244 on a different path. The PCB 244 is typically the same as the PCB 242, above. The blocks labeled as PCB 242 and PCB 244 are used as abstractions of the path of the data lines through the same PCB but in opposite directions. A loopback data output line 248 connects from the loopback switch 234 through a DRAM die path 236 and through a DRAM package interface 238 to the separate path through the PCB 244. From the PCB 244, the loopback data output line 248 connects to an SoC package interface 216 of the SoC and through the SoC Die Path 218 to an output buffer 224. The output buffer 224 is coupled to the DRAM package interface 238 through the PCB 244, the SoC package interface 216 and the SoC die path 218.

[0036] The output buffer collects the data on the loopback data output line 248 that is returned from the loopback switch 234. The original multi-bit data 210 is passed to a target buffer 220 before the multi-bit data of the loopback target data line 246 propagates through the SoC die path 212 to the SoC package interface 214 and eventually to the loopback switch 234. At the SoC a comparator, e.g., an XOR logic unit 222, compares the sequence of values in the target buffer 220 to the returned sequence of values in the output buffer 224. The result is sent to a register. A processor (not shown) evaluates the content of the register 226 to determine whether there are any faults in the paths and interfaces that are tested by the loopback test.

[0037] FIG. 3 is a diagram of a portion of a DRAM with full duplexing of a 16-bit data line loopback. The DRAM 300 is coupled to a 16-bit IO channel 302 that includes 16 data lines labeled as DQ0 through DQ15. These are coupled to a loopback switch 304 of the DRAM 300 and from the loopback switch 304 to a DRAM Internal Block 314. The DRAM Internal Block 314 includes the memory cells to which data is written from the IO channel 302 and from which data is read to the IO channel 302. The loopback switch 304 has an operational mode in which the 16 data lines connect to the DRAM Internal Block 314 with a first part 320 of the 16-bit data line and with a second part 322 of the 16-bit channel 302 so that all of the data lines of the channel are coupled to the DRAM internal block.

[0038] The loopback switch 304 has a loopback mode in which 8 data lines are coupled to 8 other data lines through a loopback connection 324. In the present example, lines DQ0-7 each connect to one of lines DQ8-15, respectively, however, the loopback switch 304 may connect any one line to any one other line such that each line is either a loopback target data line from an SoC to the loopback switch 304 or a loopback data output line (LPDO) from the loopback switch 304 to the SoC.

[0039] The loopback switch 304 includes an upper switch matrix 306 to connect data lines Data0 to Data7, e.g., DQ0-DQ7, to a loopback shunt line. The loopback switch 304 also includes a lower switch matrix 308 to connect data lines Data8 to Data15, e.g., DQ8-DQ15, to a loopback shunt line. The upper switch matrix 306 is operated by an upper switch allocator 310 and the lower switch matrix is operated by a lower switch allocator 312. The upper switch allocator 310 and the lower switch allocator may be operated by external components including a state machine, controller, or other components. By appropriately setting the upper switch matrix 306 and the lower switch matrix 308, the loopback connection 324 may be enabled or disabled through appropriate shunt lines. Any one or more of the components may be combined with other components. Some components may be separated into multiple components. There may be more or fewer data lines and the data lines and multiple 16-bit, 12-bit or other size data lanes may be combined to form multiple channels. The loopback may be applied to one or more of the channels to perform one or more loopback tests at the same or a similar time.

[0040] FIG. 4 is a diagram of a loopback circuit and DRAM Internal Block showing switches for a loopback mode. An example loopback switch 402 is coupled to a DRAM Internal block 406 but configured for a loopback mode. As shown, an IO channel 420 has a 16-bit width. Each of the 16 data lines may be connected directly to the DRAM Internal Block 406 through a respective switch 412, 414 of the loopback switch 402. In this example, each switch 412, 414 is a single-pole double-throw (SPDT) switch in which a first throw connects to a corresponding data line 418 to the DRAM Internal Block 406 and a second throw connects to a shunt line 416. The shunt lines are connected to a respective one of the first plurality of switches and a respective one of the second plurality of switches.

[0041] Each of the 16 data lines has a switch and the shunt lines connect one data line to another data line, so that there are half as many shunt lines as data lines. In this example, a first shunt line 416 (shunt line 1) connects data line 0 to data line 8. Shunt line 2 connects data line 1 to data line 9. Shunt line 3 connects data line 2 to data line 10. Shunt line 4 connects data line 3 to data line 11. Shunt line 5 connects data line 4 to data line 12. Shunt line 6 connects data line 5 to data line 13. Shunt line 7 connects data line 6 to data line 14. Shunt line 8 connects data line 7 to data line 15. This provides a one-to-one correlation between the first half of the data lines, the loopback target data lines, data lines 0-7, and the second half of the data lines, the loopback data output lines, data lines 8-15. Accordingly, a first plurality of switches coupled to the first set of loopback target data lines are connected to respective shunt lines. A second plurality of switches coupled to the second set of loopback output data lines are connected to a respective shunt line.

[0042] In another configuration, the shunt lines may connect different data lines. In another configuration, a triple throw, or other multiple throw switch may be used to select between multiple different shunt lines to allow a data line to be connected to more than one other data line for other tests. While a symbol for a simple switch is shown in the drawing figures, the switch may be formed in different ways to suit different applications, numbers of lines, voltage demands, and control connections. In some configurations, transistor switches are used and a gate of each transistor switch is connected to a test controller circuit of a memory die.

[0043] By using a first set of multiple adjacent data lines for the loopback target data lines and a second set of multiple adjacent data lines for the loopback data output, crosstalk may be generated during testing. The crosstalk may be increased if the loopback target data lines are adjacent to the loopback data output lines as shown in FIG. 4. The crosstalk is similar to that incurred in an operational mode and allows a test to simulate heavy IO stress as may occur in normal use.

[0044] The loopback switch provides full duplexing of the multi bit data lanes of the IO channel 420 in the loopback. In this example, the eight data lines DQ0-DQ7 are looped back to the remaining eight data lines DQ8-DQ15 all 8 at once instead of 1 at a time. The SoC may accomplish this using configuration registers coupled through a memory controller to switches 412, 414 of the loopback switch 402. In this example, DQ0 always connects through a shunt line 416 to DQ8, however other and multiple different configurations are possible. The SoC may send write commands through DQ0-DQ7 for loopback on DQ8-DQ15 or vice versa to suit different test protocols.

[0045] FIG. 5 is a diagram of an example mode register to control a loopback switch. The example is particularly well suited for LPDDR4 and LPDDR5 but may be used or adapted for other DDR standards, conventions, and implementations. The first column indicates a register and the second column provides comments for the register of the first column and the same row. The first row 502 of the mode register 500 identifies a mode register that may be used for this purpose. In LPDDR4 and LPDDR6, MR76 is currently not used for another purpose. MR76, or any other suitable mode register may be used. The values indicated in FIG. 5 are stored in the DRAM control register and set by a connected SoC or processor. The mode register at row 504 provides 7 bits, 0-6 to define mode register address 76 (MA) as hexadecimal number 4C (or 4CH) . The access mode at row 506 is read and write (R / W) . This indicates that mode register MR76 is a register which both can be read and written. Eight operators OP [7] to OP [0] are defined in rows 508 to 522.

[0046] Three bits OP [7] , OP [6] , and OP [5] are used in rows 508, 510, 512 to define the loopback target data line, e.g. target DQ, and the loopback data output lines, e.g. loopback output. This definition is defined as output setting 2 for the DQ pins that are coupled to the data lines. Examples of possible values for the three bits are as follows:

[0047] 000: Set DQ8-DQ-15 as Target DQs and loopback output to DQ0-DQ7.

[0048] 001: Set DQ12-DQ15 as Target DQ and loopback output to DQ0-DQ3. Set DQ8-DQ11 as Target DQ and loopback to DQ4-DQ7.

[0049] 010: Set DQ10-DQ11 as Target DQ and loopback output to DQ0-DQ1. Set DQ8-DQ9 as Target DQ and loopback output to DQ2-DQ3. Set DQ14-DQ15 as Target DQ and loopback to DQ4-DQ5. Set DQ12-DQ13 as Target DQ and loopback output to DQ6-DQ7.

[0050] 100: Set DQ4-DQ7 as Target DQ and loopback output to DQ0-DQ3. Set DQ12-DQ15 as Target DQ and loopback to DQ8-DQ11.

[0051] 101: Set DQ2-DQ3 as Target DQ and loopback output to DQ0-DQ1. Set DQ6-DQ7 as Target DQ and loopback output to DQ4-DQ5. Set DQ10-DQ11 as Target DQ and loopback to DQ8-DQ9. Set DQ14-DQ15 as Target DQ and loopback output to DQ12-DQ13.

[0052] 110: Set DQn+1 as Target DQs and loopback output to DQn, where n=0, 2, 4, 6, 8, 10, 12, 14.

[0053] Three bits OP [4] , OP [3] , and OP [2] are used in rows 514, 516, 518 to define the target DQ line and the loopback data output lines. This definition is defined as output setting 1 for the DQ pins that are coupled to the data lines. In this example, the different configurations for output setting 1 are in the opposite direction as in output setting 2. The target DQs of option 2 become the loopback output of option 1 and vice versa. Reversing the signals allows a loopback test to determine if the faults are in one direction or the other.

[0054] Examples of possible values for the three bits are as follows:

[0055] 000: Set DQ0-DQ7 as Target DQs and loopback output to DQ8-DQ-15.

[0056] 001: Set DQ0-DQ3 as Target DQ and loopback output to DQ12-DQ15. Set DQ4-DQ7 as Target DQ and loopback to DQ8-DQ11.

[0057] 010: Set DQ0-DQ1 as Target DQ and loopback output to DQ10-DQ11. Set DQ2-DQ3 as Target DQ and loopback output to DQ8-DQ9. Set DQ4-DQ5 as Target DQ and loopback to DQ14-DQ15. Set DQ6-DQ7 as Target DQ and loopback output to DQ12-DQ13.

[0058] 100: Set DQ0-DQ3 as Target DQ and loopback output to DQ4-DQ7. Set DQ8-DQ11 as Target DQ and loopback to DQ12-DQ15.

[0059] 101: Set DQ0-DQ1 as Target DQ and loopback output to DQ2-DQ3. Set DQ4-DQ5 as Target DQ and loopback output to DQ6-DQ7. Set DQ8-DQ9 as Target DQ and loopback to DQ10-DQ11. Set DQ12-DQ13 as Target DQ and loopback output to DQ14-DQ15.

[0060] 110: Set DQn as Target DQs and loopback output to DQn+1, where n=0, 2, 4, 6, 8, 10, 12, 14.

[0061] OP [1] at row 520 defines the target DQ and loopback output setting option. As an example, 0 may indicate enable the Target DQ and Loopback output setting 1 and disable the Target DQ and Loopback setting 2.1 may indicate enable the Target DQ and Loopback output setting 2 and disable the Target DQ and Loopback setting 1.

[0062] OP [0] at row 522 enables or disables the loopback. 0 may indicate loopback disable and 1 may indicate loopback enable.

[0063] In examples, the settings provided in MR76 are inside the current channel. In addition, for the first three settings of setting 1 and 2, i.e. 000, 001, 010, the target DQ data and loopback output are in different bytes. For the second three settings of setting 1 and 2, i.e. 100, 101, 110, the target DQ data and loopback output are in the same byte. The proposed settings and configuration for the mode register are provided as examples and show many functions that may be defined and used for a suitable implementation. More or fewer registers may be used to configure a loopback switch for a loopback test and for operation.

[0064] FIG. 6 is a diagram of a portion of a DRAM with full duplexing of a 12-bit data line loopback. The DRAM 600 is coupled to a 12-bit IO channel 602 that includes 12 data lines labeled as DQ0 through DQ11. These are coupled to a loopback switch 604 of the DRAM 600 and from the loopback switch 604 to a DRAM Internal Block 614. The DRAM Internal Block 614 includes the memory cells to which data is written from the IO channel 602 and from which data is read to the IO channel 602. The loopback switch 604 has an operational mode in which the 12 data lines connect to the DRAM Internal Block 614 with a first part 620 of the 12-bit data line and with a second part 622 of the 12-bit channel IO 602 so that all of the data lines of the channel are coupled to the DRAM internal block 614.

[0065] The loopback switch 604 has a loopback mode in which 6 data lines are coupled to 6 other data lines through a loopback connection 624. In the present example, lines DQ0-DQ5 each connect to one of lines DQ6-DQ11, respectively, however, the loopback switch 604 may connect any one line to any one other line such that each line is either a loopback target data line from an SoC to the loopback switch 604 or a loopback data output line (LPDO) from the loopback switch 604 to the SoC.

[0066] The loopback switch 604 includes an upper switch matrix 606 to connect data lines Data0 to Data5, e.g., DQ0-DQ5, to a loopback shunt line. The loopback switch 604 also includes a lower switch matrix 608 to connect data lines Data6 to Data11, e.g., DQ6-DQ11, to a loopback shunt line. The upper switch matrix 606 is operated by an upper switch allocator 610 and the lower switch matrix is operated by a lower switch allocator 612. The upper switch allocator 610 and the lower switch allocator may be operated by external components including a state machine, controller, or other components. While a 16-bit data lane is shown in FIG. 3 and a 12-bit data lane is shown in FIG. 6, there may be more or fewer data lines and the data lines and multiple data lanes may be combined to form multiple channels.

[0067] FIG. 7 is a diagram of a loopback circuit and DRAM Internal Block showing switches for a loopback mode. An example loopback switch 702 is coupled to a DRAM Internal block 706 but configured for a loopback mode. As shown, an IO channel 720 has a 12-bit width. Each of the 12 data lines may be connected directly to the DRAM Internal Block 706 through a respective switch 712, 714 of the loopback switch 702, e.g., an SPDT switch in which a first throw connects to a corresponding data line 718 to the DRAM Internal Block 706 and a second throw connects to a shunt line 716.

[0068] Each of the 12 data lines has a switch and the shunt lines connect one data line to another data line, so that there are half as many shunt lines as data lines. In this example, a first shunt line 716 (shunt line 1) connects data line 0 to data line 6. Shunt line 2 connects data line 1 to data line 7. Shunt line 3 connects data line 2 to data line 8. Shunt line 4 connects data line 3 to data line 9. Shunt line 5 connects data line 4 to data line 10. Shunt line 6 connects data line 5 to data line 11.

[0069] The shunt line connections are provided as examples, other configurations may be used to connect different data lines. In another configuration, a triple throw, or other multiple throw switch may be used to select between multiple different shunt lines to allow a data line to be connected to more than one other data line for other tests.

[0070] The configuration of FIG. 7 allows for crosstalk testing for a 12-bit data lane and for stress testing by sending data on all 6 of the loopback target data lines and reading results on all 6 LPDO lines at the same time. Accordingly, full duplexing of the multi bit data lanes of the IO channel 720 is possible in the loopback. A loopback test may be driven by an SoC using configuration registers as described above in the context of FIG. 5 in which the values are adjusted to accommodate a 12-bit bus. Larger or smaller data lanes may be accommodated in a similar way.

[0071] FIG. 8 is a diagram of a portion of a DRAM with full duplexing across two 12-bit subchannels through a cross-channel loopback. The DRAM 800 is coupled to a first 12-bit IO subchannel that includes 12 data lines labeled as DQ0 through DQ11. The first subchannel 802 may be identified as e.g. subchannel 0. The data lines of the first subchannel 802 are coupled to a loopback switch 804 of the DRAM 800 and from the loopback switch 804 to a DRAM Internal Block 814. The DRAM Internal Block 814 includes the memory cells to which data is written from the first subchannel 802 and from which data is read to the first subchannel 802. The loopback switch 804 has an operational mode in which the 12 data lines connect to the DRAM Internal Block 814 with the full 12-bit lane 820 of the 12-bit data lane.

[0072] The DRAM 800 is coupled to a second 12-bit IO subchannel includes 12 data lines also labeled as DQ0 through DQ11. The second subchannel 826 may be identified as e.g. subchannel 1. The data lines of the second subchannel 826 are coupled to the loopback switch 804 and from the loopback switch 804 also to the DRAM Internal Block 814. The loopback switch 804 has an operational mode in which the 12 data lane of subchannel 1 connect to the DRAM Internal Block 814 with the full 12 lines 822 of the 12-bit data lane. In a loopback mode, the 12 data lines of the first subchannel 802 are connected through the loopback connections 824 to the 12 data lines of the second subchannel 826. In the present example, lines DQ0-DQ11 of the first subchannel 802 each connect to one of lines DQ0-DQ11 of the second subchannel, respectively, however, the loopback switch 804 may connect any one line to any one other line such that each line is either a loopback target data line from an SoC to the loopback switch 804 or a loopback data output line (LPDO) from the loopback switch 804 to the SoC. The cross-channel loopback may also be referred to as inter-subchannel.

[0073] The loopback switch 804 includes an upper switch matrix 806 to connect data lines Data0 to Data11, e.g., DQ0-DQ11 of the first subchannel, to a loopback shunt line. The loopback switch 804 also includes a lower switch matrix 808 to connect data lines Data0 to Data11, e.g., DQ0-DQ11 of the second subchannel, to a loopback shunt line. The upper switch matrix 806 is operated by an upper switch allocator 810 and the lower switch matrix is operated by a lower switch allocator 812. The upper switch allocator 810 and the lower switch allocator may be operated by external components including a state machine, controller, or other components. While a 12-bit data lane is shown in FIG. 8, a 16-bit data lane as shown in FIG. 3, or any other width data lane may be used for the two subchannels.

[0074] FIG. 9 is a diagram of a loopback circuit and DRAM Internal Block showing switches for a cross-channel loopback mode. An example DDR package interface 904 is coupled to a first subchannel 930, subchannel 0, and to a second subchannel 932, subchannel 1. While the first subchannel 930 and the second subchannel 932 are shown as 12-bit data lanes, any suitable data lane width may be used. The DDR package interface 904 connects the first subchannel 930 and the second subchannel 932 to a loopback switch 906 that is coupled to a DRAM Internal Block 908. The DDR package interface 904, the loopback switch 906 and the DRAM Internal Block are all components of a DRAM 902. The DRAM 902 may have more components, not shown, to provide additional functions and capabilities. The loopback switch 906 is configured for a loopback mode. As shown an IO channel 930 has a 12-bit width. Each of the 12 data lines may be connected directly to the DRAM Internal Block 908 through a respective switch 912 of the loopback switch 906, e.g., an SPDT switch in which a first throw connects to a corresponding data line 918 to the DRAM Internal Block 908 and a second throw connects to a shunt line 916.

[0075] Within the DRAM 902, each of the 12 data lines of the first subchannel 920 has a switch 912 and the shunt lines 916 connect one data line of the first subchannel 920 to a data line of the second subchannel 924, so that there are half as many shunt lines as data lines. In this example, a first shunt line 916 (shunt line 1) connects data line 0 of the first subchannel 920 to data line 0 of the second subchannel 924. A corresponding switch 914 at data line 0 of the second subchannel 924 connects data line 0 to the shunt line 916 or to the DRAM internal block 908. Twelve shunt lines connect twelve switches of the twelve data lines of the first subchannel 920 to twelve switches of the twelve data lines of the second subchannel 924. Any one or more of the twelve data lines may be set to a loopback mode as discussed above.

[0076] The shunt line connections are provided as examples, other configurations may be used to connect different data lines. In another configuration, a triple throw, or other multiple throw switch may be used to select between multiple different shunt lines to allow a data line to be connected to more than one other data line for other tests.

[0077] The configuration of FIG. 9 allows for additional crosstalk testing due to the additional lines and also for crosstalk testing across subchannels. Full duplexing of two multi bit data lanes is possible in the loopback.

[0078] A loopback test may be driven by an SoC using configuration registers as described in FIG. 10. Larger or smaller data lanes may be accommodated by making suitable adjustments to the register configurations and functions.

[0079] FIG. 10 is a diagram of an example mode register to control subchannels of an inter-subchannel or intra-subchannel loopback switch. The example mode register 1000 is particularly well suited for LPDDR6 but may be used or adapted for other DDR standards, conventions, and implementations. The first column indicates a register and the second column provides comments for the register of the first column and the same row. The first row 1002 identifies a mode register that may be used for this purpose. In LPDDR6, mode register MR112 is currently not used for another purpose. MR112 or any suitable variation, may be used for this purpose. The values indicated in FIG. 10 may be stored in a DRAM control register to control the configuration and operation of a loopback switch of the DRAM. The mode register at row 1004 provides 7 bits, 0-6 to define mode register address (MA) 112 as hexadecimal number 70 (or 70H) .

[0080] The access mode at row 1006 is read and write (R / W) . The mode register MR112 accepts read and write operations so that the SoC may modify the parameters of the loopback modes at any time by writing to MR112. Eight operators OP [7] to OP [0] are defined in rows 1008 to 1022.

[0081] OP [7] in row 1008 defines the inter-subchannel target DQ and loopback output settings for the subchannel. As mentioned, there may be a mode register MR112 for each subchannel. Example values may be:

[0082] 0: set current subchannel as Target DQ.

[0083] 1: set current subchannel as loopback output.

[0084] Two bits OP [6] , and OP [5] are used in rows 1010, and 1012 to define the target DQ line and the loopback data output lines. This definition is defined as output setting 2 for the DQ pins that are coupled to the data lines. Examples of possible values for the two bits are as follows:

[0085] 00: Set DQ6-DQ-11 as Target DQs and loopback output to DQ0-DQ5.

[0086] 01: Set DQ9-DQ11 as Target DQ and loopback output to DQ0-DQ2. Set DQ6-DQ8 as Target DQ and loopback to DQ3-DQ5.

[0087] 10: Set DQ3-DQ5 as Target DQ and loopback output to DQ0-DQ2. Set DQ9-DQ11 as Target DQ and loopback output to DQ8-DQ10.

[0088] 11: Set DQn+1 as Target DQs and loopback output to DQn, where n=0, 2, 4, 6, 8, 10.

[0089] Two bits OP [4] , OP [3] , are used in rows 1014, 1016 to define the inter-subchannel target DQ line and the loopback data output lines. This definition is defined as output setting 1 for the DQ pins that are coupled to the data lines. In this example the different configurations for output setting 1 are in the opposite direction as in output setting 2. The target DQs of option 2 become the loopback output of option 1 and vice versa. Reversing the signals allows a loopback test to determine if the faults are in one direction or the other.

[0090] Examples of possible values for the two bits are as follows:

[0091] 00: Set DQ0-DQ5 as Target DQs and loopback output to DQ6-DQ-11.

[0092] 01: Set DQ0-DQ2 as Target DQ and loopback output to DQ9-DQ11. Set DQ3-DQ5 as Target DQ and loopback to DQ6-DQ8.

[0093] 10: Set DQ0-DQ2 as Target DQ and loopback output to DQ3-DQ5. Set DQ6-DQ8 as Target DQ and loopback to DQ9-DQ11.

[0094] 11: Set DQn as Target DQs and loopback output to DQn+1, where n=0, 2, 4, 6, 8, 10.

[0095] OP [2] in row 1018 defines the inter-subchannel target DQ and loopback output setting option. As an example, 0 may indicate enable the Target DQ and Loopback output setting 1 and disable the Target DQ and Loopback setting 2.1 may indicate enable the Target DQ and Loopback output setting 2 and disable the Target DQ and Loopback setting 1.

[0096] OP [1] and OP [0] are used in rows 1020 and 1022 as an inter-subchannel loopback enable register to enable or disable the loopback. Examples of values are

[0097] 00: Loopback disabled

[0098] 01 Inter-subchannel loopback enable

[0099] 10: Inter-subchannel loopback enabled

[0100] 11: RFU (Reset to Default Values)

[0101] In examples, the settings provided in MR112 are inside the current channel. The proposed settings and configuration for the mode register are provided as examples and show many functions that may be defined and used for a suitable implementation. More or fewer registers may be used to configure a loopback switch for a loopback test and for operation. More or fewer bits may be used to indicate more or fewer setting for each characteristic of the loopback mode.

[0102] FIG. 11 is an overview of a process for a multi-bit data line loopback test. A process 1100 is from the perspective of an SoC or other processor that is running the loopback test on a connected DRAM. As mentioned above, the DRAM may be on the same die, in the same package, or attached through one or more system boards. The test begins with a decision at 1102 to run a DRAM loopback test. If the decision is NO, then the process returns to try the test at 1102 again. If the decision is YES, then at 1104, the SoC sets mode registers at the DRAM to enable loopback and sets the mode registers for the IO lines that will be used for the loopback test.

[0103] At 1106, the SoC sets is own configuration registers for the loopback test. At 1108, the SoC starts the DRAM loopback data transfer. The SoC sends the target data over the target data lines selected by the configuration registers to the DRAM and receives the loopback data output through the selected LPDO lines. A special loopback test block may be used or a general-purpose processor may be used with specific instructions for loopback test from memory. At 1110, the SoC compares the received loopback data output received through the loopback to the loopback target data and compares it to the loopback target data to find faults in one or more of the lines.

[0104] At 1112, the SoC determines if the loopback test is completed. If so, the process 1100 ends. If not, then the process 1100 returns to continue the test at 1108. The test may be repeated if the results are ambiguous or continued to obtain more accurate results.

[0105] FIG. 12 is a process flow diagram of performing a loopback test at a DRAM as described herein. The process 1200 includes, at 1204, configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines, where each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines.

[0106] At 1206, the process includes receiving target data on the first set of loopback target data lines through a DRAM interface of the DRAM. At 1208, the process includes looping back the target data through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.

[0107] FIG. 13 is a simplified process flow diagram of performing a loopback test at an SoC or processor as described herein. The process 1300 includes, at 1304, sending a loopback switch configuration for a Dynamic Random Access Memory (DRAM) to a DRAM, the loopback switch configuration to connect a first set of loopback target data lines to a second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines.

[0108] At 1306, the process includes sending target data on the first set of loopback target data lines through a DRAM interface of the DRAM. At 1308, the process includes receiving loopback data output through the loopback switch on the second set of loopback output data lines from the DRAM interface.

[0109] The following provides an overview of examples of the present disclosure.

[0110] Example 1: An apparatus comprising: a Dynamic Random Access Memory (DRAM) ; a first set of loopback target data lines; a second set of loopback output data lines; a loopback switch to connect the first set of loopback target data lines to the second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines; and a DRAM interface to receive target data on the first set of loopback target data lines and to send the target data looped back from the loopback switch as loopback data output on the second set of loopback output data lines.

[0111] Example 2: The apparatus of example 1, further comprising a DRAM control register, wherein the DRAM control register includes a mode register to configure the loopback switch.

[0112] Example 3: The apparatus of example 2, wherein the mode register is configured to set the first set of loopback target data lines and the second set of loopback output data lines.

[0113] Example 4: The apparatus of example 3, wherein the mode register is configured to set a first half of the data lines as the first set of loopback target data lines and to set the second half of the data lines as the second set of loopback output data lines.

[0114] Example 5: The apparatus of example 4, wherein the first half of the data lines are of a first subchannel and the second half of the data lines are of a second subchannel, and wherein the mode register is configured to set the first subchannel as the loopback target data lines and to set the second subchannel as the loopback output data lines.

[0115] Example 6: The apparatus of any one or more of the above examples, wherein the loopback switch comprises: a first plurality of switches coupled to the first set of loopback target data lines; a second plurality of switches coupled to the second set of loopback output data lines; and a plurality of shunt lines connected to a respective one of the first plurality of switches and a respective one of the second plurality of switches.

[0116] Example 7: A method comprising: configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines; receiving target data on the first set of loopback target data lines through a DRAM interface of the DRAM; and looping back the target data through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.

[0117] Example 8: The method of example 7, wherein the configuring the loopback switch comprises setting a mode register of a DRAM control register.

[0118] Example 9: The method of example 8, wherein the setting the mode register comprises setting the first set of loopback target data lines and the second set of loopback output data lines.

[0119] Example 10: The method of example 9, wherein the setting the first set of loopback target data lines comprises setting a first half of the data lines as the first set of loopback target data lines and the setting the second half of the data lines as the second set of loopback target data lines.

[0120] Example 11: The method of example 10, wherein the setting the first set of loopback target data lines comprises setting a one-to-one correlation between the first half of the data lines and the second half of the data lines.

[0121] Example 12: The method of example 10 or 11, wherein the first half of the data lines are of a first subchannel and the second half of the data lines are of a second subchannel, and wherein the setting the mode register comprises setting the first subchannel as the loopback target data lines and setting the second subchannel as the loopback output data lines.

[0122] Example 13: The method of example 12, wherein the setting the mode register comprises setting an inter-subchannel loopback enable register.

[0123] Example 14: The method of any one or more of examples 7-13, wherein the configuring the loopback switch comprises connecting a first plurality of switches coupled to the first set of loopback target data lines to respective shunt lines and connecting a second plurality of switches coupled to the second set of loopback output data lines to a respective shunt line.

[0124] Example 15: The method of any one or more of examples 7-14, wherein the receiving target data comprises receiving target data on each data line of the first set of loopback target data lines simultaneously and wherein the looping back comprises looping back on each data line of the second set of loopback output data lines simultaneously.

[0125] Example 16: The method of any one or more of examples 7-15, further comprising disabling memory operations for the first set of loopback target data lines and the second set of loopback output data lines.

[0126] Example 17: An apparatus comprising: means for configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines; means for receiving target data on the first set of loopback target data lines through a DRAM interface of the DRAM; and means for looping back the target data through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.

[0127] Example 18: The method of example 17, wherein the setting the mode register comprises setting a first half of the data lines as the first set of loopback target data lines and the setting the second half of the data lines as the second set of loopback target data lines.

[0128] Example19: The method of example 10, wherein the first half of the data lines are of a first subchannel and the second half of the data lines are of a second subchannel, and wherein the setting the mode register comprises setting the first subchannel as the loopback target data lines and setting the second subchannel as the loopback output data lines.

[0129] Example 20: The method of example 19, wherein the setting the mode register comprises setting an inter-subchannel loopback enable register.

[0130] It is to be appreciated that the present disclosure is not limited to the exemplary terms used above to describe aspects of the present disclosure. E. g., sending may also be referred to as transmitting, providing, signaling, or another term.

[0131] Although aspects of the present disclosure are discussed above using the example of a DDR standard, it is to be appreciated that present disclosure is not limited to this example and may be used with other standards.

[0132] The SoC die 110, test block 114, DRAM die 122, configuration and mode registers, loopback switches and other components discussed above may each be implemented with a controller or processor configured to perform the functions described herein by executing software including code for performing the functions. The software may be stored on a non-transitory computer-readable storage medium, e.g., a RAM, a ROM, an EEPROM, an optical disk, and / or a magnetic disk, shown as host system cache 116, memory cells 128, or as another memory.

[0133] Any reference to an element herein using a designation e.g., “first, ” “second, ” and so forth does not generally limit the quantity or order of those elements. Rather, these designations are used herein as a convenient way of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements can be employed, or that the first element must precede the second element.

[0134] Within the present disclosure, the word “exemplary” is used to mean “serving as an example, instance, or illustration. ” Any implementation or aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure. Likewise, the term “aspects” does not require that all aspects of the disclosure include the discussed feature, advantage, or mode of operation. The term “coupled” is used herein to refer to the direct or indirect electrical or other communicative coupling between two structures. Also, the term “approximately” means within ten percent of the stated value.

[0135] The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1.An apparatus comprising:a Dynamic Random Access Memory (DRAM) ;a first set of loopback target data lines;a second set of loopback output data lines;a loopback switch to connect the first set of loopback target data lines to the second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines; anda DRAM interface to receive target data on the first set of loopback target data lines and to send the target data looped back from the loopback switch as loopback data output on the second set of loopback output data lines.2.The apparatus of claim 1, further comprising a DRAM control register, wherein the DRAM control register includes a mode register to configure the loopback switch.3.The apparatus of claim 2, wherein the mode register is configured to set the first set of loopback target data lines and the second set of loopback output data lines.4.The apparatus of claim 3, wherein the mode register is configured to set a first half of the data lines as the first set of loopback target data lines and to set the second half of the data lines as the second set of loopback output data lines.5.The apparatus of claim 4,wherein the first half of the data lines are of a first subchannel and the second half of the data lines are of a second subchannel, andwherein the mode register is configured to set the first subchannel as the loopback target data lines and to set the second subchannel as the loopback output data lines.6.The apparatus of claim 1, wherein the loopback switch comprises:a first plurality of switches coupled to the first set of loopback target data lines;a second plurality of switches coupled to the second set of loopback output data lines; anda plurality of shunt lines connected to a respective one of the first plurality of switches and a respective one of the second plurality of switches.7.A method comprising:configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines;receiving target data on the first set of loopback target data lines through a DRAM interface of the DRAM; andlooping back the target data through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.8.The method of claim 7, wherein the configuring the loopback switch comprises setting a mode register of a DRAM control register.9.The method of claim 8, wherein the setting the mode register comprises setting the first set of loopback target data lines and the second set of loopback output data lines.10.The method of claim 9, wherein the setting the first set of loopback target data lines comprises setting a first half of the data lines as the first set of loopback target data lines and the setting the second half of the data lines as the second set of loopback target data lines.11.The method of claim 10, wherein the setting the first set of loopback target data lines comprises setting a one-to-one correlation between the first half of the data lines and the second half of the data lines.12.The method of claim 10,wherein the first half of the data lines are of a first subchannel and the second half of the data lines are of a second subchannel, andwherein the setting the mode register comprises setting the first subchannel as the loopback target data lines and setting the second subchannel as the loopback output data lines.13.The method of claim 12, wherein the setting the mode register comprises setting an inter-subchannel loopback enable register.14.The method of claim 7, wherein the configuring the loopback switch comprises connecting a first plurality of switches coupled to the first set of loopback target data lines to respective shunt lines and connecting a second plurality of switches coupled to the second set of loopback output data lines to a respective shunt line.15.The method of claim 7, wherein the receiving target data comprises receiving target data on each data line of the first set of loopback target data lines simultaneously and wherein the looping back comprises looping back on each data line of the second set of loopback output data lines simultaneously.16.The method of claim 7, further comprising disabling memory operations for the first set of loopback target data lines and the second set of loopback output data lines.17.An apparatus comprising:means for configuring a loopback switch of a Dynamic Random Access Memory (DRAM) to connect a first set of loopback target data lines to a second set of loopback output data lines, wherein each data line of the first set of loopback target data lines is coupled to a respective data line of the second set of loopback output data lines and the number of data lines of the first set of loopback target data lines is equal to the number of data lines of the loopback output data lines;means for receiving target data on the first set of loopback target data lines through a DRAM interface of the DRAM; andmeans for looping back the target data through the loopback switch as loopback data output on the second set of loopback output data lines to the DRAM interface.18.The method of claim 17, wherein the setting the mode register comprises setting a first half of the data lines as the first set of loopback target data lines and the setting the second half of the data lines as the second set of loopback target data lines.19.The method of claim 18,wherein the first half of the data lines are of a first subchannel and the second half of the data lines are of a second subchannel, andwherein the setting the mode register comprises setting the first subchannel as the loopback target data lines and setting the second subchannel as the loopback output data lines.20.The method of claim 19, wherein the setting the mode register comprises setting an inter-subchannel loopback enable register.