+

US9026725B2 - Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals - Google Patents

Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals Download PDF

Info

Publication number
US9026725B2
US9026725B2 US13/728,581 US201213728581A US9026725B2 US 9026725 B2 US9026725 B2 US 9026725B2 US 201213728581 A US201213728581 A US 201213728581A US 9026725 B2 US9026725 B2 US 9026725B2
Authority
US
United States
Prior art keywords
memory device
pins
sample
data
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US13/728,581
Other versions
US20140189224A1 (en
Inventor
Alexey Kostinsky
Zvika Greenfield
Christopher P. Mozak
Pavel Konev
Olga Fomenko
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tahoe Research Ltd
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to US13/728,581 priority Critical patent/US9026725B2/en
Priority to PCT/US2013/046406 priority patent/WO2014105134A1/en
Priority to KR1020157012168A priority patent/KR101729872B1/en
Priority to CN201380061848.9A priority patent/CN104903877B/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MOZAK, CHRISTOPHER P., FOMENKO, Olga, KONEV, Pavel, GREENFIELD, ZVIKA, KOSTINSKY, Alexey
Publication of US20140189224A1 publication Critical patent/US20140189224A1/en
Application granted granted Critical
Publication of US9026725B2 publication Critical patent/US9026725B2/en
Assigned to TAHOE RESEARCH, LTD. reassignment TAHOE RESEARCH, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTEL CORPORATION
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/105Aspects related to pads, pins or terminals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration

Definitions

  • Embodiments of the invention relate to training of memory links. More particularly embodiments of the invention relate to techniques for automatically mapping swizzled data.
  • CA Clock and Command/Address
  • FIG. 1 is a timing diagram corresponding to one embodiment of a training technique for mapping of data lines.
  • FIG. 2 is one embodiment of a timing diagram for a training sequence.
  • FIG. 3 illustrates two training patterns that may be used.
  • FIG. 4 is a block diagram of one embodiment of an electronic system.
  • FIG. 5 is a flow diagram of one embodiment of a training sequence that can be utilized in the system of FIG. 4 .
  • FIG. 6 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays.
  • FIG. 7 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays.
  • FIG. 8 is a flow diagram of one embodiment of data pin mapping that can be used after pre-training.
  • FIG. 9 is a flow diagram of one embodiment data pin mapping that can be used without pre-training.
  • FIG. 10 is a flow diagram of one embodiment of a technique for CS training that can be used after DQ mapping.
  • Low-Power DDR-3 (LPDDR-3 per JEDEC specification JESD209-3) command/address (CA) training mode and mode register readout (MRR) require specific data (DQ) pin mapping if there is swapping on the board. Not allowing swapping on the board restricts options to system designers and manufacturers by limiting product options and increasing design complexity. For example, mapping of all 128 DQ pins for a typical two-channel LPDDR3 embodiment would require significant human effort and may result in errors. It may also require a custom BIOS/MRC (Memory Reference Code) version for each board and for each memory configuration option, resulting in complex production environments and complex production management issues. Techniques described herein can determine the mapping of required signals automatically using memory device training modes.
  • BIOS/MRC Memory Reference Code
  • the mapping technique uses a byte mapping (e.g., 8 bits per 64-bit channel), which can eliminate monotonous manual labor and the corresponding probability of errors, as well as allowing a universal BIOS version to work with many different boards/platforms without the need to recompile the BIOS.
  • a byte mapping e.g., 8 bits per 64-bit channel
  • memory devices when performing CA training, sample the CA bus values and return feedback on the DQ pins.
  • the memory controller and any training support mechanisms e.g., software, firmware
  • FIG. 1 is a timing diagram corresponding to one embodiment of a training technique for mapping of data lines.
  • mapping of data pins is split in to even and odd training. In other embodiments, other splits or groupings can be used.
  • clock signal 110 is used to drive transactions on the CA bus 120 and the data bus.
  • the CA High phase values map to the even memory data outputs (e.g., DQ0, DQ2, DQ4) and the CA Low phase values map to the odd memory data outputs (e.g., DQ1, DQ3, DQ5).
  • transmitting a single CA phase with a value different from all other CA pins and the second phase of the same pin will result in a single data signal having a value different than the other pins (e.g., one of 16 pins are high). Cycling through the position of the single differing value allows the training mechanism to identify one data pin at a time and generate an appropriate mapping in a more efficient manner than possible using prior art techniques.
  • a different CA phase per each four pins can be used. For example to find data pin 0 (DQ0) in Byte 0 and data pin 8 (DQ8) in Byte 1, a value of “1” can be transmitted on CA0 and CA5 high phases, while CA0 and CA5 low phases and all other CA pins transmit “0”. This results in a single “1” value on each DQ byte that provides feedback (lower two bytes of the memory device). The training mechanism then finds which single DQ pin in each byte has the value of “1” and stores that information for mapping and subsequent deswizzling.
  • DQ0 data pin 0
  • DQ8 data pin 8
  • CA to DQ mapping may be utilized:
  • techniques described herein provide a training mechanism for concurrent initial pre-training of Control, Clock, Command and Address signals timings for memory devices (e.g., LPDDR3).
  • LPDDR3 LPDDR3 Command/Address (CA) Training mode, with unique training patterns that do not require prior Command/Address or Control signals training.
  • CA Command/Address
  • memory devices while in CA Training mode, sample a single transaction on CA bus and provide feedback on the DQ signals.
  • the CA0 . . . CA3 pins values on both High and Low phase map to DQ0 . . . 7 outputs of each memory device (1st byte), while CA5 . . . 8 High and Low phase values map to DQ8 . . . 15 outputs of each memory device (2nd byte).
  • the pattern includes all the CA bus transitions to ensure coverage of both High and Low phase, while not producing excessive stress by having only one level transition from 0 to 1 or from 1 to 0) per signal during each iteration.
  • FIG. 2 is one embodiment of a timing diagram for a training sequence.
  • the following pattern is transmitted (or its opposite/inversed version, as described below).
  • the DRAM device does not sample anything, it keeps the feedback on the DQ pins constant, thus resulting in displaying an old, irrelevant feedback to the memory controller. That is why we want to find out this is the case.
  • two unique inversed patterns can be used that both result in four “1”s if sampled correctly, but with different signatures. Therefore, each valid point should sample “4” with two different signatures. Any other result is considered as failing point.
  • FIG. 3 illustrates two training patterns that may be used. Patterns of similar kind and similar characteristics will achieve the same results.
  • the patterns are chosen in a way that the signature of the second pattern sampled on data signals should be an inversed copy of the signature of the first pattern to ease the indication of which pins are not producing the desired results and to speed up the debugging process.
  • the CS signal can be transmitted for two consecutive cycles (“2N CS” mode).
  • the only MRW needed is CA Training mode entry (e.g., MRW41), which might or might not succeed due to Clock/CTRL timing. Therefore, for the iterations that show incorrect results, if there indications that the memory device is not in CA training mode, the CA Training mode is exited (in case some of DRAM devices on this rank are in it but others not), reset the rank and enter the CA Training mode again.
  • the MRC Before any other memory device training steps can begin, the MRC must make sure the Control signals are aligned at all the memory (e.g., DRAM) devices, so all the issued commands register correctly. Because not all these signals have matching lengths on some platforms due to design limitations and/or errors, there is a need for mechanism to find the optimal timings for these signals.
  • memory e.g., DRAM
  • these techniques utilize the LPDDR3 Command/Address (CA) Training mode and uses special training patterns that do not require prior Command/Address signals training.
  • CA Control/Address
  • similar training modes can be used similarly for training Control signal timing.
  • the technique sweeps the Control delay across the range and for each value transmits both patterns (see FIG. 3 ) and compares the read DQ results for each byte among themselves (should be different for the two patterns) and the sum of values for each byte to four.
  • the middle point of the period that had valid points is chosen and set to Control pins.
  • the test is repeated for each populated rank on all the populated channels in parallel.
  • FIG. 4 is a block diagram of one embodiment of an electronic system.
  • the electronic system illustrated in FIG. 4 is intended to represent a range of electronic systems (either wired or wireless) including, for example, desktop computer systems, laptop computer systems, cellular telephones, personal digital assistants (PDAs) including cellular-enabled PDAs, set top boxes, tablets, etc.
  • Alternative electronic systems may include more, fewer and/or different components.
  • Electronic system 400 includes bus 405 or other communication device to communicate information, and processor 410 coupled to bus 405 that may process information. While electronic system 400 is illustrated with a single processor, electronic system 400 may include multiple processors and/or co-processors. Electronic system 400 further may include random access memory (RAM) or other dynamic storage device 420 (referred to as main memory), coupled to bus 405 and may store information and instructions that may be executed by processor 410 . Main memory 420 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 410 .
  • RAM random access memory
  • main memory main memory
  • Electronic system 400 may also include read only memory (ROM) and/or other static storage device 430 coupled to bus 405 that may store static information and instructions for processor 410 .
  • Data storage device 440 may be coupled to bus 405 to store information and instructions.
  • Data storage device 440 such as a magnetic disk or optical disc and corresponding drive may be coupled to electronic system 400 .
  • Electronic system 400 may also be coupled via bus 405 to display device 450 , such as a cathode ray tube (CRT) or liquid crystal display (LCD), to display information to a user.
  • display device 450 such as a cathode ray tube (CRT) or liquid crystal display (LCD)
  • Alphanumeric input device 460 may be coupled to bus 405 to communicate information and command selections to processor 410 .
  • cursor control 470 such as a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor 410 and to control cursor movement on display 450 .
  • Electronic system 400 further may include network interface(s) 480 to provide access to a network, such as a local area network.
  • Network interface(s) 480 may include, for example, a wireless network interface having antenna 485 , which may represent one or more antenna(e).
  • Network interface(s) 480 may also include, for example, a wired network interface to communicate with remote devices via network cable 487 , which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
  • network interface(s) 480 may provide access to a local area network, for example, by conforming to IEEE 802.11b and/or IEEE 802.11g standards, and/or the wireless network interface may provide access to a personal area network, for example, by conforming to Bluetooth standards. Other wireless network interfaces and/or protocols can also be supported.
  • IEEE 802.11b corresponds to IEEE Std. 802.11b-1999 entitled “Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band,” approved Sep. 16, 1999 as well as related documents.
  • IEEE 802.11g corresponds to IEEE Std. 802.11g-2003 entitled “Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, Amendment 4: Further Higher Rate Extension in the 2.4 GHz Band,” approved Jun. 27, 2003 as well as related documents.
  • Bluetooth protocols are described in “Specification of the Bluetooth System: Core, Version 1.1,” published Feb. 22, 2001 by the Bluetooth Special Interest Group, Inc. Associated as well as previous or subsequent versions of the Bluetooth standard may also be supported.
  • network interface(s) 480 may provide wireless communications using, for example, Time Division, Multiple Access (TDMA) protocols, Global System for Mobile Communications (GSM) protocols, Code Division, Multiple Access (CDMA) protocols, and/or any other type of wireless communications protocol.
  • TDMA Time Division, Multiple Access
  • GSM Global System for Mobile Communications
  • CDMA Code Division, Multiple Access
  • FIG. 5 is a flow diagram of one embodiment of a training sequence that can be utilized in the system of FIG. 4 .
  • the training sequence of FIG. 5 provides a general overview of the training process.
  • Pre-training is performed for the CLK/CS/CA delays, 510 .
  • Embodiments for CLK/CS/CA pre-training are described herein.
  • the data (DQ) pins are mapped, 520 . Mapping of the DQ pins is performed as described herein.
  • CS vs. CLK training is performed, 530 .
  • CS vs. CLK training is performed as described herein.
  • CA vs. CLK training is performed, 540 .
  • the CA vs. CLK training can be performed in any manner known in the art.
  • FIG. 6 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays.
  • FIG. 6 provides a simplified version of the pre-training procedure for CLK/CS/CA delays as compared to the version of FIG. 7 .
  • the example of FIG. 6 relates to a LP-DDR3 configuration; however, the concepts described can be applicable to other DDR technologies and to non-DDR configurations as well.
  • the host system is reset in 2N CS mode (e.g., MRW63 command), 605 .
  • the system iterates on the CLK/CS/CA delays in rough steps, 610 to reduce run/boot time. If all of the delays are covered, 615 , the system can operate to find optimal timing for the CLK/CS/CA signals, 620 . If all of the delays are not covered, 615 , the system enters CA training, 625 . In one embodiment, CA training is entered with the MRW41 command and stretched CA; however, other techniques can be used for other configurations (e.g., non-LPDDR3).
  • a first pattern (e.g., Pattern A, FIG. 3 ) is transmitted, 630 .
  • the sum of the data bits, per byte corresponding to the first pattern is calculated and stored with a signature value for the first pattern, 635 .
  • a second pattern (e.g., Pattern B, FIG. 3 ) is transmitted and the CA training mode is exited, 640 .
  • the sum of the data bits, per byte corresponding to the second pattern is calculated and stored with a signature value for the second pattern, 645 .
  • the pattern results are compared, 650 , to determine whether the current timing parameters have passed, 655 , or failed, 660 .
  • the results comparison involves checking the number of ‘1’ bits received for each training pattern. In one embodiment, if each pattern results in four ‘1’ bits received and the signatures for the two patterns are different, the pattern training has passed.
  • FIG. 7 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays.
  • FIG. 7 provides a more complex version of the pre-training procedure for CLK/CS/CA delays as compared to the version of FIG. 6 .
  • the example of FIG. 7 relates to a LP-DDR3 configuration; however, the concepts described can be applicable to other DDR technologies and to non-DDR configurations as well.
  • the host system is reset in 2N CS mode (e.g., MRW63 command), 705 .
  • the CA_ModeSucceeded flag is set to FALSE, 710 .
  • the system iterates on the CLK/CS/CA delays in rough steps, 715 . If all of the delays are covered, 720 , the system can operate to find optimal timing for the CLK/CS/CA signals, 725 . If all of the delays are not covered, 720 , if the CA_ModeSucceeded is still FALSE, the system enters CA training, 730 . In one embodiment, CA training is entered with the MRW41 command and stretched CA; however, other techniques can be used for other configurations (e.g., non-LPDDR3).
  • a first pattern (e.g., Pattern A, FIG. 3 ) is transmitted, 735 .
  • the sum of the data bits, per byte corresponding to the first pattern is calculated and stored with a signature value for the first pattern, 740 .
  • a second pattern (e.g., Pattern B, FIG. 3 ) is transmitted and the CA training mode is exited, 745 .
  • the sum of the data bits, per byte corresponding to the second pattern is calculated and stored with a signature value for the second pattern, 755 .
  • the pattern results are compared, 760 , to determine whether the current timing parameters have passed, 765 , or failed, 770 .
  • the results comparison involves checking the number of ‘1’ bits received for each training pattern. In one embodiment, if each pattern results in four ‘1’ bits received and the signatures for the two patterns are different, the pattern training has passed.
  • the CA_ModeSucceeded is marked TRUE, 765 .
  • the CA_ModeSucceeded flag is marked TRUE, 780 . If the sum for both patterns is not greater than 0 and less than 8, CA training mode is exited (e.g., with MRW42 command), 785 . Marking CA_ModeSucceeded with the value of TRUE indicates that in the past all the DRAMs have reached the CA Training mode at the same iteration and remain in this mode since then, eliminating the need to exit and enter CA Training mode during every consecutive iteration, thus saving run time. Any other method of indication of CA Training mode entry success will yield similar results. The way to ensure reaching CA Training mode is discovering the DRAMs react on the different patterns on the CA bus transmitted to them, as opposed to being stuck at some default value.
  • the following flow description corresponds to one embodiment of a technique for training CA/CS/CLK pins on a memory device.
  • Reset memory device e.g., MRW63
  • FIG. 8 is a flow diagram of one embodiment of data pin mapping that can be used after pre-training described on FIGS. 6 and 7 .
  • a known bit pattern e.g., one ‘1’ per byte
  • memory e.g., DRAM
  • the pattern is performed for each byte in all bytes of a line in parallel.
  • mapping is complete. If all of the data pins are covered, 820 , mapping is complete. If all of the data pins are not covered, 820 , then a CA pattern to produce a single unique data pin level per byte is calculated and programmed, 830 . The pattern is transmitted to memory, 840 . In one embodiment, the DQ pins are scanned to find the data pin that differs from the other data pins on a per-byte basis. Other sizes can also be supported. This mapping is recorded for the processor (e.g., CPU) or other component to be mapped to the data pin asserted above 850 .
  • processor e.g., CPU
  • FIG. 9 is a flow diagram of one embodiment data pin mapping that can be used without pre-training described on FIGS. 6 and 7 .
  • the procedure of FIG. 9 provides a technique to map data device pins (X1, X2, etc.) with processor pins (Y1, Y2, etc.), without the pre-training mechanisms discussed above.
  • a pattern with one ‘1’ bit and seven ‘0’ bits is iterated on eight target CA pins mapped to 16 DQ pins for each two bytes, 910 . Inversed pattern with one ‘0’ and seven ‘1’ bits will produce similar result.
  • Each CA pin is mapped to two data device pins (e.g., X1 and X2). If all CA pins are covered, 920 , a CA pattern is programmed to produce a ‘0’ on one CA phase (e.g., high) and a ‘1’ on the other CA phase (e.g., low) on all the CA pins concurrently, 930 .
  • each DQ pin pair (e.g., X1 and X2) the DQ pin with the ‘0’ is mapped to a first pin (e.g., X1) and the DQ pin with the ‘1’ is mapped to a second pin (e.g., X2), 940 .
  • a first pin e.g., X1
  • a second pin e.g., X2
  • Other similar patterns will produce identical outcome of mapped pins.
  • a CA pattern to produce a unique DC level per CA pin is calculated and programmed, 950 . This results in two DQ pins with values that are different than the rest, which are X1 and X2.
  • the pattern is transmitted, 960 .
  • the DQ pins that are different from the rest (Y1 and Y2) are found, 970 .
  • the mapping is recorded for the processor pin pair (Y1 and y2) for the corresponding data pin pair (X1 and X2).
  • FIG. 10 is a flow diagram of one embodiment of a technique for CS training that can be used after DQ mapping.
  • the CS vs. CLK delays are iterated, 1010 .
  • the iterations are for each rank. If all CS delays are covered, 1020 , the optimal CS delay setting is calculated, 1030 .
  • another exit criteria might exist for 1020 , such as finding a large enough passing range for CS vs. CLK delays without the need to iterate on all the possible CS vs. CLK delays.
  • the first CS pattern is transmitted, 1040 .
  • the sum of the data bits for each byte of the first pattern is stored with a signature for the first pattern, 1050 .
  • the second CS pattern is transmitted, 1060 .
  • the sum of the data bits for each byte of the second pattern is stored with a signature for the second pattern, 1070 .
  • the pattern results are compared, 1080 , to determine whether the current timing parameters have passed, 1090 , or failed, 1095 .
  • the results comparison involves checking the number of ‘1’ bits received for each training pattern. In one embodiment, if each pattern results in four ‘1’ bits received (assuming the appropriate pattern from FIG. 3 or similar was used) and the signatures for the two patterns are different, the pattern training has passed.
  • data line mapping is accomplished by detecting valid values on a command/address (CA) bus at a memory device.
  • a first pattern is transmitted via a first subset of two or more data pins on the memory device corresponding to detecting the valid values on the CA bus. Signals are sampled from the data pins while the first pattern is being transmitted to obtain a first sample.
  • a second pattern is transmitted via a second subset of two or more data pins on the memory device. Signals are sampled from the data pins while the second pattern is being transmitted to obtain a second sample. The first sample and the second sample are used to generate a data pin mapping
  • the memory device comprises a dynamic random access memory (DRAM).
  • the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
  • the DRAM is a Double Data Rate (DDRx) compliant memory device.
  • the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
  • a system includes at least one memory device having command/address (CA) pins and data pins and a memory controller coupled with at least one memory device via the CA pins and the data pins.
  • the memory controller to transmit valid values on a command/address (CA) bus at a memory device, the memory device to transmit a first pattern via a first subset of two or more data pins on the memory device, the memory controller to receive sampled signals from the data pins while the first pattern is being transmitted to obtain a first sample, transmit a second pattern via a second subset of two or more data pins on the memory device, receive sampled signals from the data pins while the second pattern is being transmitted to obtain a second sample, and use the first sample and the second sample to generate a data pin mapping and/or pass/fail conclusion for training.
  • CA command/address
  • the memory controller transmits a (single) pattern on CA pins and the memory device samples each CA pin twice and returns the result on even odd data pins accordingly.
  • the memory device does not receive anything on the data bus in this case, though, only the memory controller does.
  • the memory device comprises a dynamic random access memory (DRAM).
  • the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
  • the DRAM is a Double Data Rate (DDRx) compliant memory device.
  • the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
  • a system in one embodiment, includes a memory controller and a memory device having command/address (CA) pins and data pins.
  • the memory device coupled to communicate with the memory controller via the CA pins and the data pins, the memory device to detect valid values on a command/address (CA) bus at a memory device, receive a first pattern via a first subset of two or more data pins on the memory device, sample signals from the data pins while the first pattern is being transmitted to obtain a first sample in response to detecting the valid values on the CA bus, receive a second pattern via a second subset of two or more data pins on the memory device, sample signals from the data pins while the second pattern is being transmitted to obtain a second sample, send the first sample and the second sample to the memory controller.
  • the memory controller generates a data pin mapping and/or pass/fail conclusion for training based on the first sample and the second sample.
  • the memory device comprises a dynamic random access memory (DRAM).
  • the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
  • the DRAM is a Double Data Rate (DDRx) compliant memory device.
  • the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
  • a memory device includes command/address (CA) pins, data pins and control logic coupled with the CA pins and the data pins.
  • the control logic to detect valid values on a command/address (CA) bus at a memory device, receive a first pattern via a first subset of two or more data pins on the memory device, sample signals from the data pins while the first pattern is being transmitted to obtain a first sample in response to detecting the valid values on the CA bus, receive a second pattern via a second subset of two or more data pins on the memory device, sample signals from the data pins while the second pattern is being transmitted to obtain a second sample, send the first sample and the second sample to the memory controller.
  • CA command/address
  • the memory device comprises a dynamic random access memory (DRAM).
  • the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
  • the DRAM is a Double Data Rate (DDRx) compliant memory device.
  • the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
  • a memory controller includes command/address (CA) pins, data pins and control logic coupled with the CA pins and the data pins.
  • the memory controller to communicate with at least one memory device via the CA pins and the data pins, the memory controller to transmit valid values on a command/address (CA) bus at a memory device, receive sampled signals from the data pins while the first pattern is being transmitted to obtain a first sample, transmit a second pattern via a second subset of two or more data pins on the memory device, receive sampled signals from the data pins while the second pattern is being transmitted to obtain a second sample, and use the first sample and the second sample to generate a data pin mapping and/or pass/fail conclusion for training.
  • CA command/address
  • the memory device comprises a dynamic random access memory (DRAM).
  • the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
  • the DRAM is a Double Data Rate (DDRx) compliant memory device.
  • the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

Data pin mapping and delay training techniques. Valid values are detected on a command/address (CA) bus at a memory device. A first part of the pattern (high phase) is transmitted via a first subset of data pins on the memory device in response to detecting values on the CA bus; a second part of the pattern (low phase) is transmitted via a second subset of data pins on the memory device in response to detecting values on the CA bus. Signals are sampled at the memory controller from the data pins while the CA pattern is being transmitted to obtain a first memory device's sample (high phase) and the second memory device's sample (low phase) by analyzing the first and the second subset of sampled data pins. The analysis combined with the knowledge of the transmitted pattern on the CA bus leads to finding the unknown data pins mapping. Varying the transmitted CA patterns and the resulting feedbacks sampled on memory controller data signals allows CA/CTRL/CLK signals delay training with and without priory data pins mapping knowledge.

Description

TECHNICAL FIELD
Embodiments of the invention relate to training of memory links. More particularly embodiments of the invention relate to techniques for automatically mapping swizzled data.
BACKGROUND
When memory training begins on a platform with poorly aligned Control, Clock and Command/Address (CA) signals, even the most basic commands, such as Reset or entry into CA Training mode, might not register correctly in some of the DRAM devices. Current solutions demand very strict length matching and/or manual initial timing settings for all these signal types for each problematic platform. As a result, much time and efforts can be spent for just enabling the most basic training routines to run.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
FIG. 1 is a timing diagram corresponding to one embodiment of a training technique for mapping of data lines.
FIG. 2 is one embodiment of a timing diagram for a training sequence.
FIG. 3 illustrates two training patterns that may be used.
FIG. 4 is a block diagram of one embodiment of an electronic system.
FIG. 5 is a flow diagram of one embodiment of a training sequence that can be utilized in the system of FIG. 4.
FIG. 6 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays.
FIG. 7 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays.
FIG. 8 is a flow diagram of one embodiment of data pin mapping that can be used after pre-training.
FIG. 9 is a flow diagram of one embodiment data pin mapping that can be used without pre-training.
FIG. 10 is a flow diagram of one embodiment of a technique for CS training that can be used after DQ mapping.
DETAILED DESCRIPTION
In the following description, numerous specific details are set forth. However, embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.
Low-Power DDR-3 (LPDDR-3 per JEDEC specification JESD209-3) command/address (CA) training mode and mode register readout (MRR) require specific data (DQ) pin mapping if there is swapping on the board. Not allowing swapping on the board restricts options to system designers and manufacturers by limiting product options and increasing design complexity. For example, mapping of all 128 DQ pins for a typical two-channel LPDDR3 embodiment would require significant human effort and may result in errors. It may also require a custom BIOS/MRC (Memory Reference Code) version for each board and for each memory configuration option, resulting in complex production environments and complex production management issues. Techniques described herein can determine the mapping of required signals automatically using memory device training modes. For example, the CA training mode for LPDDR3, and other similar training modes. In one embodiment, the mapping technique uses a byte mapping (e.g., 8 bits per 64-bit channel), which can eliminate monotonous manual labor and the corresponding probability of errors, as well as allowing a universal BIOS version to work with many different boards/platforms without the need to recompile the BIOS.
In one embodiment, when performing CA training, memory devices sample the CA bus values and return feedback on the DQ pins. The memory controller and any training support mechanisms (e.g., software, firmware) can analyze the feedback and determine a next action. Due to an unknown DQ mapping, there is no immediate way for the memory controller to determine which input is routed to which memory data line.
FIG. 1 is a timing diagram corresponding to one embodiment of a training technique for mapping of data lines. In one embodiment, mapping of data pins is split in to even and odd training. In other embodiments, other splits or groupings can be used.
In one embodiment, clock signal 110 is used to drive transactions on the CA bus 120 and the data bus. In one embodiment, the CA High phase values map to the even memory data outputs (e.g., DQ0, DQ2, DQ4) and the CA Low phase values map to the odd memory data outputs (e.g., DQ1, DQ3, DQ5).
In one embodiment, transmitting a single CA phase with a value different from all other CA pins and the second phase of the same pin will result in a single data signal having a value different than the other pins (e.g., one of 16 pins are high). Cycling through the position of the single differing value allows the training mechanism to identify one data pin at a time and generate an appropriate mapping in a more efficient manner than possible using prior art techniques.
To achieve a faster mapping, for example, eight iterations rather than 16 for 16 pins, a different CA phase per each four pins can be used. For example to find data pin 0 (DQ0) in Byte 0 and data pin 8 (DQ8) in Byte 1, a value of “1” can be transmitted on CA0 and CA5 high phases, while CA0 and CA5 low phases and all other CA pins transmit “0”. This results in a single “1” value on each DQ byte that provides feedback (lower two bytes of the memory device). The training mechanism then finds which single DQ pin in each byte has the value of “1” and stores that information for mapping and subsequent deswizzling.
In one embodiment, the following CA to DQ mapping may be utilized:
Clock
CA0 CA1 CA2 CA3 CA5 CA6 CA7 CA8 Edge
DQ0 DQ2 DQ4 DQ6 DQ8 DQ10 DQ12 DQ14 Rising
DQ1 DQ3 DQ5 DQ7 DQ9 DQ11 DQ13 DQ15 Falling
Previous DDR generations did not require signal mapping as described above. Common solutions for the LPDDR3 need for signal mapping included, for example, hardcoded tables with mapping data, which is an inefficient solution for a large number of board variations and/or memory configurations. Another existing (ineffective) solution is to disallow swapping DQ signals and bytes completely to avoid this—but it makes board design very ineffective and complex.
In one embodiment, techniques described herein provide a training mechanism for concurrent initial pre-training of Control, Clock, Command and Address signals timings for memory devices (e.g., LPDDR3). These mechanisms utilize a training mode, for example, the LPDDR3 Command/Address (CA) Training mode, with unique training patterns that do not require prior Command/Address or Control signals training.
In one embodiment, while in CA Training mode, memory devices sample a single transaction on CA bus and provide feedback on the DQ signals. The CA0 . . . CA3 pins values on both High and Low phase map to DQ0 . . . 7 outputs of each memory device (1st byte), while CA5 . . . 8 High and Low phase values map to DQ8 . . . 15 outputs of each memory device (2nd byte).
Because there is no complete DQ mapping at this point of training, a preselected pattern is transmitted on CA bus that does not rely on checking the exact DQ feedback, but the sum of signals equal to “1” in each data byte. In one embodiment, the pattern includes all the CA bus transitions to ensure coverage of both High and Low phase, while not producing excessive stress by having only one level transition from 0 to 1 or from 1 to 0) per signal during each iteration.
FIG. 2 is one embodiment of a timing diagram for a training sequence. In one embodiment, on each of the CA pins (e.g., CA0 . . . 3 and CA5 . . . 8), the following pattern is transmitted (or its opposite/inversed version, as described below).
As a result, a different feedback will arrive on the DQ pins, depending on Chip Select (Control) and CA relative timings versus the clock signal for each memory device. If both CS 130 and CA 120 are aligned correctly with respect to the clock signal, both clock phases will sample two CA pins with value of “1” and another two with the value of “0,” resulting in four DQ pins with the value of “1.”
If either or both CA and CS buses are unaligned, incorrect values ranging from two to six DQ pins sampled at “1” (exact values do not matter). This allows the ability also distinguish the case of sample 0 or 1 on all the DQ pins, meaning the memory device is not in CA Training mode.
If the DRAM device does not sample anything, it keeps the feedback on the DQ pins constant, thus resulting in displaying an old, irrelevant feedback to the memory controller. That is why we want to find out this is the case. In one embodiment, in order to distinguish lack of sample (e.g., due to marginal/incorrect timing) from a correct timing, two unique inversed patterns can be used that both result in four “1”s if sampled correctly, but with different signatures. Therefore, each valid point should sample “4” with two different signatures. Any other result is considered as failing point. FIG. 3 illustrates two training patterns that may be used. Patterns of similar kind and similar characteristics will achieve the same results. In one embodiment, the patterns are chosen in a way that the signature of the second pattern sampled on data signals should be an inversed copy of the signature of the first pattern to ease the indication of which pins are not producing the desired results and to speed up the debugging process.
In one embodiment specific to LPDDR-3 and related implementations, because the initial Clock/CTRL/CA timings might be invalid, there is no way to guarantee the initial Reset/Init and CA Training mode entry commands are decoded correctly. In one embodiment, in order to guarantee the Reset command success (e.g., MRW63 command), the CS signal can be transmitted for two consecutive cycles (“2N CS” mode).
At this point, all the MR (DRAM internal Mode Register) values necessary are not yet available for LPDDR operation, but these values are not required yet. In one embodiment, the only MRW needed is CA Training mode entry (e.g., MRW41), which might or might not succeed due to Clock/CTRL timing. Therefore, for the iterations that show incorrect results, if there indications that the memory device is not in CA training mode, the CA Training mode is exited (in case some of DRAM devices on this rank are in it but others not), reset the rank and enter the CA Training mode again.
Before any other memory device training steps can begin, the MRC must make sure the Control signals are aligned at all the memory (e.g., DRAM) devices, so all the issued commands register correctly. Because not all these signals have matching lengths on some platforms due to design limitations and/or errors, there is a need for mechanism to find the optimal timings for these signals.
Described herein are techniques for training Control signals timings that are particularly useful for LPDDR3; however, other memory devices can also be supported. In LPDDR3 embodiments, these techniques utilize the LPDDR3 Command/Address (CA) Training mode and uses special training patterns that do not require prior Command/Address signals training. In other embodiments, similar training modes can be used similarly for training Control signal timing.
In one embodiment, The technique sweeps the Control delay across the range and for each value transmits both patterns (see FIG. 3) and compares the read DQ results for each byte among themselves (should be different for the two patterns) and the sum of values for each byte to four.
After the test finishes, the middle point of the period that had valid points is chosen and set to Control pins. In one embodiment, the test is repeated for each populated rank on all the populated channels in parallel.
Current solutions rely on more precise signals length matching, which can be easier to achieve and/or less of an issue at slower speeds and on physically larger system boards. If a mismatch occurred, manual adjustments are made to the timings for each case. This complicates boards power-on activities and demands separate BIOS builds for each such board.
Additionally, functional Control training steps are added per need, which run at much later MRC stage (after all the other signal timings are already tuned). As a result, if the initial Control timing settings were marginal, the systems become less stable and might not even reach this advanced step without manual tuning of the initial timing settings.
FIG. 4 is a block diagram of one embodiment of an electronic system. The electronic system illustrated in FIG. 4 is intended to represent a range of electronic systems (either wired or wireless) including, for example, desktop computer systems, laptop computer systems, cellular telephones, personal digital assistants (PDAs) including cellular-enabled PDAs, set top boxes, tablets, etc. Alternative electronic systems may include more, fewer and/or different components.
Electronic system 400 includes bus 405 or other communication device to communicate information, and processor 410 coupled to bus 405 that may process information. While electronic system 400 is illustrated with a single processor, electronic system 400 may include multiple processors and/or co-processors. Electronic system 400 further may include random access memory (RAM) or other dynamic storage device 420 (referred to as main memory), coupled to bus 405 and may store information and instructions that may be executed by processor 410. Main memory 420 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 410.
Electronic system 400 may also include read only memory (ROM) and/or other static storage device 430 coupled to bus 405 that may store static information and instructions for processor 410. Data storage device 440 may be coupled to bus 405 to store information and instructions. Data storage device 440 such as a magnetic disk or optical disc and corresponding drive may be coupled to electronic system 400.
Electronic system 400 may also be coupled via bus 405 to display device 450, such as a cathode ray tube (CRT) or liquid crystal display (LCD), to display information to a user. Alphanumeric input device 460, including alphanumeric and other keys, may be coupled to bus 405 to communicate information and command selections to processor 410. Another type of user input device is cursor control 470, such as a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor 410 and to control cursor movement on display 450.
Electronic system 400 further may include network interface(s) 480 to provide access to a network, such as a local area network. Network interface(s) 480 may include, for example, a wireless network interface having antenna 485, which may represent one or more antenna(e). Network interface(s) 480 may also include, for example, a wired network interface to communicate with remote devices via network cable 487, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
In one embodiment, network interface(s) 480 may provide access to a local area network, for example, by conforming to IEEE 802.11b and/or IEEE 802.11g standards, and/or the wireless network interface may provide access to a personal area network, for example, by conforming to Bluetooth standards. Other wireless network interfaces and/or protocols can also be supported.
IEEE 802.11b corresponds to IEEE Std. 802.11b-1999 entitled “Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band,” approved Sep. 16, 1999 as well as related documents. IEEE 802.11g corresponds to IEEE Std. 802.11g-2003 entitled “Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, Amendment 4: Further Higher Rate Extension in the 2.4 GHz Band,” approved Jun. 27, 2003 as well as related documents. Bluetooth protocols are described in “Specification of the Bluetooth System: Core, Version 1.1,” published Feb. 22, 2001 by the Bluetooth Special Interest Group, Inc. Associated as well as previous or subsequent versions of the Bluetooth standard may also be supported.
In addition to, or instead of, communication via wireless LAN standards, network interface(s) 480 may provide wireless communications using, for example, Time Division, Multiple Access (TDMA) protocols, Global System for Mobile Communications (GSM) protocols, Code Division, Multiple Access (CDMA) protocols, and/or any other type of wireless communications protocol.
FIG. 5 is a flow diagram of one embodiment of a training sequence that can be utilized in the system of FIG. 4. The training sequence of FIG. 5 provides a general overview of the training process.
Pre-training is performed for the CLK/CS/CA delays, 510. Embodiments for CLK/CS/CA pre-training are described herein. The data (DQ) pins are mapped, 520. Mapping of the DQ pins is performed as described herein. CS vs. CLK training is performed, 530. CS vs. CLK training is performed as described herein. CA vs. CLK training is performed, 540. The CA vs. CLK training can be performed in any manner known in the art.
FIG. 6 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays. FIG. 6 provides a simplified version of the pre-training procedure for CLK/CS/CA delays as compared to the version of FIG. 7. The example of FIG. 6 relates to a LP-DDR3 configuration; however, the concepts described can be applicable to other DDR technologies and to non-DDR configurations as well. The host system is reset in 2N CS mode (e.g., MRW63 command), 605.
The system iterates on the CLK/CS/CA delays in rough steps, 610 to reduce run/boot time. If all of the delays are covered, 615, the system can operate to find optimal timing for the CLK/CS/CA signals, 620. If all of the delays are not covered, 615, the system enters CA training, 625. In one embodiment, CA training is entered with the MRW41 command and stretched CA; however, other techniques can be used for other configurations (e.g., non-LPDDR3).
A first pattern (e.g., Pattern A, FIG. 3) is transmitted, 630. In one embodiment, the sum of the data bits, per byte corresponding to the first pattern is calculated and stored with a signature value for the first pattern, 635. A second pattern (e.g., Pattern B, FIG. 3) is transmitted and the CA training mode is exited, 640. In one embodiment, the sum of the data bits, per byte corresponding to the second pattern is calculated and stored with a signature value for the second pattern, 645.
The pattern results are compared, 650, to determine whether the current timing parameters have passed, 655, or failed, 660. In one embodiment, the results comparison involves checking the number of ‘1’ bits received for each training pattern. In one embodiment, if each pattern results in four ‘1’ bits received and the signatures for the two patterns are different, the pattern training has passed.
FIG. 7 is a flow diagram of one embodiment of a pre-training procedure for CLK/CS/CA delays. FIG. 7 provides a more complex version of the pre-training procedure for CLK/CS/CA delays as compared to the version of FIG. 6. The example of FIG. 7 relates to a LP-DDR3 configuration; however, the concepts described can be applicable to other DDR technologies and to non-DDR configurations as well. The host system is reset in 2N CS mode (e.g., MRW63 command), 705.
The CA_ModeSucceeded flag is set to FALSE, 710. The system iterates on the CLK/CS/CA delays in rough steps, 715. If all of the delays are covered, 720, the system can operate to find optimal timing for the CLK/CS/CA signals, 725. If all of the delays are not covered, 720, if the CA_ModeSucceeded is still FALSE, the system enters CA training, 730. In one embodiment, CA training is entered with the MRW41 command and stretched CA; however, other techniques can be used for other configurations (e.g., non-LPDDR3).
A first pattern (e.g., Pattern A, FIG. 3) is transmitted, 735. In one embodiment, the sum of the data bits, per byte corresponding to the first pattern is calculated and stored with a signature value for the first pattern, 740. A second pattern (e.g., Pattern B, FIG. 3) is transmitted and the CA training mode is exited, 745. In one embodiment, the sum of the data bits, per byte corresponding to the second pattern is calculated and stored with a signature value for the second pattern, 755.
The pattern results are compared, 760, to determine whether the current timing parameters have passed, 765, or failed, 770. In one embodiment, the results comparison involves checking the number of ‘1’ bits received for each training pattern. In one embodiment, if each pattern results in four ‘1’ bits received and the signatures for the two patterns are different, the pattern training has passed.
When the results indicate a pass, the CA_ModeSucceeded is marked TRUE, 765. When the results indicate a fail, if the sum of bits for both patterns is greater than 0 and less than 8, 775, the CA_ModeSucceeded flag is marked TRUE, 780. If the sum for both patterns is not greater than 0 and less than 8, CA training mode is exited (e.g., with MRW42 command), 785. Marking CA_ModeSucceeded with the value of TRUE indicates that in the past all the DRAMs have reached the CA Training mode at the same iteration and remain in this mode since then, eliminating the need to exit and enter CA Training mode during every consecutive iteration, thus saving run time. Any other method of indication of CA Training mode entry success will yield similar results. The way to ensure reaching CA Training mode is discovering the DRAMs react on the different patterns on the CA bus transmitted to them, as opposed to being stuck at some default value.
The following flow description corresponds to one embodiment of a technique for training CA/CS/CLK pins on a memory device.
1. Begin:
2. Reset memory device (e.g., MRW63) in 2N mode
3. Set CLK, CS, CA delay values (loop)
    • a. Enter CA Training mode (if needed)
    • b. Transmit pattern A
    • c. Store Result+signature
    • d. Option:
      • i. check for number of ‘1’-s
        • 1. if 0 or 8
          • a. mark as failing point
          • b. exit CA training mode (e.g., MRW42)
          • c. jump to 3, update delay values and continue again through CA Training
        • 2. if <4 or >4,
          • a. mark as failing point
          • b. jump to 3 but skip a.
        • 3. if ==4—continue
    • e. Transmit pattern B
    • f. Check for number of ‘1’-s
      • i. if 0 or 8
        • 1. mark as failing point
        • 2. exit CA training mode (e.g., MRW42)
        • 3. jump to 3, update delay values and continue again through CA Training
      • ii. if <4 or >4 or ==4 but signature is the same as for A:
        • 1. mark as failing point
        • 2. jump to 3 (update delays) but skip a.
      • iii. if ==4 and signature is different from A's—mark as passing point.
(After all the delay values are tried)
4. Decide on optimal delay point to be located in the middle of the largest passing points region.
FIG. 8 is a flow diagram of one embodiment of data pin mapping that can be used after pre-training described on FIGS. 6 and 7. In one embodiment, a known bit pattern (e.g., one ‘1’ per byte) is iterated through from memory (e.g., DRAM), 810. In one embodiment, the pattern is performed for each byte in all bytes of a line in parallel.
If all of the data pins are covered, 820, mapping is complete. If all of the data pins are not covered, 820, then a CA pattern to produce a single unique data pin level per byte is calculated and programmed, 830. The pattern is transmitted to memory, 840. In one embodiment, the DQ pins are scanned to find the data pin that differs from the other data pins on a per-byte basis. Other sizes can also be supported. This mapping is recorded for the processor (e.g., CPU) or other component to be mapped to the data pin asserted above 850.
FIG. 9 is a flow diagram of one embodiment data pin mapping that can be used without pre-training described on FIGS. 6 and 7. The procedure of FIG. 9 provides a technique to map data device pins (X1, X2, etc.) with processor pins (Y1, Y2, etc.), without the pre-training mechanisms discussed above.
In one embodiment, a pattern with one ‘1’ bit and seven ‘0’ bits is iterated on eight target CA pins mapped to 16 DQ pins for each two bytes, 910. Inversed pattern with one ‘0’ and seven ‘1’ bits will produce similar result. Each CA pin is mapped to two data device pins (e.g., X1 and X2). If all CA pins are covered, 920, a CA pattern is programmed to produce a ‘0’ on one CA phase (e.g., high) and a ‘1’ on the other CA phase (e.g., low) on all the CA pins concurrently, 930. In one embodiment, for each DQ pin pair (e.g., X1 and X2) the DQ pin with the ‘0’ is mapped to a first pin (e.g., X1) and the DQ pin with the ‘1’ is mapped to a second pin (e.g., X2), 940. Other similar patterns will produce identical outcome of mapped pins.
If all CA pins are not covered, 920, a CA pattern to produce a unique DC level per CA pin is calculated and programmed, 950. This results in two DQ pins with values that are different than the rest, which are X1 and X2. The pattern is transmitted, 960. The DQ pins that are different from the rest (Y1 and Y2) are found, 970. The mapping is recorded for the processor pin pair (Y1 and y2) for the corresponding data pin pair (X1 and X2).
FIG. 10 is a flow diagram of one embodiment of a technique for CS training that can be used after DQ mapping. In one embodiment, the CS vs. CLK delays are iterated, 1010. In one embodiment, the iterations are for each rank. If all CS delays are covered, 1020, the optimal CS delay setting is calculated, 1030. In one embodiment, another exit criteria might exist for 1020, such as finding a large enough passing range for CS vs. CLK delays without the need to iterate on all the possible CS vs. CLK delays.
If all CS delays are not covered, 1020, the first CS pattern is transmitted, 1040. The sum of the data bits for each byte of the first pattern is stored with a signature for the first pattern, 1050. The second CS pattern is transmitted, 1060. The sum of the data bits for each byte of the second pattern is stored with a signature for the second pattern, 1070.
The pattern results are compared, 1080, to determine whether the current timing parameters have passed, 1090, or failed, 1095. In one embodiment, the results comparison involves checking the number of ‘1’ bits received for each training pattern. In one embodiment, if each pattern results in four ‘1’ bits received (assuming the appropriate pattern from FIG. 3 or similar was used) and the signatures for the two patterns are different, the pattern training has passed.
In one embodiment, data line mapping is accomplished by detecting valid values on a command/address (CA) bus at a memory device. A first pattern is transmitted via a first subset of two or more data pins on the memory device corresponding to detecting the valid values on the CA bus. Signals are sampled from the data pins while the first pattern is being transmitted to obtain a first sample. A second pattern is transmitted via a second subset of two or more data pins on the memory device. Signals are sampled from the data pins while the second pattern is being transmitted to obtain a second sample. The first sample and the second sample are used to generate a data pin mapping
In one embodiment, the memory device comprises a dynamic random access memory (DRAM). In one embodiment, the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device. In one embodiment, the DRAM is a Double Data Rate (DDRx) compliant memory device. In one embodiment, the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
In one embodiment, a system includes at least one memory device having command/address (CA) pins and data pins and a memory controller coupled with at least one memory device via the CA pins and the data pins. The memory controller to transmit valid values on a command/address (CA) bus at a memory device, the memory device to transmit a first pattern via a first subset of two or more data pins on the memory device, the memory controller to receive sampled signals from the data pins while the first pattern is being transmitted to obtain a first sample, transmit a second pattern via a second subset of two or more data pins on the memory device, receive sampled signals from the data pins while the second pattern is being transmitted to obtain a second sample, and use the first sample and the second sample to generate a data pin mapping and/or pass/fail conclusion for training.
In one embodiment, the memory controller transmits a (single) pattern on CA pins and the memory device samples each CA pin twice and returns the result on even odd data pins accordingly. The memory device does not receive anything on the data bus in this case, though, only the memory controller does.
In one embodiment, the memory device comprises a dynamic random access memory (DRAM). In one embodiment, the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device. In one embodiment, the DRAM is a Double Data Rate (DDRx) compliant memory device. In one embodiment, the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
In one embodiment, a system includes a memory controller and a memory device having command/address (CA) pins and data pins. The memory device coupled to communicate with the memory controller via the CA pins and the data pins, the memory device to detect valid values on a command/address (CA) bus at a memory device, receive a first pattern via a first subset of two or more data pins on the memory device, sample signals from the data pins while the first pattern is being transmitted to obtain a first sample in response to detecting the valid values on the CA bus, receive a second pattern via a second subset of two or more data pins on the memory device, sample signals from the data pins while the second pattern is being transmitted to obtain a second sample, send the first sample and the second sample to the memory controller. The memory controller generates a data pin mapping and/or pass/fail conclusion for training based on the first sample and the second sample.
In one embodiment, the memory device comprises a dynamic random access memory (DRAM). In one embodiment, the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device. In one embodiment, the DRAM is a Double Data Rate (DDRx) compliant memory device. In one embodiment, the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
A memory device includes command/address (CA) pins, data pins and control logic coupled with the CA pins and the data pins. The control logic to detect valid values on a command/address (CA) bus at a memory device, receive a first pattern via a first subset of two or more data pins on the memory device, sample signals from the data pins while the first pattern is being transmitted to obtain a first sample in response to detecting the valid values on the CA bus, receive a second pattern via a second subset of two or more data pins on the memory device, sample signals from the data pins while the second pattern is being transmitted to obtain a second sample, send the first sample and the second sample to the memory controller.
In one embodiment, the memory device comprises a dynamic random access memory (DRAM). In one embodiment, the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device. In one embodiment, the DRAM is a Double Data Rate (DDRx) compliant memory device. In one embodiment, the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
In one embodiment, a memory controller includes command/address (CA) pins, data pins and control logic coupled with the CA pins and the data pins. The memory controller to communicate with at least one memory device via the CA pins and the data pins, the memory controller to transmit valid values on a command/address (CA) bus at a memory device, receive sampled signals from the data pins while the first pattern is being transmitted to obtain a first sample, transmit a second pattern via a second subset of two or more data pins on the memory device, receive sampled signals from the data pins while the second pattern is being transmitted to obtain a second sample, and use the first sample and the second sample to generate a data pin mapping and/or pass/fail conclusion for training.
In one embodiment, the memory device comprises a dynamic random access memory (DRAM). In one embodiment, the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device. In one embodiment, the DRAM is a Double Data Rate (DDRx) compliant memory device. In one embodiment, the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins. In one embodiment, the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.

Claims (21)

What is claimed is:
1. A method comprising:
detecting valid values on a command/address (CA) bus at a memory device;
transmitting, with a memory controller, a first pattern on the CA bus resulting in DRAM transmitting a first set of values on the Data pins producing a unique sum of ‘1’-s per byte
sampling signals from the data pins after the first pattern is being transmitted to obtain a first sample;
transmitting, with the memory controller, a second pattern on the CA bus resulting in DRAM transmitting a second set of values on the Data pins producing a unique sum of ‘1’-s per byte
sampling signals from the data pins after the second pattern is being transmitted to obtain a second sample;
using the first sample and the second sample to generate a data pin mapping.
2. The method of claim 1 further comprising using the first sample and the second sample to achieve CLK/CS/CA rough resolution pre-training and CS fine resolution training.
3. The method of claim 1 wherein the memory device comprises a dynamic random access memory (DRAM).
4. The method of claim 3 wherein the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
5. The method of claim 3 wherein the DRAM is a Double Data Rate (DDRx) compliant memory device.
6. The method of claim 1 wherein the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins.
7. The method of claim 6 wherein the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
8. A system comprising:
at least one memory device having command/address (CA) pins and data pins;
a memory controller coupled with the at least one memory device via the CA pins and the data pins, the memory controller to transmit valid values on a command/address (CA) bus at a memory device, transmit a first pattern on the CA bus, receive sampled signals from the data pins after the first pattern is being transmitted to obtain a first sample, transmit a second pattern on the CA bus, receive sampled signals from the data pins while the second pattern is being transmitted to obtain a second sample, and use the first sample and the second sample to generate a data pin mapping.
9. The system of claim 8 wherein the memory device comprises a dynamic random access memory (DRAM).
10. The system of claim 9 wherein the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
11. The system of claim 9 wherein the DRAM is a Double Data Rate (DDRx) compliant memory device.
12. A system comprising:
a memory controller;
a memory device having command/address (CA) pins and data pins, the memory device coupled to communicate with the memory controller via the CA pins and the data pins, the memory device to detect valid values on a command/address (CA) bus at a memory device, receive a first pattern via a first subset of two or more data pins on the memory device, sample signals from the data pins while the first pattern is being transmitted to obtain a first sample in response to detecting the valid values on the CA bus, receive a second pattern via a second subset of two or more data pins on the memory device, sample signals from the data pins while the second pattern is being transmitted to obtain a second sample, send the first sample and the second sample to the memory controller;
wherein the memory controller generates a data pin mapping based on the first sample and the second sample.
13. The system of claim 12 wherein the memory device comprises a dynamic random access memory (DRAM).
14. The system of claim 12 wherein the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
15. The system of claim 12 wherein the DRAM is a Double Data Rate (DDRx) compliant memory device.
16. The system of claim 12 wherein the first subset comprises a first half of the data pins and the second subset comprises a second half of the data pins.
17. The system of claim 12 wherein the first half comprises even numbered data pins and the second half comprises odd numbered data pins.
18. A memory controller comprising:
command/address (CA) pins;
data pins; and
control logic coupled with the CA pins and the data pins, the memory controller to communicate with the at least one memory device via the CA pins and the data pins, the memory controller to transmit valid values on a command/address (CA) bus at a memory device, transmit a first pattern via a first subset of two or more data pins on the memory device, receive sampled signals from the data pins while the first pattern is being transmitted to obtain a first sample, transmit a second pattern via a second subset of two or more data pins on the memory device, receive sampled signals from the data pins while the second pattern is being transmitted to obtain a second sample, and use the first sample and the second sample to generate a data pin mapping.
19. The memory controller of claim 18 wherein the memory device comprises a dynamic random access memory (DRAM).
20. The memory controller of claim 18 wherein the DRAM is a Low Power Double Data Rate 3 (LPDDR3) compliant memory device.
21. The memory controller of claim 18 wherein the DRAM is a Double Data Rate (DDRx) compliant memory device.
US13/728,581 2012-12-27 2012-12-27 Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals Active 2033-07-18 US9026725B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/728,581 US9026725B2 (en) 2012-12-27 2012-12-27 Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals
PCT/US2013/046406 WO2014105134A1 (en) 2012-12-27 2013-06-18 Training for mapping swizzled data command/address signals
KR1020157012168A KR101729872B1 (en) 2012-12-27 2013-06-18 Training for mapping swizzled data command/address signals
CN201380061848.9A CN104903877B (en) 2012-12-27 2013-06-18 For mapping the training of hybrid data command/address signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/728,581 US9026725B2 (en) 2012-12-27 2012-12-27 Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals

Publications (2)

Publication Number Publication Date
US20140189224A1 US20140189224A1 (en) 2014-07-03
US9026725B2 true US9026725B2 (en) 2015-05-05

Family

ID=51018624

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/728,581 Active 2033-07-18 US9026725B2 (en) 2012-12-27 2012-12-27 Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals

Country Status (4)

Country Link
US (1) US9026725B2 (en)
KR (1) KR101729872B1 (en)
CN (1) CN104903877B (en)
WO (1) WO2014105134A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US10304547B2 (en) 2016-10-27 2019-05-28 Samsung Electronics Co., Ltd. Memory device and clock training method thereof
US10720197B2 (en) 2017-11-21 2020-07-21 Samsung Electronics Co., Ltd. Memory device for supporting command bus training mode and method of operating the same
US11061590B2 (en) 2016-11-03 2021-07-13 Intel Corporation Efficiently training memory device chip select control
US11462287B2 (en) 2020-03-27 2022-10-04 Changxin Memory Technologies, Inc. Memory test method, storage medium and computer device
US11614888B2 (en) 2020-12-11 2023-03-28 Samsung Electronics Co., Ltd. Memory system and electronic system including the same
US11675716B2 (en) 2019-12-10 2023-06-13 Intel Corporation Techniques for command bus training to a memory device
US20230298640A1 (en) * 2022-03-21 2023-09-21 Nxp Usa, Inc. Systems and methods for resolving data (dq) line swapping configurations in double data rate (ddr) memories
US11983410B2 (en) 2021-02-25 2024-05-14 Samsung Electronics Co., Ltd. Method optimizing DQ calibration pattern for memory device and computing system performing same
US12009023B2 (en) 2019-05-24 2024-06-11 Intel Corporation Training for chip select signal read operations by memory devices

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658642B2 (en) 2013-07-01 2017-05-23 Intel Corporation Timing control for unmatched signal receiver
KR102222968B1 (en) * 2014-09-01 2021-03-04 삼성전자주식회사 Address aligner and memory device inclduing the same
US10068634B2 (en) 2016-03-16 2018-09-04 International Business Machines Corporation Simultaneous write and read calibration of an interface within a circuit
US10585672B2 (en) * 2016-04-14 2020-03-10 International Business Machines Corporation Memory device command-address-control calibration
KR102578171B1 (en) 2016-08-31 2023-09-14 에스케이하이닉스 주식회사 Semiconductor system
US11017839B2 (en) * 2017-01-13 2021-05-25 Mediatek Inc. DRAM, memory controller and associated training method
US10090065B1 (en) 2017-03-14 2018-10-02 International Business Machines Corporation Simultaneous write, read, and command-address-control calibration of an interface within a circuit
US10176858B1 (en) 2017-08-30 2019-01-08 Micron Technology, Inc. Adjusting instruction delays to the latch path in DDR5 DRAM
KR102340446B1 (en) * 2017-09-08 2021-12-21 삼성전자주식회사 Storage device and data training method thereof
US10332575B2 (en) 2017-11-29 2019-06-25 Micron Technology, Inc. Signal training for prevention of metastability due to clocking indeterminacy
US10366737B2 (en) 2017-12-21 2019-07-30 Micron Technology, Inc. Management of strobe/clock phase tolerances during extended write preambles
KR102518987B1 (en) * 2018-03-12 2023-04-07 에스케이하이닉스 주식회사 Semiconductor apparatus, command trainning system and method
CN113689902B (en) * 2020-05-19 2023-09-01 长鑫存储技术有限公司 Method for generating memory address data, computer-readable storage medium and apparatus
US12057192B2 (en) 2021-02-17 2024-08-06 Cadence Design Systems, Inc. Memory interface mapping
CN115116489B (en) * 2022-06-30 2024-12-06 腾讯科技(深圳)有限公司 Training method and related device for DERR pin of high bandwidth memory
CN116312672B (en) * 2023-05-24 2023-10-24 长鑫存储技术有限公司 Command/address signal training mode circuit and memory
CN116564377B (en) * 2023-06-07 2024-02-09 上海奎芯集成电路设计有限公司 Delay determining method and device in memory device command bus training
WO2025048952A1 (en) * 2023-08-29 2025-03-06 Qualcomm Incorporated Command bus training for memory system
US20250138571A1 (en) * 2023-10-31 2025-05-01 Qualcomm Incorporated Enhanced chip select signal training
CN117711454B (en) * 2023-12-06 2025-02-14 沐曦科技(北京)有限公司 A training method for HBM command address
CN119212056B (en) * 2024-11-25 2025-05-06 上海铌锣智能科技有限公司 Temperature detection method, device, equipment and storage medium
CN119626289B (en) * 2025-02-17 2025-05-13 中茵微电子(南京)有限公司 Wck2 and CK LEVELING training method and system for LPDDR5

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030026162A1 (en) * 2001-08-03 2003-02-06 Yoshinori Matsui Calibration method and memory system
US20040267489A1 (en) 2003-06-24 2004-12-30 Frederic Reblewski Data compaction and pin assignment
US20070005836A1 (en) * 2005-06-07 2007-01-04 Sandeep Jain Memory having swizzled signal lines
US20090019323A1 (en) 2007-07-11 2009-01-15 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US20110153925A1 (en) 2009-12-22 2011-06-23 Bains Kuljit S Memory controller functionalities to support data swizzling
WO2012064670A1 (en) 2010-11-09 2012-05-18 Rambus Inc. Area-efficient multi-modal signaling interface
US20120198135A1 (en) 2011-01-31 2012-08-02 Chilappagari Shashi Kiran Mapping Data to Non-Volatile Memory
US20120250433A1 (en) * 2011-03-28 2012-10-04 Young-Jin Jeon Memory devices, systems and methods employing command/address calibration

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533538B2 (en) 2010-06-28 2013-09-10 Intel Corporation Method and apparatus for training a memory signal via an error signal of a memory

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030026162A1 (en) * 2001-08-03 2003-02-06 Yoshinori Matsui Calibration method and memory system
US20040267489A1 (en) 2003-06-24 2004-12-30 Frederic Reblewski Data compaction and pin assignment
US20070005836A1 (en) * 2005-06-07 2007-01-04 Sandeep Jain Memory having swizzled signal lines
US20090019323A1 (en) 2007-07-11 2009-01-15 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US20110153925A1 (en) 2009-12-22 2011-06-23 Bains Kuljit S Memory controller functionalities to support data swizzling
WO2012064670A1 (en) 2010-11-09 2012-05-18 Rambus Inc. Area-efficient multi-modal signaling interface
US20120198135A1 (en) 2011-01-31 2012-08-02 Chilappagari Shashi Kiran Mapping Data to Non-Volatile Memory
US20120250433A1 (en) * 2011-03-28 2012-10-04 Young-Jin Jeon Memory devices, systems and methods employing command/address calibration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
International Search Report & Written Opinion for International Application No. PCT/US2013/046406 Mailed Nov. 8, 2013, 10 pages.

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US10304547B2 (en) 2016-10-27 2019-05-28 Samsung Electronics Co., Ltd. Memory device and clock training method thereof
US11061590B2 (en) 2016-11-03 2021-07-13 Intel Corporation Efficiently training memory device chip select control
US10720197B2 (en) 2017-11-21 2020-07-21 Samsung Electronics Co., Ltd. Memory device for supporting command bus training mode and method of operating the same
US11195566B2 (en) 2017-11-21 2021-12-07 Samsung Electronics Co., Ltd. Memory device and method for supporting command bus training mode based on one data signal
US11715504B2 (en) 2017-11-21 2023-08-01 Samsung Electronics Co., Ltd. Memory device for supporting command bus training mode and method of operating the same
US12217823B2 (en) 2017-11-21 2025-02-04 Samsung Electronics Co., Ltd. Memory device for supporting command bus training mode and method of operating the same
US12009023B2 (en) 2019-05-24 2024-06-11 Intel Corporation Training for chip select signal read operations by memory devices
US11675716B2 (en) 2019-12-10 2023-06-13 Intel Corporation Techniques for command bus training to a memory device
US12093195B2 (en) 2019-12-10 2024-09-17 Intel Corporation Techniques for command bus training to a memory device
US11462287B2 (en) 2020-03-27 2022-10-04 Changxin Memory Technologies, Inc. Memory test method, storage medium and computer device
US11614888B2 (en) 2020-12-11 2023-03-28 Samsung Electronics Co., Ltd. Memory system and electronic system including the same
US11983410B2 (en) 2021-02-25 2024-05-14 Samsung Electronics Co., Ltd. Method optimizing DQ calibration pattern for memory device and computing system performing same
US12125554B2 (en) * 2022-03-21 2024-10-22 Nxp Usa, Inc. Systems and methods for resolving data (DQ) line swapping configurations in double data rate (DDR) memories
US20230298640A1 (en) * 2022-03-21 2023-09-21 Nxp Usa, Inc. Systems and methods for resolving data (dq) line swapping configurations in double data rate (ddr) memories

Also Published As

Publication number Publication date
CN104903877B (en) 2018-01-26
CN104903877A (en) 2015-09-09
US20140189224A1 (en) 2014-07-03
KR20150068984A (en) 2015-06-22
KR101729872B1 (en) 2017-04-24
WO2014105134A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
US9026725B2 (en) Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals
US7924637B2 (en) Method for training dynamic random access memory (DRAM) controller timing delays
US20120284576A1 (en) Hardware stimulus engine for memory receive and transmit signals
US9971975B2 (en) Optimal data eye for improved Vref margin
US8300482B2 (en) Data transfer circuit and semiconductor memory device including the same
US9437326B2 (en) Margin tool for double data rate memory systems
US7808849B2 (en) Read leveling of memory units designed to receive access requests in a sequential chained topology
EP3625800B1 (en) Systems and methods for frequency mode detection and implementation
US6412052B2 (en) Method and apparatus for detecting an initialization signal and a command packet error in packetized dynamic random access memories
KR20180034738A (en) Memory device and divided clock compensation method thereof
US7607055B2 (en) Semiconductor memory device and method of testing the same
US9711241B2 (en) Method and apparatus for optimized memory test status detection and debug
US9183125B2 (en) DDR receiver enable cycle training
US20160141018A1 (en) Managing skew in data signals with multiple modes
US20100008176A1 (en) Write Leveling Of Memory Units Designed To Receive Access Requests In A Sequential Chained Topology
CN112017727B (en) Interface test method and device, processor and electronic equipment
US20060104150A1 (en) Semiconductor memory device
US8671304B2 (en) Adjustment of write timing based on a training signal
US10204005B2 (en) Error detection circuit and semiconductor apparatus using the same
US20080270834A1 (en) Control method for read operation of memory
US10942541B1 (en) Connection interface circuit, memory storage device and signal generation method
US12288597B2 (en) Setting module and setting method thereof for synchronous dynamic random access memory
US20240126681A1 (en) Method and system for dynamically detecting memory sub-channel mapping and data lane mapping between a memory controller and physical layer circuitry
KR20130021175A (en) Memory device and devices having the same
US20090193175A1 (en) Identification of an onboard memory buffer device from a system address

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KOSTINSKY, ALEXEY;GREENFIELD, ZVIKA;MOZAK, CHRISTOPHER P.;AND OTHERS;SIGNING DATES FROM 20130205 TO 20130625;REEL/FRAME:033175/0588

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: TAHOE RESEARCH, LTD., IRELAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEL CORPORATION;REEL/FRAME:061175/0176

Effective date: 20220718

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载