WO2013035223A1 - メモリコントローラ及びメモリ制御方法 - Google Patents

メモリコントローラ及びメモリ制御方法 Download PDF

Info

Publication number
WO2013035223A1
WO2013035223A1 PCT/JP2012/003478 JP2012003478W WO2013035223A1 WO 2013035223 A1 WO2013035223 A1 WO 2013035223A1 JP 2012003478 W JP2012003478 W JP 2012003478W WO 2013035223 A1 WO2013035223 A1 WO 2013035223A1
Authority
WO
WIPO (PCT)
Prior art keywords
dqs
delay
control unit
data
control means
Prior art date
Application number
PCT/JP2012/003478
Other languages
English (en)
French (fr)
Inventor
小田 稔
Original Assignee
エヌイーシーコンピュータテクノ株式会社
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 エヌイーシーコンピュータテクノ株式会社 filed Critical エヌイーシーコンピュータテクノ株式会社
Priority to EP12830031.6A priority Critical patent/EP2755140B1/en
Priority to US14/342,263 priority patent/US9305617B2/en
Priority to KR1020147009061A priority patent/KR101597063B1/ko
Publication of WO2013035223A1 publication Critical patent/WO2013035223A1/ja

Links

Images

Classifications

    • 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/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/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/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
    • 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
    • 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 

Definitions

  • the present invention relates to memory control, more specifically, write leveling performed for a DDR3 memory interface.
  • Patent Documents 1 to 3 Signal delay times are adjusted in various semiconductor devices.
  • DRAM Dynamic Random Access Memory
  • DDR3 memory interface DDR: Double Data Rate
  • JEDEC Joint Electron Engineering Engineering Council
  • write leveling is defined in which the delay time of the data strobe signal DQS output from the memory controller to each of the plurality of memory elements included in the DIMM is adjusted.
  • FIG. 11 is FIG. 19 in Patent Document 4 and schematically shows a connection example between the memory controller 90 and the DIMM 91 compliant with the DDR3 memory interface.
  • the clock signal CK, the address signal Add, and the command signal CMD signal lines are n (n: 2) on the memory controller 90 and the DIMM 91.
  • the memory elements (SDRAM: Synchronous Dynamic Random Access Memory) 92-1 to 92-n are wired in a daisy chain, and the signal lines of the data signal DQ and the data strobe signal DQS are transmitted from the memory controller 90 to the DIMM 91. Wired to the plurality of SDRAMs 92-1 to 92-n above.
  • reference numerals 92-1 to 92-n are used when one of a plurality of SDRAMs needs to be specified, and reference numeral 92 is used when referring to any SDRAM.
  • the codes DQ-1 to DQ-n are used when one of the plurality of data signals needs to be specified, and the code DQ is used when indicating an arbitrary data signal.
  • the codes DQS-1 to DQS-n are used when one of a plurality of data strobe signals needs to be specified, and the code DQS is used when indicating an arbitrary data strobe signal. Use.
  • the clock signal CK output from the memory controller 90 cannot reach all the SDRAMs 92-1 to 92-n at the same time due to the propagation delay caused by the daisy chain wiring of the signal line of the clock signal CK.
  • the length L1 of the outer dimension of the DIMM 91 is determined to be 133 mm.
  • Write leveling refers to sampling the clock signal CK with the data strobe signal DQS output from the memory controller 90 to detect the phase relationship between the data strobe signal DQS and the clock signal CK, and adjusting the delay time of the data strobe signal DQS. It is a function to perform. As shown in FIG. 12, this function includes variable delay circuits 93-1 to 93-n capable of changing the delay times of the data strobe signals DQS-1 to DQS-n in a memory controller 90. This is realized by incorporating each of the SDRAMs 92-1 to 92-n.
  • reference numerals 93-1 to 93-n are used when one of the plurality of delay circuits needs to be specified, and reference numeral 93 is used when referring to an arbitrary delay circuit.
  • a CPU Central Processing Unit
  • DQS-1 to DQS-n output from the SDRAMs 92-1 to 92-n to the SDRAMs 92, respectively.
  • the data strobe signals DQS-1 to DQS-n are converted into SDRAMs 92-1 to 92-n, respectively.
  • the delay circuits 93-1 to 93-n delay the data strobe signal DQS by the delay times t1-1 to t1-n, respectively.
  • the data strobe signal DQS and the clock signal CK have the same phase.
  • write leveling is performed when a memory device having a DDR3 memory interface is initialized. That is, when initialization including write leveling is completed, the delay times t1-1 to t1-n are determined, and the clock signal CK and the data strobe signal DQS are input with the same phase to each SDRAM. .
  • JP 2000-206212 A JP 2001-217694 A JP 2009-284266 A JP 2009-077562A
  • the DQS delay time (corresponding to the delay times t1-1 to t1-n described above) is normally controlled by a DLL (Delay Locked Loop) circuit.
  • DLL Delay Locked Loop
  • the wiring of the signal line is restricted with respect to the design of the printed circuit board so that the adjustment width of the delay time of the data strobe signal DQS is 1 clock cycle or less.
  • the detection of the phase relationship between the clock signal CK and the data strobe signal DQS at the time of write leveling is performed in synchronization with the data strobe signal DQS having a burst length determined by the standard for each memory element to match the burst length. This is performed based on the result of comparing the read data string with the expected value data string by reading after writing the expected value data string composed of the known data.
  • the present invention has been made in view of the above circumstances, and provides a technique that can avoid an increase in initialization time during write leveling.
  • One aspect of the present invention is a memory control method.
  • light leveling is performed according to the following procedure.
  • a DQS control unit that is provided for each memory element included in the memory module corresponding to the DDR3 memory interface and outputs a data strobe signal DQS to the memory element, and is provided for each memory element, and is output to the memory element.
  • the DQ control unit that outputs the write data and receives the read data, the delay amount of the output timing of the data strobe signal DQS, the output timing of the write data, and the read data Is adjusted within a range of less than one clock cycle.
  • a read data string obtained by reading after writing the expected value data string is compared with the expected value data string, and each of the DQS control units
  • the DQ controller adjusts the delay amount of the output timing of the data strobe signal DQS and the delay amount of the write data output timing and the read data reception timing in units of clock cycles.
  • the DQS control unit outputs a data strobe signal DQS longer than the burst length determined by the standard by “2 ⁇ M” clock cycles (M: an integer of 1 or more), and the DQ control unit outputs the burst Control is performed so that M pieces of data are added and output before and after the expected value data string corresponding to the length.
  • FIG. 11 is a diagram illustrating an example for explaining the significance of data strobe signal and data signal expansion during write leveling (part 1); FIG.
  • 10 is a diagram illustrating an example for explaining the significance of data strobe signal and data signal expansion during write leveling (part 2); It is a figure which shows the read data sequence obtained in the case of the example shown in FIG. It is a figure which shows typically the example of a connection based on a DDR3 memory interface. It is a figure for demonstrating write leveling.
  • FIG. 1 shows a semiconductor device such as a computer 200 according to an embodiment of the present invention.
  • the computer 200 includes a CPU 210, a memory controller 220, and a DIMM 280.
  • the DIMM 280 has n (n: integer of 2 or more) SDRAMs 282 (SDRAMs 282-1 to 282-n).
  • K K: number
  • ⁇ N N: number
  • the codes “282-1” to “282-n” are used, and any SDRAM is selected. Only the symbol “282” is used when indicating.
  • W English letter
  • N number
  • DQS-1 when it is necessary to specify one of DQS-1 to DQS-n as a code indicating a data strobe signal, which will be described later, the codes “DQS-1” to “DQS-n” are used. Only the code “DQS” is used when indicating the strobe signal.
  • the memory controller 220 includes a first control unit 230, as many second control units 240 (second control units 240-1 to 240-n) as the SDRAM 282, and a write leveling control unit 250.
  • Each second control unit 240 includes a DQS control unit 242 and a DQ control unit 244.
  • a DDR3 format memory interface is employed. Therefore, among the signal lines connecting the memory controller 220 and the DIMM 28, the clock signal CK, the address signal Add, and the command signal CMD are signals. As for the lines, the memory controller 220 and n SDRAMs 282 on the DIMM 280 are wired in a daisy chain, and the signal lines of the data signal DQ and the data strobe signal DQS are respectively transferred from the memory controller 220 to the n SDRAMs 282 on the DIMM 280. Wired.
  • the memory controller 220 is connected to the CPU 210, and performs write leveling on the DIMM 280 in response to a write leveling operation instruction from the CPU 210 at the time of initialization.
  • the first control unit 230 in the memory controller 220 outputs a clock signal CK, an address signal Add, and a command signal CMD to the DIMM 280. These signals are supplied to the SDRAMs 282 in the order of SDRAM 282-1, SDRAM 282-2,..., SDRAM 282-n via the signal lines wired in the daisy chain described above.
  • the DQS control unit 242 in the second control unit 240 outputs a data strobe signal DQS to the corresponding SDRAM 282, and the DQ control unit 244 sends data (DQ [0]) to the SDRAM 282. ,... DQ [n]).
  • the second control unit 240 will be described in detail with reference to FIG.
  • the DQS control unit 242 in the second control unit 240 includes a DQS extension control unit 2420, a first delay control unit 2422, and a second delay control unit 2424.
  • the DQ control unit 244 The decompression control unit 2440, the first delay control unit 2442, and the second delay control unit 2444 are included.
  • the first delay control unit 2422 and the second delay control unit 2424 constitute a DQS delay unit
  • the first delay control unit 2442 and the second delay control unit 2444 constitute a DQ delay unit.
  • the DQS extension control unit 2420 performs control to increase the number of DQS issued in accordance with an instruction from the write leveling control unit 250.
  • the first delay control unit 2422 is configured by a combination of a register and a selector, and can delay the DQS in units of clock cycles.
  • the second delay control unit 2424 is configured by a DLL, and can adjust the DQS delay time with a granularity (for example, 1/16 clock cycle) as required within a range of less than one clock cycle.
  • the sum of delay times by the first delay control unit 2422 and the second delay control unit 2424 is the DQS delay time.
  • the DQ extension control unit 2440 performs control to increase the number of issued DQs according to an instruction from the write leveling control unit 250.
  • the first delay control unit 2442 includes a combination of a register and a selector, and can delay DQ in units of clock cycles.
  • the second delay control unit 2444 is configured with a DLL, and can adjust the delay time of the DQ with a granularity (for example, 1/16 clock cycle) as required within a range of less than one clock cycle.
  • the sum of the delay times by the first delay control unit 2442 and the second delay control unit 2444 is the DQ delay time.
  • the light leveling control unit 250 will be described with reference to FIG.
  • the write leveling control unit 250 includes a sequence control unit 252, an extension instruction unit 254, and a test operation control unit 256.
  • the sequence control unit 252 controls the start of the write leveling and the adjustment of the delay time of DQS, DQ [0],... DQ [n] by the write leveling according to the write leveling operation instruction from the CPU 210. This adjustment is made in two stages by the first delay control unit 2422 and the second delay control unit 2424 in the DQS control unit 242 with respect to DQS, and the first delay control unit 2442 in the DQ control unit 244 with respect to DQ.
  • the second delay control unit 2444 performs two steps.
  • sequence control unit 252 outputs a write leveling instruction to the first control unit 230, and includes a first delay control unit 2422 and a second delay control unit 2424 in the DQS control unit 242 of the second control unit 240.
  • the DQ control unit 244 outputs a delay amount instruction to the first delay control unit 2442 and the second delay control unit 2444, and the DQS control unit 242 includes a DQS expansion control unit 2420 and a DQ control unit 244 performs DQ expansion control.
  • the above-described control is realized by causing the decompression instruction unit 254 to output an decompression instruction to the unit 2440 and outputting a test operation instruction to the test operation control unit 256.
  • the decompression instruction unit 254 sends an instruction (decompression instruction) to decompress the data strobe signal DQS and the data signal DQ according to the control from the sequence control unit 252 and the DQS decompression control unit 2420 of the DQS control unit 242 in the second control unit 240. , Output to the DQS expansion control unit 2420 of the DQ control unit 244.
  • the test operation control unit 256 outputs a write request to the first control unit 230 and the second control unit 240 in response to a test operation instruction from the sequence control unit 252 and reads the first control unit 230. A process of outputting a request and a process of comparing reply data (described later) with an expected value are performed.
  • the test operation control unit 256 will be described in detail with reference to FIG.
  • the test operation control unit 256 includes a test sequence control unit 262, a write command issue control unit 264, a read command issue control unit 266, and a comparison unit 268.
  • the test sequence control unit 262 controls the write command issuance control unit 264, the read command issuance control unit 266, and the comparison unit 268 in accordance with the test operation instruction from the write leveling control unit 250 to read / write data to / from the DIMM 280.
  • the write and reply data are compared with the expected value.
  • the write command issue control unit 264 issues a write request to the DIMM 280 in accordance with an instruction from the test sequence control unit 262.
  • the read command issue control unit 266 issues a read request to the DIMM 280 in accordance with an instruction from the test sequence control unit 262.
  • the comparison unit 268 receives the data (reply data) output from the DIMM 280 in response to the read request, compares the reply data with the expected value, and notifies the test sequence control unit 262 of the comparison result.
  • the write leveling operation instruction issued from the CPU 210 is received by the sequence control unit 252 in the write leveling control unit 250 of the memory controller 220.
  • the write sequence control unit 252 starts the write leveling operation upon reception of the write leveling operation instruction. Adjustment of the delay time in the write leveling operation is performed in two stages. This will be described with reference to the flowcharts of FIGS.
  • step S100 the second delay control unit 2424 in the DQS control unit 242 and the second delay control unit 2444 in the DQ control unit 244 are within a range of less than one clock cycle. Adjust the delay time.
  • second delay time the delay times of the second delay control unit 2424 and the second delay control unit 2444 are referred to as “second delay time”.
  • the adjustment in this step is DQS adjustment based on the clock signal CLK, and is a write leveling operation defined in the DIMM specifications.
  • test operation for detecting a clock edge shift between the SDRAMs 282 is started (S102). Specifically, the write leveling control unit 250 issues a test operation instruction to the test operation control unit 256 after completion of the process of step S100. The test operation control unit 256 performs a test operation in response to a test operation instruction from the sequence control unit 252.
  • FIG. 6 shows a flowchart of the test operation.
  • the test operation control unit 256 issues a write request to the DIMM 280 and writes an expected value data string made up of a plurality of known data (S110).
  • Issuance of a write request is performed by sending a write command issue instruction from the test sequence control unit 262 to the write command issue control unit 264.
  • the SDRAM 282 cannot write one or more data at the beginning of the expected value data string or one or more data at the end due to a shift in the clock edge between the SDRAMs 282. There is a possibility that the SDRAM 282 needs to be reset.
  • the write leveling control unit 250 further sends an extension instruction to the second control units 240-1,... 240-n in this step.
  • the DQS decompression control unit 2420 in the DQS control unit 242 of the second control unit 240-1, 240-n is “2 ⁇ M” clock cycles longer than the prescribed burst length (M: 1 or more) in response to the decompression instruction.
  • the data strobe signal DQS is issued to the DIMM 280.
  • the DQ extension control unit 2440 in the DQ control unit 244 adds M pieces of data before and after the expected value data string corresponding to the specified burst length in response to the extension instruction, and issues the data to the DIMM 280. .
  • test sequence control unit 262 issues a read request for reading the data written in step S110 to the DIMM 280 (S112).
  • the read request is issued by sending a read command issue instruction from the test sequence control unit 262 to the read command issue control unit 266.
  • Reply data (read data string) is output from the DIMM 280 in response to the read request.
  • the comparison unit 268 receives this reply data, compares it with the expected value data string, and sends the comparison result to the test sequence control unit 262 (S114). The result of this comparison is further output from the test sequence control unit 262 to the sequence control unit 252.
  • the sequence control unit 252 sets the delay amount of the first delay control unit 2422 in the DQS control unit 242 and the first delay control unit 2442 in the DQ control unit 244 based on the comparison result obtained by the comparison unit 268. Then, a delay amount instruction indicating the delay value is sent to the second control units 240-1, 240-2,..., 240-n.
  • the delay value set by the sequence control unit 252 in this step is hereinafter referred to as “first delay time”.
  • the first delay time is an integral multiple (including 0 times) of the clock cycle.
  • Each of the first delay control unit 2422 and the first delay control unit 2442 adjusts the delay time corresponding to the first delay time set by the test sequence control unit 262. This completes the write leveling.
  • the adjustment of the delay time in the write leveling is performed in two stages.
  • the second delay control unit 2424 and the second delay control unit 2444 each perform a delay time (second delay within one clock cycle). Time) adjustments are made.
  • the second delay time adjustment amount A2-1 is set to match the T1 edge of the clock signal
  • the T1 edge of the clock signal is set.
  • adjustment is performed with the second delay time adjustment amount A2-2.
  • the SDRAM 282-n is adjusted by the second delay time adjustment amount A 2-n in order to match the T 0 edge of the clock signal.
  • ADD / CMD is assumed to be aligned with the T1 edge of the clock signal.
  • the test operation shown in FIG. 6 is performed.
  • an expected value is written to the DIMM 280 by a write request.
  • the SDRAM 282-n is synchronized with the T1 in which ADD / CMD is synchronized. Since the expected value arrives at the T0 edge that is one cycle (1T) earlier than the edge, the specification is violated as shown in FIG. This will be specifically described with reference to FIG. In FIG.
  • ACT and WRA have the same meaning as defined in the specifications of DDR3 of JEDEC, and are mnemonic expressions of the “Activate” instruction and the “Write + AutoPrecharge” instruction, respectively. is there.
  • WL Write Latency
  • ACT and WRA have the same meaning as defined in the specifications of DDR3 of JEDEC, and indicates the data output timing in the write instruction.
  • the SDRAM 282 since the relationship between ADD / CMD and write data matches, the normal burst length DQS and the number of data matching the normal burst length Is issued, the SDRAM 282 is not required to be reset.
  • DQS / DQ [0],... DQ [n] is synchronized with the T0 edge of CLK, and therefore arrives at SDRAM 282-n 1T earlier than ADD / CMD. become. For this reason, there is no way to restore data except that the end of the data is cut off and the posttable is invalid and reset is performed.
  • the extension of DQS and DQ is a process for avoiding this state.
  • the DQS decompression control unit 2420 in the DQS control unit 242 of the second control unit 240-1,..., 240-n sets the DQS to “2 ⁇ M ”cycles and issues to DIMM 280.
  • the DQ extension control unit 2440 in the DQ control unit 244 also extends the DQ by M cycles both before and after and issues it to the DIMM 280.
  • DQS / DQ [0],..., DQ [n] extends for 2T before and after the original output position (burst 8). Therefore, the SDRAM 282-n does not fall into a specification violation state. Therefore, the SDRAM does not enter an indefinite state, and the SDRAM reset operation becomes unnecessary.
  • data 4, 5, 6, 7, 8, 9, A and B are written in the SDRAM 282-1 and SDRAM 282-2, and data 6, 7, 8, 9, A and B are written in the SDRAM 282-n.
  • B, C, D are written.
  • the reply data is transmitted from each SDRAM 282 to the comparison unit 268 in response to the read request, and compared with the expected values (4, 5, 6, 7, 8, 9, A, B).
  • the reply data since the reply data is returned as shown in FIG. 10, it matches the expected value for the SDRAMs 282-1 and 282-2, and the SDRAM 282-n is two times before the expected value. It will be off.
  • the comparison unit 268 compares the test sequence control unit 262 with, for example, “0” (match) for the SDRAMs 282-1 and 282-2, and “ ⁇ 1” (1T earlier) for the SDRAM 282-n.
  • the test sequence control unit 262 further outputs each comparison result to the sequence control unit 252.
  • the sequence control unit 252 determines an adjustment amount of each first delay time based on these comparison results, and gives a delay amount instruction indicating each delay amount to the first delay control unit 2422 and the first delay time.
  • the data is output to the delay control unit 2442.
  • the first delay control unit 2422 and the first delay control unit 2442 corresponding to the SDRAM 282-1 and SDRAM 282-2 become “0” indicating “no delay time”.
  • a delay amount instruction is output, and becomes “ ⁇ 1” indicating “adjust delay time by ⁇ 1 clock cycle” for the first delay control unit 2422 and the first delay control unit 2442 corresponding to the SDRAM 282-n.
  • a delay amount instruction is output.
  • Each first delay control unit 2422 and first delay control unit 2442 set a delay time corresponding to the received delay amount instruction. As a result, the shift between ADD / CMD and DQS / DQ is also eliminated for the SDRAM 282-n.
  • the data strobe signal DQS is longer by “2 ⁇ M” cycles than the burst length determined by the standard when writing the expected value data string.
  • the data is decompressed, and M pieces of data are added before and after the expected value data string and output. Therefore, even in the case of the SDRAM 282 in which the edges of the data strobe signal DQS and the clock signal CK are shifted, a state in which the SDRAM 282 has to be reset due to the lack of data to be written is avoided, and thus the initialization time is long. Can be avoided.
  • the data strobe signal DQS and the data signal DQ are first finely adjusted within a range of less than one cycle by the second delay control unit 2424 and the second delay control unit 2444, which are DLL circuits. Then, by performing coarse adjustment in units of cycles by the first delay control unit 2422 and the first delay control unit 2442 which are a combination of a register and a selector, a memory in which the difference between the clock signal CK and the data strobe signal DQS is large. Even in the case of the apparatus, the delay time of the data strobe signal DQS can be adjusted with high accuracy.
  • the delay is realized by two delay circuits having different adjustment granularities. Two delays may be realized by one delay circuit. In this case, although the accuracy of adjustment is inferior to that of the computer 200, an effect of avoiding an increase in the initialization time can be obtained similarly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

 ライトレベリング時において、初期化時間が長くなることを回避するために、ライトレベリング制御部(250)は、DQS制御部(242)とDQ制御部(244)の遅延量を、まず、1クロックサイクル未満の範囲内で調整する。そして、夫々のSDRAM(282)に対して、期待値データ列のライト後にリードを行って得たリードデータ列と期待値データ列とを比較し、比較結果に応じて、DQS制御部(242)とDQ制御部(244)の遅延量を、クロックサイクル単位で調整する。上記ライト時に、DQS制御部(242)が規格により定められたバースト長より「2×M」クロックサイクル長い(M:1以上の整数)データストローブ信号(DQS)を出力し、DQ制御部(244)が上記バースト長に合致する個数の期待値データ列の前後にM個ずつデータを加えて出力するように制御する。

Description

メモリコントローラ及びメモリ制御方法
 本発明は、メモリ制御、より具体的には、DDR3メモリインタフェースに対して行うライトレベリングに関する。
 様々な半導体装置において、信号の遅延時間の調整が行われている(特許文献1~3)。DRAM(Dynamic Random Access Memory)の規格としてJEDEC(Joint Electron Device Engineering Council)により標準化されたDDR3メモリインタフェース(DDR:Double Data Rate)では、メモリコントローラとDIMM(Dual Inline Memory Module)との接続にフライバイトポロジが採用されているため、メモリコントローラから、DIMMに含まれる複数のメモリ素子に夫々出力されるデータストローブ信号DQSの遅延時間を調整する所謂ライトレベリングが規定されている(特許文献4)。
 図11は、特許文献4における図19であり、DDR3メモリインタフェースに準拠するメモリコントローラ90とDIMM91の接続例を模式的に示している。図示のように、メモリコントローラ90とDIMM91を接続する各信号線のうちに、クロック信号CK、アドレス信号Addおよびコマンド信号CMDの信号線については、メモリコントローラ90とDIMM91上のn個(n:2以上の自然数)のメモリ素子(SDRAM:Synchronous Dynamic Random Access Memory)92-1~92-nとがデイジーチェーンで配線され、データ信号DQおよびデータストローブ信号DQSの信号線については、メモリコントローラ90からDIMM91上の複数のSDRAM92-1~92-nにそれぞれ配線されている。
 以下、SDRAMを示す符号として、複数のSDRAMのうち1つを特定する必要があるときは符号92-1~92-nを用い、任意のSDRAMを指すときには符号92を用いる。
 また、データ信号を示す符号として、複数のデータ信号のうち1つを特定する必要があるときは符号DQ-1~DQ-nを用い、任意のデータ信号を指すときには符号DQを用いる。
 同様に、データストローブ信号を示す符号として、複数のデータストローブ信号のうち1つを特定する必要があるときは符号DQS-1~DQS-nを用い、任意のデータストローブ信号を指すときには符号DQSを用いる。
 クロック信号CKの信号線のデイジーチェーン配線に起因する伝播遅延により、メモリコントローラ90から出力されたクロック信号CKは、全てのSDRAM92-1~92-nに同時刻に到達することができない。例えば、JEDECの規格では、DIMM91の外形寸法の長さL1が133mmと決められており、DIMM91における長さ方向の一端に配置されたSDRAM92-1と他端に配置されたSDRAM92-nとでは、データ送信速度が7ps/mmである場合には、1ns近い到達時刻差が生じることとなる(7ps/mm×133mm=931ps)。
 そのため、DDR3メモリインタフェースについて、JEDECの規格では、ライトレベリングを用いることが規定されている。図12(特許文献4における図20)を参照して、ライトレベリングを簡単に説明する。
 ライトレベリングとは、メモリコントローラ90から出力されるデータストローブ信号DQSでクロック信号CKをサンプリングすることによって、データストローブ信号DQSとクロック信号CKの位相関係を検出し、データストローブ信号DQSの遅延時間の調整を行う機能である。この機能は、図12に示すように、各データストローブ信号DQS-1~DQS-nの遅延時間を変えることのできる可変遅延回路93-1~93-nを、メモリコントローラ90内に、複数のSDRAM92-1~92-nに対応してそれぞれ内蔵することにより実現される。
 以下、遅延回路を示す符号として、複数の遅延回路のうち1つを特定する必要があるときは符号93-1~93-nを用い、任意の遅延回路を指すときには符号93を用いる。
 具体的には、図示しないCPU(Central ProcessingUnit)が、各SDRAM92のそれぞれに対して出力されるデータストローブ信号DQS-1~DQS-nに対して、これらのSDRAM92-1~92-nから出力される各データ信号DQ-1~DQ-nに基づいてそれぞれ遅延時間t1-1~t1-nを設定することにより、各データストローブ信号DQS-1~DQS-nは、SDRAM92-1~92-nのそれぞれに対して、クロック信号CKとほぼ同じ時間に入力するように調整される。
 つまり、例えば、ライトレベリングが完了した時点では、遅延回路93-1~93-nは、それぞれ、遅延時間t1-1~t1-nだけデータストローブ信号DQSを遅延させるようになっており、SDRAM92-1~92-nには、データストローブ信号DQSとクロック信号CKとの位相が揃って入力されるようになっている。
 なお、ライトレベリングは、DDR3メモリインタフェースを備えるメモリ装置の初期化時に行われる。すなわち、ライトレベリングを含む初期化完了すれば、遅延時間t1-1~t1-nが決まり、各SDRAMには、クロック信号CKとデータストローブ信号DQSの位相が揃って入力されるようになっている。
特開2000-206212号公報 特開2001-217694号公報 特開2009-284266号公報 特開2009-075682号公報
 データストローブ信号DQSの遅延を調整する際には、DQSの遅延時間(上述した遅延時間t1-1~t1-nに該当する)は、通常、DLL(Delay Locked Loop)回路により制御される。この場合、必要な遅延時間が大きくなると、調整幅が大きくなるため、調整の誤差が大きくなってしまうという問題がある。従って、データストローブ信号DQSの遅延時間の調整幅が1クロックサイクル以下になるように、プリント基板の設計に対して、信号線の配線に制約が設けられていた。
 ところで、昨今のメモリ素子の高速化により、上記制約下における実装が困難になりつつあり、1クロックサイクル以上の調整幅を必要とするメモリ装置が現実的に多々存在する。1クロックサイクル以上の遅延時間が必要となった場合には、以下に説明する、初期化時間が長くなってしまう恐れがある。
 ライトレベリング時におけるクロック信号CKとデータストローブ信号DQSの位相関係の検出は、規格により定められたバースト長のデータストローブ信号DQSに同期して、各メモリ素子に対して、上記バースト長に合致する個数の既知のデータからなる期待値データ列のライト後にリードを行ってリードデータ列を得、該リードデータ列と期待値データ列を比較した結果に基づいて行われるようになっている。
 ところで、クロック信号CKとデータストローブ信号DQSの位相が大きくずれた状態で上記ライトを行うのでは、期待値データ列の先頭の1つ以上のデータ、または末尾の1つ以上のデータの書込みが行われないという状態に陥る可能性がある。この状態は、JEDECの仕様にないため、当該SDRAM内の状態が保障されず、確定した状態に復帰させるにはリセット動作を実施する以外には方法がない。そのため、初期化時間が長くなってしまうという問題がある。
 本発明は、上記事情を鑑みてなされたものであり、ライトレベリング時において、初期化時間が長くなることを回避できる技術を提供する。
 本発明の1つの態様は、メモリ制御方法である。該方法は、下記の手順でライトレベリングを行う。
 まず、DDR3メモリインタフェースに対応するメモリモジュールに含まれるメモリ素子毎に設けられ、該メモリ素子にデータストローブ信号DQSを出力するDQS制御部と、前記メモリ素子毎に設けられ、該メモリ素子に出力される前記データストローブ信号DQSに同期して、ライトデータの出力とリードデータの受信を行うDQ制御部に対して、前記データストローブ信号DQSの出力タイミングの遅延量と、ライトデータの出力タイミング及びリードデータの受信タイミングの遅延量とを、1クロックサイクル未満の範囲内で調整する。
 そして、夫々の前記メモリ素子に対して、期待値データ列のライト後にリードを行って得たリードデータ列と前記期待値データ列とを比較し、比較結果に応じて、各前記DQS制御部と前記DQ制御部に対して、前記データストローブ信号DQSの出力タイミングの遅延量と、ライトデータの出力タイミング及びリードデータの受信タイミングの遅延量とを、クロックサイクル単位で調整する。
 なお、前記ライト時に、前記DQS制御部が規格により定められたバースト長より「2×M」クロックサイクル長い(M:1以上の整数)データストローブ信号DQSを出力し、前記DQ制御部が前記バースト長に合致する個数の前記期待値データ列の前後にM個ずつデータを加えて出力するように制御する。
 なお、上記態様の方法を装置やシステムに置き換えて表現したものや、該方法をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。
 本発明にかかる技術によれば、ライトレベリング時において、データストローブ信号DQSの遅延時間の調整精度を高めると共に、初期化時間が長くなることを回避できる。
本発明の実施の形態にかかるコンピュータを示す図である。 図1に示すコンピュータにおける第2の制御部240を示す図である。 図1に示すコンピュータにおけるライトレベリング制御部を示す図である。 図3に示すライトレベリング制御部におけるテスト動作制御部を示す図である。 図3に示すライトレベリング制御部によるライトレベリングの流れを示すフローチャートである。 図5に示すライトレベリングにおけるテスト動作の流れを示すフローチャートである。 第2の遅延時間の調整を説明するための図である。 ライトレベリング時においてデータストローブ信号とデータ信号の伸長の意義を説明するための例を示す図である(その1)。 ライトレベリング時においてデータストローブ信号とデータ信号の伸長の意義を説明するための例を示す図である(その2)。 図9に示す例の場合に得られるリードデータ列を示す図である。 DDR3メモリインタフェースに準拠した接続例を模式的に示す図である。 ライトレベリングを説明するための図である。
 以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
 図1は、本発明の実施の形態にかかる半導体装置たとえばコンピュータ200を示す。コンピュータ200は、CPU210、メモリコントローラ220、DIMM280を備える。
 DIMM280は、n個(n:2以上の整数)のSDRAM282(SDRAM282-1~282-n)を有する。
 以下において、同一の機能を有する複数の機能ブロックを示す符号として、該複数の機能ブロックのうちの任意の1つを指すときには「K」(K:数字)のみを用い、該複数の機能ブロックのうちの1つを特定する必要があるときには数字Kの後に「-N」(N:数字)を付ける。
 例えば、DIMM280に含まれるSDRAMを示す符号として、SDRAM282-1~282-nのうち1つを特定する必要があるときは符号「282-1」~「282-n」を用い、任意のSDRAMを指すときには符号「282」のみを用いる。
 信号に関しても同様に、同種の複数の信号を示す符号として、該複数の信号のうちの任意の1つを指すときにはW(W:英字)のみを用い、該複数の信号のうちの1つを特定する必要があるときには、英字Wの後に「-N」(N:数字)を付ける。
 例えば、後述するデータストローブ信号を示す符号として、DQS-1~DQS-nのうちの1つを特定する必要があるときは符号「DQS-1」~「DQS-n」を用い、任意のデータストローブ信号を指すときには符号「DQS」のみを用いる。
 メモリコントローラ220は、第1の制御部230と、SDRAM282の数分の第2の制御部240(第2の制御部240-1~240-n)、ライトレベリング制御部250を有する。各第2の制御部240は、DQS制御部242とDQ制御部244を有する。
 本実施の形態のコンピュータ200において、DDR3形式のメモリインタフェースが採用されており、そのため、メモリコントローラ220とDIMM28を接続する各信号線のうちに、クロック信号CK、アドレス信号Addおよびコマンド信号CMDの信号線については、メモリコントローラ220とDIMM280上のn個のSDRAM282とがデイジーチェーンで配線され、データ信号DQおよびデータストローブ信号DQSの信号線については、メモリコントローラ220からDIMM280上のn個のSDRAM282にそれぞれ配線されている。
 メモリコントローラ220は、CPU210に接続されており、初期化時に、CPU210からのライトレベリング動作指示により、DIMM280に対してライトレベリングを実施する。
 メモリコントローラ220における第1の制御部230は、クロック信号CK、アドレス信号Add、コマンド信号CMDをDIMM280に出力する。これらの信号は、前述したデイジーチェーンで配線された信号線を介して、SDRAM282-1、SDRAM282-2、・・・、SDRAM282-nの順に夫々のSDRAM282に供される。
 ライトレベリング制御部250からのライト指示に従って、第2の制御部240におけるDQS制御部242は、対応するSDRAM282にデータストローブ信号DQSを出力し、DQ制御部244は、SDRAM282にデータ(DQ[0]、・・・DQ[n])を送出する。
 図2を参照して第2の制御部240を詳細に説明する。図示のように、第2の制御部240におけるDQS制御部242は、DQS伸長制御部2420、第1の遅延制御部2422、第2の遅延制御部2424を有し、DQ制御部244は、DQ伸長制御部2440、第1の遅延制御部2442、第2の遅延制御部2444を有する。第1の遅延制御部2422と第2の遅延制御部2424は、DQS遅延部を構成し、第1の遅延制御部2442と第2の遅延制御部2444は、DQ遅延部を構成する。
 まず、DQS制御部242の各機能ブロックを説明する。
 DQS伸長制御部2420は、ライトレベリング制御部250からの指示に従ってDQSの発行個数を増やす制御を行う。
 第1の遅延制御部2422は、レジスタとセレクタの組合せにより構成され、DQSをクロックサイクル単位で遅延させることが可能である。
 第2の遅延制御部2424は、DLLにより構成され、1クロックサイクル未満の範囲内に、必要に応じた粒度(例えば、1/16クロックサイクル)でDQSの遅延時間を調整するこができる。
 第1の遅延制御部2422と第2の遅延制御部2424による遅延時間の総和は、DQSの遅延時間となる。
 次にDQ制御部244の各機能ブロックを説明する。
 DQ伸長制御部2440は、ライトレベリング制御部250からの指示に従ってDQの発行個数を増やす制御を行う。
 第1の遅延制御部2442は、レジスタとセレクタの組合せにより構成され、DQをクロックサイクル単位で遅延させることが可能である。
 第2の遅延制御部2444は、DLLにより構成され、1クロックサイクル未満の範囲内に、必要に応じた粒度(例えば、1/16クロックサイクル)でDQの遅延時間を調整するこができる。
 第1の遅延制御部2442と第2の遅延制御部2444による遅延時間の総和は、DQの遅延時間となる。
 図3を参照して、ライトレベリング制御部250を説明する。ライトレベリング制御部250は、シーケンス制御部252、伸長指示部254、テスト動作制御部256を有する。
 シーケンス制御部252は、CPU210からのライトレベリング動作指示に応じて、ライトレベリングの開始、及びライトレベリングによるDQS、DQ[0]、・・・DQ[n]の遅延時間の調整を制御する。この調整は、DQSに関しては、DQS制御部242における第1の遅延制御部2422と第2の遅延制御部2424によって2段階になされ、DQに関しては、DQ制御部244における第1の遅延制御部2442と第2の遅延制御部2444によって2段階になされる。
 なお、シーケンス制御部252は、第1の制御部230にライトレベリング指示を出力し、第2の制御部240のDQS制御部242における第1の遅延制御部2422及び第2の遅延制御部2424と、DQ制御部244における第1の遅延制御部2442と第2の遅延制御部2444に遅延量指示を出力すると共に、DQS制御部242におけるDQS伸長制御部2420と、DQ制御部244におけるDQ伸長制御部2440への伸長指示を伸長指示部254に出力させ、テスト動作制御部256にテスト動作指示を出力することにより上記制御を実現する。
 伸長指示部254は、シーケンス制御部252からの制御に従って、データストローブ信号DQSとデータ信号DQを伸長する指示(伸長指示)を第2の制御部240におけるDQS制御部242のDQS伸長制御部2420と、DQ制御部244のDQS伸長制御部2420に出力する。
 テスト動作制御部256は、シーケンス制御部252からのテスト動作指示に応じて、第1の制御部230と第2の制御部240にライトリクエストを出力する処理と、第1の制御部230にリードリクエストを出力する処理と、リプライデータ(後述する)と期待値とを比較する処理を行う。図4を参照して、テスト動作制御部256を詳細に説明する。
 テスト動作制御部256は、テストシーケンス制御部262、ライト命令発行制御部264、リード命令発行制御部266、比較部268を備える。
 テストシーケンス制御部262は、ライトレベリング制御部250からのテスト動作指示に応じて、ライト命令発行制御部264、リード命令発行制御部266、比較部268を制御して、DIMM280へのデータのリード/ライト、及びリプライデータと期待値の比較を行わせる。
 ライト命令発行制御部264は、テストシーケンス制御部262からの指示に従ってDIMM280に対してライトリクエストを発行する。
 リード命令発行制御部266は、テストシーケンス制御部262からの指示に従って、DIMM280に対してリードリクエストを発行する。
 比較部268は、上記リードリクエストに応じてDIMM280から出力されたデータ(リプライデータ)を受信し、該リプライデータと期待値との比較を行う共に、比較結果をテストシーケンス制御部262に通知する。
 次に、図1に示すコンピュータ200におけるライトレベリングの流れを説明する。CPU210から発行されたライトレベリング動作指示は、メモリコントローラ220のライトレベリング制御部250内のシーケンス制御部252で受信される。
 ライトシーケンス制御部252は、ライトレベリング動作指示の受信によりライトレベリング動作を開始する。ライトレベリング動作における遅延時間の調整は、2段階で実施される。図5と図6のフローチャートを参照して説明する。
 図5に示すように、まず、ステップS100において、DQS制御部242における第2の遅延制御部2424と、DQ制御部244における第2の遅延制御部2444は、1クロックサイクル未満の範囲内で、遅延時間の調整を実施する。以下、第2の遅延制御部2424と第2の遅延制御部2444の遅延時間を「第2の遅延時間」という。このステップ調整により、各SDRAM282は、該SDRAM282に分配されているクロックとDQS/DQ[0]、・・・DQ[n]間の調整が実施されたことになる。
 なお、このステップの調整は、クロック信号CLKを基準にしたDQSの調整であり、DIMMのスペック上で規定されているライトレベリング動作である。
 しかし、該ステップにおける調整時間は、最大でも1クロックサイクル未満となっているため、調整後のクロックエッジが夫々のSDRAM282間でずれている可能性がある。
 次に、SDRAM282間のクロックエッジのずれを検出するためのテスト動作が起動される(S102)。具体的には、ライトレベリング制御部250は、ステップS100の処理の完了後、テスト動作制御部256に対して、テスト動作指示を発行する。テスト動作制御部256は、シーケンス制御部252からのテスト動作指示に応じて、テスト動作を実施する。
 図6は、テスト動作のフローチャートを示す。まず、テスト動作制御部256は、ライトリクエストをDIMM280へ発行して複数の既知のデータからなる期待値データ列の書込みを実施する(S110)。
 ライトリクエストの発行は、テストシーケンス制御部262からライト命令発行制御部264へライト命令発行指示を送出することで実施される。しかし、この時点でライトリクエストを発行すると、SDRAM282間のクロックエッジのずれにより、SDRAM282によっては、期待値データ列の先頭の1つ以上のデータ、または末尾の1つ以上のデータの書込みができず、当該SDRAM282のリセットが必要になる状態に陥る可能性がある。
 この状態を回避するために、ライトレベリング制御部250は、該ステップにおいて、さらに、第2の制御部240-1、・・・240-nに対して、伸長指示を送出する。
 第2の制御部240-1、240-nのDQS制御部242内のDQS伸長制御部2420は、伸長指示に応じて、規定のバースト長より「2×M」クロックサイクル長い(M:1以上の整数)データストローブ信号DQSをDIMM280へ発行する。
 また、DQ制御部244内のDQ伸長制御部2440は、伸長指示に応じて、規定のバースト長に合致する個数の上記期待値データ列の前後にM個ずつデータを加えて、DIMM280へ発行する。
 次に、テストシーケンス制御部262は、ステップS110で書き込んだデータを読み出すためのリードリクエストをDIMM280に対して発行する(S112)。
 リードリクエストの発行は、テストシーケンス制御部262からリード命令発行制御部266へリード命令発行指示を送出することにより実施される。
 リードリクエストに応じて、DIMM280からリプライデータ(リードデータ列)は出力される。比較部268は、このリプライデータを受信して、期待値データ列との比較を実施すると共に、比較結果をテストシーケンス制御部262へ送出する(S114)。この比較の結果は、さらにテストシーケンス制御部262からシーケンス制御部252に出力される。
 図5に戻って説明する。シーケンス制御部252は、比較部268により得られた比較結果に基づいて、DQS制御部242における第1の遅延制御部2422と、DQ制御部244における第1の遅延制御部2442の遅延量を設定し、該遅延値を示す遅延量指示を第2の制御部240-1、240-2、・・・、240-nへ送出する。なお、このステップでシーケンス制御部252が設定した遅延値を以下「第1の遅延時間」という。また、この第1の遅延時間は、クロックサイクルの整数倍(0倍を含む)である。
 夫々の第1の遅延制御部2422と第1の遅延制御部2442は、テストシーケンス制御部262により設定された第1の遅延時間の分遅延時間を調整する。これにて、ライトレベリングが完了する。
 具体例を参照して、コンピュータ200におけるライトレベリングをより詳細に説明する。
 前述したように、本実施の形態のコンピュータ200において、ライトレベリングにおける遅延時間の調整は、2段階に分けられて実施される。まず、図5のフローチャートにおけるステップS100が示す第1の段階の調整として、夫々の第2の遅延制御部2424と第2の遅延制御部2444により、1クロックサイクル以内の遅延時間(第2の遅延時間)の調整が行われる。
 例えば、図7に示す例のように、SDRAM282-1については、クロック信号のT1エッジを合わせるために第2の遅延時間の調整量A2-1、SDRAM282-2については、クロック信号のT1エッジを合わせるために第2の遅延時間の調整量A2-2で調整する。また、SDRAM282-nについては、クロック信号のT0エッジを合わせるために、第2の遅延時間の調整量A2-nで調整する。なお、ADD/CMDについては、クロック信号のT1エッジに合わせたとする。
 次に、図6に示すテスト動作が実施される。前述したように、テスト動作において、まず、ライトリクエストによりDIMM280へ期待値の書き込みが実施される。上述した第2の遅延時間の調整後にも、SDRAM282間でCLKエッジがずれている場合に、通常の仕様通りのライトリクエストを発行すると、SDRAM282-nに関しては、ADD/CMDが同期しているT1エッジより1周期(1T)早いT0エッジで期待値が到着してしまうため、図8に示す仕様違反の状態になってしまう。これについて、図8を参照して具体的に説明する。なお、図8及び以降の図面において、「ACT」と「WRA」は、JEDECのDDR3の仕様で規定されたものと同じ意味であり、夫々、「Activate」命令と「Write+AutoPrecharge」命令のニーモニック表現である。また、「WL」(Write Latency)も、JEDECのDDR3の仕様で規定されたものと同じ意味であり、ライト命令におけるデータ出力タイミングを示す。
 図8に示すように、SDRAM282-1とSDRAM282-2に関しては、ADD/CMDとライトデータの関係が合致しているため、通常のバースト長のDQSと、通常のバースト長に合致した個数のデータを有する期待値データ列を発行しても、当該SDRAM282をリセットする必要な状態に陥ることがない。
 しかし、SDRAM282-nに関しては、DQS/DQ[0]、・・・DQ[n]は、CLKのT0エッジに同期しているため、ADD/CMDに対して1T早くSDRAM282-nに到着することになる。そのため、データの最後が切れてしまい、postambleが不正として、リセットを実施する以外、復帰の方法がない。
 DQSとDQの伸長は、この状態を回避するための処理である。前述したように、ライトレベリング制御部250からの伸長指示に従って、第2の制御部240-1、・・・、240-nのDQS制御部242におけるDQS伸長制御部2420は、DQSを「2×M」サイクル分伸長してDIMM280へ発行する。同様に、DQ制御部244内のDQ伸長制御部2440も、DQを前後共にMサイクル分伸長して、DIMM280へ発行する。
 例えば、DQS/DQ[0]、・・・、DQ[n]は、2サイクル分伸長して発行される(M=2)。具体的には、前後2T分余分にDQSが送出され、これに合わせて、16バースト分(8ブロック連続)のデータがDIMM280に送出される。
 この場合、図9に示すように、DQS/DQ[0]、・・・、DQ[n]は、本来の出力位置(バースト8)に対して前後2T間伸長している。そのため、SDRAM282-nも仕様違反の状態に陥ることがない。そのため、SDRAMが不定状態になることもなく、SDRAMのリセット動作が不要となる。なお、この場合、SDRAM282-1、SDRAM282-2には、データ4、5、6、7、8、9、A、Bが書き込まれ、SDRAM282-nにはデータ6、7、8、9、A、B、C、Dが書き込まれることになる。
 その後、リードリクエストに応じて各SDRAM282からリプライデータが比較部268に送信され、期待値(4、5、6、7、8、9、A、B)と比較される。図9に示す例の場合、図10に示すようにリプライデータが返送されるため、SDRAM282-1、282-2に関して期待値と一致、SDRAM282-nに関しては、期待値に対して2つ前にずれたことになる。これにより比較部268は、テストシーケンス制御部262に対して、SDRAM282-1、282-2に関しては例えば「0」(一致)、SDRAM282-nに関しては「-1」(1T早く)を示す比較結果を返却し、テストシーケンス制御部262は、各比較結果をさらにシーケンス制御部252に出力する。
 シーケンス制御部252は、これらの比較結果に基づいて、各第1の遅延時間の調整量を決定して、夫々の遅延量を示す遅延量指示を当該第1の遅延制御部2422と第1の遅延制御部2442に出力する。図10に示す比較結果の場合、SDRAM282-1及びSDRAM282-2に対応する第1の遅延制御部2422と第1の遅延制御部2442に対して、「遅延時間なし」を示す「0」となる遅延量指示が出力され、SDRAM282-nに対応する第1の遅延制御部2422と第1の遅延制御部2442に対して、「遅延時間を-1クロックサイクル調整」を示す「-1」となる遅延量指示が出力される。
 各第1の遅延制御部2422と第1の遅延制御部2442は、受信した遅延量指示に示す分の遅延時間を設定する。これにより、SDRAM282-nについても、ADD/CMDとDQS/DQのずれが解消される。
 このように、本実施の形態のコンピュータ200において、初期化時に行うライトレベリングに際して、期待値データ列のライト時に、データストローブ信号DQSを規格により定められたバースト長より「2×M」サイクル分長く伸長すると共に、上記期待値データ列の前後にM個ずつのデータを加えて出力する。そのため、データストローブ信号DQSとクロック信号CKのエッジがずれているSDRAM282の場合でも、ライトするデータの欠落に起因して該SDRAM282をリセットせざるをえない状態を回避し、ひいては初期化時間が長くなることを回避することができる。
 また、コンピュータ200において、データストローブ信号DQSとデータ信号DQに対して、まず、DLL回路である第2の遅延制御部2424と第2の遅延制御部2444により1サイクル未満の範囲内の微調整をし、その後、レジスタとセレクタの組合せからなる第1の遅延制御部2422と第1の遅延制御部2442によりサイクル単位の粗調整を行うことにより、クロック信号CKとデータストローブ信号DQSのずれが大きいメモリ装置の場合においても、データストローブ信号DQSの遅延時間の調整を精度よく行うことができる。
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 例えば、上述した実施の形態のコンピュータ200では、データストローブ信号DQSとデータ信号DQの夫々に対して、調整精度を高めるために、調整粒度が異なる2つの遅延回路により遅延を実現しているが、1つの遅延回路により2段階の遅延を実現するようにしてもよい。この場合、コンピュータ200と比べ、調整の精度が劣るものの、初期化時間が長くなることを回避できる効果は、同様に得ることができる。
 この出願は、2011年9月6日に出願された日本出願特願2011-194242を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 90 メモリコントローラ 91 DIMM
 92 SDRAM 93 遅延回路
 200 コンピュータ 210 CPU
 220 メモリコントローラ 230 第1の制御部
 240 第2の制御部 242 DQS制御部
 2420 DQS伸長制御部 2422 第1の遅延制御部
 2424 第2の遅延制御部 244 DQ制御部
 2440 DQ伸長制御部 2442 第1の遅延制御部
 2444 第2の遅延制御部 250 ライトレベリング制御部
 252 シーケンス制御部 254 伸長指示部
 256 テスト動作制御部 262 テストシーケンス制御部
 264 ライト命令発行制御部 266 リード命令発行制御部
 268 比較部 280 DIMM
 282 SDRAM  Add アドレス信号
 CK クロック信号 CMD コマンド信号
 DQ データ信号 DQS データストローブ信号

Claims (4)

  1.  DDR3メモリインタフェースに対応するメモリモジュールと接続されたメモリコントローラであって、
     前記メモリモジュールに含まれるメモリ素子毎に設けられ、該メモリ素子にデータストローブ信号DQSを出力するDQS制御手段と、
     前記メモリモジュールに含まれるメモリ素子毎に設けられ、該メモリ素子に出力される前記データストローブ信号DQSに同期して、ライトデータの出力とリードデータの受信を行うDQ制御手段と、
     初期化時に行われるライトレベリングの制御を行うライトレベリング制御手段とを備え、
     前記DQS制御手段は、前記データストローブ信号DQSの出力タイミングを、前記ライトレベリング制御手段により設定された遅延量の分遅延させるDQS遅延手段を有し、
     前記DQ制御手段は、ライトデータの出力タイミングとリードデータの受信タイミングを、前記ライトレベリング制御手段により設定された遅延量の分遅延させるDQ遅延手段を有し、
     前記ライトレベリング制御手段は、ライトレベリング時に、
     前記DQS遅延手段と前記DQ遅延手段に対して1クロックサイクル未満の遅延量の調整を行った後に、夫々の前記メモリ素子に対して、期待値データ列のライト後にリードを行って得たリードデータ列と前記期待値データ列とを比較し、比較結果に応じて各前記DQS遅延手段と前記DQ遅延手段に対して、クロックサイクル単位の遅延量の調整を行うものであり、
     前記ライト時に、前記DQS制御手段が規格により定められたバースト長より「2×M」クロックサイクル長い(M:1以上の整数)データストローブ信号DQSを出力し、前記DQ制御手段が前記バースト長に合致する個数の前記期待値データ列の前後にM個ずつデータを加えて出力するように制御することを特徴とするメモリコントローラ。
  2.  前記DQS遅延手段は、
     1クロックサイクル以上の遅延量の遅延が可能な第1のDQS遅延手段と、
     1クロックサイクル未満の遅延量が可能な第2のDQS遅延手段とを有し、
     前記DQ遅延手段は、
     1クロックサイクル以上の遅延量の遅延が可能な第1のDQ遅延手段と、
     1クロックサイクル未満の遅延量が可能な第2のDQ遅延手段とを有し、
     前記ライトレベリング制御手段は、
     前記第2のDQS遅延手段と前記第2のDQ遅延手段の遅延量を設定することにより前記1クロックサイクル未満の遅延量の調整を行い、
     前記第1のDQS遅延手段と前記第1のDQ遅延手段の遅延量を設定することにより前記クロックサイクル単位の遅延量の調整を行うことを特徴とする請求項1に記載のメモリコントローラ。
  3.  前記第1のDQS遅延手段と前記第1のDQ遅延手段は、レジスタとセレクタの組合せであり、
     前記第2のDQS遅延手段と前記第2のDQ遅延手段は、DLL回路であることを特徴とする請求項2に記載のメモリコントローラ。
  4.  DDR3メモリインタフェースに対応するメモリモジュールに含まれるメモリ素子毎に設けられ、該メモリ素子にデータストローブ信号DQSを出力するDQS制御手段と、前記メモリ素子毎に設けられ、該メモリ素子に出力される前記データストローブ信号DQSに同期して、ライトデータの出力とリードデータの受信を行うDQ制御手段に対して、前記データストローブ信号DQSの出力タイミングの遅延量と、ライトデータの出力タイミング及びリードデータの受信タイミングの遅延量とを、1クロックサイクル未満の範囲内で調整し、
     夫々の前記メモリ素子に対して、期待値データ列のライト後にリードを行って得たリードデータ列と前記期待値データ列とを比較し、比較結果に応じて、各前記DQS制御手段と前記DQ制御手段に対して、前記データストローブ信号DQSの出力タイミングの遅延量と、ライトデータの出力タイミング及びリードデータの受信タイミングの遅延量とを、クロックサイクル単位で調整し、
     前記ライト時に、前記DQS制御手段が規格により定められたバースト長より「2×M」クロックサイクル長い(M:1以上の整数)データストローブ信号DQSを出力し、前記DQ制御手段が前記バースト長に合致する個数の前記期待値データ列の前後にM個ずつデータを加えて出力するように制御することを特徴とするメモリ制御方法。
PCT/JP2012/003478 2011-09-06 2012-05-28 メモリコントローラ及びメモリ制御方法 WO2013035223A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP12830031.6A EP2755140B1 (en) 2011-09-06 2012-05-28 Memory controller and memory control method
US14/342,263 US9305617B2 (en) 2011-09-06 2012-05-28 Data and strobe decompressing memory controller and memory control method
KR1020147009061A KR101597063B1 (ko) 2011-09-06 2012-05-28 메모리 컨트롤러 및 메모리 제어 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011194242A JP5807952B2 (ja) 2011-09-06 2011-09-06 メモリコントローラ及びメモリ制御方法
JP2011-194242 2011-09-06

Publications (1)

Publication Number Publication Date
WO2013035223A1 true WO2013035223A1 (ja) 2013-03-14

Family

ID=47831705

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003478 WO2013035223A1 (ja) 2011-09-06 2012-05-28 メモリコントローラ及びメモリ制御方法

Country Status (5)

Country Link
US (1) US9305617B2 (ja)
EP (1) EP2755140B1 (ja)
JP (1) JP5807952B2 (ja)
KR (1) KR101597063B1 (ja)
WO (1) WO2013035223A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117483B2 (en) * 2009-05-13 2012-02-14 Freescale Semiconductor, Inc. Method to calibrate start values for write leveling in a memory system
KR102147228B1 (ko) 2014-01-23 2020-08-24 삼성전자주식회사 타겟 모듈의 라이트 레벨링을 제어하는 라이트 레벨링 제어 회로 및 그에 따른 라이트 레벨링 제어방법
US9478268B2 (en) * 2014-06-12 2016-10-25 Qualcomm Incorporated Distributed clock synchronization
TWI632554B (zh) * 2017-02-16 2018-08-11 瑞昱半導體股份有限公司 記憶體測試方法
US10418090B1 (en) * 2018-06-21 2019-09-17 Micron Technology, Inc. Write signal launch circuitry for memory drive
KR102538706B1 (ko) 2019-01-08 2023-06-02 에스케이하이닉스 주식회사 반도체장치
CN114518837B (zh) * 2020-11-20 2024-05-14 智原科技股份有限公司 运用于存储器系统的多循环写入均衡程序的处理方法
US11145343B1 (en) * 2020-11-20 2021-10-12 Faraday Technology Corporation Method for controlling multi-cycle write leveling process in memory system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000206212A (ja) 1999-01-11 2000-07-28 Asia Electronics Inc 半導体試験方法および半導体試験装置
JP2001217694A (ja) 2000-02-04 2001-08-10 Nec Corp 遅延調整回路及びこれを用いたクロック生成回路
JP2009075682A (ja) 2007-09-18 2009-04-09 Fujitsu Ltd メモリ制御回路,遅延時間制御装置,遅延時間制御方法および遅延時間制御プログラム
JP2009130455A (ja) * 2007-11-20 2009-06-11 Fujitsu Ltd 可変遅延回路,メモリ制御回路,遅延量設定装置,遅延量設定方法および遅延量設定プログラム
JP2009284266A (ja) 2008-05-22 2009-12-03 Elpida Memory Inc Dll回路
WO2011077573A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法
WO2011077574A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号復元回路、レイテンシ調整回路、メモリコントローラ、プロセッサ、コンピュータ、信号復元方法及びレイテンシ調整方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7969799B2 (en) * 2007-10-09 2011-06-28 Lsi Corporation Multiple memory standard physical layer macro function
JP5305543B2 (ja) 2007-12-21 2013-10-02 ラムバス・インコーポレーテッド メモリシステムの書き込みタイミングを較正する方法および装置
US8098535B2 (en) * 2009-03-30 2012-01-17 Cadence Design Systems, Inc. Method and apparatus for gate training in memory interfaces

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000206212A (ja) 1999-01-11 2000-07-28 Asia Electronics Inc 半導体試験方法および半導体試験装置
JP2001217694A (ja) 2000-02-04 2001-08-10 Nec Corp 遅延調整回路及びこれを用いたクロック生成回路
JP2009075682A (ja) 2007-09-18 2009-04-09 Fujitsu Ltd メモリ制御回路,遅延時間制御装置,遅延時間制御方法および遅延時間制御プログラム
JP2009130455A (ja) * 2007-11-20 2009-06-11 Fujitsu Ltd 可変遅延回路,メモリ制御回路,遅延量設定装置,遅延量設定方法および遅延量設定プログラム
JP2009284266A (ja) 2008-05-22 2009-12-03 Elpida Memory Inc Dll回路
WO2011077573A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法
WO2011077574A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号復元回路、レイテンシ調整回路、メモリコントローラ、プロセッサ、コンピュータ、信号復元方法及びレイテンシ調整方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2755140A4

Also Published As

Publication number Publication date
US20140229668A1 (en) 2014-08-14
KR20150035473A (ko) 2015-04-06
EP2755140A4 (en) 2015-04-29
EP2755140A1 (en) 2014-07-16
EP2755140B1 (en) 2017-12-13
JP5807952B2 (ja) 2015-11-10
US9305617B2 (en) 2016-04-05
KR101597063B1 (ko) 2016-02-23
JP2013054692A (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
JP5807952B2 (ja) メモリコントローラ及びメモリ制御方法
JP6199424B2 (ja) メモリシステムの書き込みタイミングを較正する方法および装置
US7975164B2 (en) DDR memory controller
JP5653177B2 (ja) メモリインターフェース回路及び半導体装置
US20020091958A1 (en) Method and apparatus for improving output skew
US20100202223A1 (en) Memory interface and operation method of it
JP2010122842A (ja) 遅延調整装置、半導体装置及び遅延調整方法
CN108009372B (zh) 一种ddr内存虚拟写电平校准响应的方法
US7796465B2 (en) Write leveling of memory units designed to receive access requests in a sequential chained topology
JP2009237678A (ja) メモリコントローラデバイス、メモリコントローラデバイスの制御方法およびデータ受信デバイス
US11146275B2 (en) Signal generation circuit and a semiconductor apparatus using the signal generation circuit
JP5005928B2 (ja) インタフェース回路及びそのインタフェース回路を備えた記憶制御装置
US7657800B2 (en) Semiconductor memory device and method of performing a memory operation
US20150146477A1 (en) Semiconductor device
US7995406B2 (en) Data writing apparatus and method for semiconductor integrated circuit
US9304530B1 (en) Skew-tolerant strobe-to-clock domain crossing
KR100929834B1 (ko) 반도체 메모리 소자와 그의 구동 방법
JP2012203515A (ja) 半導体装置
JP2014102741A (ja) メモリコントローラ及びメモリコントローラのライトレベリング制御方法
JP2010079520A (ja) メモリモジュールのコントローラ及びメモリモジュールのコントローラの制御方法
US9300282B2 (en) Semiconductor device and semiconductor system including the same
JP4661134B2 (ja) メモリ制御方法および装置
CN108268390B (zh) 存储器系统及其操作方法
KR101018689B1 (ko) 반도체 메모리 장치와 시스템 구동 방법
JP2007241614A (ja) スキュー調整回路

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12830031

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14342263

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2012830031

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20147009061

Country of ref document: KR

Kind code of ref document: A