特許第6962130号(P6962130)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許6962130データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法
<>
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000002
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000003
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000004
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000005
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000006
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000007
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000008
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000009
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000010
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000011
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000012
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000013
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000014
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000015
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000016
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000017
  • 特許6962130-データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6962130
(24)【登録日】2021年10月18日
(45)【発行日】2021年11月5日
(54)【発明の名称】データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20211025BHJP
【FI】
   G06F12/00 564A
【請求項の数】7
【全頁数】24
(21)【出願番号】特願2017-205456(P2017-205456)
(22)【出願日】2017年10月24日
(65)【公開番号】特開2019-79257(P2019-79257A)
(43)【公開日】2019年5月23日
【審査請求日】2020年7月9日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100105407
【弁理士】
【氏名又は名称】高田 大輔
(74)【代理人】
【識別番号】100175190
【弁理士】
【氏名又は名称】大竹 裕明
(72)【発明者】
【氏名】大沢 利昭
【審査官】 酒井 恭信
(56)【参考文献】
【文献】 特開2007−249738(JP,A)
【文献】 特表2014−517964(JP,A)
【文献】 特開2015−036965(JP,A)
【文献】 特開2016−197275(JP,A)
【文献】 米国特許出願公開第2016/0293237(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
第1のデータ送受信装置と、第2のデータ送受信装置とを備え、前記第1のデータ送受信装置は、複数の制御装置を有し、前記複数の制御装置は、前記第2のデータ送受信装置に伝送路を介して接続され、前記第1のデータ送受信装置と前記第2のデータ送受信装置との間のデータ信号および前記データ信号を取得するタイミングを示すタイミング信号の送受信をそれぞれ制御する、データ送受信システムにおいて、
前記第1のデータ送受信装置は、
各データ信号に対するタイミング信号の位相が前記伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って前記第2のデータ送受信装置から取得された前記データ信号のHレベルおよびLレベルを判定する基準となる基準電圧の範囲が、前記情報に含まれる他の位相の組合せにおいて前記データ信号のHレベルおよびLレベルを判定する基準電圧の範囲よりも広くなる位相の組合せを決定する決定部と、
前記決定部が決定した位相の組合せに基づいて前記第2のデータ送受信装置を制御する制御部と、
を有することを特徴とするデータ送受信システム。
【請求項2】
前記複数のデータ線ごとに指定された位相の組合せは、前記制御装置ごとに指定された位相の組合せであることを特徴とする請求項1に記載のデータ送受信システム。
【請求項3】
前記データ送受信システムは、複数の前記第2のデータ送受信装置を備え、
前記複数のデータ線ごとに指定された位相の組合せは、前記第2のデータ送受信装置ごとに指定された位相の組合せである
ことを特徴とする請求項1に記載のデータ送受信システム。
【請求項4】
前記第2のデータ送受信装置は、前記データ信号により送受信されるデータを格納する、前記複数のデータ線と接続される複数の領域を有し、
前記複数のデータ線ごとに指定された位相の組合せは、前記領域ごとに指定された位相の組合せである
ことを特徴とする請求項1に記載のデータ送受信システム。
【請求項5】
前記第1のデータ送受信装置は、演算処理装置であり、
前記第2のデータ送受信装置は、前記データ信号のデータを格納するメモリであり、
前記制御装置は、前記演算処理装置の制御に従って、前記メモリを制御するメモリ制御装置である
ことを特徴とする請求項1から4のいずれか一項に記載のデータ送受信システム。
【請求項6】
ータ信号および前記データ信号を取得するタイミングを示すタイミング信号の送受信をそれぞれ制御する複数の制御装置を有するデータ送受信装置であって、前記複数の制御装置は、記憶装置に伝送路を介して接続され、前記データ送受信装置は、
各データ信号に対するタイミング信号の位相が前記伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って前記記憶装置から取得された前記データ信号のHレベルおよびLレベルを判定する基準となる基準電圧の範囲が、前記情報に含まれる他の位相の組合せにおいて前記データ信号のHレベルおよびLレベルを判定する基準電圧の範囲よりも広くなる位相の組合せを決定する決定部と、
前記決定部が決定した位相の組合せに基づいて前記記憶装置を制御する制御部と
を有することを特徴とするデータ送受信装置。
【請求項7】
第1のデータ送受信装置と、第2のデータ送受信装置とを備え、前記第1のデータ送受信装置は、複数の制御装置を有し、前記複数の制御装置は、前記第のデータ送受信装置に伝送路を介して接続され、前記第1のデータ送受信装置と前記第2のデータ送受信装置との間のデータ信号および前記データ信号を取得するタイミングを示すタイミング信号の送受信をそれぞれ制御する、データ送受信システムの制御方法であって、
前記第1のデータ送受信装置に、
各データ信号に対するタイミング信号の位相が前記伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って前記第2のデータ送受信装置から取得された前記データ信号のHレベルおよびLレベルを判定する基準となる基準電圧の範囲が、前記情報に含まれる他の位相の組合せにおいて前記データ信号のHレベルおよびLレベルを判定する基準電圧の範囲よりも広くなる位相の組合せを決定させ、
前記決定した位相の組合せに基づいて前記第2のデータ送受信装置を制御させる
ことを特徴とするデータ送受信システムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ送受信システム、データ送受信装置およびデータ送受信システムの制御方法に関する。
【背景技術】
【0002】
従来から、Central Processing Unit(CPU)によるメモリに対するデータの入出力
において、データストローブ信号(DQS信号)を用いて複数ビットのデータ信号(DQ信号)の書き込みおよび読み出しが実行される。DQ信号に対するDQS信号の位相は固定されており、例えばDQS信号の立ち上がりがDQ信号の読み書きのタイミングであるストローブポイントとして設定されている。DQ信号は複数ビットが1つのグループとしてまとめられ、1つのDQS信号により、複数ビットのDQ信号の読み書きが実行される。各ビットのDQ信号はそれぞれ異なる伝送路により送信されるため、各DQ信号間において位相差(スキュー)が生じ得る。そこで、各DQ信号の位相が、DQS信号のストローブポイントを基準として同相となるように調整される。
【0003】
また、いわゆるアイパターンを用いてDQS信号とDQ信号の位相を調整することも行われている。まず、アイパターンにおけるDQ信号のリファレンス電圧方向と位相方向とで、リファレンス電圧幅が最大となる位相とDQ信号のデータが取得可能な位相幅が最大となる電圧とが決定される。そして、決定された位相と電圧とを用いてDQ信号とDQS信号との間のストローブポイントが最適化される。
【0004】
多数のメモリを使用する場合のメモリアクセスでは、メモリチャネルあたりの記憶容量を上げるため、伝送路に複数のメモリモジュールが接続される。しかし、メモリモジュールが複数接続されることで伝送路の分岐が多くなる。このため、各分岐点において伝送路とメモリモジュールとの間でインピーダンス不整合が起き、伝送される信号の多重反射が生じ得る。
【0005】
そこで、各メモリモジュールについてリファレンス電圧ごとにデータ信号を有効に取得できる期間が長い位相を推定し、推定された位相を基にDQ信号とDQS信号との間のストローブポイントを最適化する技術が提案されている(特許文献1、2)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2016−197275号公報
【特許文献2】特開2012−194686号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、例えばCPUが複数のメモリコントローラを有する場合、CPUの動作に伴って発生する電源ノイズやメモリコントローラにおけるデータアクセスの動作タイミングに関連するノイズなどの影響でストローブポイントが変動する可能性がある。このようにCPUやメモリなどのデータ送受信装置間でのデータ信号の取得において、装置構成によっては、上記の技術を用いて最適化したデータ信号の取得タイミングが、装置を稼働させた際の最適な取得タイミングとはならない可能性がある。
【0008】
本件開示の技術は、上記の事情に鑑み、データ信号の取得が成功する可能性が高まるよ
うにデータ送受信装置の動作制御が可能なデータ送受信システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本件開示のデータ送受信システムは、1つの側面では、第1のデータ送受信装置と、第1のデータ送受信装置に伝送路を介して接続される第2のデータ送受信装置と、第1のデータ送受信装置と第2のデータ送受信装置とに接続されるとともに、第1のデータ送受信装置と第2のデータ送受信装置との間のデータ信号とデータ信号を取得するタイミングを示すタイミング信号との送受信をそれぞれ制御する複数の制御装置とを有するデータ送受信システムにおいて、第1のデータ送受信装置は、各データ信号に対するタイミング信号の位相が、伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って第2のデータ送受信装置を動作させる場合、データ信号を取得できるか否かを判定する基準となる電圧の範囲が、情報に含まれる他の位相の組合せにおいてデータ信号を取得できる電圧の範囲よりも広くなる位相の組合せを決定する決定部と、決定部が決定した位相の組合せに基づいて第2のデータ送受信装置を制御する制御部とを有する。
【発明の効果】
【0010】
本件開示の技術によれば、データ信号の取得が成功する可能性が高まるようにデータ送受信装置の動作制御が可能なデータ送受信システムを提供することができる。
【図面の簡単な説明】
【0011】
図1図1は、一実施形態におけるデータ送受信システムの構成の一例を示す図である。
図2図2は、一実施形態におけるデータ送受信システムの構成を示す図1とは別の図である。
図3図3は、一実施形態におけるデータ送受信装置が実行する処理のフローチャートである。
図4図4は、一実施形態においてデータ送受信装置がOP101で実行する処理のフローチャートである。
図5図5は、一実施形態におけるレジスタの一例を示す図である。
図6図6は、一実施形態におけるディレイタップの組合せの一例を示す図である。
図7図7(a)および図7(b)は、一実施形態におけるメモリクロック信号の相関の一例を示す図である。
図8図8は、一実施形態においてメモリコントローラから送信される信号の一例を模式的に示す図である。
図9図9は、一実施形態におけるディレイタップ設定前後のノイズの一例を模式的に示す図である。
図10図10は、一実施形態においてデータ送受信装置がOP102で実行する処理のフローチャートである。
図11図11は、一実施形態におけるメモリモジュールの構成の一例を示す図である。
図12図12は、一実施形態におけるディレイタップの組合せの別の一例を示す図である。
図13図13は、一実施形態におけるメモリクロック信号の相関の別の一例を示す図である。
図14図14は、一実施形態におけるディレイタップ設定前後のノイズの別の一例を模式的に示す図である。
図15図15は、一実施形態におけるディレイタップの組合せによるデータ信号の取得の成否の一例を示す図である。
図16図16は、一実施形態におけるディレイタップの図15の場合とは異なる組合せによるデータ信号の取得の成否の一例を示す図である。
図17図17は、一実施形態におけるディレイタップの図15および図16の場合とは異なる組合せによるデータ信号の取得の成否の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本件開示の技術に係る実施形態について図面を参照しながら説明する。なお、以下の詳細な説明は例示的なものであり、実施形態の構成を限定するものではない。
【0013】
一実施形態におけるデータ送受信システム1について、図1を用いて説明する。データ送受信システム1は、CPU(Central Processing Unit)10、メモリコントローラ(
MC)#0 20、MC#1 120、MC#2 220、MC#3 320、メモリモジュール70、170、270、370、470、570、670、770を有する。なお、CPU10が第1のデータ送受信装置の一例である。また、MC#0 20、MC#1 120、MC#2 220、MC#3 320が、制御装置の一例である。また、メモリモジュール70、170、270、370、470、570、670、770が、第2のデータ送受信装置の一例である。
【0014】
図1に示すように、例えばMC#0 20は伝送路50によってメモリモジュール70に接続されている。また、MC#0 20は伝送路50とは別の伝送路によってメモリモジュール170に接続されている。同様に、MC#1 120は、それぞれ異なる伝送路によってメモリモジュール270、370に接続されている。また、MC#2 220は、それぞれ異なる伝送路によってメモリモジュール470、570に接続されている。さらに、MC#3 320は、それぞれ異なる伝送路によってメモリモジュール670、770に接続されている。
【0015】
CPU10は、データ送受信システム1内の各部の動作を制御して後述する処理を実行する。MC#0 20、MC#1 120、MC#2 220、MC#3 320は、DQS信号の生成、PRBS(Pseudo Random Bit Sequence)テストパターンなどの所定パターンのDQ信号の生成、リファレンス電圧(Vref)に対するDQ信号の読み出しの成功および失敗の判定などを行う。なお、DQS信号がストローブ信号およびデータ信号の取得タイミングを示すタイミング信号、DQ信号がデータ信号の一例である。また、リファレンス電圧が、データ信号を取得できるか否かを判定する基準となる電圧の一例である。また、メモリモジュール70、170、270、370、470、570、670、770は、データを記憶するメモリ素子を複数備える。以下の説明ではメモリモジュールは、DIMM(Dual In-line Memory Module)を想定する。
【0016】
MC#0 20は、メモリモジュール70に対するメモリクロック信号CLK0の送信と、メモリモジュール170に対するメモリクロック信号CLK1の送信を制御する。MC#2 220、MC#3 320も、それぞれメモリモジュール270、470、670に対するメモリクロック信号CLK0の送信と、メモリモジュール370、570、770に対するメモリクロック信号CLK1の送信を制御する。
【0017】
図2には、本実施形態に係るCPU10、MC#0 20、I/O(Input/Output)回路30、伝送路40、50、60、メモリモジュール70を示す。MC#0 20は、内部回路20a、PRBS生成部20b、データ取得判定部20c、開始フラグ20d、データ取得判定レジスタ20eを備える。なお、MC#1 120、MC#2 220、MC#3 320は、MC#0 20と同様の構成を有するため、ここでは説明を省略する。
【0018】
I/O回路30は、メモリクロック信号CLK0をメモリモジュール70に出力する回路である。I/O回路30は、ラッチ回路30a、30f、30g、30p、ディレイタップ設定部30b、30c、30h、30i、30q、ドライバ30d、30j、30r、レシーバ30e、30k、リファレンス電圧(Vref)設定部30m、分圧回路30nを備える。メモリモジュール70は、Rank0のメモリ素子70a、Rank1のメモリ素子70b、ドライバ70c、70e、レシーバ70d、70f、70m、RCD(Registered Clock Driver)70nを備える。なお、図2では、メモリモジュール70の
メモリ素子70aとメモリ素子70bを2組示しているが、それぞれ同じメモリ素子である。
【0019】
本実施形態では、MC#0 20には、伝送路を経由してメモリモジュール170と接続するメモリクロック信号CLK1出力用のI/O回路が接続されている。メモリモジュール170はメモリモジュール70に対応する構成を有する。また、メモリモジュール170に接続される伝送路は伝送路40、50、60と同様である。さらに、メモリモジュール170と接続するI/O回路は、I/O回路30に対応する構成を有する。
【0020】
MC#0 20の内部回路20aは、PRBS生成部20bにより生成されるPRBSテストパターンをI/O回路30に出力する。PRBS生成部20bは、PRBSテストパターンのDQ信号を生成する。ここで、PRBSテストパターンとは、「0」と「1」のビットが交互に並ぶなど規則的なビットの組み合わせからなるパターンではなく、「0」と「1」の順番が確定的な計算によって求まる擬似乱数を用いたパターンである。これにより、PRBSテストパターンのDQ信号は、実際のデータ転送におけるDQ信号と同等の信号であるとみなせる。
【0021】
開始フラグ20dは、本実施形態における位相設定の処理を開始するトリガとなるフラグであり、例えばデータ送受信システム1のユーザの操作に基づいてCPU10がオンまたはオフに設定する。データ取得判定部20cは、リファレンス電圧およびDQS信号の位相を変化させたときのDQ信号の取得が成功したか否かを判定する。
【0022】
データ取得判定レジスタ20eは、データ取得判定部20cによる判定の結果を格納する。また、図2に示すように、データ取得判定レジスタ20eは、本実施形態において以下に説明する処理を実行するためのデータを記憶するレジスタを有する。一例として、データ取得判定レジスタ20eは、DQ0〜DQ3の各DQ信号のHレベルおよびLレベルを判定するために使用するリファレンス電圧の値が格納されるレジスタを有する。
【0023】
また、データ取得判定レジスタ20eは、DQ0〜DQ3の各DQ信号のディレイタップを設定するために使用するレジスタを有する。本実施形態において、DQ信号のディレイタップとは、DQ信号の位相の遅延量である。さらに、データ取得判定レジスタ20eは、CPU10が、DQS信号のディレイタップを設定するために使用するレジスタを有する。本実施形態において、DQS信号のディレイタップとは、DQS信号の位相の遅延量である。さらに、データ取得判定レジスタ20eは、メモリモジュールの動作制御に使用するメモリクロック信号(図中「CLK」)のディレイタップを設定するために使用するレジスタを有する。本実施形態において、CPU10の動作周波数を決めるCPUクロック信号を基準として位相を変更した信号がメモリクロック信号として用いられる。各メモリモジュールに送られるメモリクロック信号の位相は、ディレイタップ制御部90aによって決定される。
【0024】
なお、本実施形態では、ディレイタップ設定部30b、30c、30h、30iが、DQS信号と各DQ信号との間の位相差を設定する。また、ディレイタップ設定部30qが
、メモリクロック信号の位相を設定する。そして、各レジスタに設定される値に従って、DQ信号のリファレンス電圧、DQ信号のディレイタップ、DQS信号のディレイタップ、メモリクロック信号のディレイタップがそれぞれ決まる。
【0025】
さらに、データ取得判定レジスタ20eは、CPU10が、MC#0 20に対して、PRBS生成部20bにより生成されたPRBSのデータのメモリモジュール70に対する書き込みまたは読み出しの実行を指示するために使用するレジスタを有する。また、データ取得判定レジスタ20eは、メモリモジュール70から読み出されたDQ0〜DQ3のPRBSのデータの読み出し結果が格納されるレジスタを有する。本実施形態では、PRBS生成部20bによってDQ0〜DQ3のPRBSのデータが生成される。そして、生成されたPRBSの各データがメモリモジュール70に対して書き込まれる。さらに、書き込まれた各データの読み出しが行われる。そして、PRBS生成部20bによって生成された各データと読み出した各データとが一致するか否かに基づいて各DQ信号の読み出しが成功したか否かが判定される。そして、読み出しの判定結果がデータ取得判定レジスタ20e内のレジスタに書き込まれる。
【0026】
なお、本実施形態では、上記の各種レジスタはデータ取得判定レジスタ20eに格納されている構成としているが、各種レジスタをデータ取得判定レジスタ20eとは別のレジスタとして設ける構成としてもよい。
【0027】
MC#0 20から出力されるメモリクロック信号は、I/O回路30のラッチ回路30pに入力される。ラッチ回路30pには内部クロックが入力されてデータがラッチされ、ラッチされたデータがディレイタップ設定部30qに入力される。ディレイタップ設定部30qは、メモリクロック信号のディレイタップを決定する。MC#0 20から出力されるDQS信号は、I/O回路30のラッチ回路30aに入力される。ラッチ回路30aには内部クロックが入力されてデータがラッチされ、ラッチされたデータがディレイタップ設定部30bに入力される。ディレイタップ設定部30bは、DQS信号によるストローブポイント、すなわちDQ信号を取得するタイミングであるDQS信号のディレイタップを決定する。また、MC#0 20から出力されるDQ信号は、I/O回路30のラッチ回路30gに入力される。ラッチ回路30gには内部クロックが入力されてデータがラッチされ、ラッチされたデータがディレイタップ設定部30hに入力される。ディレイタップ設定部30hは、DQ信号のディレイタップを決定する。なお、一例として、4つのビットDQ0、DQ1、DQ2、DQ3が1つのまとまりとしてDQ信号が形成される。そして、各ビットのDQ信号は、伝送路50に含まれるそれぞれ異なるデータ線を用いたパラレル伝送により送信される。
【0028】
ディレイタップ設定部30bは、DQS信号の1周期分の位相幅を2(例えばN=5のときは、0〜31の32個)個で分割した幅を刻み幅として、DQS信号の遅延時間を制御する。同様に、ディレイタップ設定部30hは、単位幅を用いてDQ信号の遅延時間を制御する。また、ディレイタップ設定部30qは、単位幅を用いてメモリクロック信号の遅延時間を制御する。なお、MC#0 20が、データ取得判定レジスタ20e内の各種レジスタの設定値に従ってディレイタップ設定部30b、30c、30h、30i、30qを設定する。例えば、ディレイタップ設定部30b、30hにより、DQS信号の位相とDQ信号の位相との間の位相差が−180°〜+180°として決まる。
【0029】
ディレイタップ設定部30qによりディレイタップが決定され遅延時間が調整されたメモリクロック信号CLK0は、ドライバ30rを経由して伝送路60に出力される。メモリクロック信号CLK0はメモリモジュールのレシーバ70mを経由してRCD70nに入力される。RCD70nにおいてメモリクロック信号CLK0の信号強度やクロックタイミングの調整が行われた後、メモリクロック信号CLK0はメモリモジュール70内の
メモリ素子70a、70bに入力される。
【0030】
また、ディレイタップ設定部30b、30hによりそれぞれディレイタップが決定され遅延時間が調整されたDQS信号およびDQ信号は、ドライバ30d、30jを経由して伝送路40、50に出力される。DQS信号は、伝送路40、レシーバ70hまたはレシーバ70jを経由して、Rank0のメモリ素子70aまたはRank1のメモリ素子70bに入力する。また、DQ信号は、伝送路50、レシーバ70dまたはレシーバ70fを経由して、Rank0のメモリ素子70aまたはRank1のメモリ素子70bに入力する。メモリ素子70aまたはメモリ素子70bは、MC#0 20から出力されるWRITEまたはREADのコマンドに従って、入力されるDQS信号およびDQ信号を用いてデータの書き込みまたは読み出しを行う。
【0031】
メモリ素子70aは、MC#0 20からメモリ素子70aに対するREADのコマンドが入力される場合は、DQS信号および読み取ったDQ信号をそれぞれドライバ70g、70cを経由して同相で伝送路40、50に出力する。また、メモリ素子70bは、MC#0 20からメモリ素子70bに対するREADのコマンドが入力される場合は、DQS信号および読み取ったDQ信号をそれぞれドライバ70e、70iを経由して同相で伝送路40、50に出力する。
【0032】
メモリ素子70a、70bから出力されるDQS信号およびDQ信号は、それぞれI/O回路30のレシーバ30e、30kに入力される。DQS信号は、レシーバ30eからディレイタップ設定部30cに入力される。また、レシーバ30kは、分圧回路30nと接続されている。分圧回路30nは、リファレンス電圧設定部30mの制御に従って抵抗値を設定する。そして、分圧回路30nにより決まる抵抗値に従ってリファレンス電圧が調整される。リファレンス電圧はレシーバ30kに入力される。レシーバ30kはコンパレータ(図示せず)を有し、リファレンス電圧に基づいて入力されるDQ信号のHレベルおよびLレベルを決定する。
【0033】
レシーバ30kから出力されたDQ信号はディレイタップ設定部30iによりディレイタップが決定され、DQ信号の遅延時間が調整される。I/O回路30では、ディレイタップ設定部30c、30iにより、メモリ素子70aから同相で出力されたDQS信号とDQ信号との間の位相が例えば互いに90°ずらされる。ディレイタップ設定部30iから出力されたDQ信号は、ラッチ回路30fに入力される。ラッチ回路30fにはディレイタップ設定部30cから出力されるDQS信号が入力され、データがラッチされる。ラッチされたデータはMC#0 20に入力される。
【0034】
次に、本実施形態におけるデータ送受信システム1においてCPU10の制御により実行される処理について説明する。CPU10は、データ送受信システム1の電源が投入されると、図3に示すフローチャートの処理を開始する。
【0035】
OP101では、CPU10は、図示しないEPROM(Erasable Programmable Read-Only Memory)などの不揮発性メモリに格納されているPOST(Power-On Self Test)プログラム90を起動する。POSTプログラム90は、データ送受信システム1内の各ハードウェアの初期設定および異常検出のための診断などを実行するためのプログラムである。POSTプログラム90に、ディレイタップ制御部90aとして機能するプログラムが含まれている。
【0036】
CPU10は、POSTプログラム90を実行することで、ディレイタップ制御部90aが、MC#0 20、120、220、320から出力される各メモリクロック信号の位相を制御する。
【0037】
図4に、OP101においてCPU10が実行するサブルーチンの処理の一例を示す。OP201において、CPU10は、メモリコントローラ単位、またはメモリスロット単位すなわちDIMM単位で、メモリクロック信号のディレイタップを設定する。図5に、本実施形態においてメモリクロック信号のディレイタップを設定する際に使用されるレジスタの一例を示す。図5に例示するレジスタは、あらかじめデータ取得判定レジスタに格納されている。CPU10は、POSTプログラム90のディレイタップ制御部90aによって、各メモリコントローラからメモリモジュールに送信されるメモリクロック信号のディレイタップを設定する。
【0038】
また、図6に、ディレイタップ制御部90aがメモリコントローラ単位またはメモリスロット単位でメモリクロック信号のディレイタップを設定する際に参照するテーブルの一例を示す。なお、当該テーブルのデータは、一例としてPOSTプログラムが格納されている不揮発性メモリに格納されている。図6に示すテーブルにおいて、「MC」欄は、CPU10に接続されている各メモリコントローラを示す。また、「スロット」欄は、各メモリコントローラに接続されているメモリモジュールの各スロット(DIMM)を示す。「DQSグループ」欄は、メモリモジュールの各スロットが有するデータ格納用のチップごとにグループ分けした場合のグループを示す。なお、グループの詳細については後述する。
【0039】
図6に示すテーブルでは、メモリクロック信号のディレイタップの組合せが3つ(図中「Case1」、「Case2」、「Case3」)用意されている。「Case1」および「Case2」は、メ
モリクロック信号のディレイタップがメモリコントローラ単位で設定される組合せである。また、「Case3」は、メモリクロック信号のディレイタップがメモリコントローラのス
ロット単位で設定される組合せである。なお、本実施形態では、メモリクロック信号のディレイタップの組合せを3つ想定しているが、図6に示すテーブルに格納されるディレイタップの組合せの数はこれに限られない。また、メモリコントローラごとに設定されたメモリクロック信号のディレイタップの組合せが、伝送路に含まれる複数のデータ線ごとに指定された位相の組合せの一例である。さらに、メモリコントローラのスロットごとに設定されたメモリクロック信号のディレイタップの組合せが、伝送路に含まれる複数のデータ線ごとに指定された位相の組合せの一例である。
【0040】
また、各組合せの「ディレイ(ps)[位相(°)]」欄は設定されるメモリクロック信号のCPUクロック信号に対する位相差を示す。一例として「+1/8[+45]」は、CPU1
0のCPUクロック信号に対して1/8周期、すなわち位相に換算して+45°ずれたメモリクロック信号であることを意味する。また、「伝送振幅(code)」欄は、以下に説明するDQ信号の取得判定においてDQ信号の取得に成功したと判定されるDQ信号のリファレンス電圧方向の幅を示す。なお、コード(code)は、リファレンス電圧の設定における電圧値の分解能である。したがって、「伝送振幅(code)」欄の数値が大きいほど、幅広いリファレンス電圧の範囲においてデータ信号の取得に成功したことを意味する。
【0041】
OP201では、ディレイタップ制御部90aが図6に示すテーブルを参照し、テーブル内のいずれかのディレイタップの組合せを決定する。そして、ディレイタップ制御部90aは、決定した各メモリクロック信号のディレイタップを対応するメモリコントローラのデータ取得判定レジスタに格納する。各メモリコントローラは、データ取得判定レジスタに格納されたディレイタップに従って各I/O回路内のクロック信号用のディレイタップ設定部(図2の場合はディレイタップ設定部30q)を制御する。これにより、各I/O回路からはCPUクロック信号から位相がずれたメモリクロック信号が各メモリモジュールに送信される。次いで、CPU10は、処理をOP202に進める。
【0042】
図7(a)および7(b)に、OP201において、ディレイタップが設定された場合のメモリコントローラの動作の一例を模式的に示す。なお、図7(a)は、メモリクロック信号のディレイタップがメモリコントローラ単位でずらされている場合を例示する。また、図7(b)は、メモリクロック信号のディレイタップがスロット単位でずらされている場合を例示する。
【0043】
図7(a)に示す例では、MC#0 20のI/O回路から出力されるメモリクロック信号(CLK0、CLK1)のディレイタップは、CPUクロック信号の位相に対してずれない(0°)ように設定される。また、メモリコントローラMC#1 120のI/O回路から出力されるメモリクロック信号(CLK0、CLK1)のディレイタップは、CPUクロック信号の位相に対して45°ずれるように設定される。同様に、メモリコントローラMC#2 220、MC#3 320のI/O回路から出力されるメモリクロック信号(CLK0、CLK1)のディレイタップは、CPUクロック信号の位相に対してそれぞれ90°、135°ずれるように設定される。
【0044】
また、図7(b)に示す例では、MC#0 20のI/O回路からメモリモジュール70に出力されるメモリクロック信号(CLK0)のディレイタップは、CPUクロック信号の位相に対してずれない(0°)ように設定される。また、MC#0 20のI/O回路からメモリモジュール170出力されるメモリクロック信号(CLK1)のディレイタップは、CPUクロック信号の位相に対して45°ずれるように設定される。同様に、メモリコントローラMC#1 120のI/O回路からメモリモジュール270、370に出力されるメモリクロック信号(CLK0、CLK1)のディレイタップは、CPUクロック信号の位相に対してそれぞれ90°、135°ずれるように設定される。なお、メモリコントローラMC#2 220、MC#3 320のI/O回路からメモリモジュール470、570、670、770に出力されるメモリクロック信号のディレイタップも同様に設定される。
【0045】
OP201においてデータ取得判定レジスタに格納されるメモリクロック信号のディレイタップは、OP201の処理以前にメモリコントローラに設定されていたディレイタップとは異なる可能性がある。そこで、OP202では、CPU10は、各メモリコントローラに対して、OP201において各データ取得判定レジスタに格納されたディレイタップに従ってメモリクロック信号の同期化を指示する。これによって、各メモリコントローラは、OP201の処理によって新たに設定されたディレイタップに基づくメモリクロック信号に同期して動作する。次いで、CPU10は、処理をOP203に進める。
【0046】
OP203では、処理の主体がCPU10からMC#0 20に移る。そして、MC#0 20は、データ取得判定レジスタ20eに格納されている各種レジスタの設定値に従って、各DQ信号のリファレンス電圧およびディレイタップ、DQS信号のディレイタップを設定する。そして、MC#0 20は、メモリモジュール70に書き込まれたPRBSのランダムパターンを読み出すREADコマンドを生成する。生成されたREADコマンドは、I/O回路30から出力され、I/O回路30とメモリモジュール70とを接続する伝送路(図示せず)を経由してメモリ素子70aまたは70bに入力される。READコマンドを受信したメモリ素子70aまたは70bは、READコマンドに従って格納されているデータを読み出し、DQ信号としてDQS信号と共に同相でI/O回路30に出力する。I/O回路30は、メモリモジュール70から出力されたデータを受信する。
【0047】
また、本実施形態では、MC#0 20を対象にデータ取得の判定が行われる場合、残りのMC#1 120、MC#2 220、MC#3 320も、一例として上記のPRBSのランダムパターンを用いて動作させる。このように、データ取得の判定が実行されるメモリコントローラ以外の残りのメモリコントローラも動作させることで、他のメモリ
コントローラからのノイズ干渉が生じる状態を擬似的に発生させることができる。
【0048】
例えば、図8に示すように、MC#0 20を対象にデータ取得の判定が行われる場合は、MC#0 20ではPRBSのランダムパターンによるデータアクセスを実行する。そして、残りのMC#1 120、MC#2 220、MC#3 320では、MC#0
20に用いるPRBSのランダムパターンまたは0と1の値が規則的に連続するパターン(0×N,1×Nのパターン)によるデータアクセスを実行する。なお、0と1の値が規則的に連続するパターンは、0と1の値がそれぞれN(Nは自然数)個連続するパターンである。なお、N=1のときは、0と1の値が交互に連続するパターンとなる。
【0049】
そして、MC#0 20は、データ取得判定部20cにより、上記で生成されたPRBSのランダムパターンとREADコマンドによってメモリ素子70a、70bから読み出したPRBSのランダムパターンとが一致するか否かを判定する。そして、データ取得判定部20cは、PRBSのランダムパターンが一致すると判定された場合に、設定されているDQ信号のリファレンス電圧およびDQS信号のディレイタップにおけるデータの読み出しを成功と判定する。また、データ取得判定部20cは、PRBSのランダムパターンが一致しないと判定された場合は、設定されているDQ信号のリファレンス電圧およびDQS信号のディレイタップにおけるデータの読み出しを不成功と判定する。
【0050】
MC#0 20は、DQ信号の取得に成功したか否かの判定結果をデータ取得判定レジスタ20e内のレジスタに記憶する。そして、MC#0 20は、DQ信号のリファレンス電圧とDQS信号のディレイタップのすべての組み合わせに対してDQ信号の取得の判定処理を実行すると、処理はOP204に進む。OP204では、処理の主体がMC#0
20からCPU10に戻る。
【0051】
OP204では、CPU10は、図6に示すテーブルに格納されているディレイタップのすべての組合せに対してOP203のDQ信号の取得判定処理を実行したか否かを判定する。なお、一例として、MC#0 20内に各組合せについてDQ信号の取得判定処理を実行したか否かを示すレジスタを設けることで、CPU10は当該レジスタの値を参照してOP204の判定処理を実行すればよい。ディレイタップのすべての組合せに対してDQ信号の取得判定処理が実行された場合は(OP204:Yes)、CPU10は処理をOP205に進める。一方、DQ信号の取得判定処理を実行していないディレイタップの組合せが存在する場合は(OP204:No)、CPU10は処理をOP201に戻す。そして、CPU10は、取得判定処理を実行していないディレイタップの組合せに従ってOP201のディレイタップの設定を行う。
【0052】
OP205では、CPU10は、OP203におけるDQ信号の取得判定の結果に基づいて、図6に例示するディレイタップの組合せのうち、DQ信号のリファレンス電圧方向において、DQ信号の取得に成功する幅が他の組合せの場合より広い組合せを決定する。そして、CPU10は、決定した組合せに従って、各メモリコントローラのメモリクロック信号のディレイタップを設定する。
【0053】
OP205において、CPU10は、決定部として機能し、各データ信号に対するタイミング信号の位相が伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って第2のデータ送受信装置を動作させる場合、データ信号を取得できるか否かを判定する基準となる電圧の範囲が、該情報に含まれる他の位相の組合せにおいてデータ信号を取得できる電圧の範囲よりも広くなる位相の組合せを決定する。また、CPU10は、制御部として機能し、決定部が決定した位相の組合せに基づいて第2のデータ送受信装置を制御する。次いで、CPU10は、処理をOP206に進める。
【0054】
OP206では、OP202と同様に、CPU10は、各メモリコントローラに対して、OP205において各データ取得判定レジスタに格納されたディレイタップに従ってメモリクロック信号の同期化を指示する。これによって、各メモリコントローラは、OP201の処理によって新たに設定されたディレイタップに基づくメモリクロック信号に同期して動作する。OP206の処理が完了すると、CPU10は、本サブルーチンの処理を終了して処理をOP102に進める。
【0055】
図9に、上記の処理によってメモリクロック信号のディレイタップが設定された場合のメモリコントローラとメモリモジュールとの間を伝送する信号のノイズを模式的に示す。図中、横軸は時間を表し、縦軸はノイズ成分の信号レベルを示す。上記の処理よってメモリクロック信号のディレイタップが新たに決定される前の信号に含まれるノイズは、同時アクセスによって増幅されている(図中「データアクセス調整前」)。そして、上記の処理によってメモリクロック信号のディレイタップが新たに決定された後は、ノイズ波形の重なりが分散され、ノイズ成分の信号が互いに打ち消し合うなどにより、ノイズ量が抑えられる(図中「データアクセス調整後」)。
【0056】
次に、OP102においてCPU10が実行するサブルーチンの処理を、図10を参照しながら説明する。OP301では、CPU10は、メモリモジュールのスロットごとに決められたDQSグループ単位でDQS信号のディレイタップを設定する。ここで、図11の例を参照しながら、本実施形態におけるDQSグループについて説明する。
【0057】
図11に、メモリモジュール70の1メモリ素子70aの構成の一例を模式的に示す。なお、他のメモリ素子も同様に構成されているものとする。図11は、メモリ素子70aの表面に設けられているチップを示す。図11に示すように、一例として1つのメモリ素子70aは9個のチップ71〜79を有し、メモリコントローラ#0 20は、チップごとにDQS信号および4つのDQ信号(一例としてチップ71の場合はDQ0〜DQ3のDQ信号)の送受信を行う。また、メモリコントローラ#0 20は、それぞれ異なるデータ線81〜89によってチップ71〜79に接続されている。なお、図中、チップ71〜79に送信されるDQS信号をDQS0〜8で示す。
【0058】
本実施形態では、メモリ素子70aの表面と裏面とにそれぞれ9個のチップが設けられている。また、チップがメモリ素子上のチップ構成に応じてグループに分けられる。裏面にも表面と同様の配置でチップが設けられており、裏面の9個のチップに送信されるDQS信号をDQS9〜17で示す。なお、図11では、裏面の各チップに送信されるDQS信号DQS9〜17をチップ71〜79に重ねて示す。
【0059】
このように、本実施形態では、メモリ素子のチップに送信されるDQS信号に基づいてチップをグループ分けした場合の各グループをDQSグループと称する。図11の例では、DQS0、1、9、10のDQS信号が送信されるチップをDQSグループ1とする。同様に、DQS2、3、4、11、12のDQS信号が送信されるチップをDQSグループ2とする。また、DQS5、6、13、14のDQS信号が送信されるチップをDQSグループ3とする。さらに、DQS7、8、15、16、17のDQS信号が送信されるチップをDQSグループ4とする。
【0060】
なお、各DQSグループに含まれるチップの個数やどのチップがどのDQSグループに属するかについては、メモリコントローラとチップを接続するデータ線ごとに適宜決定することができる。そして、メモリコントローラがDQSグループごとにDQS信号のディレイタップを設定することで、メモリモジュールのメモリ素子のチップに基づくグループ単位でDQ信号の取得タイミングの調整が行われる。なお、DQSグループごとに設定さ
れたDQS信号のディレイタップが、伝送路に含まれる複数のデータ線ごとに指定された位相の組合せの一例である。
【0061】
図12に、ディレイタップ制御部90aがDQSグループ単位でDQS信号のディレイタップを設定する際に参照するテーブルの一例を示す。なお、当該テーブルのデータは、一例としてPOSTプログラムが格納される不揮発性メモリに格納されている。図12に示すテーブルにおいて、「DQSグループ」欄には、DQSグループごとにDQS信号がまとめられている。また、「DQ」欄は、各DQS信号DQS0〜17によって取得されるDQ信号を示す。例えば、図中「DQ[3:0]」は、DQ0〜DQ3のDQ信号を意味する。
【0062】
図12に示すテーブルでは、DQSグループごとに設定されるDQS信号のディレイタップの組合せが3つ(図中「Case1」、「Case2」、「Case3」)用意されている。各組合
せの「サイクル(tCK)[位相(°)]」欄は、設定されるDQS信号のCPUクロック
信号に対する位相差を示す。なお、「tCK」は、クロック信号の1周期を意味する。した
がって、例えば「1/8tCK」はクロック信号の1/8周期を意味する。そして、一例として「+1/8[+45]」は、CPU10のCPUクロック信号に対して+1/8周期、すなわち位
相に換算して+45°ずれたDQS信号であることを意味する。また、「伝送振幅(code)」欄は、DQ信号の取得判定においてDQ信号の取得に成功したと判定されるDQ信号のリファレンス電圧方向の幅を示す。なお、コード(code)は、リファレンス電圧の設定における電圧値の分解能である。したがって、「伝送振幅(code)」欄の数値が大きいほど、幅広いリファレンス電圧の範囲においてDQ信号の取得に成功したことを意味する。
【0063】
また、図13に、図12に示すテーブルのディレイタップの組合せ「Case1」によって
DQSグループごとにDQS信号のディレイタップが設定された場合のDQ信号の位相の一例を示す。なお、横軸は時間を表し、縦軸は信号のレベルを表す。本実施形態では、図12に示すテーブルに従ってDQSグループ間でDQ信号の位相がずらされた状態で、各メモリコントローラを動作させる。
【0064】
OP302では、処理の主体がCPU10からMC#0 20に移る。そして、MC#0 20は、データ取得判定レジスタ20eに格納されている各種レジスタの設定値に従って、各DQ信号のリファレンス電圧およびディレイタップ、DQS信号のディレイタップを設定する。そして、MC#0 20は、メモリモジュール70に書き込まれたPRBSのランダムパターンを読み出すREADコマンドを生成する。生成されたREADコマンドは、I/O回路30から出力され、I/O回路30とメモリモジュール70とを接続する伝送路を経由してメモリ素子70aまたは70bに入力される。READコマンドを受信したメモリ素子70aまたは70bは、READコマンドに従って格納されているデータを読み出し、DQ信号としてDQS信号と共に同相でI/O回路30に出力する。I/O回路30は、メモリモジュール70から出力されたデータを受信する。
【0065】
また、本実施形態では、OP203と同様に、MC#0 20を対象にデータ取得の判定が行われる場合、残りのMC#1 120、MC#2 220、MC#3 320も、一例として上記のPRBSのランダムパターンを用いて動作させる。なお、残りのMC#1 120、MC#2 220、MC#3 320では、MC#0 20に用いるPRBSのランダムパターンの代わりに0と1の値が規則的に連続するパターンによるデータアクセスを実行させてもよい。
【0066】
そして、MC#0 20は、データ取得判定部20cにより、上記で生成されたPRBSのランダムパターンとREADコマンドによってメモリ素子70a、70bから読み出したPRBSのランダムパターンとが一致するか否かを判定する。そして、データ取得判
定部20cは、PRBSのランダムパターンが一致すると判定された場合に、設定されているDQ信号のリファレンス電圧およびDQS信号のディレイタップにおけるデータの読み出しを成功と判定する。また、データ取得判定部20cは、PRBSのランダムパターンが一致しないと判定された場合は、設定されているDQ信号のリファレンス電圧およびDQS信号のディレイタップにおけるデータの読み出しを不成功と判定する。
【0067】
MC#0 20は、DQ信号の取得に成功したか否かの判定結果をデータ取得判定レジスタ20e内のレジスタに記憶する。そして、MC#0 20は、DQ信号のリファレンス電圧とDQS信号のディレイタップのすべての組み合わせに対してDQ信号の取得の判定処理を実行すると、処理はOP303に進む。OP303では、処理の主体がMC#0
20からCPU10に戻る。
【0068】
OP303では、CPU10は、図12に示すテーブルに格納されているディレイタップのすべての組合せに対してOP302のDQ信号の取得判定処理を実行したか否かを判定する。なお、一例として、MC#0 20内に各組合せについてDQ信号の取得判定処理を実行したか否かを示すレジスタを設けることで、CPU10は当該レジスタの値を参照してOP303の判定処理を実行すればよい。ディレイタップのすべての組合せに対してDQ信号の取得判定処理が実行された場合は(OP303:Yes)、CPU10は処理をOP304に進める。一方、DQ信号の取得判定処理を実行していないディレイタップの組合せが存在する場合は(OP303:No)、CPU10は処理をOP301に戻す。そして、CPU10は、取得判定処理を実行していないディレイタップの組合せに従ってOP301のディレイタップの設定を行う。
【0069】
OP304では、CPU10は、OP302におけるDQ信号の取得判定の結果に基づいて、図11に例示するディレイタップの組合せのうち、DQ信号のリファレンス電圧方向において、DQ信号の取得に成功する幅が他の組合せの場合より広い組合せを決定する。そして、CPU10は、決定した組合せに従って、メモリモジュール70のメモリ素子70aにおけるDQSグループごとにDQS信号のディレイタップを設定する。
【0070】
OP304において、CPU10は、決定部として機能し、各データ信号に対するタイミング信号の位相が、伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って第2のデータ送受信装置を動作させる場合、データ信号を取得できるか否かを判定する基準となる電圧の範囲が、該情報に含まれる他の位相の組合せにおいてデータ信号を取得できる電圧の範囲よりも広くなる位相の組合せを決定する。また、CPU10は、制御部として機能し、決定部が決定した位相の組合せに基づいて第2のデータ送受信装置を制御する。OP304の処理が完了すると、CPU10は、本サブルーチンの処理を終了して処理をOP103に進める。
【0071】
図14に、上記のOP301〜OP304の処理によってDQS信号のディレイタップが設定された場合のメモリコントローラとメモリモジュールとの間を伝送する信号のノイズを模式的に示す。図14では、N個のDQSグループごとにディレイタップが設定される場合を想定する。図中、横軸が時間であり、縦軸がノイズ成分の信号レベルを示す。上記の処理よってDQS信号のディレイタップが新たに決定される前の、各DQSグループの信号(図中DQS[0]〜DQS[N])に含まれるノイズは、同時アクセスによって増幅されている(図中「データアクセス調整前」のDQS[N:0])。そして、上記の処理によってDQS信号のディレイタップが新たに決定された後は、ノイズ波形の重なりが分散され、ノイズ成分の信号が互いに打ち消し合うなどにより、ノイズ量が抑えられる(図中「データアクセス調整後」のDQS[N:0])。
【0072】
OP103では、CPU10は、POSTプログラムにより、データ送受信システム1
内の各ハードウェアの動作の診断を行う。次いで、OP104において、CPU10は、POSTプログラム実行後にOS(Operating System)が起動され、データ送受信システム1における種々の処理が開始される。そして、上記の処理のよって決定された各信号のディレイタップの組合せに従ってCPUと各メモリモジュールとの間のデータアクセスが実行される。
【0073】
図15、16、17に、本実施形態の上記のOP101におけるメモリクロック信号のディレイタップの組合せに基づくデータ取得判定の結果の一例を模式的に示す。図15、16、17には、一例として、メモリモジュールがDIMM0とDIMM1を有し、上記の処理のよってDIMMごとにDQS信号のディレイタップを設定した場合の3つのディレイタップの組合せについての結果を示す。なお、各組合せの結果を示す図において、横軸はDQS信号のディレイタップを表し、縦軸はDQ信号のリファレンス電圧を表す。また、図中、参考のため、「×」はDQ信号の取得に失敗した場合を示し、「○」は判定対象のメモリコントローラのみを動作させた場合にDQ信号の取得に成功した場合を示す。さらに「◎」は、本実施形態により、判定対象のメモリコントローラおよび判定対象以外のメモリコントローラを動作させた場合にDQ信号の取得に成功した場合を示す。
【0074】
図15に示すように、DIMM0とDIMM1に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対してずれていない(図中「CLKディレイ:デフォルト」)場合は、DQ信号の取得に成功するコードは6コード分である。また、図16には、DIMM0に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対して90°ずらされ、DIMM1に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対してずれていない場合を示す。この場合、DQ信号の取得に成功するコードは8コード分である。さらに、図17には、DIMM0に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対して135°ずらされ、DIMM1に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対してずれていない場合を示す。この場合、DQ信号の取得に成功するコードは10コード分である。したがって、DIMM0に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対して135°ずらされ、DIMM1に対するメモリクロック信号のディレイタップがCPUクロック信号の位相に対してずれていないディレイタップの組合せが、他の組合せに比べてDQ信号の取得の成功率が高いことがわかる。本実施形態によれば、DQ信号の取得の成功率がより高くなるディレイタップの組合せを決定し、当該組合せに従ってメモリコントローラを動作させることができる。
【0075】
本実施形態によれば、メモリコントローラ単位、DIMM単位またはDQSグループ単位でのディレイタップ設定が、複数のメモリコントローラを動作させた場合の干渉ノイズが低減されるよう最適化される。ここで、メモリコントローラ単位が、複数の制御装置の各装置の一例である。また、DIMM単位が、複数の第2のデータ送受信装置の各装置の一例である。さらに、DQSグループ単位が、データ信号により送受信されるデータを格納する複数の領域の各領域の一例である。そして、これらのメモリモジュールに関する構成単位によるディレイタップ設定の最適化により、CPUと各メモリモジュールとの間のデータアクセスにおけるデータ取得処理の品質が向上する。すなわち、本実施形態では、従来技術におけるCPUと1つのメモリモジュールと間のディレイタップ設定に加えて、ノイズ発生環境下におけるリファレンス電圧の再調整が行われる。この結果、データ送受信システム1の実運用、あるいはシステム実運用を模擬したテストプログラム環境下においても、データ取得処理に最適なリファレンス電圧を決定することができる。
【0076】
さらに、上記で例示した各ノイズ波形の大小や形状は、CPUのプロセスやメモリモジュール内のメモリ素子等の個体差で変化する。本実施形態によれば、また、システムの電源投入後にPOSTプログラム内のフローの中で上記の処理が実施されるため、メモリモ
ジュールやCPU等のハードウェアの個体差の影響を受けることなく種々のハードウェアの組合せに最適なディレイタップの調整が行える。
【0077】
以上が本実施形態に関する説明であるが、上記のデータ送受信システム1などの構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記の実施形態では、OP101およびOP102によってディレイタップの組合せが決定されるが、OP101とOP102のいずれか一方を実行してディレイタップの組合せを決定してもよい。
【0078】
<コンピュータが読み取り可能な記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記データ送受信装置の設定を行うための管理ツール、OSその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、情報処理装置、サーバーシステム、管理サーバーなどである。
【0079】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
【0080】
以上の実施形態に関し、さらに以下の付記を開示する。
【0081】
(付記1)
第1のデータ送受信装置と、前記第1のデータ送受信装置に伝送路を介して接続される第2のデータ送受信装置と、前記第1のデータ送受信装置と前記第2のデータ送受信装置とに接続されるとともに、前記第1のデータ送受信装置と前記第2のデータ送受信装置との間のデータ信号と前記データ信号を取得するタイミングを示すタイミング信号との送受信をそれぞれ制御する複数の制御装置とを有するデータ送受信システムにおいて、
前記第1のデータ送受信装置は、
各データ信号に対するタイミング信号の位相が前記伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って前記第2のデータ送受信装置を動作させる場合、前記データ信号を取得できるか否かを判定する基準となる電圧の範囲が、前記情報に含まれる他の位相の組合せにおいてデータ信号を取得できる電圧の範囲よりも広くなる位相の組合せを決定する決定部と、
前記決定部が決定した位相の組合せに基づいて前記第2のデータ送受信装置を制御する制御部と、
を有することを特徴とするデータ送受信システム。
(付記2)
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の制御装置ごとに指定された位相の組合せであることを特徴とする付記1に記載のデータ送受信システム。
(付記3)
前記データ送受信システムは、複数の前記第2のデータ送受信装置を備え、
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の第2のデータ送受信装置ごとに指定された位相の組合せである
ことを特徴とする付記1に記載のデータ送受信システム。
(付記4)
前記第2のデータ送受信装置は、前記データ信号により送受信されるデータを格納する、前記複数のデータ線と接続される複数の領域を有し、
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の領域ごとに指定された位相の組合せである
ことを特徴とする付記1に記載のデータ送受信システム。
(付記5)
前記第1のデータ送受信装置は、演算処理装置であり、
前記第2のデータ送受信装置は、前記データを格納するメモリであり、
前記制御装置は、前記演算処理装置の制御に従って、前記メモリを制御するメモリ制御装置である
ことを特徴とする付記1から4のいずれかに記載のデータ送受信システム。
(付記6)
データ信号を記憶する記憶装置に伝送路を介して接続されるとともに、前記データ信号と前記データ信号を取得するタイミングを示すタイミング信号との送受信をそれぞれ制御する複数の制御装置と接続されるデータ送受信装置であって、
各データ信号に対するタイミング信号の位相が前記伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って前記記憶装置を動作させる場合、前記データ信号を取得できるか否かを判定する基準となる電圧の範囲が、前記情報に含まれる他の位相の組合せにおいてデータ信号を取得できる電圧の範囲よりも広くなる位相の組合せを決定する決定部と、
前記決定部が決定した位相の組合せに基づいて前記記憶装置を制御する制御部と
を有することを特徴とするデータ送受信装置。
(付記7)
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の制御装置ごとに指定された位相の組合せであることを特徴とする付記6に記載のデータ送受信装置。
(付記8)
前記複数の制御装置は、複数の前記記憶装置に接続され、
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の記憶装置ごとに指定された位相の組合せである
ことを特徴とする付記6に記載のデータ送受信装置。
(付記9)
前記記憶装置は、前記データ信号により送受信されるデータを格納する、前記複数のデータ線と接続される複数の領域を有し、
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の領域ごとに指定された位相の組合せである
ことを特徴とする付記6に記載のデータ送受信装置。
(付記10)
前記データ送受信装置は、演算処理装置であり、
前記記憶装置は、前記データを格納するメモリであり、
前記制御装置は、前記演算処理装置の制御に従って、前記メモリを制御するメモリ制御装置である
ことを特徴とする付記6から9のいずれかに記載のデータ送受信システム。
(付記11)
第1のデータ送受信装置と、前記第1のデータ送受信装置に伝送路を介して接続される第2のデータ送受信装置と、前記第1のデータ送受信装置と前記第2のデータ送受信装置とに接続されるとともに、前記第1のデータ送受信装置と前記第2のデータ送受信装置との間のデータ信号と前記データ信号を取得するタイミングを示すタイミング信号との送受信をそれぞれ制御する複数の制御装置とを有するデータ送受信システムの制御方法であって、
前記第1のデータ送受信装置に、
各データ信号に対するタイミング信号の位相が、前記伝送路に含まれる複数のデータ線ごとに指定された位相の組合せを複数含む情報に基づいて、各位相の組合せに従って前記第2のデータ送受信装置を動作させる場合、前記データ信号を取得できるか否かを判定する基準となる電圧の範囲が、前記情報に含まれる他の位相の組合せにおいてデータ信号を取得できる電圧の範囲よりも広くなる位相の組合せを決定させ、
前記決定した位相の組合せに基づいて前記第2のデータ送受信装置を制御させる
ことを特徴とするデータ送受信システムの制御方法。
(付記12)
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の制御装置ごとに指定された位相の組合せであることを特徴とする付記11に記載のデータ送受信システムの制御方法。
(付記13)
前記データ送受信システムは、複数の前記第2のデータ送受信装置を備え、
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の第2のデータ送受信装置ごとに指定された位相の組合せである
ことを特徴とする付記11に記載のデータ送受信システムの制御方法。
(付記14)
前記記憶装置は、前記データ信号により送受信されるデータを格納する、前記複数のデータ線と接続される複数の領域を有し、
前記複数のデータ線ごとに指定された位相の組合せは、前記複数の領域ごとに指定された位相の組合せである
ことを特徴とする付記11に記載のデータ送受信システムの制御方法。
(付記15)
前記データ送受信装置は、演算処理装置であり、
前記記憶装置は、前記データを格納するメモリであり、
前記制御装置は、前記演算処理装置の制御に従って、前記メモリを制御するメモリ制御装置である
ことを特徴とする付記11から14のいずれかに記載のデータ送受信システムの制御方法。
【符号の説明】
【0082】
1 データ送受信システム
10 CPU
20、120、220、320 メモリコントローラ
I/O回路 30
70、170、270、370、470、570、670、770 メモリモジュール70a、70b メモリ素子
71〜79 チップ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17