(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】キャリブレーション方法及び情報処理装置
(51)【国際特許分類】
G06F 12/00 20060101AFI20231129BHJP
【FI】
G06F12/00 564D
(21)【出願番号】P 2020001090
(22)【出願日】2020-01-07
【審査請求日】2022-09-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】飯田 時延
【審査官】北村 学
(56)【参考文献】
【文献】特開2016-197275(JP,A)
【文献】特開2006-234821(JP,A)
【文献】特開2012-194686(JP,A)
【文献】米国特許出願公開第2017/0323222(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
信号の値を判定するのに用いるリファレンス値と、前記信号のメモリアクセスのディレイ値の組合せごとに前記信号の伝送結果を取得し、
前記伝送結果が
マッピングされるマトリクスにおいて前記伝送結果が伝送成功である前記組合せ
の各々について、前記伝送結果が伝送成功である組合せおよび前記伝送結果が伝送失敗である組合せの境界までの範囲に含まれる組合せ数を、
前記マトリクスにおける前記リファレンス値の軸
の正負の方向に対応する2方向および
前記リファレンス値の軸と直交する前記ディレイ値の軸
の正負の方向に対応する2方向を含む4方向ごとに算出し、
前記伝送結果が伝送成功である組合せのうち、前記4方向ごとに算出された組合せ数の中の最小値が最大値となる最大組合せを抽出し、
前記最大組合せのうち前記4方向の組合せ数のバランスが所定の基準を満たす最大組合せを、前記信号のメモリアクセスのタイミングおよび前記リファレンス値を決定するデシジョンポイントに設定する、
処理をプロセッサが実行するキャリブレーション方法。
【請求項2】
前記抽出する処理は、前記基準を満たす最大組合せが存在しない場合、前記最小値が前記最大値に準ずる準最大値となる準最大組合せを抽出し、
前記設定する処理は、前記準最大組合せのうち前記4方向の組合せ数のバランスが所定の基準を満たす準最大組合せを前記デシジョンポイントに設定することを特徴とする請求項1に記載のキャリブレーション方法。
【請求項3】
前記設定する処理は、
前記4方向の組合せ数のうち前記リファレンス値の軸の正負の方向に対応する2方向の組合せ数
の差と、
前記4方向の組合せ数のうち前記ディレイ値の軸の正負の方向に対応する2方向の組合せ数
の差との合計値が所定の閾値以下である最大組合せを前記デシジョンポイントに設定することを特徴とする請求項1又は2に記載のキャリブレーション方法。
【請求項4】
前記取得する処理は、複数のメモリモジュールのランクごとに前記リファレンス値および前記ディレイ値の前記組合せ別の前記信号の前記伝送結果を取得し、
前記抽出する処理は、前記複数のメモリモジュールの各ランクで共通して前記伝送結果が伝送成功である組合せに対応する共通組合せを用いて前記最大組合せを抽出することを特徴とする請求項1に記載のキャリブレーション方法。
【請求項5】
信号の値を判定するのに用いるリファレンス値と、前記信号のメモリアクセスのディレイ値の組合せごとに前記信号の伝送結果を取得する取得部と、
前記伝送結果が
マッピングされるマトリクスにおいて前記伝送結果が伝送成功である前記組合せ
の各々について、前記伝送結果が伝送成功である組合せおよび前記伝送結果が伝送失敗である組合せの境界までの範囲に含まれる組合せ数を、
前記マトリクスにおける前記リファレンス値の軸
の正負の方向に対応する2方向および
前記リファレンス値の軸と直交する前記ディレイ値の軸
の正負の方向に対応する2方向を含む4方向ごとに算出する算出部と、
前記伝送結果が伝送成功である組合せのうち、前記4方向ごとに算出された組合せ数の中の最小値が最大値となる最大組合せを抽出する抽出部と、
前記最大組合せのうち前記4方向の組合せ数のバランスが所定の基準を満たす最大組合せを、前記信号のメモリアクセスのタイミングおよび前記リファレンス値を決定するデシジョンポイントに設定する設定部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャリブレーション方法及び情報処理装置に関する。
【背景技術】
【0002】
システムボード上では、CPU(Central Processing Unit)によるメモリへの書き込み及び読み出しに用いられるデシジョンポイントを調整するキャリブレーションが行われる。例えば、データ信号及びデータデシジョン信号のタイミングと、データ信号の値を判定するリファレンス電圧との最適値がデシジョンポイントとして設定される。このようなキャリブレーションに関する技術として、いわゆるアイパターンを用いる技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2016-197275号公報
【文献】米国特許第7991098号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の技術は、いずれもアイパターンのシルエットの形状が上下および左右に対称である円または楕円であることを前提するものに過ぎないので、デシジョンポイントを適切に設定するのに限界がある。
【0005】
1つの側面では、本発明は、デシジョンポイントを適切に設定できるキャリブレーション方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
キャリブレーション方法の一態様では、信号の値を判定するのに用いるリファレンス値と、前記信号のメモリアクセスのディレイ値の組合せごとに前記信号の伝送結果を取得し、前記伝送結果が伝送成功である前記組合せのうち前記伝送結果が伝送成功である組合せと前記伝送結果が伝送失敗である組合せの境界までの差分であって前記リファレンス値の差分及び前記ディレイ値の差分の最小値が最大値となる最大ポイントを抽出し、前記最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす最大ポイントをデシジョンポイントに設定する、処理をプロセッサが実行する。
【発明の効果】
【0007】
デシジョンポイントを適切に設定できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、システムボードの外観の一例を示す模式図である。
【
図2】
図2は、メモリアクセスのトポロジ例を示す図である。
【
図3】
図3は、アイパターンの一例を示す図である。
【
図4】
図4は、アイパターンの一例を示す図である。
【
図5】
図5は、アイパターンの一例を示す図である。
【
図6】
図6は、共通アイパターンの一例を示す図である。
【
図7】
図7は、従来技術1に係るキャリブレーション処理の手順を示すフローチャートである。
【
図8】
図8は、アイパターンの一例を示す図である。
【
図9】
図9は、アイパターンの一例を示す図である。
【
図12】
図12は、デシジョンポイントの設定方法の一例を示す図である。
【
図13】
図13は、共通アイパターンの他の一例を示す図である。
【
図14】
図14は、従来技術2に係るキャリブレーション処理の手順を示すフローチャートである。
【
図15】
図15は、第1の中心ポイントの抽出方法の一例を示す図である。
【
図16】
図16は、第2の中心ポイントの抽出方法の一例を示す図である。
【
図17】
図17は、デシジョンポイントの設定方法の一例を示す図である。
【
図18】
図18は、従来技術1におけるキャリブレーションの失敗事例を示す図である。
【
図19】
図19は、従来技術2におけるキャリブレーションの失敗事例を示す図である。
【
図20】
図20は、実施例1に係るキャリブレーション処理の手順を示すフローチャートである。
【
図21】
図21は、従来技術1及び実施例1のデシジョンポイントの設定例を示す図である。
【
図22】
図22は、従来技術2及び実施例1のデシジョンポイントの設定例を示す図である。
【
図24】
図24は、実施例1に係る情報処理装置の構成例を示す図である。
【
図25】
図25は、実施例1に係るキャリブレーション処理の手順を示す詳細フロー(1)である。
【
図26】
図26は、実施例1に係るキャリブレーション処理の手順を示す詳細フロー(2)である。
【
図28】
図28は、上側コード数のマップの一例を示す図である。
【
図29】
図29は、下側コード数のマップの一例を示す図である。
【
図30】
図30は、左側タップ数のマップの一例を示す図である。
【
図31】
図31は、右側タップ数のマップの一例を示す図である。
【
図32】
図32は、余白最小値のマップの一例を示す図である。
【
図33】
図33は、上下のバランス値のマップの一例を示す図である。
【
図34】
図34は、左右のバランス値のマップの一例を示す図である。
【
図35】
図35は、上下左右のバランス値のマップの一例を示す図である。
【
図36】
図36は、共通アイパターンの他の一例を示す図である。
【
図37】
図37は、余白最小値のマップの一例を示す図である。
【
図38】
図38は、上下のバランス値のマップの一例を示す図である。
【
図39】
図39は、左右のバランス値のマップの一例を示す図である。
【
図40】
図40は、上下左右のバランス値のマップの一例を示す図である。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して本願に係るキャリブレーション方法及び情報処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0010】
[用語の一側面]
以下、データ信号のことを「DQ信号」と記載すると共に、データデシジョン信号(データストローブ信号)のことを「DQS信号」と記載する場合がある。さらに、DQ信号のHレベル及びLレベルの判定時に閾値として参照される電圧のことを「リファレンス電圧」と記載する場合がある。さらに、DQ信号及びDQS信号の位相のことを「タイミング」と記載すると共に、DQ信号/DQS信号の位相の遅延量のことを「DQディレイタップ/DQSディレイタップ」と記載する場合がある。
【0011】
以下で言う「アイパターン」は、あくまで一例として、DQ信号のリファレンス電圧およびDQS信号のディレイタップの組合せごとにDQ信号の伝送成功または伝送失敗が判定されることによって作成される。以下、あくまで一例として、Vref0~Vref31の範囲でDQ信号のリファレンス電圧が制御されると共に、DQS信号の1周期分の位相が32分割された時間長を刻み幅として-16~15の範囲でDQS信号のディレイタップが制御される例を挙げる。この場合、Vref0~Vref31の範囲のリファレンス電圧及び-16~15の範囲のDQSディレイタップの計1024の組合せをデシジョンポイントの候補とすることができる。これら1024の組合せに対応するポイントごとに、DQ信号の伝送エラーの有無を表す2値、例えば0または1がプロットされることにより、アイパターンが作成される。
【0012】
以下では、あくまで一例として、リファレンス電圧を縦軸とし、DQSディレイタップを横軸とし、DQ信号の伝送エラーの有無がマッピングされる「アイパターン」を例示することとする。そして、1つのDQSディレイタップの値に対応するアイパターン上のリファレンス電圧の範囲を識別する際、当該範囲のことを「コード高」と記載すると共に当該範囲に含まれるポイントの数のことを「コード数」と記載する場合がある。また、1つのリファレンス電圧の値に対応するアイパターン上のDQSディレイタップの範囲を識別する際、当該範囲のことを「タップ幅」と記載すると共に当該範囲に含まれるポイントの数のことを「タップ数」と記載する場合がある。
【0013】
[背景の一側面]
大規模メモリ構成のシステムボード上では、1チャネルあたりの記憶容量を向上させる側面から、1つのチャネルに複数のメモリモジュールが接続される。
図1は、システムボードの外観の一例を示す模式図である。
図1には、あくまで一例として、4チャネルのメモリチャネル及びスロットA~スロットCの3つのメモリスロットが搭載されたシステムボード1aが示されている。これらスロットA~スロットCには、Rank0及びRank1の2ランクのメモリモジュールM2、M1及びM0が挿入されている。このように、CPU10は、メモリコントローラ20を介して、1つのチャネルあたり3スロット及び2ランクの総ランク6のメモリモジュールM2、M1及びM0を使用する。
【0014】
ところが、複数のメモリモジュールが伝送路に接続されることが一因となって伝送路上の分岐、いわゆるスタブが増加する。
図2は、メモリアクセスのトポロジ例を示す図である。
図2には、3つのメモリモジュールM0~M2のうちメモリモジュールM0に対するアクセスが行われる場合に各分岐で発生する反射波が示されている。
図2に示すように、各分岐では、伝送路およびメモリモジュールの間でインピーダンス不整合が起き、伝送される信号の多重反射が生じる。このような反射波の影響が一因となってDQ信号の波形形状が変形し、リファレンス電圧およびDQSディレイタップの最適値をデシジョンポイントに調整することが困難な波形となる。
【0015】
図3~
図5は、アイパターンの一例を示す図である。
図3~
図5には、あくまで一例として、Vref0~Vref31の範囲のリファレンス電圧を縦軸とし、-16~15の範囲のDQSディレイタップを横軸とするマトリクスが示されている。さらに、
図3~
図5に示すマトリクスには、
図1に示されたスロットA~スロットCからメモリコントローラ20へのDQ信号の読み出し結果がプロットされる。このように読み出し結果がプロットされる場合、あくまで一例として、DQ信号の伝送エラーが有るポイントには、「1」がプロットされる一方で、DQ信号の伝送エラーが無いポイントには、「0」がプロットされる。なお、
図3には、CPU10の遠端に位置するスロットAに挿入されたメモリモジュールM2上のRank0に対応するメモリブロックからの読み出し結果が示されている。また、
図4には、スロットBに挿入されたメモリモジュールM1上のRank0に対応するメモリブロックからの読み出し結果が示されている。さらに、
図5には、CPU10の近端に位置するスロットCに挿入されたメモリモジュールM0上のRank0に対応するメモリブロックからの読み出し結果が示されている。
【0016】
図3~
図5に示すように、DQ信号の読み出し結果がプロットされる結果、ハッチングで示された「0」のポイントが連なる領域がアイパターンとして現れる。
図3~
図5に示すアイパターンによれば、メモリモジュールM2、メモリモジュールM1及びメモリモジュールM0ごとにアイパターンの形状が異なることが明らかである。さらに、ここでは図示を省略したが、同一のメモリモジュールのランクごとにもアイパターンの形状に差が生じる場合がある。これらのことから、プロセッサ及びメモリの間のキャリブレーション時には、スロット及びランクごとにアイパターンが取得されるのが好ましいことがわかる。
【0017】
これらスロットAのRank0、スロットBのRank0及びスロットCのRank0の各ランクに対応するアイパターンから作成される各ランク共通のアイパターンがキャリブレーションに用いられる。
【0018】
図6は、共通アイパターンの一例を示す図である。
図6にも、Vref0~Vref31の範囲のリファレンス電圧を縦軸とし、-16~15の範囲のDQSディレイタップを横軸とするマトリクスが示されている。
図6に示すマトリクスには、当該マトリクス上のポイントごとに、
図3に示された読み出し結果の値、
図4に示された読み出し結果の値及び
図5に示された読み出し結果の値の合計値がプロットされている。なお、
図6では、スロットAのRank0、スロットBのRank0及びスロットCのRank0の合計3ランク分のメモリブロックがメモリコントローラ20によりコントロールされる例を挙げる。
【0019】
例えば、合計値「0」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックの全てでDQ信号の伝送エラーが観測されていないことを意味する。また、合計値「1」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックのうちいずれか1つでDQ信号の伝送エラーが観測されたことを意味する。また、合計値「2」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックのうち2つでDQ信号の伝送エラーが観測されたことを意味する。また、合計値「3」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックの全てでDQ信号の伝送エラーが観測されたことを意味する。
【0020】
このように、
図6に薄いハッチングで示された合計値「0」のポイントが連なる領域がスロットAのRank0、スロットBのRank0及びスロットCのRank0の3ランクに対応するメモリブロックの全てで共通するアイパターンとして現れる。以下、メモリコントローラ20がコントロールする全てのメモリブロックで共通するアイパターンのことを「共通アイパターン」と記載することがある。
【0021】
ここで、キャリブレーションに用いるDQ信号のサンプリング数が十分に大きければ、マトリクス上でDQ信号の伝送成功が観測される範囲を収束させることができるので、伝送路のノイズの影響等も確認できる共通アイパターンを作成することが可能である。例えば、DQ信号の伝送成功が観測される範囲が収束された場合、
図6に濃いハッチングで示された領域が共通アイパターンとして得られる。このような共通アイパターンがキャリブレーションに用いられる場合、共通アイパターン内のいずれのポイントがデシジョンポイントに設定される場合でもシステムの動作を安定させることができる。
【0022】
ところが、システムの実装時には、キャリブレーションに用いるDQ信号のサンプリング数を必ずしも十分に捻出できるとは限らない。例えば、電源投入から起動までの所要時間が長期化するのを避ける一面から、短時間のキャリブレーションが求められることがある。このような実装を実現する側面から、DQ信号のサンプリング数が削減される場合がある。そして、DQ信号のサンプリング数が削減される場合、キャリブレーション時には、必ずしも
図6に濃いハッチングで示された共通アイパターンが得られるとは限らず、
図6に薄いハッチングで示された共通アイパターンしか得られない場合もある。
【0023】
このように、
図6に薄いハッチングで示された共通アイパターンしか得られない場合、DQ信号の伝送成功が観測される範囲が収束しきっていない。このため、
図6に薄いハッチングで示された共通アイパターンを用いてキャリブレーションが行われる場合、共通アイパターン内のいずれのポイントがデシジョンポイントに設定されてもよいことにはならない。なぜなら、DQ信号のサンプリング数の増加によって伝送路等のノイズの影響がDQ信号の伝送失敗として観測される範囲が拡大する余地が残されているからである。この結果、
図6に示す例で言えば、DQ信号の伝送成功が観測される範囲は、
図6に薄いハッチングで示された範囲から
図6に濃いハッチングで示された範囲まで縮小する可能性があるからである。
【0024】
このため、伝送路等のノイズの影響によってDQ信号の伝送成功が観測される範囲が縮小しても伝送失敗が発生するのを抑制する側面から、
図6に薄いハッチングで示された共通アイパターンの中央にデシジョンポイントを設定することが好ましい。
【0025】
このようにアイパターンの中心にデジジョンポイントを設定することを目的とする技術の一例として、下記に説明する従来技術1および従来技術2が挙げられる。
【0026】
[従来技術1]
例えば、従来技術1では、共通アイパターン上でDQSディレイタップのタップ数が最大となるリファレンス電圧と、共通アイパターン上の最大タップ幅に対応する範囲のDQSディレイタップの中心とをデシジョンポイントに設定する。
【0027】
図7は、従来技術1に係るキャリブレーション処理の手順を示すフローチャートである。
図7に示すように、DQ信号のリファレンス電圧およびDQS信号のディレイタップの組合せごとにDQ信号の伝送成功または伝送失敗を判定することにより、ランク別のアイパターンが取得される(ステップS11)。
【0028】
図8~
図10は、アイパターンの一例を示す図である。
図8~
図10には、あくまで一例として、Vref0~Vref31の範囲のリファレンス電圧を縦軸とし、-16~15の範囲のDQSディレイタップを横軸とするマトリクスが示されている。
図8には、スロットAに挿入されたメモリモジュールM2上のRank0に対応するメモリブロックからの読み出し結果が示されている。また、
図9には、スロットBに挿入されたメモリモジュールM1上のRank0に対応するメモリブロックからの読み出し結果が示されている。さらに、
図10には、スロットBに挿入されたメモリモジュールM1上のRank1に対応するメモリブロックからの読み出し結果が示されている。
【0029】
図8~
図10に示すように、DQ信号の読み出し結果がプロットされる結果、ハッチングで示された伝送成功に対応する「0」のポイントが連なる領域がアイパターンとして現れる。
図8~
図10に示すアイパターンによれば、メモリモジュールM2及びメモリモジュールM1ごとにアイパターンの形状が異なると共に、同一のメモリモジュールM1のランクごとにもアイパターンの形状に差が生じていることが明らかである。
【0030】
ステップS11の実行後、ステップS11でランクごとに作成されたアイパターンを同一のチャネルごとに足し合わせることにより、総ランク(全スロット及び全ランク)共通のアイパターンが作成される(ステップS12)。
図11は、共通アイパターンの一例を示す図である。
図11に示すマトリクスには、当該マトリクス上のポイントごとに、
図8に示された読み出し結果の値、
図9に示された読み出し結果の値及び
図10に示された読み出し結果の値を足し合わせた合計値がプロットされている。なお、
図11では、スロットAのRank0、スロットBのRank0及びスロットBのRank1の合計3ランク分のメモリブロックがメモリコントローラ20によりコントロールされる例を挙げる。
【0031】
例えば、合計値「0」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックの全てでDQ信号の伝送エラーが観測されていないことを意味する。また、合計値「1」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックのうちいずれか1つでDQ信号の伝送エラーが観測されたことを意味する。また、合計値「2」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックのうち2つでDQ信号の伝送エラーが観測されたことを意味する。また、合計値「3」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックの全てでDQ信号の伝送エラーが観測されたことを意味する。
【0032】
このように、
図11にハッチングで示された合計値「0」のポイントが連なる領域がスロットAのRank0、スロットBのRank0及びスロットBのRank1の3ランクに対応するメモリブロックの全てで共通する共通アイパターンとして作成される。
【0033】
ステップS12の実行後、ステップS12で作成された共通アイパターン上でDQSディレイタップのタップ数が最大となるリファレンス電圧が識別される(ステップS13)。
【0034】
図12は、デシジョンポイントの設定方法の一例を示す図である。
図12には、
図11に示された共通アイパターンが示されると共に、共通アイパターン上の最大タップ幅に対応するリファレンス電圧が枠線で示されている。
図12に枠線で示すように、共通アイパターンでは、-15から7までのDQSディレイタップの範囲に対応するタップ数「23」が最大タップ幅となる。このように、ステップS13では、共通アイパターン上の最大タップ幅「23」に対応するリファレンス電圧「Vref15」が識別される。
【0035】
このとき、最大タップ幅が複数存在しない場合(ステップS14No)、ステップS13で識別されたリファレンス電圧がデシジョンポイントに設定される(ステップS18)。例えば、
図12に示す共通アイパターンの例で言えば、最大タップ幅は、リファレンス電圧「Vref15」の1つだけであるので、Vref15がデシジョンポイントのリファレンス電圧として設定される。
【0036】
一方、最大タップ幅が複数存在する場合(ステップS14Yes)、複数の最大タップ幅に対応する複数のリファレンス電圧の中央値が算出される(ステップS15)。このとき、中央値が1つであれば(ステップS16No)、複数の最大タップ幅に対応する複数のリファレンス電圧の中央値がデシジョンポイントに設定される(ステップS18)。
【0037】
ここで、中央値が複数存在する場合(ステップS16Yes)、最大タップ幅のリファレンス電圧の上下に隣接するリファレンス電圧のうちタップ幅が大きい側の中央値が選択される(ステップS17)。そして、ステップS17で選択されたリファレンス電圧の中央値がデシジョンポイントに設定される(ステップS18)。
【0038】
図13は、共通アイパターンの他の一例を示す図である。
図13には、
図11に示された共通アイパターンとは異なる他の共通アイパターンが示されている。
図13に示す共通アイパターンの例で言えば、Vref12~Vref15の4つのリファレンス電圧でタップ数がいずれも「9」となり、最大タップ幅となる。この場合、4つのリファレンス電圧の中央値として、Vref13及びVref14の2つのリファレンス電圧が算出される。この場合、
図13に細い枠線で示された通り、Vref12の下側に隣接するVref11における共通アイパターンのタップ数「4」と、Vref15の上側に隣接するVref16における共通アイパターンのタップ数「5」とが比較される。これら両者を比較すると、上側に隣接するVref16におけるタップ数「5」が下側に隣接するVref11におけるタップ数「4」よりも大きい。この結果、
図13に太い枠線で示された通り、2つの中央値に対応するVref13及びVref14のうち上側に対応するVref14が選択された上でデシジョンポイントのリファレンス電圧に設定される。
【0039】
ステップS18の実行後、ステップS18で設定されたリファレンス電圧に対応する共通アイパターン上のDQSディレイタップの範囲の中心となるDQSディレイタップがデシジョンポイントのタイミングとして設定される(ステップS19)。例えば、
図12に示す共通アイパターンの例で言えば、共通アイパターンの最大タップ幅に対応するリファレンス電圧「Vref15」では、-15から7までの範囲のDQSディレイタップが共通アイパターンに含まれる。この場合、
図12に白黒の反転表示で示された通り、左端からのタップ数および右端からのタップ数がいずれも「11」となる中心のDQSディレイタップ「-4」がデシジョンポイントのタイミングに設定される。
【0040】
[従来技術2]
従来技術2では、共通アイパターン上でリファレンス電圧のコード数が最大となるDQSディレイタップに対応するリファレンス電圧の範囲の中心を第1の中心ポイントとして算出する。また、従来技術2では、共通アイパターン上でDQSディレイタップのタップ数が最大となるリファレンス電圧に対応するDQSディレイタップの範囲の中心を第2の中心ポイントとして算出する。その上で、従来技術2では、第1の中心ポイントおよび第2の中心ポイントの中心をデシジョンポイントに設定する。
【0041】
図14は、従来技術2に係るキャリブレーション処理の手順を示すフローチャートである。
図14に示すように、DQ信号のリファレンス電圧およびDQS信号のディレイタップの組合せごとにDQ信号の伝送成功または伝送失敗を判定することにより、ランク別のアイパターンが取得される(ステップS21)。
【0042】
ステップS21の実行後、ステップS21でランクごとに作成されたアイパターンを同一のチャネルごとに足し合わせることにより、総ランク(全スロット及び全ランク)共通のアイパターンが作成される(ステップS22)。
【0043】
続いて、ステップS21でアイパターンの作成が行われたDQSディレイタップの範囲、例えば-16~15の範囲のうち未選択のDQSディレイタップが1つ選択される(ステップSA23)。そして、ステップSA23で選択されたDQSディレイタップにおける共通アイパターン上のコード高が算出される(ステップSA24)。その後、全てのDQSディレイタップが選択されるまで(ステップSA25No)、上記のステップSA23及び上記のステップSA24の処理が繰り返し実行される。
【0044】
そして、全てのDQSディレイタップが選択された場合(ステップSA25Yes)、DQSディレイタップのうち共通アイパターン上のコード高が最大となるDQSディレイタップが抽出される(ステップSA26)。その上で、ステップSA26で抽出されたDQSディレイタップに対応する共通アイパターン上のコード高でリファレンス電圧の中心となるポイントが第1の中心ポイントとして抽出される(ステップSA27)。
【0045】
図15は、第1の中心ポイントの抽出方法の一例を示す図である。
図15には、共通アイパターンが示されると共に、共通アイパターン上の最大コード高に対応するDQSディレイタップが枠線で示されている。
図15に枠線で示された通り、共通アイパターンでは、Vref10からVref26までのコード高に対応するコード数「17」が最大コード高となるので、DQSディレイタップ「-2」が抽出される。そして、共通アイパターンの最大コード高に対応するDQSディレイタップ「-2」では、Vref10からVref26までの範囲のリファレンス電圧が共通アイパターンに含まれる。この場合、
図15に白黒の反転表示で示された通り、下側からのコード数及び上側からのコード数がいずれも「8」となる中心、すなわちDQSディレイタップ「-2」及びリファレンス電圧「Vref18」のポイントAが第1の中心ポイントとして抽出される。
【0046】
また、ステップS21でアイパターンの作成が行われたリファレンス電圧の範囲、例えばVref0~Vref31の範囲のうち未選択のリファレンス電圧が1つ選択される(ステップSB23)。そして、ステップSB23で選択されたリファレンス電圧における共通アイパターン上のタップ幅が算出される(ステップSB24)。その後、全てのリファレンス電圧が選択されるまで(ステップSB25No)、上記のステップSB23及び上記のステップSB24の処理が繰り返し実行される。
【0047】
そして、全てのリファレンス電圧が選択された場合(ステップSB25Yes)、リファレンス電圧のうち共通アイパターン上のタップ幅が最大となるリファレンス電圧が抽出される(ステップSB26)。その上で、ステップSB26で抽出されたリファレンス電圧に対応する共通アイパターン上のタップ幅でDQSディレイタップの中心となるポイントが第2の中心ポイントとして抽出される(ステップSB27)。
【0048】
図16は、第2の中心ポイントの抽出方法の一例を示す図である。
図16には、
図15に示された共通アイパターンと同一の共通アイパターンが示されると共に、共通アイパターン上の最大タップ幅に対応するリファレンス電圧が枠線で示されている。
図16に枠線で示された通り、共通アイパターンでは、-15から7までのタップ幅に対応するタップ数「23」が最大タップ幅となるので、リファレンス電圧「Vref15」が抽出される。そして、共通アイパターンの最大タップ幅に対応するリファレンス電圧「Vref15」では、-15から7までの範囲のDQSディレイタップが共通アイパターンに含まれる。この場合、
図16に白黒の反転表示で示された通り、左側からのタップ数及び右側からのタップ数がいずれも「11」となる中心、すなわちDQSディレイタップ「-4」及びリファレンス電圧「Vref15」のポイントBが第2の中心ポイントとして抽出される。
【0049】
その上で、第1の中心ポイント及び第2の中心ポイントの中心がデシジョンポイントに設定される(ステップS28)。
図17は、デシジョンポイントの設定方法の一例を示す図である。
図17には、
図15及び
図16に示された共通アイパターンと同一の共通アイパターンが示されている。さらに、
図17には、共通アイパターン上に第1の中心ポイントA及び第2の中心ポイントBが白黒の反転表示で示されると共に、第1の中心ポイントA及び第2の中心ポイントBの中心Cが枠線で囲って示されている。
図17に示すように、DQSディレイタップ「-2」及びリファレンス電圧「Vref18」の第1の中心ポイントAと、DQSディレイタップ「-4」及びリファレンス電圧「Vref15」の第2の中心ポイントBとの中心となるポイントCがデシジョンポイントに設定される。すなわち、DQSディレイタップ「-3」及びリファレンス電圧「Vref17」のポイントCがデシジョンポイントに設定される。
【0050】
[課題の一側面]
上記の従来技術1及び上記の従来技術2は、いずれもデシジョンポイントを適切に設定するのに限界がある。
【0051】
例えば、上記の従来技術1では、共通アイパターン上でDQSディレイタップの最大タップ幅となるリファレンス電圧に対して、セットアップ及びホールドが均等になるタイミング(最大タップ幅の中心)がデシジョンポイントに設定される。
【0052】
しかしながら、上記の従来技術1では、共通アイパターンの上下方向(高さ方向)のバランスが無視されるので、共通アイパターンの中心から上下方向にずれたポイントにデシジョンポイントが設定されてしまう事例が発生する。
【0053】
このような事例が発生する一因に共通アイパターンのシルエット形状が関連する。すなわち、上記の従来技術1は、共通アイパターンのシルエット形状が上下および左右に対称である円や楕円であることを前提とするものに過ぎないので、歪なシルエット形状を有する共通アイパターンにデシジョンポイントを適切に設定するのが困難である。
【0054】
図18は、従来技術1におけるキャリブレーションの失敗事例を示す図である。
図18には、歪なシルエット形状を有する共通アイパターンが示されると共に、当該共通アイパターン上で上記の従来技術1により設定されるデシジョンポイントが白黒の反転表示で示されている。
図18に白黒の反転表示で示すように、上記の従来技術1では、次のようにデシジョンポイントが設定される。すなわち、デシジョンポイントには、共通アイパターン上でDQSディレイタップが最大のタップ数「23」となるリファレンス電圧「Vref15」及び共通アイパターン上の最大タップ幅に対応する範囲の中心となるDQSディレイタップ「-4」のポイントが設定される。
【0055】
このように、上記の従来技術1では、最大タップ幅となるリファレンス電圧が共通アイパターンの中心より下側に位置する場合、デシジョンポイントのリファレンス電圧も共通アイパターンの中心より下側に設定される。例えば、
図18に示す例で言えば、デシジョンポイントから共通アイパターンの下側の境界までのコード数が、デシジョンポイントから共通アイパターンの上側の境界までのコード数よりも少なくなる。この結果、上記の従来技術1により設定されたデシジョンポイントでは、データの伝送エラーを抑制できない場合がある。
【0056】
例えば、
図18には、DQ信号のサンプリング数が増加するのに伴って共通アイパターンが
図18に薄いハッチングで示された範囲から
図18に濃いハッチングで示された範囲まで縮小する例が示されている。すなわち、
図18に濃いハッチングで示された共通アイパターンでは、
図18に薄いハッチングで示された共通アイパターンに比べて、上下6コードずつ、並びに、左右6コードずつ減少している。この場合、上記の従来技術1により設定されるデシジョンポイントは、
図18に濃いハッチングで示された共通アイパターン内に含まれずに外側に位置することになるので、データの伝送エラーが発生する可能性が生じる。
【0057】
また、上記の従来技術2では、共通アイパターン上の最大コード高の中心となる第1の中心ポイントAと、共通アイパターン上の最大タップ幅の中心となる第2の中心ポイントBとの中心となるポイントCがデシジョンポイントに設定される。
【0058】
しかしながら、上記の従来技術2においても、上記の従来技術1と同様、共通アイパターンのシルエット形状が上下および左右に対称である円や楕円であることを前提とするものに過ぎない。それ故、上記の従来技術2においても、歪なシルエット形状を有する共通アイパターンにデシジョンポイントを適切に設定するのが困難である。
【0059】
図19は、従来技術2におけるキャリブレーションの失敗事例を示す図である。
図19には、歪なシルエット形状を有する共通アイパターンが示されている。さらに、
図19には、共通アイパターン上で上記の従来技術2により算出される第1の中心ポイントA及び第2の中心ポイントBが太い枠線で示されると共に、デシジョンポイントCが白黒の反転表示で示されている。
【0060】
図19に細い枠線で示すように、共通アイパターンの最大コード高に対応するDQSディレイタップ「-9」では、Vref10からVref26までの範囲のリファレンス電圧が共通アイパターンに含まれる。この場合、
図19に太い枠線で示された通り、下側からのコード数及び上側からのコード数がいずれも「8」となる中心、すなわちDQSディレイタップ「-9」及びリファレンス電圧「Vref18」のポイントが第1の中心ポイントAとして抽出される。さらに、
図19に細い枠線で示すように、共通アイパターンの最大タップ幅に対応するリファレンス電圧「Vref15」では、-13から5までの範囲のDQSディレイタップが共通アイパターンに含まれる。この場合、
図19に太い枠線で示された通り、左側からのタップ数及び右側からのタップ数がいずれも「9」となる中心、すなわちDQSディレイタップ「-4」及びリファレンス電圧「Vref15」のポイントが第2の中心ポイントBとして抽出される。
【0061】
その上で、
図19に白黒の反転表示で示すように、DQSディレイタップ「-9」及びリファレンス電圧「Vref18」の第1の中心ポイントAと、DQSディレイタップ「-4」及びリファレンス電圧「Vref15」の第2の中心ポイントBとの中心となるポイントCがデシジョンポイントに設定される。すなわち、DQSディレイタップ「-7」及びリファレンス電圧「Vref16」のポイントCがデシジョンポイントに設定される。
【0062】
このように、上記の従来技術2では、共通アイパターンのシルエット形状が歪な形状である場合、共通アイパターンの中心からずれた位置にデシジョンポイントが設定される。例えば、
図19に示す例で言えば、デシジョンポイントから共通アイパターンの下側の境界までのコード数が、デシジョンポイントから共通アイパターンの上側の境界までのコード数よりも少なくなる。さらに、デシジョンポイントから共通アイパターンの左側の境界までのコード数が、デシジョンポイントから共通アイパターンの右側の境界までのコード数よりも少なくなる。この結果、上記の従来技術2により設定されたデシジョンポイントでも、データの伝送エラーを抑制できない場合がある。
【0063】
例えば、
図19には、DQ信号のサンプリング数が増加するのに伴って共通アイパターンが
図19に薄いハッチングで示された範囲から
図19に濃いハッチングで示された範囲まで縮小する例が示されている。すなわち、
図19に濃いハッチングで示された共通アイパターンでは、
図19に薄いハッチングで示された共通アイパターンに比べて、上下6コードずつ、並びに、左右6コードずつ減少している。この場合、上記の従来技術2により設定されるデシジョンポイントは、
図19に濃いハッチングで示された共通アイパターン内に含まれずに外側に位置することになるので、データの伝送エラーが発生する可能性が生じる。
【0064】
[課題解決のアプローチの一側面]
そこで、本実施例に係るキャリブレーション方法では、共通アイパターンの上下左右の境界までの余白最小値が最大となる最大ポイントのうち上下左右の余白数のバランスが所定の基準を満たす最大ポイントをデシジョンポイントに設定する。さらに、本実施例に係るキャリブレーション方法では、基準を満たす最大ポイントが存在しない場合、余白最小値が最大値に準ずる準最大ポイントのうち上下左右の余白数のバランスが所定の基準を満たす準最大ポイントをデシジョンポイントに設定する。
【0065】
図20は、実施例1に係るキャリブレーション処理の手順を示すフローチャートである。
図20に示すように、ステップS1では、共通アイパターンの上下左右の境界までのコード数及びタップ数の余白数のうちの最小値が最大となる最大ポイントが算出される。続いて、ステップS2では、ステップS1で算出された最大ポイントのうち上下左右の余白数のバランスが最良となる最大ポイントが抽出される。
【0066】
その後、ステップS3では、ステップS2で抽出された最大ポイントの上下左右の余白数のバランスが所定の基準を満たさない場合、ステップS1で算出された最大ポイントよりも余白数の最小値が所定値、例えば「1」小さい準最大ポイントを算出し、ステップS2が再実行される。
【0067】
そして、ステップS4では、ステップS3で基準を満たすことが確認された最大ポイント又は準最大ポイントが複数存在する場合、複数の最大ポイント又は複数の準最大ポイントのうち2つを用いて斜め方向のバランスが最良となる代表ポイントが算出される。
【0068】
その上で、ステップS5では、ステップS4で算出された代表ポイントの余白数の最小値がステップS1で算出された余白数の最小値と同数である場合、ステップS4で算出された代表ポイントがデシジョンポイントに設定される。なお、ステップS4で算出された代表ポイントの余白数の最小値がステップS1で算出された余白数の最小値よりも小さい場合、ステップS4で用いる2つのポイントのうち少なくとも1つを変更してステップS4が再実行される。
【0069】
図21~
図23を用いて、上記の従来技術1及び上記の従来技術2によるキャリブレーションと、本実施例によるキャリブレーションとを対比する。
【0070】
図21は、従来技術1及び実施例1のデシジョンポイントの設定例を示す図である。
図21には、
図18に示された共通アイパターンと同一の共通アイパターンが示されている。さらに、
図21に示す共通アイパターン上には、上記の従来技術1により設定されるデシジョンポイントが濃いハッチングで示されると共に、本実施例により設定されるデシジョンポイントが白黒の反転表示で示されている。
【0071】
これら両者の配置を比較すれば、上記の従来技術1により設定されるデシジョンポイントが共通アイパターンの中心よりも下側に位置するのに対し、本実施例により設定されるデシジョンポイントが共通アイパターンの略中心に位置することが明らかである。
【0072】
図22は、従来技術2及び実施例1のデシジョンポイントの設定例を示す図である。
図22には、
図19に示された共通アイパターンと同一の共通アイパターンが示されている。さらに、
図22に示す共通アイパターン上には、上記の従来技術2により設定されるデシジョンポイントが濃いハッチングで示されると共に、本実施例により設定されるデシジョンポイントが白黒の反転表示で示されている。
【0073】
これら両者の配置を比較すれば、上記の従来技術2により設定されるデシジョンポイントが共通アイパターンの中心よりも左下側に位置するのに対し、本実施例により設定されるデシジョンポイントが共通アイパターンの略中心に位置することが明らかである。
【0074】
図23は、上下左右の余白数の一例を示す図である。
図23には、
図21に示された従来技術1及び本実施例に係るデシジョンポイントごとに共通アイパターンの上下左右の境界までの余白数が示されている。
図21及び
図23に示すように、上記の従来技術1により設定されるデシジョンポイントでは、上下左右の余白数は次の通りとなる。すなわち、共通アイパターンの上側の境界までのコード数「10」、共通アイパターンの下側の境界までのコード数「5」、共通アイパターンの左側の境界までのタップ数「11」、共通アイパターンの右側の境界までのタップ数「11」となる。一方、本実施例により設定されるデシジョンポイントでは、上下左右の余白数は次の通りとなる。すなわち、共通アイパターンの上側の境界までのコード数「7」、共通アイパターンの下側の境界までのコード数「8」、共通アイパターンの左側の境界までのタップ数「10」、共通アイパターンの右側の境界までのタップ数「11」となる。
【0075】
ここで、従来技術1に係る上下左右の余白数および本実施例に係る上下左右の余白数の対比により、次のことが明らかである。例えば、従来技術1では、上側コード数が「10」であるのに対し、下側コード数が「5」であるので、デシジョンポイントの下側には上側の半分程度のマージンしかないことがわかる。一方、本実施例では、上側コード数が「7」であるのに対し、下側コード数が「8」であるので、デシジョンポイントの上側及び下側でコード数がほぼ同数であることがわかる。これらのことから、本実施例により設定されるデシジョンポイントは、上記の従来技術1により設定されるデシジョンポイントに比べて上下の余白数のバランスに優れていることが明らかである。さらに、上記の従来技術1に係るデシジョンポイントでは、
図23にハッチングで示された通り、上下左右の余白数の中で最もマージンが少ない下側コード数が「5」である。その一方で、本実施例に係るデシジョンポイントでは、
図23にハッチングで示された通り、上下左右の余白数の中で最もマージンが少ない上側コード数が「7」である。これらのことから、本実施例では、上記の従来技術1に比べて、上下左右のいずれの方向に共通アイパターンが縮小する状況にもロバスト性があるデシジョンポイントの設定が可能であることが明らかである。
【0076】
また、
図23には、
図22に示された従来技術2及び本実施例に係るデシジョンポイントごとに共通アイパターンの上下左右の境界までの余白数が示されている。
図22及び
図23に示すように、上記の従来技術2により設定されるデシジョンポイントでは、上下左右の余白数は次の通りとなる。すなわち、共通アイパターンの上側の境界までのコード数「9」、共通アイパターンの下側の境界までのコード数「6」、共通アイパターンの左側の境界までのタップ数「5」、共通アイパターンの右側の境界までのタップ数「12」となる。一方、本実施例により設定されるデシジョンポイントでは、上下左右の余白数は次の通りとなる。すなわち、共通アイパターンの上側の境界までのコード数「7」、共通アイパターンの下側の境界までのコード数「8」、共通アイパターンの左側の境界までのタップ数「8」、共通アイパターンの右側の境界までのタップ数「8」となる。
【0077】
ここで、従来技術2に係る上下左右の余白数および本実施例に係る上下左右の余白数の対比により、次のことが明らかである。例えば、従来技術2では、上側コード数が「9」であるのに対し、下側コード数が「6」であるので、デシジョンポイントの上側および下側の上下比で3:2程度の開きがあることがわかる。さらに、従来技術2では、左側タップ数が「5」であるのに対し、右側タップ数が「12」であるので、デシジョンポイントの左側には右側の半分以下のマージンしかないことがわかる。一方、本実施例では、上側コード数が「7」であるのに対し、下側コード数が「8」であるので、デシジョンポイントの上側及び下側でコード数がほぼ同数であることがわかる。さらに、本実施例では、左側タップ数が「8」であるのに対し、右側タップ数も「8」であるので、デシジョンポイントの左側及び右側でタップ数が同数であることがわかる。これらのことから、本実施例により設定されるデシジョンポイントは、上記の従来技術2により設定されるデシジョンポイントに比べて上下左右の余白数のバランスに優れていることが明らかである。さらに、上記の従来技術2に係るデシジョンポイントでは、
図23にハッチングで示された通り、上下左右の余白数の中で最もマージンが少ない左側タップ数が「5」である。その一方で、本実施例に係るデシジョンポイントでは、
図23にハッチングで示された通り、上下左右の余白数の中で最もマージンが少ない上側コード数が「7」である。これらのことから、本実施例では、上記の従来技術2に比べて、上下左右のいずれの方向に共通アイパターンが縮小する状況にもロバスト性があるデシジョンポイントの設定が可能であることが明らかである。
【0078】
以上のように、本実施例に係るキャリブレーション方法によれば、上記の従来技術1及び上記の従来技術2に比べて、デシジョンポイントを適切に設定することが可能になる。このため、メモリモジュールの搭載状況、プロセッサやメモリにおけるプロセスのばらつきなどの各種の要因によって共通アイパターンのシルエット形状が歪な形状に変形する場合でも、伝送エラーの発生を抑制できる。したがって、同一のメモリチャネルでメモリ容量、ランク、ベンダー等の特性が異なるメモリモジュールを搭載することが可能になる。
【0079】
[情報処理装置1の構成]
図24は、実施例1に係る情報処理装置1の構成例を示す図である。
図24に示すように、情報処理装置1は、CPU10と、メモリコントローラ20と、I/O(Input/Output)回路30と、伝送路Ch1~Chnと、メモリモジュールM0~Mnとを有する。なお、
図24には、あくまで一例として、CPU10及びメモリコントローラ20を個別に図示したが、CPU10はメモリコントローラ20を内蔵することとしてもかまわない。
【0080】
メモリコントローラ20は、n個のメモリモジュールM0~Mnに対するメモリアクセスを制御するコントローラである。メモリコントローラ20は、I/O回路30及び伝送路Ch1~Chnを介して、n個のメモリモジュールM0~Mnに接続される。このようなメモリモジュールM0~Mnの一例として、複数のDRAM(Dynamic Random Access Memory)チップを搭載するDIMM(Dual Inline Memory Module)などを搭載することができる。なお、
図24には、n個の伝送路Ch1~Chnごとにn個のメモリモジュールM0~Mnが接続される例を挙げたが、伝送路およびメモリモジュールは任意の数であってかまわない。さらに、
図24には、あくまで一例として、Rank0及びRank1のデュアルランクのメモリモジュールを例示したが、シングルランクやクアッドランクのメモリモジュールであってもかまわない。
【0081】
例えば、メモリコントローラ20は、CPU10等のハードウェアプロセッサからの制御に従ってDQ信号の生成、DQS信号の生成、並びに、DQ信号の読み出しの成功および失敗の判定などの各種の処理を行う。ここで、DQ信号の読み出しは、DQ信号、伝送路Ch1~Chm及びメモリモジュールM0~Mnのランクごとに実行された上でDQ信号の読み取り結果が図示しないレジスタ等に書き込まれる。
【0082】
ここで、
図24には、あくまで一例として、CPU10が図示しないROM(Read Only Memory)に格納されたプログラム、例えば上記のキャリブレーション方法を実現するキャリブレーションプログラムなどのファームウェアを実行する例が示されている。これはあくまで一例に過ぎず、当然のことながら、CPU10とは別のプロセッサ、例えばリモート管理デバイスとして機能するサービスプロセッサなどによりファームウェアが実行されることとしてもかまわない。
【0083】
このようなファームウェアが実行されることにより、
図24に示すように、情報処理装置1は、取得部11、抽出部12、判定部13および設定部14として機能する。
【0084】
取得部11は、メモリコントローラ20からDQ信号のリファレンス電圧およびDQS信号のディレイタップの組合せごとにDQ信号の伝送結果を取得する。このように、DQ信号の伝送結果がランク別に取得されることにより、ランク別のアイパターンが得られる。これらランク別のアイパターンを同一の伝送路ごとに足し合わせることにより、各ランクで共通する共通アイパターンが作成される。
【0085】
抽出部12は、共通アイパターンの上下左右の境界までの余白数の最小値が最大となる最大ポイントを抽出する。以下、共通アイパターンの上下左右の境界までの4つの余白数のうち最小値のことを「余白最小値」と記載する場合がある。判定部13は、最大ポイントの上下左右の余白数のバランスが所定の基準を満たすか否かを判定する。このとき、所定の基準を満たす最大ポイントが存在しない場合、抽出部12は、余白最小値が最大値に準ずる準最大ポイントを抽出する。設定部14は、所定の基準を満たす最大ポイント又は準最大ポイントをデシジョンポイントに設定する。
【0086】
[処理の流れ]
次に、本実施例に係る情報処理装置1の詳細な処理の流れについて説明する。
図25及び
図26は、実施例1に係るキャリブレーション処理の手順を示す詳細フロー(1)及び(2)である。このキャリブレーション処理は、あくまで一例として、情報処理装置1の電源投入やリセット時などに実行されるPOST(Power On Self-Test)の一環として実行することができる。
【0087】
図25に示すように、取得部11は、メモリコントローラ20からランク別のアイパターンを取得する(ステップS101)。あくまで一例として、スロットAのRank0、スロットBのRank0及びスロットBのRank1の合計3ランク分のメモリブロックがメモリコントローラ20によりコントロールされる例を挙げる。
【0088】
この場合、取得部11は、メモリコントローラ20から
図8~
図10に示された3つのアイパターンを取得することができる。例えば、
図8には、スロットAに挿入されたメモリモジュールM2上のRank0に対応するメモリブロックからの読み出し結果が示されている。さらに、
図9には、スロットBに挿入されたメモリモジュールM1上のRank0に対応するメモリブロックからの読み出し結果が示されている。さらに、
図10には、スロットBに挿入されたメモリモジュールM1上のRank1に対応するメモリブロックからの読み出し結果が示されている。
【0089】
図8~
図10に示すように、Vref0~Vref31の範囲のリファレンス電圧を縦軸とし、-16~15の範囲のDQSディレイタップを横軸とするマトリクスにDQ信号の読み出し結果がプロットされる。この結果、
図8~
図10にハッチングで示された伝送成功に対応する「0」のポイントが連なる領域がアイパターンとして現れる。
【0090】
図25の説明に戻り、取得部11は、ステップS11でランクごとに作成されたアイパターンを同一のチャネルごとに足し合わせることにより、総ランク(全スロット及び全ランク)共通のアイパターンを作成する(ステップS102)。
【0091】
例えば、
図8に示された読み出し結果の値、
図9に示された読み出し結果の値及び
図10に示された読み出し結果の値がマトリクス上のポイントごとに足し合わされる。例えば、合計値「0」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックの全てでDQ信号の伝送エラーが観測されていないことを意味する。また、合計値「1」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックのうちいずれか1つでDQ信号の伝送エラーが観測されたことを意味する。また、合計値「2」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックのうち2つでDQ信号の伝送エラーが観測されたことを意味する。また、合計値「3」がプロットされたポイントでは、メモリコントローラ20がコントロールする3つのメモリブロックの全てでDQ信号の伝送エラーが観測されたことを意味する。このように、
図11にハッチングで示された合計値「0」のポイントが連なる領域がスロットAのRank0、スロットBのRank0及びスロットBのRank1の3ランクに対応するメモリブロックの全てで共通する共通アイパターンとして作成される。
【0092】
そして、抽出部12は、DQSディレイタップ及びリファレンス電圧の組合せに対応するポイントを1つ選択する(ステップS103)。続いて、抽出部12は、ステップS103で選択されたポイントから共通アイパターンの上下左右の各方向の境界までの余白数を算出する(ステップS104)。なお、ステップS103では、マトリクス上の全てのポイントが選択される例を挙げたが、共通アイパターン外のポイントにおける余白数は全ての方向について「0」とし、共通アイパターン上のポイントに絞って選択を行うこととしてもかまわない。
【0093】
図27は、余白数の算出方法の一例を示す図である。
図27には、
図11に示された共通アイパターン上のポイントXが白黒の反転表示で示されている。
図27に示すように、DQSディレイタップ「-8」及びリファレンス電圧「Vref19」に位置するポイントXが選択中である場合、ポイントXの上下左右の4方向の余白数は次のように算出できる。
【0094】
例えば、ポイントXの上側コード数が算出される場合、ポイントXの上側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-8」及びリファレンス電圧「Vref20」のポイントからDQSディレイタップ「-8」及びリファレンス電圧「Vref24」のポイントまでの5つのポイントがインクリメントされる。この結果、ポイントXの上側コード数は「5」と求まる。
【0095】
また、ポイントXの下側コード数が算出される場合、ポイントXの下側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-8」及びリファレンス電圧「Vref18」のポイントからDQSディレイタップ「-8」及びリファレンス電圧「Vref10」のポイントまでの9つのポイントがインクリメントされる。この結果、ポイントXの上側コード数は「9」と求まる。
【0096】
さらに、ポイントXの左側タップ数が算出される場合、ポイントXの左側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-9」及びリファレンス電圧「Vref19」のポイントからDQSディレイタップ「-13」及びリファレンス電圧「Vref19」のポイントまでの5つのポイントがインクリメントされる。この結果、ポイントXの左側タップ数は「5」と求まる。
【0097】
また、ポイントXの右側タップ数が算出される場合、ポイントXの右側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-7」及びリファレンス電圧「Vref19」のポイントからDQSディレイタップ「8」及びリファレンス電圧「Vref19」のポイントまでの14個のポイントがインクリメントされる。この結果、ポイントXの右側タップ数は「14」と求まる。
【0098】
そして、DQSディレイタップ及びリファレンス電圧の全ての組合せに対応するマトリクス上の全てのポイントが選択されるまで(ステップS105No)、上記のステップS103及び上記のステップS104の処理が繰り返される。
【0099】
この結果、マトリクス上の各ポイントから共通アイパターンの上下左右の4方向の境界までの余白数が上側コード数、下側コード数、左側タップ数及び右側タップ数の4つのマップとして得られる。
【0100】
図28は、上側コード数のマップの一例を示す図である。
図29は、下側コード数のマップの一例を示す図である。
図30は、左側タップ数のマップの一例を示す図である。
図31は、右側タップ数のマップの一例を示す図である。
図28~
図31に示す4つのマップの各ポイントには、
図11に示されたマトリクス上のポイントごとに算出された上側コード数、下側コード数、左側タップ数及び右側タップ数がプロットされる。さらに、
図28~
図31に枠線で囲って示されたポイントXの例で言えば、
図27を用いて説明した通りに算出された上側コード数「5」が
図28に示す上側コード数のマップ上のポイントXの位置にマッピングされる。また、
図27を用いて説明した通りに算出された下側コード数「9」が
図29に示す下側コード数のマップ上のポイントXの位置にマッピングされる。さらに、
図27を用いて説明した通りに算出された左側タップ数「5」が
図30に示す左側タップ数のマップ上のポイントXの位置にマッピングされる。また、
図27を用いて説明した通りに算出された右側タップ数「14」が
図31に示す右側タップ数のマップ上のポイントXの位置にマッピングされる。
【0101】
図25の説明に戻り、マトリクス上の全てのポイントが選択された場合(ステップS105Yes)、抽出部12は、マトリクス上のポイントごとに上下左右の余白数のうち最小値を抽出する(ステップS106)。
【0102】
例えば、Vref0~Vref31の範囲のリファレンス電圧を縦軸とし、-16~15の範囲のDQSディレイタップを横軸とするマトリクス上のポイントごとに、次のような処理が実行される。すなわち、
図28に示された上側コード数、
図29に示された下側コード数、
図30に示された左側タップ数及び
図31に示された右側タップ数のうち最小値が余白最小値として抽出される。この結果、
図32に示す余白最小値のマップが得られる。
【0103】
図32は、余白最小値のマップの一例を示す図である。
図32には、
図28に示す上側コード数のマップ、
図29に示す下側コード数のマップ、
図30に示す左側タップ数のマップおよび
図31に示す右側タップ数のマップから作成された余白最小値のマップが示されている。例えば、
図32に枠線で示されたポイントXの例で言えば、
図28に示された上側コード数「5」、
図29に示された下側コード数「9」、
図30に示された左側タップ数「5」及び
図31に示された右側タップ数「14」のうち最小値「5」が余白最小値として抽出される。
【0104】
図25の説明に戻り、抽出部12は、ステップS106でポイントごとに抽出された余白最小値のうち最大値Pに対応する最大ポイントを抽出する(ステップS107)。例えば、
図32に示す余白最小値のマップの例で言えば、最大値Pは「7」である。このため、上記のステップS107では、余白最小値の最大値Pがプロットされた16個のポイント、すなわち
図32に白黒の反転表示で最大値「7」がプロットされた16個のポイントが抽出される。
【0105】
続いて、判定部13は、ステップS107で抽出された最大ポイントごとに、上下のコード数の差および左右のタップ数の差の合計値Qを算出する(ステップS108)。以下、上下のコード数の差のことを「上下のバランス値」と記載し、左右のタップ数の差のことを「左右のバランス値」と記載すると共に上下のバランス値および左右のバランス値の合計値のことを「上下左右のバランス値」と記載する場合がある。ここで言う「バランス値」とは、上下対称、左右対称または上下左右対称の度合いを指し、例えば、バランス値が「0」に近づくにつれて対称に近づき、バランス値が大きくにつれて非対称の度合いが大きくなる。
【0106】
図33は、上下のバランス値のマップの一例を示す図である。
図33には、
図32に示された余白最小値のマップから抽出された16個の最大ポイントごとに上下のバランス値がプロットされている。さらに、
図33には、16個の最大ポイントのうち1つの最大ポイントp1が枠線で示されている。
図33に示す最大ポイントp1を例に挙げれば、ポイントp1の上下のバランス値は、ポイントp1の上側コード数および下側コード数の差から算出される。例えば、ポイントp1の上側には、DQSディレイタップ「-4」及びリファレンス電圧「Vref19」のポイントからDQSディレイタップ「-4」及びリファレンス電圧「Vref24」のポイントまで6つのポイントが存在する。このため、ポイントp1の上側コード数は「6」と求まる。一方、ポイントp1の下側には、DQSディレイタップ「-4」及びリファレンス電圧「Vref17」のポイントからDQSディレイタップ「-4」及びリファレンス電圧「Vref11」のポイントまで7つのポイントが存在する。このため、ポイントp1の下側コード数は「7」と求まる。この結果、ポイントp1の上下のバランス値は、ポイントp1の上側コード数「6」及び下側コード数「7」の差の絶対値|6-7|を計算することで、「1」と求まる。
【0107】
図34は、左右のバランス値のマップの一例を示す図である。
図34には、
図32に示された余白最小値のマップから抽出された16個の最大ポイントごとに左右のバランス値がプロットされている。さらに、
図34にも、16個の最大ポイントのうち1つの最大ポイントp1が枠線で示されている。
図34に示す最大ポイントp1を例に挙げれば、ポイントp1の左右のバランス値は、ポイントp1の左側タップ数および右側タップ数の差から算出される。例えば、ポイントp1の左側には、DQSディレイタップ「-5」及びリファレンス電圧「Vref18」のポイントからDQSディレイタップ「-12」及びリファレンス電圧「Vref18」のポイントまで8つのポイントが存在する。このため、ポイントp1の左側タップ数は「8」と求まる。一方、ポイントp1の右側には、DQSディレイタップ「-3」及びリファレンス電圧「Vref18」のポイントからDQSディレイタップ「6」及びリファレンス電圧「Vref18」のポイントまで10個のポイントが存在する。このため、ポイントp1の右側タップ数は「10」と求まる。この結果、ポイントp1の左右のバランス値は、ポイントp1の左側タップ数「8」及び右側タップ数「10」の差の絶対値|8-10|を計算することで、「2」と求まる。
【0108】
図35は、上下左右のバランス値のマップの一例を示す図である。
図35には、
図32に示された余白最小値のマップから抽出された16個の最大ポイントごとに上下左右のバランス値、例えば
図33に示された上下のバランス値および
図34に示された左右のバランス値の合計値Qがプロットされている。さらに、
図35には、16個の最大ポイントのうち1つの最大ポイントp2が白黒の反転表示で示されている。
図35に示す最大ポイントp2を例に挙げれば、ポイントp2の上下左右のバランス値は、ポイントp2の上下のバランス値および左右のバランス値から算出される。すなわち、ポイントp2の上下左右のバランス値は、ポイントp2の上下のバランス値「1」と、ポイントp2の左右のバランス値「0」との合計値、例えば「1+0」を計算することで、「1」と求まる。
【0109】
図25の説明に戻り、判定部13は、ステップS107で抽出された最大ポイントのうち、ステップS108で算出された上下左右のバランス値Qの最小値Qminとなる最大ポイントを抽出する(ステップS109)。その上で、判定部13は、上下左右のバランス値Qの最小値Qminが所定の閾値Th1、例えば「2」以下であるか否かを判定する(ステップS110)。
【0110】
ここで、上下左右のバランス値Qの最小値Qminが上記の閾値Th1以下である場合(ステップS110Yes)、上下左右のバランス値Qの最小値Qminに対応する最大ポイントは、上下左右のバランスが良いと判断できる。この場合、
図26に示すステップS113の処理へ移行する。
【0111】
例えば、
図35に示す上下左右のバランス値のマップの例で言えば、DQSディレイタップ「-3」及びリファレンス電圧「Vref18」に位置する最大ポイントp2における上下左右のバランス値「1」が最小値Qminとなる。この最大ポイントp2の上下左右のバランス値「1」は、閾値Th1の一例である「2」以下である。この場合、最大ポイントp2をデシジョンポイントの設定を用いる側面から、
図26に示すステップS113の処理へ移行する。したがって、本実施例では、上記の従来技術1のように、上下のバランスが悪いポイント、すなわちDQSディレイタップ「-4」及びリファレンス電圧「Vref15」がデシジョンポイントの設定に用いられる事態に陥るのを抑制できる。
【0112】
一方、上下左右のバランス値Qの最小値Qminが上記の閾値Th1を超える場合(ステップS110No)、上下左右のバランス値Qの最小値Qminに対応する最大ポイントは、上下左右のバランスが悪いと判断できる。この場合、直ちにステップS113には移行しない。すなわち、判定部13は、ステップS110の判定が行われたポイントの余白最小値が最大値Pであるか否かをさらに判定する(ステップS111)。
【0113】
このとき、ステップS110の判定が行われたポイントの余白最小値が最大値Pである場合(ステップS111Yes)、抽出部12は、ステップS106でポイントごとに抽出された余白最小値のうち最大値Pに準ずる準最大値(P-1)となる準最大ポイントを抽出する(ステップS112)。なお、ステップS110の判定が行われたポイントの余白最小値が最大値Pでない場合(ステップS111No)、
図26に示すステップS113の処理へ移行する。
【0114】
このように、上下左右のバランス値Qの最小値Qminに対応する最大ポイントを直ちにデシジョンポイントの設定に用いないのは、余白最小値の最大値Pとなる最大ポイントで上下左右のバランスが必ずしも最良とならない場合があるからである。そうであるからと言って、余白最小値の最大値Pからの減算を無制限に認める場合、たとえ上下左右のバランスが向上したとしても上下左右の特定の方向で共通アイパターンの境界からの余白が短くなる。
【0115】
このことから、本実施例では、余白最小値の最大値Pに準ずる準最大値に対応する準最大ポイントに絞ってデシジョンポイントの候補とすることを認める。以下では、あくまで一例として、余白最小値の最大値Pに準最大値として最大値Pに次ぐ値(P-1)のみを許可する例を挙げるが、最大値Pに準ずる値であればよく、準最大値(P-1)から準最大値(P-α)までの逸脱を許可することもできる。
【0116】
図36は、共通アイパターンの他の一例を示す図である。
図36には、
図11に示された共通アイパターンとは異なる共通アイパターンが示されている。
図36に示すマトリクスには、当該マトリクス上のポイントごとに、図示しない4ランク分のメモリブロックの読み出し結果の合計値がプロットされている。
図36に示す共通アイパターンを用いて上側コード数、下側コード数、左側タップ数及び右側タップ数などの上下左右の余白数が算出される。例えば、
図36に枠線で示されたDQSディレイタップ「-8」及びリファレンス電圧「Vref18」に位置するポイントYの例で言えば、上下左右の4方向の余白数は次のように算出できる。
【0117】
例えば、ポイントYの上側コード数が算出される場合、ポイントYの上側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-8」及びリファレンス電圧「Vref19」のポイントからDQSディレイタップ「-8」及びリファレンス電圧「Vref26」のポイントまでの8つのポイントがインクリメントされる。この結果、ポイントYの上側コード数は「8」と求まる。
【0118】
また、ポイントYの下側コード数が算出される場合、ポイントYの下側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-8」及びリファレンス電圧「Vref17」のポイントからDQSディレイタップ「-8」及びリファレンス電圧「Vref10」のポイントまでの8つのポイントがインクリメントされる。この結果、ポイントYの上側コード数は「8」と求まる。
【0119】
さらに、ポイントYの左側タップ数が算出される場合、ポイントYの左側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-9」及びリファレンス電圧「Vref18」のポイントからDQSディレイタップ「-16」及びリファレンス電圧「Vref18」のポイントまでの8つのポイントがインクリメントされる。この結果、ポイントYの左側タップ数は「8」と求まる。
【0120】
また、ポイントYの右側タップ数が算出される場合、ポイントYの右側に位置する伝送成功に対応する「0」のポイントが計数される。この場合、DQSディレイタップ「-7」及びリファレンス電圧「Vref18」のポイントからDQSディレイタップ「4」及びリファレンス電圧「Vref18」のポイントまでの12個のポイントがインクリメントされる。この結果、ポイントXの右側タップ数は「12」と求まる。
【0121】
このように例示されたポイントYの他、マトリクス上の各ポイントから共通アイパターンの上下左右の4方向の境界までの余白数が算出された結果、上側コード数、下側コード数、左側タップ数及び右側タップ数の4つのマップとして得られる。その後、マトリクス上のポイントごとに、上側コード数、下側コード数、左側タップ数及び右側タップ数のうち最小値が余白最小値として抽出される。この結果、
図37に示す余白最小値のマップが得られる。
【0122】
図37は、余白最小値のマップの一例を示す図である。例えば、
図36に枠線で示されたポイントYの例で言えば、上側コード数「8」、下側コード数「8」、左側タップ数「8」及び右側タップ数「12」のうち最小値「8」が余白最小値として抽出される。ここで、
図37に示す余白最小値のマップの例で言えば、最大値Pは「8」であり、最大値Pを持つのはポイントYだけである。このため、ポイントYだけが最大ポイントとして抽出された後、上下のバランス値、左右のバランス値および上下左右のバランス値が算出される。すなわち、最大ポイントYの上側コード数および下側コード数は、いずれも「8」であるので、最大ポイントYの上下のバランス値は「0」と求まる。また、最大ポイントYの左側タップ数が「8」である一方で、最大ポイントYの右側コード数は「12」である。このため、最大ポイントYの左右のバランス値は、ポイントYの左側タップ数「8」及び右側タップ数「12」の差の絶対値|8-12|を計算することで、「4」と求まる。さらに、最大ポイントYの上下左右のバランス値は、最大ポイントYの上下のバランス値「0」と、最大ポイントYの左右のバランス値「4」との合計値、例えば「0+4」を計算することで、「4」と求まる。
【0123】
ここで、ポイントYしか最大ポイントとして抽出されていないことから、最大ポイントYは、
図36に示す共通アイパターンにおいて上下左右のバランス値Qの最小値Qminとなる。そして、最大ポイントYの上下左右のバランス値「4」は、上記の閾値Th1「2」を超える。この結果、最大ポイントYは、上下左右のバランスが悪いと判断される。
【0124】
このように例示された最大ポイントYのように、余白最小値の最大値Pを有する最大ポイントの中で上下左右のバランス値Qの最小値Qminを有するからとって必ずしも共通アイパターン上で上下左右のバランスが優れているとは限らない。
【0125】
この場合、
図25に示すステップS112の手順に従って、
図37に示された余白最小値のうち最大値Pに準ずる準最大値(P-1)となる準最大ポイントが抽出される。例えば、
図37に示す余白最小値のマップの例で言えば、準最大値(P-1)は「7」である。このため、上記のステップS112では、余白最小値の準最大値(P-1)がプロットされた14個のポイント、すなわち
図37に枠線および下線で示された準最大値「7」がプロットされた14個のポイントが抽出される。これら14個の準最大ポイントにも上記のステップS108及び上記のステップS109の処理が実行される。
【0126】
図38は、上下のバランス値のマップの一例を示す図である。
図38には、
図37に示された余白最小値のマップから抽出された14個の準最大ポイントごとに上下のバランス値がプロットされている。さらに、
図38には、14個の準最大ポイントのうち1つの準最大ポイントq1が枠線で示されている。
図38に示す準最大ポイントq1を例に挙げれば、ポイントq1の上下のバランス値は、ポイントq1の上側コード数および下側コード数の差から算出される。例えば、ポイントq1の上側コード数は「6」であり、また、ポイントq1の下側コード数は「7」と求まる。このため、ポイントq1の上下のバランス値は、ポイントq1の上側コード数「6」及び下側コード数「7」の差の絶対値|6-7|を計算することで、「1」と求まる。
【0127】
図39は、左右のバランス値のマップの一例を示す図である。
図39には、
図37に示された余白最小値のマップから抽出された14個の準最大ポイントごとに左右のバランス値がプロットされている。さらに、
図39にも、14個の準最大ポイントのうち1つの準最大ポイントq1が枠線で示されている。
図39に示す準最大ポイントq1を例に挙げれば、ポイントq1の左右のバランス値は、ポイントp1の左側タップ数および右側タップ数の差から算出される。例えば、ポイントq1の左側タップ数は「9」であり、ポイントq1の右側タップ数は「9」である。このため、ポイントq1の左右のバランス値は、ポイントq1の左側タップ数「9」及び右側タップ数「9」の差の絶対値|9-9|を計算することで、「0」と求まる。
【0128】
図40は、上下左右のバランス値のマップの一例を示す図である。
図40には、
図37に示された余白最小値のマップから抽出された14個の準最大ポイントごとに上下左右のバランス値、例えば
図38に示された上下のバランス値および
図39に示された左右のバランス値の合計値Qがプロットされている。さらに、
図40には、上下左右のバランス値Qが最小値となる2つの準最大ポイントq1及びq2が枠線で示されている。例えば、
図40に示す準最大ポイントq1を例に挙げれば、ポイントq1の上下左右のバランス値は、ポイントq1の上下のバランス値および左右のバランス値から算出される。すなわち、ポイントq1の上下左右のバランス値は、ポイントq1の上下のバランス値「1」と、ポイントq1の左右のバランス値「0」との合計値、例えば「1+0」を計算することで、「1」と求まる。また、例えば、
図40に示す準最大ポイントq2を例に挙げれば、ポイントq2の上下左右のバランス値は、ポイントq2の上下のバランス値および左右のバランス値から算出される。すなわち、ポイントq2の上下左右のバランス値は、ポイントq2の上下のバランス値「1」と、ポイントq2の左右のバランス値「0」との合計値、例えば「1+0」を計算することで、「1」と求まる。
【0129】
ここで、
図40に示す上下左右のバランス値のマップの例で言えば、準最大ポイントq1及び準最大ポイントq2における上下左右のバランス値「1」が最小値Qminとなる。これら準最大ポイントq1及び準最大ポイントq2の上下左右のバランス値「1」は、閾値Th1の一例である「2」以下である。この場合、準最大ポイントq1及び準最大ポイントq2は、上下左右のバランスが良いと判断される。
【0130】
図26の説明に戻り、準最大ポイントの上下左右のバランス値Qの最小値Qminが上記の閾値Th1以下である場合(ステップS110Yes)、
図26に示すステップS113の処理へ移行する。また、準最大ポイントの上下左右のバランス値Qの最小値Qminが上記の閾値Th1以下でない場合(ステップS110No)であっても、これ以上の余白最小値の最大値Pからの減算は実施されない。すなわち、ステップS111の分岐でNoに進み、
図26に示すステップS113の処理へ移行する。
【0131】
そして、上下左右のバランス値Qの最小値Qminとなる最大ポイント又は準最大ポイントが1つである場合(ステップS113No)、他に選択肢がない。それ故、設定部14は、上下左右のバランス値Qの最小値Qminとなる最大ポイント又は準最大ポイントをデシジョンポイントに設定し(ステップS118)、処理を終了する。
【0132】
例えば、
図35に示された上下左右のバランス値のマップの例で言えば、上下左右のバランス値「1」の最小値Qminである最大ポイントは、最大ポイントp2の1つである。この場合、最大ポイントp2がデシジョンポイントに設定される。
【0133】
一方、上下左右のバランス値Qの最小値Qminとなる最大ポイント又は準最大ポイントが複数である場合(ステップS113Yes)、設定部14は、次のような処理を実行する。すなわち、設定部14は、上下左右のバランス値Qの最小値Qminとなる最大ポイント又は準最大ポイントのうちDQSディレイタップが最小であるポイントQ1およびDQSディレイタップが最大であるポイントQ2を抽出する(ステップS114)。
【0134】
例えば、
図40に示す上下左右のバランス値のマップの例で言えば、準最大ポイントq1のDQSディレイタップが「-6」であり、また、準最大ポイントq2のDQSディレイタップが「-5」である。このため、DQSディレイタップが準最大ポイントq2よりも小さい結果として、最小となる準最大ポイントq1がポイントQ1として抽出される。一方、DQSディレイタップが準最大ポイントq1よりも大きい結果として、最大となる準最大ポイントq2がポイントQ2として抽出される。
【0135】
なお、ここでは、最小または最大のDQSディレイタップを有するポイントが1つである例を挙げたが、最小または最大のDQSディレイタップが複数存在する場合も想定できる。例えば、最小のDQSディレイタップを有するポイントが複数存在する場合、複数のポイントの中でリファレンス電圧が最小であるポイントがポイントQ1として抽出される。一方、最大のDQSディレイタップを有するポイントが複数存在する場合、複数のポイントの中でリファレンス電圧が最大であるポイントがポイントQ2として抽出される。換言すれば、上下左右のバランス値Qの最小値Qminとなるポイントのうち、最も左下寄りに位置するポイントがポイントQ1として抽出されると共に、最も右上寄りに位置するポイントがポイントQ2として抽出される。
【0136】
図26の説明に戻り、設定部14は、ステップS114で抽出されたポイントQ1及びポイントQ2の中心に対応する中心ポイントRを算出する(ステップS115)。このとき、互いが隣接する2つのポイントのうちDQSディレイタップが小さい方のポイントを中心ポイントRに優先する側面から、設定部14は、DQSディレイタップやリファレンス電圧の小数点を切り捨てる計算により中心Rを算出することができる。また、ポイントQ1及びポイントQ2が隣接する場合、設定部14は、上記の計算を省略してポイントQ1を中心ポイントRとして選択することもできる。
【0137】
そして、設定部14は、ステップS115で算出された中心ポイントRの上下左右のバランス値と、上記のステップS110Yesの分岐に進んだ最大ポイント又は準最大ポイントが有する上下左右のバランス値Qの最小値Qminとを比較する(ステップS116)。なお、上記のステップS111Noの分岐を経由する場合、最大ポイント及び準最大ポイントのうち上下左右のバランス値Qの最小値Qminを抽出して比較してもよい。
【0138】
ここで、中心ポイントRの上下左右のバランス値および最小値Qminが同値である場合(ステップS116Yes)、設定部14は、ステップS115で算出された中心ポイントRをデシジョンポイントに設定し(ステップS118)、処理を終了する。
【0139】
一方、中心ポイントRの上下左右のバランス値が最小値Qmin未満である場合(ステップS116No)、設定部14は、ポイントQ1の次にDQSディレイタップが小さいポイント、すなわちDQSディレイタップが2番目に小さいポイントをポイントQ1′として再抽出する(ステップS117)。
【0140】
そして、ステップS115に戻り、ステップS117で再抽出されたポイントQ1′及びポイントQ2の中心に対応する中心ポイントRが改めて算出される。その後、ステップS115で算出される中心ポイントRの上下左右のバランス値が最小値Qminと同値となるまで(ステップS116No)、再抽出の基準に用いるDQSディレイタップの値の順位をインクリメントしつつ、上記のステップS117および上記のステップS115の処理がループされる。
【0141】
[効果の一側面]
上述してきたように、本実施例に係る情報処理装置1は、共通アイパターンの上下左右の境界までの余白最小値が最大となる最大ポイントのうち上下左右の余白数のバランスが所定の基準を満たす最大ポイントをデシジョンポイントに設定する。それ故、共通アイパターンの境界からの余白のサイズ及び共通アイパターン上の上下左右の余白のバランスの両面で優れたポイントをデシジョンポイントに設定することができる。したがって、本実施例に係る情報処理装置1によれば、デシジョンポイントを適切に設定することが可能である。
【0142】
さらに、本実施例に係る情報処理装置1は、基準を満たす最大ポイントが存在しない場合、余白最小値が最大値に準ずる準最大ポイントのうち上下左右の余白数のバランスが所定の基準を満たす準最大ポイントをデシジョンポイントに設定する。したがって、本実施例に係る情報処理装置1によれば、共通アイパターンの境界からの余白のサイズが準最大限に維持しつつ、共通アイパターン上の上下左右の余白のバランスがより優れたポイントをデシジョンポイントに設定することが可能である。
【0143】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0144】
(付記1)信号の値を判定するのに用いるリファレンス値と、前記信号のメモリアクセスのディレイ値の組合せごとに前記信号の伝送結果を取得し、
前記伝送結果が伝送成功である前記組合せのうち前記伝送結果が伝送成功である組合せと前記伝送結果が伝送失敗である組合せの境界までの差分であって前記リファレンス値の差分及び前記ディレイ値の差分の最小値が最大値となる最大ポイントを抽出し、
前記最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす最大ポイントをデシジョンポイントに設定する、
処理をプロセッサが実行するキャリブレーション方法。
【0145】
(付記2)前記抽出する処理は、前記基準を満たす最大ポイントが存在しない場合、前記最小値が前記最大値に準ずる準最大値となる準最大ポイントを抽出し、
前記設定する処理は、前記準最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす準最大ポイントをデシジョンポイントに設定することを特徴とする付記1に記載のキャリブレーション方法。
【0146】
(付記3)前記設定する処理は、前記リファレンス値の前記境界までの両側の差分の差と、前記ディレイ値の前記境界までの両側の差分の差との合計値が所定の閾値以下である最大ポイントをデシジョンポイントに設定することを特徴とする付記1又は2に記載のキャリブレーション方法。
【0147】
(付記4)前記取得する処理は、各メモリモジュールのランクごとに各ポイントの前記信号の前記伝送結果を取得し、
前記抽出する処理は、各ランクで共通して前記伝送結果が伝送成功である組合せに対応する共通組合せを用いて前記最大ポイントを抽出することを特徴とする付記1に記載のキャリブレーション方法。
【0148】
(付記5)信号の値を判定するのに用いるリファレンス値と、前記信号のメモリアクセスのディレイ値との組合せごとに前記信号の伝送結果を取得する取得部と、
前記伝送結果が伝送成功である前記組合せのうち前記伝送結果が伝送成功である組合せと前記伝送結果が伝送失敗である組合せの境界までの差分であって前記リファレンス値の差分及び前記ディレイ値の差分の最小値が最大値となる最大ポイントを抽出する抽出部と、
前記最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす最大ポイントをデシジョンポイントに設定する設定部と、
を有する情報処理装置。
【0149】
(付記6)前記抽出部は、前記基準を満たす最大ポイントが存在しない場合、前記最小値が前記最大値に準ずる準最大値となる準最大ポイントを抽出し、
前記設定部は、前記準最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす準最大ポイントをデシジョンポイントに設定することを特徴とする付記5に記載の情報処理装置。
【0150】
(付記7)前記設定部は、前記リファレンス値の前記境界までの両側の差分の差と、前記ディレイ値の前記境界までの両側の差分の差との合計値が所定の閾値以下である最大ポイントをデシジョンポイントに設定することを特徴とする付記5又は6に記載の情報処理装置。
【0151】
(付記8)前記取得部は、各メモリモジュールのランクごとに各ポイントの前記信号の前記伝送結果を取得し、
前記抽出部は、各ランクで共通して前記伝送結果が伝送成功である組合せに対応する共通組合せを用いて前記最大ポイントを抽出することを特徴とする付記5に記載の情報処理装置。
【0152】
(付記9)信号の値を判定するのに用いるリファレンス値と、前記信号のメモリアクセスのディレイ値との組合せごとに前記信号の伝送結果を取得し、
前記伝送結果が伝送成功である前記組合せのうち前記伝送結果が伝送成功である組合せと前記伝送結果が伝送失敗である組合せの境界までの差分であって前記リファレンス値の差分及び前記ディレイ値の差分の最小値が最大値となる最大ポイントを抽出し、
前記最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす最大ポイントをデシジョンポイントに設定する、
処理をプロセッサが実行するキャリブレーションプログラム。
【0153】
(付記10)前記抽出する処理は、前記基準を満たす最大ポイントが存在しない場合、前記最小値が前記最大値に準ずる準最大値となる準最大ポイントを抽出し、
前記設定する処理は、前記準最大ポイントのうち前記リファレンス値の差分と前記ディレイ値の差分とのバランスが所定の基準を満たす準最大ポイントをデシジョンポイントに設定することを特徴とする付記9に記載のキャリブレーションプログラム。
【0154】
(付記11)前記設定する処理は、前記リファレンス値の前記境界までの両側の差分の差と、前記ディレイ値の前記境界までの両側の差分の差との合計値が所定の閾値以下である最大ポイントをデシジョンポイントに設定することを特徴とする付記9又は10に記載のキャリブレーションプログラム。
【0155】
(付記12)前記取得する処理は、各メモリモジュールのランクごとに各ポイントの前記信号の伝送結果を取得し、
前記抽出する処理は、各ランクで共通して前記伝送結果が伝送成功である組合せに対応する共通組合せを用いて前記最大ポイントを抽出することを特徴とする付記9に記載のキャリブレーションプログラム。
【符号の説明】
【0156】
1 情報処理装置
10 CPU
11 取得部
12 抽出部
13 判定部
14 設定部
20 メモリコントローラ
30 I/O回路