JP6387883B2 - 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法 - Google Patents

情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法 Download PDF

Info

Publication number
JP6387883B2
JP6387883B2 JP2015075748A JP2015075748A JP6387883B2 JP 6387883 B2 JP6387883 B2 JP 6387883B2 JP 2015075748 A JP2015075748 A JP 2015075748A JP 2015075748 A JP2015075748 A JP 2015075748A JP 6387883 B2 JP6387883 B2 JP 6387883B2
Authority
JP
Japan
Prior art keywords
signal
data signal
phase
information processing
reference value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015075748A
Other languages
English (en)
Other versions
JP2016197275A (ja
Inventor
利昭 大沢
利昭 大沢
真也 相曾
真也 相曾
恵治 嶋谷
恵治 嶋谷
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015075748A priority Critical patent/JP6387883B2/ja
Priority to US15/088,459 priority patent/US9514794B2/en
Publication of JP2016197275A publication Critical patent/JP2016197275A/ja
Application granted granted Critical
Publication of JP6387883B2 publication Critical patent/JP6387883B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56012Timing aspects, clock generation, synchronisation
    • 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/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)

Description

本件開示の技術は、情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法に関する。
従来、CPUによるメモリに対するデータの入出力において、データストローブ信号(DQS信号)を用いて複数ビットのデータ信号(DQ信号)の書き込みおよび読み出しが実行される。DQ信号のメモリへの書き込みにおいては、メモリコントローラがDQS信号の位相とDQ信号との間の位相差を互いに90°ずらしてメモリに信号を入力する。また、DQ信号のメモリからの読み出しにおいては、メモリがDQS信号とDQ信号を同相で出力する。そして、メモリコントローラがDQS信号の位相とDQ信号との間の位相差を互いに90°ずらしてDQ信号を読み取る。
従来の調整では、DQS信号の位相は固定されており、DQS信号の立ち上がりがDQ信号の読み書きのタイミングであるストローブポイントとして設定されている。DQ信号は複数ビットが1つのグループとしてまとめられ、1つのDQS信号により、複数ビットのDQ信号の読み書きが実行される。各ビットのDQ信号はそれぞれ異なる伝送路により送信されるため、各DQ信号間において位相差が生じ得る。そこで、各DQ信号の位相が、DQSのストローブポイントを基準として同相となるように調整される。
また、いわゆるアイパターンを用いてDQS信号とDQ信号の位相を調整することも行われている(例えば、特許文献1)。まず、アイパターンにおけるDQ信号のリファレンス電圧方向と位相方向とで、リファレンス電圧幅が最大となる位相とDQ信号のデータが取得可能な位相幅が最大となる電圧とが決定される。そして、決定された位相と電圧とを用いてDQ信号とDQS信号との間のストローブポイントを最適化することも行われている。
米国特許第7991098号明細書
しかしながら、位相が固定されたDQS信号により決まるストローブポイントは、CPUやメモリにおけるプロセスのばらつきの影響を受けて変動することがある。そして、ストローブポイントが変動すると、DQ信号に対して、DQS信号の立ち上がりあるいは立ち下がりのエッジから時間的に前のいわゆるセットアップまたはエッジから時間的に後ろのいわゆるホールドに偏る可能性がある。
また、多数のメモリを使用する場合のメモリアクセスでは、メモリチャネルあたりの記憶容量を上げるため、伝送路に複数のメモリモジュールが接続される。しかし、メモリモジュールが複数接続されることで伝送路の分岐が多くなる。このため、各分岐点において伝送路とメモリモジュールとの間でインピーダンス不整合が起き、伝送される信号の多重反射が生じ得る。この結果、反射波の影響により、アイパターンのアイの輪郭に凹凸が生じ得る。そして、アイパターンのアイの輪郭に凹凸が存在する場合、すなわちデータ信号の波形に歪みが存在する場合、凹凸部分においてリファレンス電圧幅が最大となる位相と
取得可能な位相幅が最大となる電圧が決定される可能性がある。このように決定された位相あるいは電圧は、アイ全体においてリファレンス電圧幅が最大となる位相あるいは取得可能な位相幅が最大となる電圧とは異なる可能性がある。この結果、DQS信号とDQ信号の位相が最適化されない可能性がある。DQS信号とDQ信号の位相が最適化されない場合、DQ信号の取得が成功となるためにストローブポイントに許容される位相幅あるいは電圧幅が狭くなる。そして、DQ信号の取得が失敗するストローブポイントが設定される可能性がある。
本件開示の技術は、上記の事情に鑑み、信号間の位相のばらつきおよび信号の波形歪みが生じてもデータ信号の取得が成功する可能性を高めるストローブポイントの設定が可能な情報処理装置を提供することを目的とする。
本件開示の情報処理装置は、1つの側面では、データ信号とストローブ信号との位相関係を調整する情報処理装置であって、データ信号の値を判定するための複数のリファレンス値の候補ごとに、ストローブ信号に従ってデータ信号が有効に取得される、データ信号とストローブ信号との1以上の位相差を特定する特定部と、複数のリファレンス値の候補ごとに特定された1以上の位相差に基づいて、データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定する決定部と、決定されたリファレンス値に対応する期間に基づいて、データ信号とストローブ信号との位相関係を調整する調整部とを有する。
本件開示の技術によれば、信号間の位相のばらつきおよび信号の波形歪みが生じてもデータ信号の取得が成功する可能性を高めるストローブポイントの設定が可能な情報処理装置を提供することができる。
図1は、一実施形態における情報処理装置の構成を示す概略構成図である。 図2は、一実施形態における情報処理装置のレジスタの構成を示す概略構成図である。 図3は、一実施形態における情報処理装置の機能ブロック図である。 図4は、一実施形態において情報処理装置が実行する処理のフローチャートである。 図5は、一実施形態において情報処理装置が実行する処理のフローチャートである。 図6は、一実施形態におけるデータ取得判定結果の一例を示す図である。 図7は、一実施形態において情報処理装置が実行する処理のフローチャートである。 図8は、一実施形態において情報処理装置が実行する処理のフローチャートである。 図9は、一実施形態において情報処理装置が実行する処理のフローチャートである。 図10Aは、一実施形態におけるデータ取得判定結果の一例を示す図である。 図10Bは、一実施形態におけるデータ取得判定結果の一例を示す図である。 図10Cは、一実施形態におけるデータ取得判定結果の一例を示す図である。 図10Dは、一実施形態におけるデータ取得判定結果の一例を示す図である。 図10Eは、一実施形態におけるデータ取得判定結果の一例を示す図である。 図10Fは、一実施形態におけるデータ取得判定結果の一例を示す図である。 図11は、一実施形態におけるメモリモジュールの構成を示す概略構成図である。 図12は、一実施形態におけるデータ取得判定結果の一例を示す図である。 図13は、一実施形態において情報処理装置が実行する処理のフローチャートである。 図14は、一実施形態におけるサーバーシステムの構成を示す概略構成図である。 図15は、一実施形態における情報処理システムの構成を示す概略構成図である。
以下、本件開示の技術に係る実施形態について図面を参照しながら説明する。なお、以下の詳細な説明は例示的なものであり、実施形態の構成を限定するものではない。
(第1の実施形態)
第1の実施形態における情報処理装置1について説明する。図1の概略構成図に示すように、本実施形態に係る情報処理装置1は、CPU(Central Processing Unit)10、
メモリコントローラ20、I/O(Input/Output)回路30、伝送路40、50、メモリモジュール60を備える。また、メモリコントローラ20は、内部回路20a、PRBS(Pseudo Random Bit Sequence)生成部20b、データ取得判定部20c、開始フラグ20d、データ取得判定レジスタ20eを備える。
I/O回路30は、ラッチ回路30a、30f、30g、ディレイタップ設定部30b、30c、30h、30i、ドライバ30d、30j、レシーバ30e、30k、リファレンス電圧(Vref)設定部30m、分圧回路30nを備える。メモリモジュール60は、Rank0のメモリ素子60a、Rank1のメモリ素子60b、ドライバ60c、60e、レシーバ60d、60fを備える。なお、図1では、メモリモジュール60のメモリ素子60aとメモリ素子60bを2組示しているが、それぞれ同じメモリ素子である。
CPU10は、情報処理装置1内の各部の動作を制御して以下に説明する処理を実現する。メモリコントローラ20は、DQS信号の生成、PRBSテストパターンのDQ信号の生成、リファレンス電圧に対するDQ信号の読み出しの成功および失敗の判定などを行う。なお、メモリコントローラ20が、調整部の一例に相当する。DQS信号がストローブ信号、DQ信号がデータ信号の一例にそれぞれ相当する。リファレンス電圧が、データ信号の値を判定するためのリファレンス値の一例に相当する。
メモリコントローラ20の内部回路20aは、PRBS生成部20bにより生成されるPRBSテストパターンをI/O回路30に出力する。PRBS生成部20bは、PRBSテストパターンのDQ信号を生成する。ここで、PRBSテストパターンとは、「0」と「1」のビットが交互に並ぶなど規則的なビットの組み合わせからなるパターンではなく、「0」と「1」の順番が確定的な計算によって求まる擬似乱数を用いたパターンである。これにより、PRBSテストパターンのDQ信号は、実際のデータ転送におけるDQ信号と同等の信号であるとみなせる。
開始フラグ20dは、本実施形態における位相調整の処理を開始するトリガとなるフラグであり、例えば情報処理装置1のユーザーの操作に基づいてCPU10がオンまたはオフに設定する。データ取得判定部20cは、リファレンス電圧およびDQS信号の位相を変化させたときのDQ信号の取得が成功したか否かを判定する。なお、データ取得判定部20cが、特定部の一例に相当する。
データ取得判定レジスタ20eは、データ取得判定部20cによる判定の結果を格納する。また、図2に示すように、データ取得判定レジスタ20eは、本実施形態において以下に説明する処理を実行するためのデータを記憶するレジスタを有する。VrefDQm(mは0〜3の整数。以下同じ)設定レジスタは、DQ0〜DQ3の各DQ信号のHレベルおよびLレベルを判定するために使用するリファレンス電圧の値が格納されるレジスタである。なお、DQ信号のHレベルおよびLレベルが、データ信号の値の一例に相当する。DQ0〜DQ3それぞれに当該レジスタが設けられている。CPU10が、VrefDQm設定レジスタの値を設定する。
DQmディレイタップ設定レジスタは、CPU10が、DQ0〜DQ3の各DQ信号のディレイタップを設定するために使用するレジスタである。本実施形態において、DQ信号のディレイタップとは、DQ信号の位相の遅延量である。DQ0〜DQ3それぞれに当該レジスタが設けられている。また、DQSディレイタップ設定レジスタは、CPU10が、DQS信号のディレイタップを設定するために使用するレジスタである。本実施形態において、DQS信号のディレイタップとは、DQS信号の位相の遅延量である。本実施形態では、ディレイタップ設定部30b、30c、30h、30iが、DQmディレイタップ設定レジスタとDQSディレイタップ設定レジスタに格納されている値に基づいてDQS信号と各DQ信号との間の位相差を調整する。
なお、上記のVrefDQm設定レジスタ、DQmディレイタップ設定レジスタ、DQSディレイタップ設定レジスタには2進数の値が設定される。そして、VrefDQm設定レジスタ、DQmディレイタップ設定レジスタ、DQSディレイタップ設定レジスタに設定される値に従って、DQmのDQ信号のリファレンス電圧、DQmのDQ信号のディレイタップ、DQS信号のディレイタップがそれぞれ決まる。
ライト/リード指示レジスタは、CPU10が、メモリコントローラ20に対して、PRBS生成回路20bにより生成されたPRBSのデータのメモリモジュール60に対する書き込みまたは読み出しの実行を指示するために使用するレジスタである。CPU10が、図2に示すように、ライト/リード指示レジスタのビット0に「1」を設定すると、PRBSのデータのメモリモジュール60に対する書き込みがメモリコントローラ20に指示される。また、ライト/リード指示レジスタのビット1に「1」が格納されると、PRBSのデータのメモリモジュール60に対する読み出しがメモリコントローラ20に指示される。
リード結果表示レジスタは、メモリモジュール60から読み出されたDQ0〜DQ3のPRBSのデータの読み出し結果が格納されるレジスタである。リード結果表示レジスタのビット0〜3には、DQ0〜DQ3の各データの読み出しが成功したか否かを示す「0」または「1」の値が格納される。本実施形態では、PRBS生成部20bによってDQ0〜DQ3のPRBSのデータが生成される。そして、生成されたPRBSの各データがメモリモジュール60に対して書き込まれる。さらに、書き込まれた各データの読み出しが行われる。そして、PRBS生成部20によって生成された各データと読み出した各データとが一致するか否かに基づいて各DQ信号の読み出しが成功したか否かが判定される。そして、読み出しの判定結果がリード結果表示レジスタに書き込まれる。
なお、本実施形態では、上記の各種レジスタはデータ取得判定レジスタ20eに格納されている構成としているが、各種レジスタをデータ取得判定レジスタ20eとは別のレジスタとして設ける構成としてもよい。
メモリコントローラ20から出力されるDQS信号は、I/O回路30のラッチ回路30aに入力される。ラッチ回路30aには内部クロックが入力されてデータがラッチされ、ラッチされたデータがディレイタップ設定部30bに入力される。ディレイタップ設定部30bは、DQS信号によるストローブポイント、すなわちDQ信号を取得するタイミングであるDQS信号のディレイタップを決定する。また、メモリコントローラ20から出力されるDQ信号は、I/O回路30のラッチ回路30gに入力される。ラッチ回路30gには内部クロックが入力されてデータがラッチされ、ラッチされたデータがディレイタップ設定部30hに入力される。ディレイタップ設定部30hは、DQ信号のディレイタップを決定する。なお、一例として、4つのビットDQ0、DQ1、DQ2、DQ3が1つのグループとしてDQ信号が形成される。そして、各ビットのDQ信号は、それぞれ異なる伝送路を用いたパラレル伝送により送信される。
ディレイタップ設定部30bは、DQS信号の1周期分の位相幅を2(例えばN=5のときは、0〜31の32個)個で分割した幅を刻み幅として、DQS信号の遅延時間を制御する。同様に、ディレイタップ設定部30hも、当該単位幅を用いてDQ信号の遅延時間を制御する。なお、ディレイタップ設定部30b、30c、30h、30iが、調整部の一例に相当する。また、メモリコントローラ20が、DQmディレイタップ設定レジスタとDQSディレイタップ設定レジスタの設定値をディレイタップ設定部30b、30c、30h、30iに設定する。ディレイタップ設定部30b、30hにより、DQS信号の位相とDQ信号の位相との間の位相差が例えば−180°〜+180°として決まる。なお、以下の説明においては、DQS信号およびDQ信号のディレイタップは−7〜8までの範囲で刻み幅を1として決定されるものとして簡略化して説明する。
ディレイタップ設定部30b、30hによりそれぞれディレイタップが決定され遅延時間が調整されたDQS信号およびDQ信号は、ドライバ30d、30jを経由して伝送路40、50に出力される。DQS信号は、伝送路40、レシーバ60hまたはレシーバ60jを経由して、Rank0のメモリ素子60aまたはRank1のメモリ素子60bに入力する。また、DQ信号は、伝送路50、レシーバ60dまたはレシーバ60fを経由して、Rank0のメモリ素子60aまたはRank1のメモリ素子60bに入力する。メモリ素子60aまたはメモリ素子60bは、メモリコントローラ20から出力されるWRITEまたはREADのコマンドに従って、入力されるDQS信号およびDQ信号を用いてデータの書き込みまたは読み出しを行う。
メモリ素子60aは、メモリコントローラ20からメモリ素子60aに対するREADのコマンドが入力される場合は、DQS信号および読み取ったDQ信号をそれぞれドライバ60g、60cを経由して同相で伝送路40、50に出力する。また、メモリ素子60bは、メモリコントローラ20からメモリ素子60bに対するREADのコマンドが入力される場合は、DQS信号および読み取ったDQ信号をそれぞれドライバ60e、60iを経由して同相で伝送路40、50に出力する。
メモリ素子60a、60bから出力されるDQS信号およびDQ信号は、それぞれI/O回路30のレシーバ30e、30kに入力される。DQS信号は、レシーバ30eからディレイタップ設定部30cに入力される。また、レシーバ30kは、分圧回路30nと接続されている。分圧回路30は、リファレンス電圧設定部30mの制御に従って抵抗値を設定する。そして、分圧回路30nにより決まる抵抗値に従ってリファレンス電圧が調
整される。リファレンス電圧はレシーバ30kに入力される。レシーバ30kはコンパレータ(図示せず)を有し、リファレンス電圧に基づいて入力されるDQ信号のHレベルおよびLレベルを決定する。
レシーバ30kから出力されたDQ信号はディレイタップ設定部30iによりディレイタップが決定され、DQ信号の遅延時間が調整される。I/O回路30では、ディレイタップ設定部30c、30iにより、メモリ素子60aから同相で出力されたDQS信号とDQ信号との間の位相差が例えば互いに90°ずらされる。ディレイタップ設定部30iから出力されたDQ信号は、ラッチ回路30fに入力される。ラッチ回路30fにはディレイタップ設定部30cから出力されるDQS信号が入力され、データがラッチされる。ラッチされたデータはメモリコントローラ20に入力される。メモリコントローラ20では、以下に詳細に説明する位相調整が実行される。
図3に、本実施形態に係る情報処理装置1の機能ブロック図を示す。本実施形態では、例えば情報処理装置1のROM(Read-Only Memory;図示せず)に格納されているアプリケーション等が、CPU10によって実行される。ただし、CPU10とは別のサービスプロセッサ等によってアプリケーション等が実行されてもよい。このようなアプリケーション等の実行により、図3に示すように、情報処理装置1は、特定部101、決定部102、調整部103として機能する。
特定部101は、DQ信号のHレベルおよびLレベルを判定するための複数のリファレンス電圧の値の候補ごとに、DQS信号によってDQ信号が有効に取得される、DQ信号とDQS信号との1以上の位相差を特定する。また、決定部102は、複数のリファレンス電圧の値の候補ごとに特定された1以上の位相差に基づいて、DQ信号を有効に取得できる期間が最も長いと推定されるリファレンス電圧の値を決定する。また、調整部103は、決定されたリファレンス電圧の値に対応する期間に基づいて、DQ信号とDQS信号との位相関係を調整する。
次に、本実施形態における情報処理装置1においてCPU10の制御により実行される処理について説明する。CPU10は、情報処理装置1の電源が投入されると、図4に示すフローチャートの処理を開始する。なお、図4に示す「1」は、図5の「1」と接続している。
OP101では、メモリコントローラ20が、PRBS生成部20bの開始フラグ20dがオンに設定されているか否かを判定する。開始フラグ20dがオンに設定されている場合は(OP101:Yes)、メモリコントローラ20は処理をOP102に進める。開始フラグ20dがオフに設定されている場合は(OP101:No)、メモリコントローラ20はOP101の処理を繰り返し実行する。
OP102では、メモリコントローラ20は、PRBS生成部20bを制御してPRBSのランダムパターンを生成する。本実施形態では、PRBSのランダムパターンが所定のビット数ごとに分割されてメモリ素子60a、60bに書き込まれる。例えば、128ビットのPRBSのランダムパターンが8ビットごとに分割され、分割されたランダムパターンごとにWRITEコマンドによる書き込みが行われる。そこで、OP102では、分割単位分、すなわち上の例では8ビット分のPRBSのランダムパターンが生成される。次いで、メモリコントローラ20は処理をOP103に進める。OP103では、メモリコントローラ20は、PRBS生成部20bによって生成されたデータ信号をメモリモジュール60のメモリ素子60a、60bに書き込むWRITEコマンドを生成する。
I/O回路30から出力されたWRITEコマンドは、I/O回路30とメモリモジュ
ール60とを接続する伝送路40、50を経由してDQS信号およびDQ信号の出力先となるメモリ素子60aまたは60bに入力される。次いで、処理はOP104に進められる。
OP104では、メモリコントローラ20は、WRITEコマンドがI/O回路30からメモリモジュール60にN回(Nは自然数)送信されたか否かを判定する。ここで、NはPRBSのランダムパターンの分割数である。例えば128ビットのPRBSのランダムパターンが8ビットごとに分割される場合は、N=128/8=16である。メモリコントローラ20は、情報処理装置1内のカウンタ(図示せず)を用いてWRITEコマンドがメモリモジュールに送信された回数を計上してもよい。WRITEコマンドがI/O回路30からメモリモジュール60にN回送信された場合は(OP104:Yes)、メモリコントローラ20は処理をOP106に進める。WRITEコマンドがI/O回路30からメモリモジュール60に送信された回数がN回未満である場合は(OP104:No)、メモリコントローラ20は処理をOP105に進める。
OP105では、メモリコントローラ20は、PRBSのランダムパターンの信号およびWRITEコマンドの送信タイミングにおいて、所定のインターバルを設ける。図4からわかるように、本実施形態では、PRBSのランダムパターンおよびWRITEコマンドはN回メモリモジュール60に送信される。OP105において、インターバルを設けて次のPRBSの信号およびWRITEコマンドがメモリモジュール60に送信されることで、PRBSのランダムパターンがより確実にメモリモジュール60に書き込まれることが期待される。メモリコントローラ20は、OP105において所定のインターバルを設けた後、処理をOP102に戻す。CPU10は、OP102〜OP105の処理を繰り返すことで、分割されたPRBSのランダムパターンを順次生成してメモリ素子60a、60bへの書き込みを行う。
OP106では、メモリ素子60a、60bに対するすべてのPRBSのランダムパターンの書き込みが行われたか否かを判定する。本実施形態では、例えば、128ビットのPRBSのランダムパターンの書き込みを行う場合は、128ビットの「0」と「1」のすべての組み合わせについてPRBSのランダムパターンの書き込みが実行される。メモリ素子60a、60bに対するすべてのPRBSのランダムパターンの書き込みが行われた場合は(OP106:Yes)、メモリコントローラ20は処理を図5のOP107に進める。メモリ素子60a、60bに対するすべてのPRBSのランダムパターンの書き込みが行われていない場合は(OP106:No)、メモリコントローラ20は処理をOP102に戻す。そして、メモリコントローラ20は、メモリ素子60a、60bにまだ書き込まれていないPRBSのランダムパターンの書き込みを行う。OP106の判定は、例えば、メモリコントローラ20のPRBS生成部20bが判定すればよい。
OP107では、メモリコントローラ20は、データ取得判定レジスタ20eに格納されている図2に示す各種レジスタの設定値に従って、各DQ信号のリファレンス電圧およびディレイタップ、DQS信号のディレイタップを設定する。そして、メモリコントローラ20は、メモリモジュール60に書き込まれたPRBSのランダムパターンを読み出すREADコマンドを生成する。生成されたREADコマンドは、I/O回路30から出力され、I/O回路30とメモリモジュール60とを接続する伝送路(図示せず)を経由してメモリ素子60aまたは60bに入力される。READコマンドを受信したメモリ素子60aまたは60bは、READコマンドに従って格納されているデータを読み出し、DQ信号としてDQS信号と共に同相でI/O回路30に出力する。I/O回路30は、メモリモジュール60から出力されたデータを受信する。次いで、メモリコントローラ20は処理をOP108に進める。
OP108では、メモリコントローラ20は、データ取得判定部20cにより、OP106においてREADコマンドによってメモリ素子60a、60bから読み出したPRBSのランダムパターンとOP102において生成されたPRBSのランダムパターンとが一致するか否かを判定する。
本実施形態では、ディレイタップ設定部30b、30c、30h、30iでは、ディレイタップの初期値が「0」に設定されている。そして、ディレイタップ設定部30b、30c、30h、30iは、上記の刻み幅ごとに設定された0〜31タップのいずれかの値にディレイタップを設定する。このため、本実施形態においては、DQS信号およびDQ信号の各位相は、単独では、初期位置から位相が遅れる側にシフトされる。また、DQS信号およびDQ信号の各位相は、単独では、初期位置から位相が進む側にシフトすることはできない。ただし、例えば、DQS信号の位相を固定し、DQ信号の位相を遅らせることで、DQS信号の位相をDQ信号に対して実質的に進ませることができる。
図6において、「DQSディレイタップ」の「0」を境界として左半分の領域はセットアップ側、すなわちDQS信号のエッジの位相に対してDQ信号の位相が早い側である。本実施形態では、DQS信号の位相自体を進ませることはできないため、DQ信号の位相を遅らせることでDQS信号のディレイタップをセットアップ側に移動する。これにより、セットアップ側におけるデータ取得判定が取得される。同様に、図6において、「DQSディレイタップ」の「0」を境界として右半分の領域はホールド側、すなわちDQS信号のエッジの位相に対してDQ信号の位相が遅い側である。本実施形態では、DQ信号の位相自体を進ませることはできないため、DQS信号の位相を遅らせることでDQS信号のディレイタップをホールド側に移動する。これにより、ホールド側におけるデータ取得判定が取得される。本実施形態では、このようにDQS信号とDQ信号の位相が相対的に移動されることで、データ取得判定の結果が得られる。
OP108では、データ取得判定部20cは、OP102〜OP106の処理によってメモリ素子60a、60bに書き込まれたすべてのPRBSのランダムパターンについて読み出したPRBSの各ランダムパターンと一致するかを判定する。そして、データ取得判定部20cは、PRBSの各ランダムパターンが一致すると判定された場合に、設定されているDQ信号のリファレンス電圧およびDQS信号のディレイタップにおけるデータの読み出しを成功と判定する。また、データ取得判定部20cは、PRBSのいずれかのランダムパターンが一致しないと判定された場合は、設定されているDQ信号のリファレンス電圧およびDQS信号のディレイタップにおけるデータの読み出しを不成功と判定する。次いで、メモリコントローラ20は、処理をOP109に進める。
OP109では、メモリコントローラ20は、OP108における判定結果をデータ取得判定レジスタ20eのリード結果表示レジスタに記憶する。本実施形態では、メモリコントローラ20は、OP108における判定結果が成功である場合は○(成功;以下同じ)として記憶し、判定結果が不成功である場合は×(不成功;以下同じ)として記憶する。次いで、メモリコントローラ20は、処理をOP110に進める。OP110では、メモリコントローラ20は、DQ信号のリファレンス電圧とDQS信号のディレイタップのすべての組み合わせに対してOP108の判定処理が実行されたか否かを判定する。DQ信号のリファレンス電圧とDQS信号のディレイタップのすべての組み合わせに対してOP108の判定処理が実行されていない場合は(OP110:No)、メモリコントローラ20は処理をOP107に戻す。また、DQ信号のリファレンス電圧とDQS信号のディレイタップのすべての組み合わせに対してOP108の判定処理が実行された場合は(OP110:Yes)、メモリコントローラ20は処理をOP111に進める。
図6に上記のOP107〜OP110の処理が実行されてデータ取得判定レジスタ20
eに格納された判定結果の一例を示す。図6には、DQ0〜DQ3の各DQ信号について、DQ信号のリファレンス電圧Vref0〜Vref7に対するDQS信号のディレイタップ−7〜8それぞれにおける上記のデータ取得判定の結果を示す。図中○で示される欄は、メモリモジュール60から読み出したすべてのPRBSのランダムパターンがOP102において生成されたPRBSのランダムパターンと一致したことを示す。また、図中×で示される欄は、メモリモジュール60から読み出したPRBSのランダムパターンのうち、OP102において生成されたPRBSのランダムパターンと一致しない場合が存在したことを示す。
OP111では、処理の制御がCPU10に戻る。本実施形態では、図6に示す判定結果に基づいて、CPU10が以下のOP111およびOP112の処理を実行する。すなわち、CPU10は、OP111では、各DQ信号についてデータ信号を取得できる期間が最も長いと推定されるリファレンス電圧(最適Vref)を決定する。そして、CPU10は、OP112において、各DQ信号に対する最適Vrefにおける判定結果に基づいてDQS信号およびDQ信号の位相を調整する。
図7、8にOP111において実行される処理のフローチャートを示す。なお、図7に示す「2」は、図8の「2」と接続している。OP201では、CPU10は、DQ0〜DQ3のいずれかのDQ信号における1つのVrefをターゲットとして、DQS信号のディレイタップ−7〜8の間に○の判定結果が存在するか否かを判定する。ターゲットとなるVrefに○の判定結果が存在する場合は(OP201:Yes)、CPU10は、処理をOP202に進める。また、○の判定結果が存在しない場合は(OP201:No)、CPU10は別のVrefにおいてOP201の処理を繰り返す。
OP202では、CPU10は、ターゲットとなるVrefにおいて、○の判定結果が不連続であるか否かを判定する。○の判定結果が不連続である場合は(OP202:Yes)、CPU10は、処理をOP201に戻し、別のVrefにおいてOP201の処理を再度実行する。また、○の判定結果が不連続でない場合は(OP202:No)、CPU10は処理をOP203に進める。
ここで、図6を参照すると、例えば、DQ1のDQ信号のVref2について、○の判定結果がDQS信号のディレイタップ−2〜0とディレイタップ2〜3とで分かれて並んでいる。この場合、OP201において、CPU10は、○の判定結果が存在するとして処理をOP202に進める。さらに、OP202において、CPU10は、○の判定結果がDQS信号のディレイタップ−2〜0とディレイタップ2〜3とに分かれているため、○の判定結果が不連続であるとして、処理をOP201に戻す。
OP203では、CPU10は、ターゲットとなるVrefにおいて、DQS信号の各ディレイタップにおけるデータ取得判定結果を調べるため、DQS信号のディレイタップの初期値を設定する。本実施形態では、CPU10は、設定された初期値からディレイタップを1つずつインクリメントしていき、各ディレイタップにおけるデータ取得判定結果を確認する。図6に示す例の場合、CPU10は、DQS信号のディレイタップの初期値を−7にする、すなわちDQ信号ディレイタップの初期値を+7に設定する。次いで、CPU10は、処理をOP204に進める。
OP204では、CPU10はOP203において設定されたDQS信号のディレイタップの初期値からディレイタップを1つずつインクリメントしていき、最初に○の判定結果となるディレイタップの値を「−側タップ値」として決定する。次いで、CPU10は、処理をOP205に進める。OP205では、CPU10は、さらにDQS信号のディレイタップを1つずつインクリメントしていき、×の判定結果となる手前のディレイタッ
プの値を「+側タップ値」として決定する。次いで、CPU10は、処理をOP206に進める。
図6に示す例では、例えば、DQ0のDQ信号のVref3について、OP204の処理により「−側タップ値」は「−3」、OP205の処理により「+側タップ値」は「5」としてそれぞれ決定される。
OP206では、CPU10は、各DQ信号のすべてのVrefについてOP201およびOP202の判定処理が実行されたか否かを判定する。各DQ信号のすべてのVrefについてOP201およびOP202の判定処理が実行された場合は(OP206:Yes)、CPU10は処理を図8のOP207に進める。また、各DQ信号のすべてのVrefについてOP201およびOP202の判定処理が実行されていない場合は(OP206:No)、CPU10は処理をOP201に戻す。
OP207では、CPU10は、OP204およびOP205の処理により決定された「−側タップ値」および「+側タップ値」の値に基づいて、OP204およびOP205の処理が実行されたDQ信号のVrefにおいて○の判定結果が連続する数を算出する。本実施形態では、OP207において算出される○の判定結果が連続する数を、DQS信号のディレイタップの位相マージンと称する。図6に示す例では、例えば、DQ0のDQ信号のVref3について、DQS信号のディレイタップの位相マージンは「9」として算出される。OP207において、CPU10は、OP204およびOP205の処理対象となったDQ信号のVrefについて、それぞれDQS信号のディレイタップの位相マージンが算出される。次いで、CPU10は、処理をOP208に進める。
OP208では、CPU10は、DQ0〜DQ3の各DQ信号におけるデータ取得判定結果から、各DQ信号において、DQS信号のディレイタップの位相マージンの値が最大となるVrefをそれぞれ決定し、決定されたVrefのデータ取得判定結果を抽出する。図6に示す例では、DQ0のDQ信号については、Vref2〜Vref4においてDQS信号のディレイタップの位相マージンの値がいずれも「9」であるため、3つのVref2〜4におけるデータ取得判定結果が抽出される。同様に、DQ1のDQ信号についてはVref3、4、DQ2のDQ信号についてはVref3、DQ3のDQ信号についてはVref3、それぞれにおけるデータ取得判定結果が抽出される。次いで、CPU10は、処理をOP209に進める。
OP209では、CPU10は、各DQ信号について、OP208の処理によって複数のVrefのデータ取得判定結果が抽出されたか否かを判定する。CPU10は、複数のVrefのデータ取得判定結果が抽出されたDQ信号については(OP209:Yes)、処理をOP210に進める。また、CPU10は、Vrefのデータ取得判定結果が1つだけ抽出されたDQ信号については(OP209:No)、処理をOP211に進める。
OP211では、CPU10は、OP208の処理によりデータ取得判定結果の抽出対象となった1つのVrefを最適Vrefとして決定する。なお、最適Vrefが、データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値の一例に相当する。図6に示す例では、DQ2およびDQ3のDQ信号についてはOP208の処理によりそれぞれVref3のみがデータ取得判定結果の抽出対象となる。したがって、OP209およびOP211の処理により、DQ2およびDQ3のDQ信号については、Vref3がそれぞれ最適Vrefとして決定される。
OP210では、CPU10は、以下の式(1)によりVmidを算出する。
Vmid=(Vmin+Vmax)/2・・・(1)
ここで、Vminとは、OP208の処理によって抽出された複数のVrefのうち最小のVrefの値を意味する。また、Vmaxとは、OP208の処理によって抽出された複数のVrefのうち最大のVrefの値を意味する。図6に示す例では、DQ0のDQ信号については、Vref2が最小のVrefであるためVminは「2」であり、Vref4が最大のVrefであるためVmaxは「4」である。したがって、式(1)によりVmidは「3」として算出される。同様に、DQ1のDQ信号については、Vminは「3」でありVmaxは「4」であるため、Vmidは「3.5」として算出される。CPU10は、OP210の処理が終了すると、処理をOP212に進める。
OP212では、CPU10は、OP210の処理によりVmidが算出された各DQ信号について、Vmidの値が整数であるか否かを判定する。CPU10は、Vmidが整数であるDQ信号については(OP212:Yes)、処理をOP214に進める。また、CPU10は、Vmidが整数でないDQ信号については(OP212:No)、処理をOP213に進める。図6に示す例では、DQ0のDQ信号については、Vmidは「3」であるため、CPU10は処理をOP214に進める。また、DQ1のDQ信号については、Vmidは「3.5」であるため、CPU10は処理をOP213に進める。
OP214では、CPU10は、OP210の処理により算出されたVminを最適Vrefとして決定する。図6に示す例では、CPU10は、DQ0のDQ信号については、Vmidが「3」であるためVref3を最適Vrefとして決定する。
OP213では、CPU10は、各DQ信号のデータ取得判定結果に基づいてMmaxおよびMminを算出する。ここで、Mmaxは、OP210の処理によって算出されたVmaxのVrefのさらに1つ大きいVrefにおけるデータ取得判定結果において、○が連続する数の最大値である。また、Mminは、OP210の処理によって算出されたVminのVrefのさらに1つ小さいVrefにおけるデータ取得判定結果において、○が連続する数の最大値である。
図6に示す例では、DQ1のDQ信号については、Vmaxは「4」であるから、VmaxのVref4の1つ大きいVref5におけるデータ取得判定結果において○が連続する数の最大値「6」がMmaxとして算出される。また、DQ1のDQ信号については、Vmin「3」であるから、VminのVref3の1つ小さいVref2におけるデータ取得判定結果において○が連続する数の最大値「3」がMminとして算出される。CPU10は、OP213における処理が終了すると、処理をOP215に進める。
OP215では、CPU10は、OP213の処理によって算出されたMmax、Mminの値の大小関係を判定する。Mmin<Maxである場合は(OP215:Yes)、CPU10は処理をOP217に進める。また、Mmin≧Maxである場合は(OP215:No)、CPU10は処理をOP216に進める。
OP216では、CPU10は、OP210の処理によって算出されたVmidの値を切り捨てた値が示すVrefを最適Vrefとして決定する。また、OP217では、CPU10は、OP210の処理によって算出されたVmidの値を切り上げた値が示すVrefを最適Vrefとして決定する。図5に示す例では、DQ1のDQ信号について、Mmaxは「6」、Mminは「3」、Vmidは「3.5」とそれぞれ算出される。したがって、CPU10は、処理をOP215からOP217に進め、Vmidの値を切り上げた値は「4」であることからVref4が最適Vrefであると決定する。
図6に示すように、DQ1のDQ信号について、○の判定結果が連続する数が最大であ
るVrefはVref3、4の2つ存在する。そこで、本実施形態では、Vref3に隣接するVref2における○の判定結果が連続する最大幅と、Vref4に隣接するVref5における○の判定結果が連続する最大幅とが比較される。そして、比較の結果、Vref2、5のうち○の判定結果が連続する最大幅がより大きいVref、図6の例の場合ではVref5に隣接するVref4が、Vref3よりもより最適Vrefにふさわしいリファレンス電圧として決定される。
CPU10は、OP211、OP214、OP216、OP217の処理によってDQ0〜DQ3の各DQ信号における最適Vrefを決定すると、本フローチャートの処理を終了して、処理をOP112に進める。
図9に、OP112においてCPU10が実行する処理のフローチャートを示す。OP301では、CPU10は、OP111の処理によってDQ0〜DQ3の各DQ信号に対して決定された最適Vrefにおけるデータ取得判定結果をデータ取得判定レジスタ20eから抽出する。図10Aに、OP301においてCPU10が抽出したデータ取得判定結果の一例を示す。図10Aに示すように、DQ0〜DQ3の各DQ信号の最適Vrefにおける○の判定結果が連続するDQS信号のディレイタップの位相マージンの位置は互いに異なる。本実施形態では、CPU10は、OP301において抽出したデータ取得判定結果を用いて以下のOP302〜OP307の処理を実行する。これにより、CPU10は、DQ0〜DQ3の各信号間におけるDQS信号のディレイタップの位置合わせを行う。
OP302では、CPU10は、以下の式(2)を用いてDQS信号のディレイタップの理想値を算出する。ここで、DQS信号のディレイタップの理想値とは、OP301において抽出された各DQ信号の最適Vrefにおけるデータ取得判定結果において、○の判定結果となるDQ信号の位相幅の中央値を意味する。すなわち、DQ信号のデータを取得する好適なストローブポイントに対応するDQS信号の理想的な位相である。
(DQS信号のディレイタップの理想値)={(DQ信号のディレイタップのマイナス側の位相マージン)+(DQ信号のディレイタップのプラス側の位相マージン)}/2・・・(2)
なお、本実施形態では、DQS信号のディレイタップの理想値は小数点を切り上げて算出される。また、DQ信号のディレイタップのマイナス側の位相マージンとは、○の判定結果となるDQ信号の位相幅における、DQS信号のディレイタップ値0を基準としたDQ信号のマイナス側の位相幅である。また、DQ信号のディレイタップのプラス側の位相マージンとは、○の判定結果となるDQ信号の位相幅における、DQS信号のディレイタップ値0を基準としたDQ信号のプラス側の位相幅である。
図10Aに示す例では、DQ0については、DQS信号のディレイタップ−3〜−1まで3つ連続してDQ信号の取得が○と判定されている。したがって、DQ信号の取得が○と判定されるDQ信号のディレイタップのマイナス側の位相マージンは「−3」となる。また、DQS信号のディレイタップ1〜5まで5つ連続してDQ信号の取得が○と判定されている。したがって、DQ信号の取得が○と判定されるDQ信号のディレイタップのプラス側の位相マージンは「5」となる。したがって、この場合のDQS信号のディレイタップの理想値は「1」となる。
このようにしてCPU10は、各DQ信号に対してDQ信号の取得が○と判定されるDQ信号のディレイタップのマイナス側の位相マージンとプラス側の位相マージンを計上する。そして、図10Aに示す例では、DQ0〜DQ3の各DQ信号に対するDQS信号のディレイタップの理想値は、それぞれ「1」、「2」、「−1」、「2」である。なお、
図10Aには、各DQ信号について、DQS信号のディレイタップの理想値に該当する○の判定結果に太枠が施されている。
各DQ信号に対するDQS信号のディレイタップの理想値は、各DQ信号の最適Vrefにおいて、DQ信号のデータを取得する最適のストローブポイントを示す。ただし、図9Aに示すように、DQS信号のディレイタップの理想値は、DQ信号ごとに異なっている。そこで、本実施形態では、CPU10は、各DQ信号のDQS信号のディレイタップの理想値が「0」となるように、以下の処理を実行してDQS信号および各DQ信号の位相を調整する。CPU10は、OP302の処理を終了すると、処理をOP303に進める。
OP303では、CPU10は、OP302において算出されたDQS信号のディレイタップの理想値を以下の式(3)に代入して、DQ信号のディレイタップの理想値を算出する。ここで、DQ信号のディレイタップの理想値とは、各DQ信号の位相の中央位置が「0」になるように各DQ信号をシフトするための位相の遅延量(ディレイ)を示す。
(DQ信号のディレイタップの理想値)=−(DQS信号のディレイタップの理想値)・・・(3)
図10Bに例示するように、DQ0〜DQ3の各DQ信号に対するDQ信号のディレイタップの理想値は、それぞれ「−1」、「−2」、「1」、「−2」である。すなわち、DQS信号の位相が上記のDQS信号のディレイタップの理想値に従ってシフトされると、DQS信号のディレイタップが0に設定される。そこで、DQ信号の位相をDQ信号のディレイタップの理想値に従ってシフトすることで、○の判定結果となるDQ信号の位相幅の中央値がDQS信号のディレイタップ0となる。CPU10は、OP303の処理を終了すると、処理をOP304に進める。
OP304では、CPU10は、OP303において算出したDQ信号のディレイタップの理想値にマイナスの値が存在するか否かを判定する。DQ信号のディレイタップの理想値にマイナスの値が存在する場合は(OP304:Yes)、CPU10は処理をOP305に進める。また、DQ信号のディレイタップの理想値にマイナスの値が存在しない場合、すなわちDQ信号のディレイタップの理想値がいずれもプラスの値である場合は(OP304:No)、CPU10は処理をOP306に進める。
ここで、OP304においてDQ信号のディレイタップの理想値にマイナスの値が存在するか否かを判定する理由について説明する。図10Aと図10Eに、それぞれ異なるデータ取得判定の結果を例示する。上述の通り、本実施形態ではDQS信号の図10Eに示す場合のように、DQ信号のディレイタップの理想値が全てプラスの場合は、各DQ信号の位相を遅らせることで、各信号間のDQS信号のディレイタップを揃えることができる。なお、本実施形態では、各信号間のDQS信号のディレイタップが「0」となるように、各DQ信号の位相を遅らせる。
一方、図10Aに示す場合のように、DQ信号のディレイタップの理想値にマイナス値があるということは、当該DQ信号の位相を進ませる調整を行うことを意味する。ただし、上述の通り、本実施形態では、DQ信号の位相を進ませることはできない。そこで、この場合は、DQS信号の位相が遅れるように、DQS信号のディレイタップが、DQ信号のディレイタップの理想値に基づいて設定される。さらに、この場合は、DQS信号の位相の遅延量を加味して、各DQ信号の位相が遅れるように、各DQ信号のディレイタップが設定される。
本実施形態では、DQS信号およびDQ信号のディレイタップは、位相が初期位置から
遅れる側に設定することができ、位相が初期位置から進む側に設定することはできない。このため、DQ信号のディレイタップの理想値にマイナスの値が存在するか否の判定に基づいて、DQS信号およびDQ信号のディレイタップを位相が遅れる側に設定する処理によりDQS信号およびDQ信号の位相が調整される。
OP305では、CPU10は、以下の式(4)を用いてDQS信号の位相の基準値を決定する。
(DQS信号の位相の基準値)=−(DQ信号のディレイタップの理想値の最小値)・・・(4)
ここで「DQ信号のディレイタップの理想値の最小値」は、式(3)によりDQ信号ごとに算出されたDQ信号のディレイタップの理想値のうちの最小値を意味する。式(2)〜(4)からわかるように、各DQ信号のDQS信号のストローブポイントが、式(2)により算出されるDQS信号のディレイタップの理想値の最大値に合わせて移動されることとなる。
OP305では、CPU10は、DQ信号ごとに以下の式(5)を用いて、位相のシフト量を決定する。
(DQ信号の位相のシフト量)=(DQ信号のディレイタップの理想値)+(DQS信号の位相の基準値)・・・(5)
ここで、「DQ信号のディレイタップの理想値」は、式(3)により算出される、各DQ信号のDQ信号のディレイタップの理想値である。また、「DQS信号の位相の基準値」は、式(4)により算出されるDQS信号の位相の基準値である。なお、DQS信号の位相の基準値が、所定の位相の目標値の一例に相当する。
OP305では、CPU10は、式(4)により算出されたDQS信号の位相の基準値に従って、DQS信号の位相をシフトする。図10Aに示す例では、DQ0〜DQ3の各DQ信号に対する理想的なストローブポイントであるDQS信号のディレイタップの位置は、それぞれ「1」、「2」、「−1」、「2」である。そしてOP305における処理により、これらのDQS信号のディレイタップの位置は、図10Cに示されるようにそれぞれ「2」に移動する。このように、本実施形態においては、DQS信号の位相の基準値を求めることにより、DQS信号の位相調整を実現している。
なお、DQS信号の位相の基準値は、式(4)を用いる代わりに、各DQ信号に対するDQS信号のディレイタップの理想値のうち多数決により同一となる値が最も多い値としてもよい。また、各DQ信号のうちDQ信号の位相のシフト量に最も余裕があるDQ信号におけるDQS信号のディレイタップの理想値を、DQS信号の位相の基準値としてもよい。
さらに、CPU10は、式(5)により算出されたDQ信号の位相のシフト量に従って、DQ信号ごとに位相をシフトする。図10Bに示す例では、DQ0の信号に対する理想的なストローブポイントであるDQS信号のディレイタップの位置は「1」である。また、式(5)によりDQ0の信号に対して算出されるDQ信号の位相のシフト量は「1」である。この結果、DQ0の信号に対しては、DQS信号のディレイタップの位置が「2」となるようにDQ信号の位相がシフトされる。また、図10Bに示す例では、DQ2の信号に対する理想的なストローブポイントであるDQS信号のディレイタップの位置は「−1」である。また、式(5)によりDQ2の信号に対して算出されるDQ信号の位相のシフト量は「3」である。この結果、DQ2の信号に対しても、DQS信号のディレイタップの位置が「2」となるようにDQ信号の位相がシフトされる。
なお、図10Cに示す例では、各DQ信号に対する理想的なストローブポイントであるDQS信号のディレイタップの位置は「2」である。また、式(5)によりDQ1、DQ3の信号に対して算出されるDQ信号の位相のシフト量は「0」である。この結果、DQ1、DQ3の信号に対しては、DQ信号の位相はシフトされず、DQS信号のディレイタップの位置は「0」のままとなる。
OP306では、CPU10は、DQS信号の位相の基準値を0に設定する。また、OP306では、CPU10は、DQ信号ごとに以下の式(6)を用いて、位相のシフト量を決定する。
(DQ信号の位相のシフト量)=(DQ信号のディレイタップの理想値)・・・(6)
ここで、「DQ信号のディレイタップの理想値」は、式(3)により算出される、各DQ信号のDQ信号のディレイタップの理想値である。
図10Eおよび図10Fに、OP304において、DQ信号のディレイタップの理想値にマイナス値が存在しない場合の例を示す。式(3)に示すように、DQ信号のディレイタップの理想値にマイナス値が存在しないことは、式(2)により算出されるDQS信号のディレイタップの理想値がいずれもマイナス値であることを意味する。したがって、図10Eの例に示す場合、CPU10は、処理をOP304からOP306に進める。
そしてOP306では、CPU10は、DQS信号の位相をシフトしない。そして、CPU10は、式(6)により算出されたシフト量に従って、DQ信号ごとに位相をシフトする。図10Eに示す例では、DQ0の信号に対する理想的なストローブポイントであるDQS信号のディレイタップの位置は「−2」である。また、式(5)によりDQ0の信号に対して算出されるDQ信号の位相のシフト量は「2」である。この結果、DQ0の信号に対しては、DQS信号のディレイタップの位置が「0」となるようにDQ信号の位相がシフトされる。同様に、DQ1〜3の信号に対する理想的なストローブポイントであるDQS信号のディレイタップの位置はそれぞれ「−1」、「−3」、「−1」である。なお、図10Eにおいて、理想的なストローブポイントであるDQS信号のディレイタップの位置における○の判定結果を太枠として示す。また、式(5)によりDQ1〜3の信号に対して算出されるDQ信号の位相のシフト量は、それぞれ「1」、「3」、「1」である。この結果、DQ1〜3の信号に対しても、DQS信号のディレイタップの位置が「0」となるようにDQ信号の位相がシフトされる。
図10Fに、図10Eに示すDQS信号およびDQ信号の位相が上記の処理によって調整された後の状態を示す。図10Eに示す状態では、DQ0〜DQ3の各DQ信号に対するDQS信号の理想的なストローブポイントの位置は、それぞれ「−2」、「−1」、「−3」、「−1」とばらついている。しかし、上記の処理により、各DQ信号に対するDQS信号の理想的なストローブポイントの位置が「0」となるように、各DQ信号の位相が調整される。OP305またはOP306の処理が終了すると、CPU10は、OP111の本フローチャートの処理を終了し、さらに図4、5に示すフローチャートの処理を終了する。
したがって、本実施形態における上記の処理によれば、DQ信号ごとに最適Vrefにおけるストローブポイントが異なる場合でも、DQS信号およびDQ信号の位相が調整されて、各DQ信号間で最適なストローブポイントを互いに合わせることができる。
(第2の実施形態)
次に、第2の実施形態について図面を参照しながら説明する。なお、第1の実施形態に対応する構成および処理に対しては同一の符号を用いて詳細な説明は省略する。図1に示すように、メモリモジュール60は、Rank0のメモリ素子60aとRank1のメモ
リ素子60bとを有する。そこで、本実施形態では、メモリモジュール60のRankごとに上記のデータ取得判定結果が算出される。
本実施形態では、メモリコントローラ20は、メモリモジュール60のRank0のメモリ素子60aおよびRank1のメモリ素子60bそれぞれに対して、図4、5のOP102〜OP110の処理を実行する。そして、PRBS生成部20bのデータ取得判定部20cは、各メモリ素子60a、60bに対して、各DQ信号についてデータ取得判定結果を算出する。
また、本実施形態では、CPU10は図5のOP111の処理を実行する際に、図8に示すフローチャートの処理の代わりに図13に示すフローチャートの処理を実行する。したがって、本実施形態では、図7に示すOP206において、メモリ素子60a、60bそれぞれのデータ取得判定結果においてすべてのVrefの判定が終了すると、CPU10は処理を図13のOP401に進める。なお、図12に、データ取得判定部20cによって算出されるメモリ素子60a、60bそれぞれのデータ取得判定結果の一例を示す。当該データ取得判定結果は、PRBS生成部20bのデータ取得判定レジスタ20eに記憶される。
OP401において、CPU10は、図7のOP204およびOP205の処理により決定された「−側タップ値」および「+側タップ値」の値に基づいて、OP204およびOP205の処理対象であるDQ信号のVrefにおいて○の判定結果が連続する数を算出する。
本実施形態では、CPU10は、データ取得判定レジスタ20eに記憶されたメモリ素子60a、60bそれぞれのデータ取得判定結果に基づいて各DQ信号の最適Vrefを決定する。図12に示す例では、「Rank0の○の数」が、メモリ素子60aについて各DQ信号の各Vrefにおける○の判定結果が連続する数を示す。同様に、「Rank1の○の数」が、メモリ素子60bについて各DQ信号の各Vrefにおける○の判定結果が連続する数を示す。OP401の処理が終了すると、CPU10は、処理をOP402に進める。
OP402において、CPU10は、メモリ素子60a、60bの双方のデータ取得判定結果の間で、各DQ信号の各Vrefにおける○の判定結果が連続する数を比較し、○の判定結果が連続する数が少ない方を特定する。図12では、OP402の処理によって特定される数を「Rank0、1両方の○の数」として示す。次いで、CPU10は処理をOP403に進める。
OP403において、CPU10は、各DQ信号において、特定された○の判定結果が連続する数が最大のVrefを最適Vrefとして決定する。図12に示す例では、DQ0〜DQ3に対して、Vref3、Vref4、Vref3、Vref3がそれぞれ最適Vrefとして決定される。CPU10は、各DQ信号に対する最適Vrefを決定すると、図13に示すフローチャートの処理を終了して処理をOP111に進める。
本実施形態では、CPU10は、図9のOP301において、OP403の処理により特定された最適Vrefにおける、メモリ素子60a、60bのそれぞれのデータ取得判定結果を抽出する。さらに、CPU10は、抽出したデータ取得判定結果をDQ信号ごとにマージする。図12に示す例では、DQ0については、Vref3におけるメモリ素子60a、60bのそれぞれのデータ取得判定結果が抽出される。そして、CPU10は、DQS信号のディレイタップが同じ位置において、データ取得判定結果が共に×になる場合は×、共に○になる場合は○として互いのデータ取得判定結果をマージする。さらに、
CPU10は、データ取得判定結果の一方が×他方が○となる場合は、△としてデータ取得判定結果をマージする。図12には、CPU10によってマージされたデータ取得判定結果を示す。なお、本実施形態における以下の処理では、△の判定結果は×の判定結果とみなされる。
本実施形態では、CPU10は、OP301においてマージされたデータ取得判定結果を用いてOP302以降の処理を実行することによりDQS信号および各DQ信号の位相を調整する。したがって、本実施形態においても、メモリモジュールの各メモリ素子のデータ取得判定結果をそれぞれ算出することで、異なるRankのメモリ素子の間でDQS信号およびDQ信号を上記と同様に調整することができる。
(第3の実施形態)
次に、第3の実施形態について、図面を参照しながら説明する。本実施形態では、サーバーシステム3内においてDQS信号とDQ信号の位相を調整する。図14に、本実施形態に係るサーバーシステム3の概略構成を示す。
サーバーシステム3は、システムボード(System Board;SB)100およびシステム監視機構(System Control Facility;SCF)200を有する。システムボード100は、システムコントローラ(System Controller;SC)100a、CPU100b、MAC(Memory Access Controller)100c、DIMM(Dual In-line Memory Module)#0 1
00g、DIMM#1 100h、PCIe RC(Riser Card)100i、I/O(Input/Output)100j、SCF I/F 100kを有する。MAC 100cは、PRBS生成部100dおよびデータ取得判定部100fを有する。PRBS生成部100dは、開始フラグ100eを有する。なお、PRBS生成部100d、開始フラグ100e、データ取得判定部100fは、上記の実施形態におけるPRBS生成部20b、開始フラグ20d、データ取得判定部20cに対応する。
システム監視機構200は、システムボード100の電源のオンおよびオフの制御を行う。システム監視機構200がシステムボード100の電源をオンすると、システムボード100のCPU100bが動作を開始し、以下に説明する処理を実行する。システムコントローラ100aは、システムボード100のCPU100b、MAC100c、PCIe RC 100i、SCF I/F 100kとの間のアクセスなどを制御する。MAC 100cは、DIMM#0 100gおよびDIMM#1 100hに対するアクセスを制御する。PCIe RC 100iは、PCI Express用のライザーカードであり、I/O 100jに接続されている。
SCF I/F 100kは、システムボード100とSCF 200とを接続するためのインターフェイスである。SCF I/F 100kは、不揮発性メモリ(FMEM)100mおよびSRAM(Static Random Access Memory)100pを有する。不揮発性メ
モリ100mには、POST(Power On Self Test)プログラム100nが格納されている。POSTプログラム100nは、システムボード100内の各ハードウェアの初期設定および異常検出のための診断などを実行するためのプログラムである。SRAM 100pは、データ取得判定レジスタ100qを有する。データ取得判定レジスタは、上記の実施形態におけるデータ取得判定レジスタ20eに対応する。
本実施形態では、サーバーシステム3の電源がオンにされると、システム監視機構200によってシステムボード100の電源がオンにされ、CPU100bが動作を開始する。CPU100bは、SCF I/F100kの不揮発性メモリ100mに格納されているPOSTプログラム100nを実行する。
POSTプログラム100nの実行開始段階では、まだMAC 100c、DIMM#0 100g、DIMM#1 100hの初期設定は行われていない。このため、DIMM#0 100g、DIMM#1 100hのメモリ領域は使用できない。このため、SRAM 100pがPOSTプログラム100nのワークエリアとして使用される。本実施形態では、一例として、POSTプログラム100nにおけるDIMM#0 100g、DIMM#1 100hの初期設定の際に、CPU100bが、図3に示すフローチャートの処理を開始する。なお、以下の説明では、上記の実施形態と同様の処理については説明を省略する。また、本実施形態では、DIMM#0 100gに対するデータの書き込みおよび読み取りにおけるDQS信号およびDQ信号の位相が調整される。
OP101において、MAC 100cは開始フラグ100eがオンに設定されているか否かを判定する。MAC 100cは開始フラグ100eがオンに設定されていると判定すると、DQS信号およびDQ信号の位相調整の処理を開始する。そして、MAC 100cは処理をOP102に進める。OP102では、MAC 100cは、PRBS生成部100dを制御してPRBSのランダムパターンの信号を生成する。そして、OP103において、MAC 100cは、生成されたPBBSのランダムパターンを書き込むためのWRITEコマンドをDIMM#0 100gに送信する。
MAC 100cは、OP104およびOP106の処理からOP107に進むと、DIMM#0 100gにREADコマンドを送信する。これにより、MAC 100cは、OP103においてDIMM#0 100gに書き込まれたPRBSの各ランダムパターンの読み取りを実行する。OP108では、MAC 100cは、DIMM#0 100gから読み取った各ランダムパターンに対して上記の実施形態と同様にデータ取得判定を実行する。そして、OP109において、MAC 100cは、データ取得判定結果をSRAM100pのデータ取得判定レジスタ100qに格納する。
CPU100bは、OP110の処理からOP111に進むと、データ取得判定レジスタ100qに格納されているデータ取得判定結果に基づいて図7、8に示すOP201〜OP217の処理を実行する。本実施形態においても、データ取得判定レジスタ100qに格納されているデータ取得判定結果は図6と同様である。上記の実施形態と同様に、本実施形態においてもCPU100bは、DQ0〜DQ3の各DQ信号に対する最適Vrefを決定することができる。
OP111の処理を終了すると、CPU100bは処理をOP112に進める。OP112において、CPU100bは、データ取得判定レジスタ100qに格納されているデータ取得判定結果に基づいて図9に示すOP301〜OP307の処理を実行する。OP301において、CPU100bは、データ取得判定レジスタ100qに格納されているデータ取得判定結果を用いて各DQ信号の最適Vrefにおけるデータ取得判定結果を抽出する。抽出されるデータ取得判定結果は、図10Aに示すデータ取得判定結果と同様である。したがって、本実施形態においても、CPU100bは、OP302〜OP307の処理を実行して、図10B〜図10Dに示すようにDQS信号およびDQ信号の位相を調整する。
本実施形態では、サーバーシステム3におけるPOSTプログラム実行時に、DQS信号およびDQ信号の位相が調整される。そして、サーバーシステム3では、POSTプログラム実行後にOSが起動され、サーバーシステム3における種々の処理が開始される。情報処理ステム3が実行する処理においては、上記の通りDQS信号およびDQ信号の位相が調整された状態でDIMM#0 100gに対するデータの書き込みおよび読み出しが実行される。
サーバーシステム3においては、CPU100b、DIMM#0 100g、システムボード上の伝送線路などの特性のばらつきや経時的な特性変化が生じる可能性がある。本実施形態においては、メモリに対する書き込みおよび読み取りテストの結果に基づいてDQS信号およびDQ信号の位相調整を行うことができる。この結果、当該特性のばらつきや経時的な特性変化が生じた場合でも最適なDQS信号のストローブポイントを決定することができる。
以上が本実施形態に関する説明であるが、上記の情報処理装置1、サーバーシステム3などの構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記の実施形態では、図4のOP102〜OP105の処理において、メモリに対してPRBSのランダムパターンを用いた読み取りテストが実行される。ただし、メモリに対してPRBSのランダムパターンを用いた書き込みテストが実行されるようにしてもよい。具体的には、PRBSのランダムパターンのメモリへの書き込み時に、OP105の処理を省略してインターバルを設けない処理とする。
また、上記のサーバーシステム3では、DIMM#0 100gに対するデータ取得判定結果に基づいてDQS信号およびDQ信号の位相が調整される。ただし、DIMM#1
100hに対するデータ取得判定結果に基づいてDQS信号およびDQ信号の位相が調整されてもよい。また、DIMM#0 100gおよびDIMM#1 100hの双方に対するデータ取得判定結果に基づいて、第2の実施形態と同様にDQS信号およびDQ信号の位相が調整される構成としてもよい。
また、上記の説明では、ディレイタップ設定部は、DQS信号およびDQ信号の位相が遅れる側にディレイタップを設定できることを想定している。しかし、ディレイタップ設定部にディレイタップのオフセットが事前に設定されることで、ディレイタップ設定部がDQS信号およびDQ信号の位相が進む側にもディレイタップを設定できる場合も想定される。この場合は、上記の処理においてOP304、OP305の処理を削除してOP303からOP306の処理に進むようにフローチャートを変更すればよい。これによって、DQS信号およびDQ信号の位相が上記と同様に調整される。
また、別の実施形態として、図15に示すように、管理サーバー300が複数のサーバーシステム3を管理する情報処理システム4を用いることもできる。サーバーシステム3は図14に示す第3の実施形態におけるサーバーシステム3であるため、詳細な説明は省略する。なお、サーバーシステム3が、データ信号とストローブ信号との位相関係を調整する調整装置の一例に相当する。また、管理サーバー300が、調整装置を管理する管理装置の一例に相当する。情報処理システム4では、管理サーバー300のCPU300aが、サーバーシステム3のSCF200を制御する。SCF200はCPU300aの制御に基づいてシステムボード100の電源をオンにし、第3の実施形態において説明した処理を実行する。これによって、情報処理システム4内の各サーバーシステム3において、DQS信号とDQ信号の位相が調整される。
<コンピュータが読み取り可能な記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記情報処理装置の設定を行うための管理ツール、OSその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、情報処理装置、サーバーシステム、管理サーバーなどである。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
データ信号とストローブ信号との位相関係を調整する情報処理装置であって、
前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定する特定部と、
前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定する決定部と、
決定された前記リファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整する調整部と
を有することを特徴とする情報処理装置。
(付記2)
前記決定部は、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値が複数存在する場合に、前記データ信号を有効に取得できる期間が最も長いと推定される各リファレンス値に隣接するリファレンス値における前記データ信号を有効に取得できる期間を比較し、前記比較により前記データ信号を有効に取得できる期間がより長いリファレンス値に隣接するリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する、付記1に記載の情報処理装置。
(付記3)
前記データ信号は第1または第2のメモリに送信され、
前記決定部は、前記データ信号が前記第1のメモリに送信される場合の前記データ信号を有効に取得できる期間と、前記データ信号が前記第2のメモリに送信される場合の前記データ信号を有効に取得できる期間とのうちの短い期間を前記複数のリファレンス値の候補ごとに特定し、前記特定された期間が最も長いリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する
付記1または2に記載の情報処理装置。
(付記4)
前記調整部は、前記ストローブ信号に対して前記データ信号の位相を進ませる調整を行う場合は、前記ストローブ信号の位相を所定の位相の目標値に合わせて遅らせてから前記データ信号の位相を前記目標値を用いて遅らせ、前記データ信号の位相を遅らせる調整を行う場合は、前記ストローブ信号の位相を移動せずに前記データ信号の位相を遅らせる、付記1から3のいずれかに記載の情報処理装置。
(付記5)
前記データ信号は、異なる伝送路で送信される複数のデータ信号を含み、
前記調整部は、前記異なる伝送路のうち第1の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ
信号の位相と、前記異なる伝送路のうち第2の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、を一致させ、前記第1の伝送路により送信されるデータ信号の位相と前記第2の伝送路により送信されるデータ信号の位相を、前記一致させた前記ストローブ信号の位相に基づいて変更する
付記1から4のいずれかに記載の情報処理装置。
(付記6)
データ信号とストローブ信号との位相関係を調整する調整装置と、前記調整装置を管理する管理装置を有する情報処理システムであって、
前記調整装置は、
前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定する特定部と、
前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定する決定部と、
前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整する調整部と
を有することを特徴とする情報処理システム。
(付記7)
前記決定部は、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値が複数存在する場合に、前記データ信号を有効に取得できる期間が最も長いと推定される各リファレンス値に隣接するリファレンス値における前記データ信号を有効に取得できる各期間を比較し、前記比較により前記データ信号を有効に取得できる期間がより長いリファレンス値に隣接するリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する、付記6に記載の情報処理システム。
(付記8)
前記データ信号は第1または第2のメモリに送信され、
前記決定部は、前記データ信号が前記第1のメモリに送信される場合の前記データ信号を有効に取得できる期間と、前記データ信号が前記第2のメモリに送信される場合の前記データ信号を有効に取得できる期間とのうちの短い期間を前記複数のリファレンス値の候補ごとに特定し、前記特定された期間が最も長いリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する
付記6または7に記載の情報処理システム。
(付記9)
前記調整部は、前記ストローブ信号に対して前記データ信号の位相を進ませる調整を行う場合は、前記ストローブ信号の位相を所定の位相の目標値に合わせて遅らせてから前記データ信号の位相を前記目標値を用いて遅らせ、前記データ信号の位相を遅らせる調整を行う場合は、前記ストローブ信号の位相を移動せずに前記データ信号の位相を遅らせる
付記6から8のいずれかに記載の情報処理システム。
(付記10)
前記データ信号は、異なる伝送路で送信される複数のデータ信号を含み、
前記調整部は、前記異なる伝送路のうち第1の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ
信号の位相と、前記異なる伝送路のうち第2の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、を一致させ、前記第1の伝送路により送信されるデータ信号の位相と前記第2の伝送路により送信されるデータ信号の位相を、前記一致させた前記ストローブ信号の位相に基づいて変更する
付記6から9のいずれかに記載の情報処理システム。
(付記11)
データ信号とストローブ信号との位相関係を調整する情報処理装置の制御方法であって、
前記情報処理装置が有する特定部が、前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定し、
前記情報処理装置が有する決定部が、前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定し、
前記情報処理装置が有する調整部が、前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整する
情報処理装置の制御方法。
(付記12)
前記決定部は、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値が複数存在する場合に、前記データ信号を有効に取得できる期間が最も長いと推定される各リファレンス値に隣接するリファレンス値における前記データ信号を有効に取得できる各期間を比較し、前記比較により前記データ信号を有効に取得できる期間がより長いリファレンス値に隣接するリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する、付記11に記載の情報処理装置の制御方法。
(付記13)
前記データ信号は第1または第2のメモリに送信され、
前記決定部は、前記データ信号が前記第1のメモリに送信される場合の前記データ信号を有効に取得できる期間と、前記データ信号が前記第2のメモリに送信される場合の前記データ信号を有効に取得できる期間とのうちの短い期間を前記複数のリファレンス値の候補ごとに特定し、前記特定された期間が最も長いリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する
付記11または12に記載の情報処理装置の制御方法。
(付記14)
前記調整部は、前記ストローブ信号に対して前記データ信号の位相を進ませる調整を行う場合は、前記ストローブ信号の位相を所定の位相の目標値に合わせて遅らせてから前記データ信号の位相を前記目標値を用いて遅らせ、前記データ信号の位相を遅らせる調整を行う場合は、前記ストローブ信号の位相を移動せずに前記データ信号の位相を遅らせる、付記11から13のいずれかに記載の情報処理装置の制御方法。
(付記15)
前記データ信号は、異なる伝送路で送信される複数のデータ信号を含み、
前記調整部は、前記異なる伝送路のうち第1の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、前記異なる伝送路のうち第2の伝送路により送信されるデータ信号に対し
て前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、を一致させ、前記第1の伝送路により送信されるデータ信号の位相と前記第2の伝送路により送信されるデータ信号の位相を、前記一致させた前記ストローブ信号の位相に基づいて変更する
付記11から14のいずれかに記載の情報処理装置の制御方法。
(付記16)
データ信号とストローブ信号との位相関係を調整する情報処理装置の制御プログラムであって、
前記情報処理装置が有する特定部に、前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定させ、
前記情報処理装置が有する決定部に、前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定させ、
前記情報処理装置が有する調整部に、前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整させる
情報処理装置の制御プログラム。
(付記17)
前記決定部に、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値が複数存在する場合に、前記データ信号を有効に取得できる期間が最も長いと推定される各リファレンス値に隣接するリファレンス値における前記データ信号を有効に取得できる各期間を比較させ、前記比較により前記データ信号を有効に取得できる期間がより長いリファレンス値に隣接するリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定させる、付記16に記載の情報処理装置の制御プログラム。
(付記18)
前記データ信号は第1または第2のメモリに送信され、
前記決定部に、前記データ信号が前記第1のメモリに送信される場合の前記データ信号を有効に取得できる期間と、前記データ信号が前記第2のメモリに送信される場合の前記データ信号を有効に取得できる期間とのうちの短い期間を前記複数のリファレンス値の候補ごとに特定し、前記特定された期間が最も長いリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定させる
付記16または17に記載の情報処理装置の制御プログラム。
(付記19)
前記調整部に、前記ストローブ信号に対して前記データ信号の位相を進ませる調整を行う場合は、前記ストローブ信号の位相を所定の位相の目標値に合わせて遅らせてから前記データ信号の位相を前記目標値を用いて遅らせ、前記データ信号の位相を遅らせる調整を行う場合は、前記ストローブ信号の位相を移動せずに前記データ信号の位相を遅らせる、付記16から18のいずれかに記載の情報処理装置の制御プログラム。
(付記20)
前記データ信号は、異なる伝送路で送信される複数のデータ信号を含み、
前記調整部に、前記異なる伝送路のうち第1の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、前記異なる伝送路のうち第2の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信
号の位相と、を一致させ、前記第1の伝送路により送信されるデータ信号の位相と前記第2の伝送路により送信されるデータ信号の位相を、前記一致させた前記ストローブ信号の位相に基づいて変更させる
付記16から19のいずれかに記載の情報処理装置の制御プログラム。
1 情報処理装置
3 サーバーシステム
4 情報処理システム
10、100b、300a CPU
20b、100d PRBS生成部
20c、100f データ取得判定部
20e、100q データ取得判定レジスタ
30b、30c、30h、30i ディレイタップ設定部
40、50 伝送路
60、70、80 メモリモジュール
100 システムボード
100g、100h DIMM
300 管理サーバー

Claims (8)

  1. データ信号とストローブ信号との位相関係を調整する情報処理装置であって、
    前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定する特定部と、
    前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定する決定部と、
    前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整する調整部と
    を有することを特徴とする情報処理装置。
  2. 前記決定部は、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値が複数存在する場合に、前記データ信号を有効に取得できる期間が最も長いと推定される各リファレンス値に隣接するリファレンス値における前記データ信号を有効に取得できる各期間を比較し、前記比較により前記データ信号を有効に取得できる期間がより長いリファレンス値に隣接するリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する、請求項1に記載の情報処理装置。
  3. 前記データ信号は第1または第2のメモリに送信され、
    前記決定部は、前記データ信号が前記第1のメモリに送信される場合の前記データ信号を有効に取得できる期間と、前記データ信号が前記第2のメモリに送信される場合の前記データ信号を有効に取得できる期間とのうちの短い期間を前記複数のリファレンス値の候補ごとに特定し、前記特定された期間が最も長いリファレンス値を、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値として決定する
    請求項1または2に記載の情報処理装置。
  4. 前記調整部は、前記ストローブ信号に対して前記データ信号の位相を進ませる調整を行う場合は、前記ストローブ信号の位相を所定の位相の目標値に合わせて遅らせてから前記データ信号の位相を前記目標値を用いて遅らせ、前記データ信号の位相を遅らせる調整を行う場合は、前記ストローブ信号の位相を移動せずに前記データ信号の位相を遅らせる、請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記データ信号は、異なる伝送路で送信される複数のデータ信号を含み、
    前記調整部は、前記異なる伝送路のうち第1の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、前記異なる伝送路のうち第2の伝送路により送信されるデータ信号に対して前記決定されたリファレンス値に対応する期間に基づいて決定される前記ストローブ信号の位相と、を一致させ、前記第1の伝送路により送信されるデータ信号の位相と前記第2の伝送路により送信されるデータ信号の位相を、前記一致させた前記ストローブ信号の位相に基づいて変更する
    請求項1から4のいずれか1項に記載の情報処理装置。
  6. データ信号とストローブ信号との位相関係を調整する調整装置と、前記調整装置を管理する管理装置を有する情報処理システムであって、
    前記調整装置は、
    前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストロー
    ブ信号との1以上の位相差を特定する特定部と、
    前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定する決定部と、
    前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整する調整部と
    を有することを特徴とする情報処理システム。
  7. データ信号とストローブ信号との位相関係を調整する情報処理装置の制御方法であって、
    前記情報処理装置が有する特定部が、前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定し、
    前記情報処理装置が有する決定部が、前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定し、
    前記情報処理装置が有する調整部が、前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整する
    情報処理装置の制御方法。
  8. データ信号とストローブ信号との位相関係を調整する情報処理装置の制御プログラムであって、
    前記情報処理装置が有する特定部に、前記データ信号の値を判定するための複数のリファレンス値の候補ごとに、前記ストローブ信号に従って前記データ信号が有効に取得される、前記データ信号と前記ストローブ信号との1以上の位相差を特定させ、
    前記情報処理装置が有する決定部に、前記複数のリファレンス値の候補ごとに特定された前記1以上の位相差に基づいて、前記データ信号を有効に取得できる期間が最も長いと推定されるリファレンス値を決定させ、
    前記情報処理装置が有する調整部に、前記決定されたリファレンス値に対応する期間に基づいて、前記データ信号と前記ストローブ信号との前記位相関係を調整させる
    情報処理装置の制御プログラム。
JP2015075748A 2015-04-02 2015-04-02 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法 Active JP6387883B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015075748A JP6387883B2 (ja) 2015-04-02 2015-04-02 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法
US15/088,459 US9514794B2 (en) 2015-04-02 2016-04-01 Information processing apparatus, information processing system and phase adjusting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015075748A JP6387883B2 (ja) 2015-04-02 2015-04-02 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2016197275A JP2016197275A (ja) 2016-11-24
JP6387883B2 true JP6387883B2 (ja) 2018-09-12

Family

ID=57017709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015075748A Active JP6387883B2 (ja) 2015-04-02 2015-04-02 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US9514794B2 (ja)
JP (1) JP6387883B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102378384B1 (ko) * 2017-09-11 2022-03-24 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법
JP6962130B2 (ja) 2017-10-24 2021-11-05 富士通株式会社 データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法
US12009023B2 (en) 2019-05-24 2024-06-11 Intel Corporation Training for chip select signal read operations by memory devices
JP7392477B2 (ja) * 2020-01-07 2023-12-06 富士通株式会社 キャリブレーション方法及び情報処理装置
US20240079054A1 (en) 2022-09-02 2024-03-07 Yangtze Memory Technologies Co., Ltd. Input/output reference voltage training method in three-dimensional memory devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05342085A (ja) 1992-06-09 1993-12-24 Mitsubishi Electric Corp メモリアクセス制御回路
JP2003099321A (ja) 2001-09-21 2003-04-04 Ricoh Co Ltd メモリ制御装置
US7171321B2 (en) * 2004-08-20 2007-01-30 Rambus Inc. Individual data line strobe-offset control in memory systems
US7123524B1 (en) * 2005-05-13 2006-10-17 Infineon Technologies Ag Input circuit having updated output signal synchronized to clock signal
JP5023539B2 (ja) * 2006-04-11 2012-09-12 富士通セミコンダクター株式会社 半導体装置及び信号処理方法
US7703063B2 (en) * 2007-08-17 2010-04-20 International Business Machines Corporation Implementing memory read data eye stretcher
US7991098B2 (en) 2007-10-31 2011-08-02 Micron Technology, Inc. Method and apparatus for training the reference voltage level and data sample timing in a receiver
KR20100068670A (ko) * 2008-12-15 2010-06-24 삼성전자주식회사 채널 스큐 보상 기능을 갖는 인터페이스 회로, 이를 구비한통신 시스템 및 채널 스큐 보상 방법
JP2011041140A (ja) * 2009-08-17 2011-02-24 Panasonic Corp データ受信回路
JP2011253501A (ja) 2010-06-04 2011-12-15 Renesas Electronics Corp 半導体装置

Also Published As

Publication number Publication date
US9514794B2 (en) 2016-12-06
JP2016197275A (ja) 2016-11-24
US20160293237A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
JP6387883B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法
US11195571B2 (en) Memory device and method with data input
US8780655B1 (en) Method and apparatus for aligning a clock signal and a data strobe signal in a memory system
US9811273B1 (en) System and method for reliable high-speed data transfer in multiple data rate nonvolatile memory
US9001594B2 (en) Apparatuses and methods for adjusting a path delay of a command path
US8081527B1 (en) Per-bit de-skew mechanism for a memory interface controller
JP5369430B2 (ja) 可変遅延回路,メモリ制御回路,遅延量設定装置,遅延量設定方法および遅延量設定プログラム
US20120269015A1 (en) Command paths, apparatuses, memories, and methods for providing internal commands to a data path
KR20200052562A (ko) 스토리지 장치
KR20110018750A (ko) 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
KR102646905B1 (ko) 온 다이 터미네이션 회로, 이를 구비하는 메모리 장치 및 메모리 시스템
US9244873B2 (en) Semiconductor device and method of operating the same
JP2020009309A (ja) メモリシステム
CN114840137A (zh) 用于在动态随机存取存储器上执行写入训练的技术
KR102478044B1 (ko) 반도체 시스템
CN101620880A (zh) 存储器控制器、pcb、计算机系统及存储器调整方法
US10861514B2 (en) Data transmission and reception system, data transmission and reception device, and method of controlling data transmission and reception system
KR102455370B1 (ko) 데이터 아이를 개선하는 전송 회로, 이를 이용하는 반도체 장치 및 반도체 시스템
KR100594294B1 (ko) 메모리 장치 및 데이터 트레이닝 방법
US20190042519A1 (en) Host Controller Apparatus, Host Controller Device, and Method for a Host Controller for Determining Information Related to a Time Shift for Transmitting Instructions on a Command and Address Bus, Host Controller and Computer System
CN108664424B (zh) 一种确定最优延时的方法及设备
US11579966B1 (en) Semiconductor system related to performing a training operation
CN117251322A (zh) 一种用于定位数据眼图的训练装置及方法
US11947382B2 (en) Measuring a timing margin of a memory device using an internal oscilloscope
US20240219956A1 (en) Measuring a timing margin of a memory device using an internal oscilloscope

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

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: 20180717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180730

R150 Certificate of patent or registration of utility model

Ref document number: 6387883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150