GB2510249A - Aligning a clock signal and a data strobe signal in a memory system - Google Patents

Aligning a clock signal and a data strobe signal in a memory system Download PDF

Info

Publication number
GB2510249A
GB2510249A GB1321394.7A GB201321394A GB2510249A GB 2510249 A GB2510249 A GB 2510249A GB 201321394 A GB201321394 A GB 201321394A GB 2510249 A GB2510249 A GB 2510249A
Authority
GB
United Kingdom
Prior art keywords
clock
memory
alignment
transition point
data strobe
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.)
Granted
Application number
GB1321394.7A
Other versions
GB201321394D0 (en
GB2510249A8 (en
GB2510249B (en
Inventor
Nidhir Kumar
Gyan Prakash
Chandrashekar Narla
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of GB201321394D0 publication Critical patent/GB201321394D0/en
Publication of GB2510249A publication Critical patent/GB2510249A/en
Publication of GB2510249A8 publication Critical patent/GB2510249A8/en
Application granted granted Critical
Publication of GB2510249B publication Critical patent/GB2510249B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/1066Output synchronization
    • 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/4076Timing circuits
    • 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/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • 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

Abstract

Aligning a clock signal and a data strobe (DQS) signal in a system comprising a memory controller and a memory such as a DDR3 memory with a fly-by configuration. Initially the memory is put into a write levelling mode 100; incrementing an alignment delay applied to the data strobe signal 102 issued 104 until a transition point is detected 106 at which a response of the memory transitions to an inverse state. Performing an oversampling of the response of the memory over a selected interval following said transition point 108. The steps of incrementing and performing oversampling are repeated until, for a selected alignment delay, a majority of results 110 of the oversampling is in the inverse state 114. Cycle alignment detection (34, figure 5) is performed to determine an identified clock cycle of a plurality of adjacent cycles of the clock signal such as by masking clock signals to identified clock cycle responsible for the transition point (where the selected delay can more than a clock cycle). The selected alignment delay and clock cycle selection is then applied to the data strobe signal and data path in the system to match the identified clock cycle during write operations (36, figure 5).

Description

A METHOD AND APPARATUS FOR ALIGNING A CLOCK SIGNAL AND A
DATA STROBE SIGNAL IN A MEMORY SYSTEM
FIELD OF THE 1NVENTION
The present invention relates to a method and apparatus for aligning a clock signal and a data strobe signal in a system comprising a memory controller and a memory. More particularly, this invention relates to determining a delay applied to the data strobe signal to align it with the clock signal.
DESCRIPTION OF THE PRIOR ART
In a memory system comprising a memory controller and a memory, it is known for the memory controller to carry out a write levelling calibration of the memory system during an initiation phase in which the relative timing of a clock signal (CLK) and a data strobe signal (DQS) is adjusted. The clock signal is distributed by the memory controller to the memory modules of the memory system as a reference for all components of the system and the data strobe signal indicates the points at which a data signal (DQ) transmitted between the memory controller and the memory modules should be sampled.
As contemporary memory systems, in particular dual data rate systems, progress to ever higher clock rates and data transfer rates, the challenges presented in carrying out this write levelling process are growing. The corresponding JEDEC specification (JESD79-3E) defines a basic process for alignment correction between DQS and CLK for up to one clock cycle under ideal conditions. However, this mechanism has now been found not to be practical in contemporary systems (in particular at the above mentioned high data rates) where system jitter and write levelling uncertainly (tWLH, tWLI-I) are present. TYloreover, contemporary memory systems such as DDR3 memory systems adopt a fly-by signal routing for the clock and command (CLK/CMID) signals transmitted from the memory controller to the memory modules, wherein the CLK/CMD signals are routed from one memory module to the next in a concatenated chain. Whilst this improves the signal quality due to an avoidance of the reflection inherent in a branched topology, it also necessarily increases the CLKICTVID path length for memory modules later in the concatenation.
In particular some dual in-line memory module (DIMM) topologies operating at data rates greater than 1600Mb/s will require more than one clock cycle of write levelling and have stringent clock jitter requirements. The DQS path in P1-fl' (i.e. on the memory controller) is typically rather long and the dynamic random access memory (DRAM) clock path is usually matched to the DQS path on chip. However, increasing the length of the DRAIVI clock path, whilst on the one hand allowing it to provide the required degree of write levelling, on the other hand also makes it more susceptible to power supply noise induced jitter, unless built using current mode logic (CML) which typically has undesirably high power requirements and further requires custom implementation.
Accordingly it would be desirable to provide a method and apparatus for allowing the required write levelling to be carried out whilst further satisfying the contemporary stringent clock jitter requirements.
SUMMARY OF THE INVENTION
Viewed from a first aspect, the present invention provides a method of aligning a clock signal and a data strobe signal in a system comprising a memory controller and a memory, the method comprising the steps of: putting said memory into a write levelling mode; incrementing an alignment delay applied to said data strobe signal until a transition point occurs at which a response of said memory to issuance of said data strobe signal transitions to an inverse state; performing an oversampling of said response of said memory over a selected interval following said transition point; repeating said steps of incrementing and performing an oversampling until, for a selected alignment delay, a majority orresults of said oversampling is in said inverse state; performing a cycle alignment detection procedure to determine an identified clock cycle of a plurality of adjacent cycles of said clock signal, said identified clock cycle responsible for said transition point; and applying said selected alignment delay to said data strobe signal and applying a clock cycle selection to a data path in said system to match said identified clock cycle.
The present invention provides an improved technique for performing write levelling in the memory system. Firstly, the system offers an improved technique for identifying the edge alignment between the clock signal and the data strobe signal by performing an oversampling of a selected interval following an identified transition point at which the response of the memory to issuance of the data strobe signal transitions to a inverse state. The system jitter could mean that the edge alignment between the clock signal and the data strobe signal could be wrongly identified, in particular in the typical configuration where a rising edge is searched for, a rising edge could be wrongly identified by system jitter producing the 0-to-i transition as an iO artefact of the instability present. However, oversampling a selected interval (for example a quarter clock cycle) following a candidate rising edge enables the rising edge to be verified by virtue of a majority of the oversampling resulting in a I rather than a 0 (in the example where a rising edge is searched for). Secondly, the present technique further provides the ability for the edge alignment between the clock signal is and the data strobe signal to be performed such that the particular clock cycle responsible for the identified transition point can be determined, Advantageously, this enables the clock signal to data strobe signal edge relation to be determined across multiple clock cycles. Hence multiple clock cycles of skew between the clock signal and the data strobe signal can be adapted for without resorting to the above-described additional delay components added to the clock path and the additional system jitter which these could introduce.
in some embodiments the method further comprises a clock path reduction step, said clock path reduction step comprising amending a clock path which caries said clock signal to reduce a delay inherent in propagating said clock signal along said clock path. Where previously a clock path would typically be provided which was matched (in timing) to a data strobe path, the present techniques enable (lie clock path to be amended such that delay components provided to match the clock path to the data strobe path can be removed, thus reducing system jitter resulting from the presence of those components, It will be appreciated that this clock path reduction step could be carried out in a number of ways, but in one embodiment said clock path reduction step comprises removing selected components from said clock path, wherein said selected components have matching counterparts on a data strobe path which carries said data strobe signal. For example, the memory system may be provided in a format in which these components are already provided on the clock path arid in this situation the method may comprise removing one or more selected components from the clock path.
In another embodiment said clock path reduction step comprises enabling one of a plurality of alternative routes for said clock path. For example, the memory system may be provided in a configuration where a "matched" clock path and a "non-matched" clock path are provided with the ability to select between the two for example provided by a multiplexer. In such a situation, when carrying out the present techniques, this step comprises selecting the non-matched clock path.
It will be appreciated that the oversampling may be configured in a number of different ways, but in some embodiments the selected internal for the oversampling is a quarter clock cycle. Further, in some embodiments a number of samples taken in said oversampling is a user programmable value.
k some embodiments the method further comprises an average alignment delay determination step, said average alignment delay determination step comprising iteratively re-determining said transition point and calculating an average alignment delay. Due to the presence of system jifter, it is advantageous if the alignment delay is not merely determined on the basis of a single identification of the transition point, but rather where multiple iterations of determining the transition point are made, thus allowing an average alignment delay to be calculated. In some embodiments the average alignment delayed determination step comprises a user programmable number of iterations. Accordingly, in dependence on the user's expectation or experience of the degree of system jitter present, the averaging process can be adapted accordingly.
In some embodiments the iteratively re-determining said transition point compii ses alternate phases ol i) increasing said alignment delay to identify said transition point at which said response of said memory to issuance of said data strobe signal transitions to said inverse state; and ii) decreasing said alignment delay to identify said transition point at which said response of said memory to issuance of said data strobe signal transitions to an inverse of said inverse state.
In this manner the iterative redetermination of the transition point may be efficiently carried out by this two phase process of increasing the alignment delay to determine the transition point in one direction and decreasing the alignment delay to identify the transition point in the opposite direction (in which the memory response will transition in the opposite direction, i.e. l-to-0 where the original transition was 0-to-i).
In some embodiments said alignment delay is not reset between said alternate phases. Accordingly, rather than performing a full sweep of the alignment delay in order to identify the transition point the alignment delay can advantageously be swept backwards and forwards over a shorter range in order to allow each iteration of the averaging process to be more quickly completed.
in some embodiments, if said phase of increasing said alignment delay reaches a maximum alignment delay without said transition point being identified then said iteratively re-determining said transition point is determined to have failed. For example, the maximum alignment delay may correspond to a full clock cycle and in this situation if the alignment delay has been swept through a fill clock cycle without finding the transition point then an error has occurred and the iterative determination of the transition point is determined to have failed.
In some embodiments, if said phase of decreasing said alignment delay reaches a minimum alignment delay without said transition point being identified, then a current iteration of iteratively re-determining said transition point is retried. For example a minimum alignment delay may be zero delay and if the phase of decreasing the alignment delay reaches zero delay then a problem has occurred with the current iteration of the averaging process and this iteration may be retried.
In some embodiments a limit on the number of retries for an iteration may be imposed and Wa number of retried iterations exceeds a predetermined proportion of a number of successful iterations of said average alignment delay determination step, said average alignment delay determination step is determined to have failed. This enables the determination of the transition point to be more reliably determined by basing the averaging calculation on a set of successful iterations of the averaging process. For example, an upper limit of 1O°4 may be imposed as the number of iterations requiring retry allowed in the averaging count.
In the situation where this failure occurs, in some embodiments if said average alignment delay determination step is determined to have failed, said average alignment delay determination step is reinitiated after adding an offset to said alignment delay. For example, three quarter of a clock cycle may be added to the alignment delay to shift the position at which the alignment is being attempted to a new section of the clock cycle.
In some embodiments said cycle alignment detection procedure comprises iteratively masking clock cycles of said plurality of adjacent cycles to determine said identified clock cycle which is responsible for said transition point on the basis of a change in said response of said memory, Hence a particular clock cycle may be identified which is responsible for the transition point by identifying the masking which resulted in a change in the response of the memory.
In some embodiments said cycle alignment detection procedure comprises adding a partial clock cycle to said selected alignment deLay prior to iteratively masking said clock cycles. This partial clock cycle may for example be a 1⁄4 clock cycle and helps to ensure that the data strobe signal does not violate the write levelling setup / hold time during the cycle alignment detection procedure.
k some embodiments said cycle alignment detection procedure comprises comparing said selected alignment delay to a user defined threshold and determining said identified clock cycle based on a result of said comparing. Some memory systems may not allow clock masking (e.g. Registered DIIvlIvl (RDITvllvI) systems). In this situation on completion of write levelling (ie. edge alignment) and determination of the alignment delay if any alignment delay is less than a previously determined alignment delay by a user defined threshold (based on expected delay from chip to chip and average system jitter) then a digital delay of one cycle may be added in the write dala path in produce the required write levelling.
In some embodiments said applying said clock cyde selection to said data path to match said identified clock cycle comprises selecting between a plurality of differently timed enable signals. In particular, integer clock cycle timing differences between the enable signals provides a mechanism for offsetting the data path timing by a selected number of clock cycles.
In some embodiments said memory is a DDR3 memory system.
In some embodiments said memory comprises multiple memory modules wherein a clock path which carries said clock signal to said multiple memory modules is configured in a fly-by configuration, Viewed from a second aspect the present invention provides a computer program product storing in a non-transient fashion a computer program configured to cause the execution of the method of the first aspect.
Viewed from a third aspect the present invention provides apparatus comprising a memory controller and a memory, the apparatus comprising: a control unit configured to put said memory into a write levelling mode; an alignment delay determination unit configured to increment an alignment delay applied to said data strobe signal until a transition point occurs at which a response of said memory to issuance of said data strobe signal transitions to an inverse state; an oversampling unit configured to perform an oversampling of said response of said memory over a selected interval following said transition point, said alignment delay determination unit and said oversampling unit configured to repeat said incrementing and performing an oversampling until, for a selected alignment delay, a majority of results of said oversampling is in said inverse state; and a cycle alignment detection unit configured to perform a cycle alignment detection procedure to determine an identified clock cycle of a plurality of adjacent cycles of said clock signal which is responsible for said transition point, wherein said control unit is configured to apply said selected alignment delay to said data strobe signal and to apply a clock cycle selection to a data path to match said identified clock cycle.
Viewed from a fourth aspect the present invention provides apparatus comprising a memory controller and a memory, the apparatus comprising: control means for putting said memory into a write levelling mode; alignment delay determination means for incrementing an alignment delay applied to said data strobe signal until a transition point occurs at which a response of said memory to issuance of said data strobe signal transitions to an inverse state; oversampling means for performing an oversampling of said response of said memory over a selected interval following said transition point means configured to repeat said incrementing and perfonning an oversampling until, for a selected alignment delay, a majority of results of said oversampling is in said inverse state; and cycle alignment detection means for performing a cycle alignment detection procedure to determine an identified clock cycle of a plurality of adjacent cycles of said clock signal which is responsible for said transition point, wherein said control means is configured to apply said selected alignment delay to said data strobe signal and to apply a clock cycle selection to a data path to match said identified clock cycle.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be described further, by way of example only, with reference to embodiments thereof as illustrated in the accompanying drawings, in which: Figure 1 schematically illustrates a dual data rate DRAIVI system in which a memory controller controls access to four DDR3 modules in one embodiment; Figure 2 schematically illustrates how the fly-by configuration of the CLK/CMD path in the memory system shown in Figure 1 results in a range of timing offsets between CLK and DQS for the different DQS paths; Figure 3 illustrates the relative timing of CMD, CLK, DQS and DQ signals in an example write configuration; Figure 4A illustrates the allowed skew between CLK and DQS; Figure 4B illustrates the setup and hold times defined by the relative timing of DQS and DQ; Figure 5 shows a sequence of steps taken in one embodiment; Figure 6A schematically illustrates a clock path configuration in which delay componenis are provided to match the DQS path; Figure ÔB schematically illustrates a configuration in which the DQS matching components have been removed from the clock path; Figure 6C schematically illustrates a configuration in which the DQS matching components on the clock path may be bypassed using a multiplexer; Figure 7 schematically illustrates the relative timing of the clock and data strobe signal, the resulting DRAIVI response and the ambiguity of the DRAM response within the write levelling set up and hold time window; Figures 8A-8D schematically illustrate a sequence of steps which are taken according to the method of one embodiment; Figure 9A schematically illustrates the edge alignment of the CLK md DQS signals after the edge alignment phase of the method in one embodiment; Figure 9B schematically illustrates the identification of the particular clock cycle with which the DQS edge relationship is aligned in one embodiment; Figure 10 schematically illustrates a sequence of steps which are taken to identify the CLK to DQS relationship in one embodiment; Figure 11 schematically illustrates the selection between four alternative write data enable signals in order to implement the selection of an identified CLK/DQS alignment in one embodiment; Figure 12A shows a simulation of the CLK/DQS alignment before write levelling is caned out; Figure 12B shows a simulation of the CLK/DQS alignment after write levelling; and Figure 12C shows a simulation of the a CLK shaping step in one embodiment,
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Figure 1 schematically illustrates a DDR memory system 10, which generally comprises a memory controller integrated circuit 12 and a memory module integrated circuit 14. The memory module integrated circuit 14 comprises four DDR3 modules 16, each of which may be accessed in parallel by its own dedicated bytelane 18 provided as part ol' the memory controller integrated circuil 12, The memory controller integrated circuit 12 further comprises a clock/command (CLK/CIVIID) module 20 which is configured to transmit clock and command signals to the DDR3 modules 16. In the illustrated embodiment shown in Figure 1, the CLK!CMD signals are transmitted between the DDR3 modules in a "fly-by" configuration to improve signal integrity (avoiding the reflections associated with a branching topology).
Accordingly, the memory controller 12 can cause data to be read from one of the DDR3 modules 16 by issuing appropriate command (CMD) signals via the CLK/CMD path (in association with the clock signal CLK which is also transmitted via that route), the requested data being returned from the corresponding DDR3 module via its associated DQ/DQS path to the corresponding bytelane 18 of the memory controller 12. Equally, the memory controller 12 can cause data to be written to one of the DDR3 modules 16 by issuing appropriate command (CMID) signals via the CLK/CMD path, the write data being transmitted from the respective bytelane 18 of the memory controller 12 to the the corresponding DDR3 module via its associated DQ!DQS path.
In a wTite configuration, in order for the DDR3 modules to be able to correctly interpret the data transmitted as the DQ signal, it is necessary for the relative timing of the DQS signal to be correctly calibrated, since the data strobe signal DQS indicates the sample points at which the DQ signal should be sampled. Each bytelane further comprises a set of delay-locked loop (DLL) logic 22 enabling these relative timings to be adjusted under the overall control of the memory controller 12.
Figure 2 schematically illustrates how the fly-by topology used for the command/clock (CLK/CMD) signalling results in a range of timing offsets between the clock signal CLXI and the respective data strobe signals DQSO, DQS1, DQS2 and DQS3, Figure 3 shows a timing overview of the general DDR write process in which a write command (WR) is first registered, followed by receiving data (DQ) on both the rising and falling edges of the data strobe signal (DQS). The data DQ is transmitted from the memory controller to the DDR modules after a write latency (WL) delay. In order for the write data to be correctly received by the DDR modules, it is necessary for the respective DQS signal to be correctly aligned with the DQ data eye, which in turn requires the DQS and clock signals to be correctly aligned with one another.
As shown in Figure 4A, the system has a limited degree of' tolerance to misalignment (skew) between DQS and CLK which is parameterised as +/-tDQSS.
Equally, whilst the respective edge of the DQS signal should ideally fall relatively centrally within the DQ eye, there is a "set up" and "hold" period before and after this idea alignment in which the DQS edge can move and correct operation can still result.
As shown in Figure 4B, this variation is parameterised as tDS (set up) and tDH (hold). 1]
Figure 5 shows a high-level view of four main steps which are carried out in the method of one embodiment. In a first step 30, entitled "clock path minimisation", DLL components provided on the clock path to enable a matching in timing between the clock (CLK) path and the data strobe (DQS) path are removed, thus reducing the jitter introduced to the system by the presence of these multiple components. At a next step 32, the "edge alignment phase", the relative alignment between the clock signal (CLK) and the data strobe signal on a selected data strobe path (DQS) is determined, in particular to meet the tDQSS requirement of the system (see Figure 4A). Next, at step 34, the "edge detection phase" is carried out in which the absolute relation between the clock signal (CLK) and the data strobe signal (DQS) is determined, i.e. the specific clock edge (amongst multiple candidates) which is responsible for the alignment found is identified. Finally, on the basis of this identified clock edge, at step 36 (the "write data path readjustment phase"), the result of this write levelling process is used during the write procedure to dynamically select between alternative clock timings to correctly align with the identified clock edge.
Figure 6A schematically illustrates sets of components on a respective DQS path and on the clock path in a system such as that illustrated in Figure 1. In particular, the DQS path comprises clock tree buffers 40, a write levelling DLL 42, a write centering DLL 44 and a write training matching DLL 46. These DLL components are comprised within the DLL unit 22 of each bytelane 18 in Figure 1.
Also shown in Figure 6A are a set of components on the clock path which comprise clock tree buffers 50, command (CMD) matching DLL 52, write centering matching DLL 54 and write training matching DLL 56. As indicated in Figure 6A, it should be noted that one of the clock tree buffers 50, the write centering matching DLL 54 and the write training matching DLL 56 have been provided such that the timing paths for DQS and CLK are matched in one another, However, whilst in (lie absence of' the present techniques the matching of the DQS and CLK timing paths in this manner may previously have been desirable, each additional component present on the clock path adds to the system jitter.
Accordingly, as shown in Figure 6B, after the step 30 of Figure 5 has been carried out, the "DQS matching components", namely one of the buffers 50 together with the write centring matching DLL 54 and the write training matching DLL 56 have been removed from the clock path. This improves the system jitter by removing these components, although necessarily also results in a situation in which the alignment between DQS and CLK has been further offset from one another, This aspect is addressed as described below.
Figure 6C illustrates an alternative embodiment in which the write centering matching DLL 54 and the write training matching DLL 56 may be bypassed by appropriate setting of the selection signal SEL, which controls the multiplexer 60.
Figure 7 is a timing diagram showing a range of relative timings between the data strobe signal (DQS) and the clock signal (labelled "CK" in this figure), and the resulting write levelling response of the DRATVI, As shown in the example "A", where the clock signal transitions in advance of the DQS signal, when the DRAM is put into write levelling mode and the memory module samples the input clock on the rising edge of DQS the response sent back to the memory controller on the DQ bus will be "1" whereas in example "B" where the rising edge of the clock signal falls after the DQS rising edge then the write levelling response of the DRAIVI module will be "0".
The time difference between the respective clock rising edges and the DQS rising edge in the "A" and "B" examples of Figure 7 also graphically illustrates the write levelling "set up" (tWLS) and write levelling "hold" (tWLH) times for this system. However, as illustrated by the example "C" in Figure 7, a clock rising edge which falls within the boundaries defined by tWLS and tWLI-l will result in a write levelling response from the DRAN'l which is indeterminate. Accordingly, when seeking to align the clock and DQS signals, this aspect needs to be taken into account such that the process is not disrupted by misidentifying where the rising clock edge is with respect to the DQS rising edge. tWLO is the write levelling response time and prime DQ is the DQ bit which will carry the write levelling response.
Figures 8A-SD show a sequence of sieps which are carried out in one embodiment when performing the "edge alignment phase" (see step 32 in Figure 5).
The process begins at step 100 where the write levelling and the write training matching analogue DLL (32 and 46 in Figure 6A-6C) are set to zero, A new DQS strobe is launched and the DRAM response is loaded into a cunent response register in the respective bvtelane 18 of the memory controller 12 (see Figure 1). Then at step 102 the DLL step is incremented by 1, in this example this being done by stepping the write centering DLL 44 to the next 1/255 increment of a clock cycle. At step 104 another DQS strobe is launched and the content of a "current response" register is transferred to a "previous response" register (these being part of the bytelane control circuitry), whilst the DRAIVI response for this DQS strobe is loaded into the current response register. At step 106 it is detennined if a transition is detected, i.e. if the content of the previous response register and the current response register differ. If they do not then the flow returns to step 102. When a transition is detected at step 106 then the flow proceeds to step 108 where a quarter cycle interval in DLL is oversampled (the number of oversampling points being user selectable between 7, 15, 31 and 63 times) and at step 110 the results of this oversampling are examined, If a majority of the oversampling results are "0" then it is determined (at step 112) that the previous transition was a falling edge transition and should be discarded and the flow returns to step 102. If however the oversampling gives a majority of"l" then (at step 114) it is determined that the previous transition was a rising edge transition and the process may proceed to the averaging process to determine the edge alignment offset on the basis of this rising edge averaged over a number of iterations to allow for system jitter.
The flow continues from step t t6 in Figure 8B. In a first step of the averaging process (at step 118) it is determined if the DLL step is currently zero. If it is not then at step 120 the DLL is decremented by one and a DQS strobe is launched, The content of the current response register is transferred to the previous response register and the DRAM response is loaded as the current response. At step t22 it is then determined if a 140-0 transition is detected and if it is not then the flow returns to 118 and step 120 to continue decrementing the DLL step until such a transition is found (or the DLL reaches 0). When a 1-to-0 transition is detected at step 122, then at step 124 the current DLL step value is added to a running sum of the DLL steps Ibund by (lie procedure and the flow proceeds to step 148 (see Figure 8D) where it is checked if the required number of averaging steps are completed.
If further averaging steps are required then the flow proceeds to step 150 where it is determined if the DLL step has reached its maximum (in this embodiment this being a DLL offset corresponding to a complete clock cycle). If it has not reached this maximum then at step 152 the DLL step is now increased, such that the sweeping search for the transition is now proceeding in the opposite (i.e. increasing DLL) direction. At step 154 another DQS strobe is launched, the current content of the current response register value is loaded into the previous response register and the DRAM response is loaded as the current response. At step 156 it is determined if a 0-to-I transition is detected and if it is not then the flow returns to step 150 and on to step 152 to in order to increment the DLL step and continue the search. If at step t50 the DLL reaches its maximum (i.e. an entire clock cycle has been swept without finding the rising edge) then it is determined that the system jitter is unexpectedly high (step 158) and write levelling cannot continue. The write levelling process aborts and ends at step t60. Conversely, when at step 156 the 0-to-i transition is found, then at step 162 this value of DLL offset is added to a running sum of the DLL steps found by the procedure and at step 164 it is determined if the required numbered of averaging steps are completed.
If further averaging steps (in particular from this point: a fhrther decrementing DLL sweep) is required then the flow returns to step t t8 (see Figure 8B) and (via step and 122) the DLL step is decremented until the transition is found whereafter (from step 148) if further averaging steps are still required than an increasing DLL sweep is performed (step t50-156) and so on, Thus alternating phases of increasing the DLL step and decreasing the DLL step and performed to scan up and down and identify the transition point in each direction.
Returning to Figure 8B, in the event that it is determined at step 118 that the DLL step has reached zero then a retry procedure is carried out. This is performed because the DLL step has been decremented all the way to zero without the rising edge having been identified, The retry process begins at step U6 where the number of retries for this iteration is determined based on a user programmable option of 4 or 16 tunes, A counter reiry required is incremented in monilor the number of times which this retry process is entered for a given averaging process. The number of performances of the retry process is limited with respect to the averaging count (i.e. the number of measurements used in the averaging calculation) and if the retry required count exceeds l0?/'b of the averaging count then the flow proceeds to step 130 and the averaging is discarded. At step 132 three quarters of a cycle of DLL step is added and the flow returns to step 104 (see Figure 8A). If the number of times the retry process has been entered does not exceed the 10% limit at step 128 then the flow proceeds to step 134 (see Figure 8C). Here a counter retry count is incremented to count the number of retry attempts within each retry process and at step 136 a new DQS strobe is launched and the current response register value is loaded into the previous response register and the DRAM response is loaded as the current response.
At step 138 it is determined if a 1-to-U transition is detected. If it is then the retry count counter is reset at step 140 and the flow proceeds to step 148 (see Figure 8D). If however at step 138 the 1-to-0 transition is not detected then at step 142 it is determined if retry_count has reached its programmed limit (i.e. the user programmable option of 4 or t6 retry attempts) and whilst this limit is not exceeded the flow returns to step 134. If the retry count reaches this limit then at step 144 the averaging is discarded, retry_count is reset and at step 146 three quarters of a cycle of DLL offset is added and the flow returns to step 104 see Figure 8A).
Finally, once the required number of averaging steps is complete (determined at either 148 or 164 -see Figure 8D) then the flow proceeds to step 166 where the average of the DLL steps found to correspond to the valid transitions is determined (by dividing the DLL step sum by the number of averaging values). This determined value is then applied to the write levelling DLL and any residual is added to the write centering matching DLL. Finally the write training matching DLL is reset to zero.
The edge alignment phase completes at step 168.
Once the relative alignment of CLK and DQS has been performed in this manner then whilst the relative alignment DQS has been achieved, in absolute terms the rising edge of the DQS strobe could have been aligned with any one of a number of clock rising edges as is schematically illustrated in the timing diagrams shown in Figure 9A. This "edge relation" is important because it depends on the DRAM memory topology (point-in-point or DfMM) as well as the PVT condilion and system jitter. Accordingly, whilst the above described edge alignment procedure meets the specification for satisfying tDQSS, it will not satisfy the overall write levelling requirement since this alignment may vary each time the write levelling is performed and a different edge relation could result, Hence, as shown in Figure 9B, an iterative masking process is carried out to determine the write levelling relation after meeting tDQSS (this being the edge detection phase).
The steps carried out in one embodiment corresponding to Figure 9B are shown in Figure 10, which begin at step 200 where a quarter cycle is added to the DLL step determined as the final average value. As can be seen by comparison of Figures 9A and 9B this positions the rising edge of the DQS strobe in a position relative to the respective masked clock signal such that a reliable DRAM response may be obtained.
Then at step 202 the Ti high pulse is masked and the DQS strobe is launched, If this results in a DRAM response of zero (step 204) then it is concluded (at step 206) that the CLK/DQS relationship is between TI and 12 respectively and the edge detection process is complete.
if however the DRAM response at step 204 is not zero then next (step 208 and 210) it is determined if masking the clock T2 high pulse results in a DRAM response of zero. If it does, then it is concluded (at step 212) that the CLK/DQS relationship is between 12 and T2 respectively and the edge detection process is complete.
if however the DRAM response at step 210 is not zero then next (step 214 and 216) it is determined if masking the clock T3 high pulse results in a DRAM response of zero. If it does, then it is concluded (at step 28) that the CLK/DQS relationship is between 13 and T2 respectively and the edge detection process is complete.
if however the DRAM response at step 216 is not zero then next (step 220 and 222) it is determined if masking the clock 14 high pulse results in a DRAM response of zero. If it does, then it is concluded (at step 224) that the CLK/DQS relationship is between 14 and 12 respectively and the edge detection process is complete.
Finally, if the DRAIVI response at step 222 is also not a zero then the edge detection phase has failed due to unexpectedly high jitter or unexpected CLK/DQS routing and the process ends in failure at step 226.
Figure 11 schematically illustrates how the edge detection performed according the procedure shown in Figure 10 can be used in one embodiment, Here, the result ol' the edge detection is used to select between four different alternatives for a write data enable signal 250 (write_data_en). Three concatenated flops 252 are used to generate three further versions of the write data enable signal respectively delayed by a further clock cycle each and a two bit edge code from the write levelling output is used to select between these at multiplexer 254. Hence, a "readjusted" data write enable signal is generated which adjusts for the clock to DQS so CLK to DQS relationship determined.
Figures 12A-12B illustrate simulations of CLK and DQS alignment before and afler write levelling. Figure 12A shows a single DQS strobe as used in the above-described alignment procedure and Figure 12B shows the thU clock signal that may result from the above-described alignment procedure. Figure t2C shows a CLK shaping step showing the clock masking.
Although particular embodiments of the invention have been described herein, it will be apparent that the invention is not limited thereto, and that many modifications and additions may be made within the scope of the invention, For example, various combinations of the features of the following dependent claims could be made with the features of the independent claims without departing from the scope of the present invention.

Claims (20)

  1. CLAIMS1 A method of aligning a clock signal and a data strobe signal in a system comprising a memory controller and a memory, the method comprising the steps of: putting said memory into a write levelling mode; incrementing an alignment delay applied to said data strobe signal until a transition point occurs at which a response of said memory to issuance of said data strobe signal transitions to an inverse state; performing an oversampling of said response of said memory over a selected interval following said transition point; repeating said steps of incrementing and performing an oversampling until, for a selected alignment delay, a majority of results of said oversampling is in said inverse state; performing a cycle alignment detection procedure to determine an identified clock cycle of a plurality of adjacent cycles of said clock signal, said identified clock cycle responsible for said transition point; and applying said selected alignment delay to said data strobe signal and applying a clock cycle selection to a data path in said system to match said identified clock cycle.
  2. 2. The method as claimed in claim, further comprising a clock path reduction step, said clock path reduction step comprising amending a clock path which carries said clock signal to reduce a delay inherent in propagating said clock signal along said clock path.
  3. 3. The method as claimed in claim 2, wherein said clock path reduction step comprises removing selected components from said clock path, wherein said selecied components have matching counterparts on a data strobe path which carries said data strobe signal.
  4. 4, The method as claimed in claim 2, wherein said clock path reduction step comprises enabling one of a plurality of alternative routes for said clock path.
  5. 5, The method as claimed in any preceding claim, further comprising an average alignment delay determination step, said average alignment ddlay determination step comprising iteratively re-determining said transition point and calculating an average alignment delay.
  6. 6, The method as claimed in claim 5, wherein said iteratively re-determining said transition point comprises alternate phases of: i) increasing said alignment delay to identify said transition point at which said response of said memory to issuance of said data strobe signal transitions to said inverse state; and ii) decreasing said alignment delay to identify said transition point at which said response of said memory to issuance of said data strobe signal transitions to an inverse of said inverse state.
  7. 7, The method as claimed in claim 6, wherein said alignment delay is not reset between said alternate phases.
  8. 8. The method as claimed in claim 6, wherein, if said phase of increasing said alignment delay reaches a maximum alignment delay without said transition point being identified then said iteratively re-determining said transition point is determined to have failed.
  9. 9. The method as claimed in claim 6, wherein, if said phase of decreasing said alignment delay reaches a minimum alignment delay without said transition point being identified, then a current iteration of iteratively re-determining said transition point is retried.
  10. 10. The method as daimed in claim 9, wherein, if a number of retried iterations exceeds a predetermined proportion of a number of successful iterations of said average alignment delay determination step, said average alignment delay determination step is determined to have failed.
  11. 11 The method as claimed in claim 10, wherein, if said average alignment delay determination step is determined to have failed, said average alignment delay determination step is reinitiated after adding an offset to said alignment delay.
  12. 12. The method as claimed in any preceding claim, wherein said cycle alignment detection procedure comprises iteratively masking clock cycles of said plurality of adjacent cycles to determine said identified clock cycle which is responsible for said transition point on the basis of a change in said response of said memory.
  13. 13. The method as claimed in claim 12, wherein said cycle alignment detection procedure comprises adding a partial clock cycle to said selected alignment delay prior to iteratively masking said clock cycles.
  14. 14. The method as daimed in any of claims 1-11, wherein said cycle alignment detection procedure comprises comparing said selected alignment delay to a user defined threshold and determining said identified clock cycle based on a result of said comparing.
  15. 15. The method as claimed in any preceding claim, wherein said applying said clock cycle selection to said data path to match said identified clock cycle comprises selecting between a plurality of differently timed enable signals.
  16. 16. The method as claimed in any preceding claim, wherein said memory is a DDR 3 memory system.
  17. 17. A compuler program product storing in a non-transient fashion a computer program configured to cause the execution of the method as claimed in any preceding claim.
  18. 18. Apparatus comprising a memory controller and a memory, the apparatus comprising: a control unit configured to put said memory into a write levelling mode; 2] an alignment delay determination unit configured to increment an alignment delay applied to said data strobe signal until a transition point occurs at which a response of said memory to issuance of said data strobe signal transitions to an inverse state; an oversampling unit configured to perform an oversampling of said response of said memory over a selected interval following said transition point, said alignment delay determination unit and said oversampling unit configured to repeat said incrementing and performing an oversampling until, for a selected alignment delay, a majority of results of said oversampling is in said inverse state; and a cycle alignment detection unit configured to perform a cycle alignment detection procedure to determine an identified clock cycle of a plurality of adjacent cycles of said clock signal which is responsible for said transition point, wherein said control unit is configured to apply said selected alignment delay to said data strobe signal and to apply a clock cycle selection to a data path to match said identified clock cycle.
  19. 19. Apparatus comprising a memory controller and a memory, the apparatus comprising: control means for putting said memory into a write levelling mode; alignment delay determination means for incrementing an alignment delay applied to said data strobe signal until a transition point occurs at which a response of said memory to issuance of said data strobe signal transitions to an inverse state; oversampling means for performing an oversampling of said response of said memory over a selected interval following said transition point means configured to repeat said incrementing and performing an oversampling until, for a selected alignment delay, a majority of results of said oversampling is in said inverse slate; and cycle alignment detection means for performing a cycle alignment detection procedure to determine an identified clock cycle of a plurality of adjacent cydes of said clock signal which is responsible for said transition point, wherein said control means is configured to apply said selected alignment delay to said data strobe signal and to apply a clock cycle selection to a data path to match said identified clock cycle.
  20. 20. A method of aligning a clock signal and a data strobe signal in a system comprising a memory controller and a memory substantially as herein described with reference to the accompanying figures.2] Apparatus comprising a memory controller and a memory substantially as herein described with reference to the accompanying figures.
GB1321394.7A 2012-12-24 2013-12-04 A method and apparatus for aligning a clock signal and a data strobe signal in a memory system Active GB2510249B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/726,392 US8780655B1 (en) 2012-12-24 2012-12-24 Method and apparatus for aligning a clock signal and a data strobe signal in a memory system

Publications (4)

Publication Number Publication Date
GB201321394D0 GB201321394D0 (en) 2014-01-15
GB2510249A true GB2510249A (en) 2014-07-30
GB2510249A8 GB2510249A8 (en) 2014-08-13
GB2510249B GB2510249B (en) 2019-04-10

Family

ID=50974506

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1321394.7A Active GB2510249B (en) 2012-12-24 2013-12-04 A method and apparatus for aligning a clock signal and a data strobe signal in a memory system

Country Status (2)

Country Link
US (1) US8780655B1 (en)
GB (1) GB2510249B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477259B2 (en) 2015-01-15 2016-10-25 Apple Inc. Calibration of clock signal for data transmission

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716510B2 (en) 2006-12-19 2010-05-11 Micron Technology, Inc. Timing synchronization circuit with loop counter
US7656745B2 (en) 2007-03-15 2010-02-02 Micron Technology, Inc. Circuit, system and method for controlling read latency
US8984320B2 (en) 2011-03-29 2015-03-17 Micron Technology, Inc. Command paths, apparatuses and methods for providing a command to a data block
US8552776B2 (en) 2012-02-01 2013-10-08 Micron Technology, Inc. Apparatuses and methods for altering a forward path delay of a signal path
US9166579B2 (en) * 2012-06-01 2015-10-20 Micron Technology, Inc. Methods and apparatuses for shifting data signals to match command signal delay
US9054675B2 (en) 2012-06-22 2015-06-09 Micron Technology, Inc. Apparatuses and methods for adjusting a minimum forward path delay of a signal path
US9001594B2 (en) 2012-07-06 2015-04-07 Micron Technology, Inc. Apparatuses and methods for adjusting a path delay of a command path
US9329623B2 (en) 2012-08-22 2016-05-03 Micron Technology, Inc. Apparatuses, integrated circuits, and methods for synchronizing data signals with a command signal
US20140281662A1 (en) * 2013-03-12 2014-09-18 Uniquify, Inc. Dynamically adaptive bit-leveling for data interfaces
US20150213850A1 (en) * 2014-01-24 2015-07-30 Qualcomm Incorporated Serial data transmission for dynamic random access memory (dram) interfaces
US9508417B2 (en) 2014-02-20 2016-11-29 Micron Technology, Inc. Methods and apparatuses for controlling timing paths and latency based on a loop delay
US9530473B2 (en) 2014-05-22 2016-12-27 Micron Technology, Inc. Apparatuses and methods for timing provision of a command to input circuitry
WO2016135744A2 (en) * 2015-02-25 2016-09-01 Gyan Prakash A system and method for multi-cycle write leveling
US9531363B2 (en) 2015-04-28 2016-12-27 Micron Technology, Inc. Methods and apparatuses including command latency control circuit
US9813067B2 (en) 2015-06-10 2017-11-07 Micron Technology, Inc. Clock signal and supply voltage variation tracking
US9601170B1 (en) 2016-04-26 2017-03-21 Micron Technology, Inc. Apparatuses and methods for adjusting a delay of a command signal path
US9865317B2 (en) 2016-04-26 2018-01-09 Micron Technology, Inc. Methods and apparatuses including command delay adjustment circuit
US9997220B2 (en) 2016-08-22 2018-06-12 Micron Technology, Inc. Apparatuses and methods for adjusting delay of command signal path
KR102596491B1 (en) 2016-12-13 2023-10-30 삼성전자주식회사 Semiconductor device
US10191732B2 (en) 2017-06-09 2019-01-29 Citrix Systems, Inc. Systems and methods for preventing service disruption during software updates
US10224938B2 (en) 2017-07-26 2019-03-05 Micron Technology, Inc. Apparatuses and methods for indirectly detecting phase variations
KR20190102929A (en) 2018-02-27 2019-09-04 에스케이하이닉스 주식회사 Semiconductor device and semiconductor system
US10777243B2 (en) 2018-02-27 2020-09-15 SK Hynix Inc. Semiconductor device and semiconductor system including the semiconductor device for aligning an internal data strobe signal using an offset code
US10923166B2 (en) * 2018-02-27 2021-02-16 SK Hynix Inc. Semiconductor devices performing a write leveling training operation and semiconductor systems including the semiconductor devices
US11232820B2 (en) 2018-02-27 2022-01-25 SK Hynix Inc. Semiconductor devices performing a write leveling training operation and semiconductor systems including the semiconductor devices
KR102569429B1 (en) * 2018-05-24 2023-08-24 에스케이하이닉스 주식회사 Syncronization circuit
KR20200052562A (en) 2018-11-07 2020-05-15 삼성전자주식회사 Storage device
US11145343B1 (en) * 2020-11-20 2021-10-12 Faraday Technology Corporation Method for controlling multi-cycle write leveling process in memory system
CN114518837A (en) * 2020-11-20 2022-05-20 智原科技股份有限公司 Processing method of multi-cycle write-in equalizing program applied to memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070217559A1 (en) * 2006-03-16 2007-09-20 Rambus Inc. Signaling system with adaptive timing calibration
US20090161453A1 (en) * 2007-12-21 2009-06-25 Rambus Inc. Method and apparatus for calibrating write timing in a memory system
US20100008176A1 (en) * 2008-07-09 2010-01-14 Nvidia Corporation Write Leveling Of Memory Units Designed To Receive Access Requests In A Sequential Chained Topology
US8588014B1 (en) * 2011-05-31 2013-11-19 Altera Corporation Methods for memory interface calibration

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691214B1 (en) 2000-08-29 2004-02-10 Micron Technology, Inc. DDR II write data capture calibration
US7036053B2 (en) 2002-12-19 2006-04-25 Intel Corporation Two dimensional data eye centering for source synchronous data transfers
US7111111B2 (en) 2003-07-08 2006-09-19 Broadcom Corporation Scheme for optimal settings for DDR interface
US7688672B2 (en) * 2005-03-14 2010-03-30 Rambus Inc. Self-timed interface for strobe-based systems
US7215584B2 (en) 2005-07-01 2007-05-08 Lsi Logic Corporation Method and/or apparatus for training DQS strobe gating
US20080276133A1 (en) 2007-05-02 2008-11-06 Andrew Hadley Software-Controlled Dynamic DDR Calibration
US7886174B2 (en) 2007-06-27 2011-02-08 Intel Corporation Memory link training
US8098535B2 (en) 2009-03-30 2012-01-17 Cadence Design Systems, Inc. Method and apparatus for gate training in memory interfaces
US7911857B1 (en) 2009-06-10 2011-03-22 Juniper Networks, Inc. Preamble detection and postamble closure for a memory interface controller
US8037375B2 (en) 2009-06-30 2011-10-11 Intel Corporation Fast data eye retraining for a memory
US20110040902A1 (en) 2009-08-13 2011-02-17 Housty Oswin E Compensation engine for training double data rate delays
US8578086B2 (en) 2009-09-25 2013-11-05 Intel Corporation Memory link initialization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070217559A1 (en) * 2006-03-16 2007-09-20 Rambus Inc. Signaling system with adaptive timing calibration
US20090161453A1 (en) * 2007-12-21 2009-06-25 Rambus Inc. Method and apparatus for calibrating write timing in a memory system
US20100008176A1 (en) * 2008-07-09 2010-01-14 Nvidia Corporation Write Leveling Of Memory Units Designed To Receive Access Requests In A Sequential Chained Topology
US8588014B1 (en) * 2011-05-31 2013-11-19 Altera Corporation Methods for memory interface calibration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477259B2 (en) 2015-01-15 2016-10-25 Apple Inc. Calibration of clock signal for data transmission

Also Published As

Publication number Publication date
GB201321394D0 (en) 2014-01-15
US20140177359A1 (en) 2014-06-26
US8780655B1 (en) 2014-07-15
GB2510249A8 (en) 2014-08-13
GB2510249B (en) 2019-04-10

Similar Documents

Publication Publication Date Title
US8780655B1 (en) Method and apparatus for aligning a clock signal and a data strobe signal in a memory system
KR101653035B1 (en) Command paths, apparatuses and methods for providing a command to a data block
US9000817B2 (en) Apparatuses and methods for altering a forward path delay of a signal path
US8644096B2 (en) Command paths, apparatuses, memories, and methods for providing internal commands to a data path
US9001594B2 (en) Apparatuses and methods for adjusting a path delay of a command path
US8913448B2 (en) Apparatuses and methods for capturing data in a memory
US7869286B2 (en) Semiconductor memory device and method for operating the same
US20060036915A1 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
US9042188B2 (en) Memory controller and method of calibrating a memory controller
JP5577776B2 (en) Memory control apparatus and mask timing control method
US9007855B2 (en) Data signal receiver and method of calibrating a data signal receiver
US9105327B2 (en) Memory controller using a data strobe signal and method of calibrating data strobe signal in a memory controller
US8582376B2 (en) Timing adjustment circuit for a memory interface and method of adjusting timing for memory interface
US9437261B2 (en) Memory controller and information processing device
US8687457B2 (en) Semiconductor memory device and operating method thereof
US10573360B1 (en) Method and apparatus for adaptable phase training of high frequency clock signaling for data capture
US10998021B2 (en) Controller and semiconductor system including a controller
KR20180050816A (en) Semiconductor device and system including the same
KR101018689B1 (en) Semiconductor memory device and system operation method
WO2013038562A1 (en) Transmitting system, transmitting apparatus, receiving apparatus, and transmitting method