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

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

Info

Publication number
JP2013054692A
JP2013054692A JP2011194242A JP2011194242A JP2013054692A JP 2013054692 A JP2013054692 A JP 2013054692A JP 2011194242 A JP2011194242 A JP 2011194242A JP 2011194242 A JP2011194242 A JP 2011194242A JP 2013054692 A JP2013054692 A JP 2013054692A
Authority
JP
Japan
Prior art keywords
control unit
dqs
delay
data
memory
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
JP2011194242A
Other languages
English (en)
Other versions
JP5807952B2 (ja
Inventor
Minoru Oda
稔 小田
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2011194242A priority Critical patent/JP5807952B2/ja
Priority to US14/342,263 priority patent/US9305617B2/en
Priority to PCT/JP2012/003478 priority patent/WO2013035223A1/ja
Priority to KR1020147009061A priority patent/KR101597063B1/ko
Priority to EP12830031.6A priority patent/EP2755140B1/en
Publication of JP2013054692A publication Critical patent/JP2013054692A/ja
Application granted granted Critical
Publication of JP5807952B2 publication Critical patent/JP5807952B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

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クロックサイクル未満の範囲内で調整する。そして、夫々のSDRAM282に対して、期待値データ列のライト後にリードを行って得たリードデータ列と期待値データ列とを比較し、比較結果に応じて、DQS制御部242とDQ制御部244の遅延量を、クロックサイクル単位で調整する。上記ライト時に、DQS制御部242が規格により定められたバースト長より「2×M」クロックサイクル長い(M:1以上の整数)データストローブ信号DQSを出力し、DQ制御部244が上記バースト長に合致する個数の期待値データ列の前後にM個ずつデータを加えて出力するように制御する。
【選択図】図1

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と比べ、調整の精度が劣るものの、初期化時間が長くなることを回避できる効果は、同様に得ることができる。
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個ずつデータを加えて出力するように制御することを特徴とするメモリ制御方法。
JP2011194242A 2011-09-06 2011-09-06 メモリコントローラ及びメモリ制御方法 Expired - Fee Related JP5807952B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011194242A JP5807952B2 (ja) 2011-09-06 2011-09-06 メモリコントローラ及びメモリ制御方法
US14/342,263 US9305617B2 (en) 2011-09-06 2012-05-28 Data and strobe decompressing memory controller and memory control method
PCT/JP2012/003478 WO2013035223A1 (ja) 2011-09-06 2012-05-28 メモリコントローラ及びメモリ制御方法
KR1020147009061A KR101597063B1 (ko) 2011-09-06 2012-05-28 메모리 컨트롤러 및 메모리 제어 방법
EP12830031.6A EP2755140B1 (en) 2011-09-06 2012-05-28 Memory controller and memory control method

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2013054692A true JP2013054692A (ja) 2013-03-21
JP5807952B2 JP5807952B2 (ja) 2015-11-10

Family

ID=47831705

Family Applications (1)

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

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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012527061A (ja) * 2009-05-13 2012-11-01 フリースケール セミコンダクター インコーポレイテッド メモリシステムにおける書込レベリングの開始値を較正する方法
JP2015138556A (ja) * 2014-01-23 2015-07-30 三星電子株式会社Samsung Electronics Co.,Ltd. ターゲットモジュールのライトレベリングを制御するライトレベリング制御回路及びそれにしたがうライトレベリング制御方法
JP2017517820A (ja) * 2014-06-12 2017-06-29 クゥアルコム・インコーポレイテッドQualcomm Incorporated 分散クロック同期を介した出力データの独立した同期

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009130455A (ja) * 2007-11-20 2009-06-11 Fujitsu Ltd 可変遅延回路,メモリ制御回路,遅延量設定装置,遅延量設定方法および遅延量設定プログラム
US20100246290A1 (en) * 2009-03-30 2010-09-30 Denali Software, Inc. Method and apparatus for gate training in memory interfaces
JP2011508311A (ja) * 2007-12-21 2011-03-10 ラムバス・インコーポレーテッド メモリシステムの書き込みタイミングを較正する方法および装置
WO2011077574A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号復元回路、レイテンシ調整回路、メモリコントローラ、プロセッサ、コンピュータ、信号復元方法及びレイテンシ調整方法
WO2011077573A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法

Family Cites Families (5)

* 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 遅延調整回路及びこれを用いたクロック生成回路
JP4382842B2 (ja) * 2007-09-18 2009-12-16 富士通株式会社 メモリ制御回路,遅延時間制御装置,遅延時間制御方法および遅延時間制御プログラム
US7969799B2 (en) 2007-10-09 2011-06-28 Lsi Corporation Multiple memory standard physical layer macro function
JP5579373B2 (ja) 2008-05-22 2014-08-27 ピーエスフォー ルクスコ エスエイアールエル Dll回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009130455A (ja) * 2007-11-20 2009-06-11 Fujitsu Ltd 可変遅延回路,メモリ制御回路,遅延量設定装置,遅延量設定方法および遅延量設定プログラム
JP2011508311A (ja) * 2007-12-21 2011-03-10 ラムバス・インコーポレーテッド メモリシステムの書き込みタイミングを較正する方法および装置
US20100246290A1 (en) * 2009-03-30 2010-09-30 Denali Software, Inc. Method and apparatus for gate training in memory interfaces
WO2011077574A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号復元回路、レイテンシ調整回路、メモリコントローラ、プロセッサ、コンピュータ、信号復元方法及びレイテンシ調整方法
WO2011077573A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012527061A (ja) * 2009-05-13 2012-11-01 フリースケール セミコンダクター インコーポレイテッド メモリシステムにおける書込レベリングの開始値を較正する方法
JP2015138556A (ja) * 2014-01-23 2015-07-30 三星電子株式会社Samsung Electronics Co.,Ltd. ターゲットモジュールのライトレベリングを制御するライトレベリング制御回路及びそれにしたがうライトレベリング制御方法
US9490030B2 (en) 2014-01-23 2016-11-08 Samsung Electronics Co., Ltd. Circuit for controlling write leveling of a target module and a method thereof
JP2017517820A (ja) * 2014-06-12 2017-06-29 クゥアルコム・インコーポレイテッドQualcomm Incorporated 分散クロック同期を介した出力データの独立した同期

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5807952B2 (ja) メモリコントローラ及びメモリ制御方法
JP6199424B2 (ja) メモリシステムの書き込みタイミングを較正する方法および装置
JP5653177B2 (ja) メモリインターフェース回路及び半導体装置
US8737145B2 (en) Semiconductor memory device for transferring data at high speed
JP2008071249A (ja) メモリ制御装置
US7796465B2 (en) Write leveling of memory units designed to receive access requests in a sequential chained topology
JP2009237678A (ja) メモリコントローラデバイス、メモリコントローラデバイスの制御方法およびデータ受信デバイス
US20150146477A1 (en) Semiconductor device
JP5005928B2 (ja) インタフェース回路及びそのインタフェース回路を備えた記憶制御装置
JP5454702B2 (ja) 集積回路、電圧値取得方法および送受信システム
JP2014102741A (ja) メモリコントローラ及びメモリコントローラのライトレベリング制御方法
JP2010079520A (ja) メモリモジュールのコントローラ及びメモリモジュールのコントローラの制御方法
US9300282B2 (en) Semiconductor device and semiconductor system including the same
JP4661134B2 (ja) メモリ制御方法および装置
KR102422583B1 (ko) 레이턴시 제어 장치 및 이를 포함하는 반도체 장치
CN114518837B (zh) 运用于存储器系统的多循环写入均衡程序的处理方法
KR101018689B1 (ko) 반도체 메모리 장치와 시스템 구동 방법
KR101448189B1 (ko) 메모리 제어 장치 및 방법
KR20100050914A (ko) 반도체 메모리 장치와 그의 구동 방법
JP2005094597A (ja) 遅延制御装置
JP2015035229A (ja) 半導体装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20140807

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150903

R150 Certificate of patent or registration of utility model

Ref document number: 5807952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees