(57)【要約】【課題】データストローブ信号ＤＱＳとシステムクロックとの同期化を適切に実行する。【解決手段】システムクロック同期化回路（１９）と、システムクロック同期化回路（１９）の前段に配置され、クロック供給バッファ（２３）からデータストローブバッファ（１６−１）までの伝達遅延を検出する遅延検出回路（１８）とを具備するメモリインターフェース回路を構成する。遅延検出回路（１８）は、システムクロック（ＳＣＬＫ、ＨＳＣＬＫ、ＣＫ）の位相とデータストローブ信号（ＤＱＳ）の位相との差に基づいて伝達遅延を示す位相差データ（Ｐ）を生成してシステムクロック同期化回路（１９）に供給する。システムクロック同期化回路（１９）は、位相差データ（Ｐ）に基づいて、システムクロック（ＳＣＬＫ、ＨＳＣＬＫ、ＣＫ）をシフトさせたリードクロック（ｒｃｌｋ）を生成し、リードクロック（ｒｃｌｋ）に基づいて、データ（ＤＱ）をロジック回路（２７）に供給する供給タイミングを制御する。【選択図】図３
2010108217.tif 000002
【特許請求の範囲】
【請求項１】
基準ノードを介して供給されるシステムクロックを、伝送路を介してメモリに送るクロック供給バッファと、
前記メモリから供給されるデータストローブ信号を受けるデータストローブバッファと、
前記メモリから読み出されたデータを、前記システムクロックに同期させてロジック回路に供給するシステムクロック同期化回路と、
前記システムクロック同期化回路の前段に配置され、前記クロック供給バッファから前記データストローブバッファまでの伝達遅延を検出する遅延検出回路と
を具備し、
前記遅延検出回路は、
前記システムクロックの位相と前記データストローブバッファから出力される前記データストローブ信号の位相の差に基づいて前記伝達遅延を示す位相差データを生成し、前記位相差データを前記システムクロック同期化回路に供給し、
前記システムクロック同期化回路は、
前記位相差データに基づいて、前記システムクロックをシフトさせたリードクロックを生成し、前記リードクロックに基づいて、前記データを前記ロジック回路に供給する供給タイミングを制御する
メモリインターフェース回路。
【請求項２】
請求項１に記載のメモリインターフェース回路において、
前記遅延検出回路は、
前記データストローブ信号を非活性化させるマスク信号に基づいて前記データストローブ信号の立ち上がりタイミングと立ち下りタイミングとを特定し、
特定された前記立ち上がりタイミングと前記立ち下りタイミングとによって決定する前記データストローブ信号の有効範囲に基づいて前記位相差データを生成する
メモリインターフェース回路。
【請求項３】
請求項２に記載のメモリインターフェース回路において、
前記遅延検出回路は、
演算回路と、
信号生成回路と、
期待値照合回路と
を備え、
前記信号生成回路は、
マスク信号生成命令に応答して、前記マスク信号と、前記マスク信号の基準となる基準マスク信号とを生成し、
前記マスク信号を段階的にシフトしてシフトマスク信号を生成し、
前記期待値照合回路は、
前記シフトマスク信号のタイミングに応じて前記データストローブ信号をシフトさせたシフト結果に基づいて、前記データストローブ信号の立ち下りタイミングを特定する
メモリインターフェース回路。
【請求項４】
請求項３に記載のメモリインターフェース回路において、
前記信号生成回路は、
前記基準マスク信号を段階的にシフトしてシフト基準マスク信号を生成し、
前記期待値照合回路は、
前記シフト基準マスク信号のタイミングに応じて前記データストローブ信号をシフトさせたシフト結果に基づいて、前記データストローブ信号の立ち上がりタイミングを特定する
メモリインターフェース回路。
【請求項５】
請求項１から４のいずれか１項に記載のメモリインターフェース回路において、
前記システムクロック同期化回路は、
前記位相差データに基づいて前記システムクロックをシフトさせる位相シフト量を特定し、前記位相シフト量に基づいて、前記リードクロックを生成する
メモリインターフェース回路。
【請求項６】
請求項５に記載のメモリインターフェース回路において、
前記システムクロック同期化回路は、
前記リードクロックを生成する位相シフト回路と、
シリアル／パラレル変換回路から供給されるパラレルデータを、前記リードクロックに応答して読み出す読み出し回路と
を備え、
前記位相シフト回路は、
前記システムクロックの位相を段階的にシフトさせて位相の異なる複数のクロックを生成するフリップフロップ群と、
前記位相差データに応答して、前記複数のクロックから所望のクロックを選択する選択回路と
を含み、
前記位相シフト回路は、
前記選択されたクロックを、前記リードクロックとして前記読み出し回路に供給する
メモリインターフェース回路。
【請求項７】
（ａ）基準ノードを介して供給されるシステムクロックを、クロック供給バッファを経由してメモリに送るステップと、
（ｂ）前記メモリから供給されるデータストローブ信号を、データストローブバッファで受けるステップと、
（ｃ）前記クロック供給バッファから前記データストローブバッファまで至る伝達遅延を、前記システムクロック同期化回路の前段に配置された遅延検出回路で検出するステップと、
（ｄ）前記メモリから読み出されたデータを、システムクロック同期化回路で前記システムクロックに同期させてロジック回路に供給するステップと、
を具備し、
前記（ｃ）ステップは、
前記システムクロックの位相と前記データストローブバッファから出力される前記データストローブ信号の位相との差に基づいて前記伝達遅延を示す位相差データを生成するステップと、
前記位相差データを前記システムクロック同期化回路に供給するステップと
を含み、
前記（ｄ）ステップは、
前記位相差データに基づいて、前記システムクロックをシフトさせたリードクロックを生成するステップと、
前記リードクロックに基づいて、前記データを前記ロジック回路に供給する供給タイミングを制御するステップと
を含む
メモリインターフェース回路の動作方法。
【請求項８】
請求項７に記載のメモリインターフェース回路の動作方法において、
前記（ｃ）ステップは、
前記データストローブ信号を非活性化させるマスク信号に基づいて前記データストローブ信号の立ち上がりタイミングと立ち下りタイミングとを特定するステップと、
特定された前記立ち上がりタイミングと前記立ち下りタイミングとによって決定する前記データストローブ信号の有効範囲に基づいて前記位相差データを生成するステップと
を含む
メモリインターフェース回路の動作方法。
【請求項９】
請求項８に記載のメモリインターフェース回路の動作方法において、
前記（ｃ）ステップは、
マスク信号生成命令に応答して、前記マスク信号と前記マスク信号の基準となる基準マスク信号とを生成するステップと、
前記マスク信号を段階的にシフトしてシフトマスク信号を生成するステップと、
前記シフトマスク信号のタイミングに応じて前記データストローブ信号をシフトさせたシフト結果に基づいて、前記データストローブ信号の立ち下りタイミングを特定するステップと
を含む
メモリインターフェース回路の動作方法。
【請求項１０】
請求項９に記載のメモリインターフェース回路の動作方法において、
前記（ｃ）ステップは、さらに、
前記基準マスク信号を段階的にシフトしてシフト基準マスク信号を生成するステップと、
前記シフト基準マスク信号のタイミングに応じて前記データストローブ信号をシフトさせたシフト結果に基づいて、前記データストローブ信号の立ち上がりタイミングを特定するステップと
を含む
メモリインターフェース回路の動作方法。
【請求項１１】
請求項７から１０のいずれか１項に記載のメモリインターフェース回路の動作方法において、
前記（ｄ）ステップは、
前記位相差データに基づいて前記システムクロックをシフトさせる位相シフト量を特定するステップと、
前記位相シフト量に基づいて、前記リードクロックを生成するステップと
を含む
メモリインターフェース回路の動作方法。
【請求項１２】
請求項１１に記載のメモリインターフェース回路の動作方法において、
前記（ｄ）ステップは、
前記システムクロックの位相を段階的にシフトさせて位相の異なる複数のクロックを生成するステップと、
前記位相差データに応答して、前記複数のクロックから所望のクロックを選択するステップと、
前記選択されたクロックを、前記リードクロックとして前記読み出し回路に供給するステップと、
シリアル／パラレル変換回路から供給されるパラレルデータを、前記リードクロックに応答して読み出すステップと
を含む
メモリインターフェース回路の動作方法。
【請求項１３】
メモリクロックに同期して動作するメモリモジュールと、
システムクロックに同期して動作するロジック回路と、
前記メモリモジュールと前記ロジック回路との間に設けられるメモリインターフェース回路と
を具備し、
前記メモリインターフェース回路は、
基準ノードを介して供給されるシステムクロックを、伝送路を介してメモリに送るクロック供給バッファと、
前記メモリから供給されるデータストローブ信号を受けるデータストローブバッファと、
前記メモリから読み出されたデータを、前記システムクロックに同期させてロジック回路に供給するシステムクロック同期化回路と、
前記システムクロック同期化回路の前段に配置され、前記クロック供給バッファから前記データストローブバッファまでの伝達遅延を検出する遅延検出回路と
を具備し、
前記遅延検出回路は、
前記システムクロックの位相と前記データストローブバッファから出力される前記データストローブ信号の位相との差に基づいて前記伝達遅延を示す位相差データを生成し、前記位相差データを前記システムクロック同期化回路に供給し、
前記システムクロック同期化回路は、
前記位相差データに基づいて、前記システムクロックをシフトさせたリードクロックを生成し、前記リードクロックに基づいて、前記データを前記ロジック回路に供給する供給タイミングを制御する
情報処理装置。
【請求項１４】
請求項１３に記載の情報処理装置において、
前記遅延検出回路は、
前記データストローブ信号を非活性化させるマスク信号に基づいて前記データストローブ信号の立ち上がりタイミングと立ち下りタイミングとを特定し、
特定された前記立ち上がりタイミングと前記立ち下りタイミングとによって決定する前記データストローブ信号の有効範囲に基づいて前記位相差データを生成する
情報処理装置。
【請求項１５】
請求項１４に記載の情報処理装置において、
前記遅延検出回路は、
演算回路と、
信号生成回路と、
期待値照合回路と
を備え、
前記信号生成回路は、
マスク信号生成命令に応答して、前記マスク信号と、前記マスク信号の基準となる基準マスク信号とを生成し、
前記マスク信号を段階的にシフトしてシフトマスク信号を生成し、
前記期待値照合回路は、
前記シフトマスク信号のタイミングに応じて前記データストローブ信号をシフトさせたシフト結果に基づいて、前記データストローブ信号の立ち下りタイミングを特定する
情報処理装置。
【請求項１６】
請求項１５に記載の情報処理装置において、
前記信号生成回路は、
前記基準マスク信号を段階的にシフトしてシフト基準マスク信号を生成し、
前記期待値照合回路は、
前記シフト基準マスク信号のタイミングに応じて前記データストローブ信号をシフトさせたシフト結果に基づいて、前記データストローブ信号の立ち上がりタイミングを特定する
情報処理装置。
【請求項１７】
請求項１３から１６のいずれか１項に記載の情報処理装置において、
前記システムクロック同期化回路は、
前記位相差データに基づいて前記システムクロックをシフトさせる位相シフト量を特定し、前記位相シフト量に基づいて、前記リードクロックを生成する
情報処理装置。
【請求項１８】
請求項１７に記載の情報処理装置において、
前記システムクロック同期化回路は、
前記リードクロックを生成する位相シフト回路と、
シリアル／パラレル変換回路から供給されるパラレルデータを、前記リードクロックに応答して読み出す読み出し回路と
を備え、
前記位相シフト回路は、
前記システムクロックの位相を段階的にシフトさせて位相の異なる複数のクロックを生成するフリップフロップ群と、
前記位相差データに応答して、前記複数のクロックから所望のクロックを選択する選択回路と
を含み、
前記位相シフト回路は、
前記選択されたクロックを、前記リードクロックとして前記読み出し回路に供給する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリインターフェース及びメモリインターフェースの動作方法に関する。
【背景技術】
【０００２】
情報処理技術の進歩に伴って、高速化、低消費電力化を可能にした半導体記憶装置が普及している。そのような半導体記憶装置において、高速データ通信を実現するために、データストローブ信号（ＤＱＳ）を採用した半導体記憶装置に関する技術が知られている。データストローブ信号（ＤＱＳ）を採用した半導体記憶装置としては、例えば、ＤＤＲ（Double  Data  Rate）２  ＳＤＲＡＭ（Synchronous  DRAM）や、ＤＤＲ３  ＳＤＲＡＭなど、データ転送レートがＧｂｐｓ帯の半導体記憶装置が例示される。
【０００３】
一般的に、そのような半導体記憶装置とＣＰＵとの間には、それらの仲立ちをするメモリインターフェースが備えられている。そのメモリインターフェースは、実装基板の配線の引き回しを含んだ基板実装シミュレーションの結果に基づいて実装される。近年御願導体記憶装置では、データレート上昇によるシステムクロックの高速化や電源の低電圧化に伴い、シミュレーション結果にしたがった実装形態を実現しても、実層配線の相対精度や実装基板の温度等による入出力バッファの遅延時間のばらつきが発生することがある。このような不具合を解消するため、ＬＳＩを実装後に入出力バッファの個体差による遅延時間を調整できるメモリインターフェース回路が求められる。
【０００４】
例えば、データ転送レートがＧｂｐｓ帯のメモリに対するデータの読み書きを適切に行うには、そのメモリから出力されたリードデータを、内部のフリップフロップによりキャプチャーする部分、及び、そのフリップフロップからシステムクロックに同期化させる部分などの設計を適切に行うことが求められる。
【０００５】
その同期化したデータの有効範囲を決定するために、メモリコントローラから出力したクロックが、メモリ（ＳＤＲＡＭ）を経由して、データストローブ信号ＤＱＳとしてメモリコントローラに戻ってくるまでのラウンドトリップディレイ（Round-Trip-Delay）を算出する技術が知られている（例えば、特許文献１参照。）。
【０００６】
図１は、特許文献１（特開２００７−２８０２８９号公報）に記載の半導体装置の構成を示す回路図である。特許文献１には、ダブルデータレートのメモリとの間で伝送されるクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳの到達時間を伝送路の反射波を利用して取得し、取得したクロック信号及びデータストローブ信号の到達時間に基づいて同期化するデータの有効範囲を求めるようにして、実際の実装及び接続環境に応じてシステムクロックに同期化するデータの有効範囲を決定できるようにする技術が記載されている。この技術によって、実際の実装及び接続環境に応じた、システムクロックに同期化したデータの有効範囲を正確に決定できるとしている。
【０００７】
また、特許文献２（特開２００７−１２１６６号公報）には、個体差または環境差による伝播特性の差を調整しうる半導体装置に関する技術が記載されている。また、特許文献３（特開２００８−５２３３５号公報）には、メモリやＬＳＩ等の半導体装置から出力されるストローブ信号及びストローブ信号に同期したデータ信号を受信し、データ信号をラッチするストローブ信号の位相シフト量を調整するインターフェース回路に関する技術が記載されている。
【０００８】
【特許文献１】特開２００７−２８０２８９号公報
【特許文献２】特開２００７−１２１６６号公報
【特許文献３】特開２００８−５２３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の技術では、遅延時間を測定し、その測定結果に基づいて遅延時間を調整している。しかしながら、その従来の技術では、クロック信号やデータストローブ信号の遅延をそれらの伝送線路上の反射を用いて測定している。そのため、伝送線路上の到達時間とインターフェース側の入力バッファの遅延のみしか測定できず、メモリ側やインターフェース側の出力バッファ等の固定の遅延量や、通常のＲｅａｄ動作時の変動量であるジッタを考慮した測定を行うことができない。
【００１０】
出力バッファや、メモリの伝達時間を測定できないので、プロセスの出来栄えによる出力バッファの遅延変化や量産時にメモリのグレードを変えた場合など、想定されていない伝達時間の大きさによっては内部のシステムクロックと同期が取れず、システムとしてエラーが発生することがある。その場合、伝送線路や、ＩＯバッファのジッタを低減するような再設計や、高性能のメモリが必要になる。
【００１１】
また、クロック信号とデータストローブ信号の遅延時間が個別に測定される。そのため、遅延時間の測定誤差が２倍に見えてしまう場合がある。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
上記の課題を解決するために、基準ノードを介して供給されるシステムクロック（ＳＣＬＫ、ＨＳＣＬＫ、ＣＫ）を、伝送路（１２）を介してメモリ（５）に送るクロック供給バッファ（２３）と、前記メモリ（５）から供給されるデータストローブ信号（ＤＱＳ）を受けるデータストローブバッファ（１６−１）と、前記メモリ（５）から読み出されたデータ（ＤＱ）を、前記システムクロック（ＳＣＬＫ、ＨＳＣＬＫ、ＣＫ）に同期させてロジック回路（２７）に供給するシステムクロック同期化回路（１９）と、前記システムクロック同期化回路（１９）の前段に配置され、前記クロック供給バッファ（２３）から前記データストローブバッファ（１６−１）までの伝達遅延を検出する遅延検出回路（１８）とを具備するメモリインターフェース回路を構成する。
ここにおいて、前記遅延検出回路（１８）は、前記システムクロック（ＳＣＬＫ、ＨＳＣＬＫ、ＣＫ）の位相と前記データストローブバッファ（１６−１）から出力される前記データストローブ信号（ＤＱＳ）の位相との差に基づいて前記伝達遅延を示す位相差データ（Ｐ）を生成し、前記位相差データ（Ｐ）を前記システムクロック同期化回路（１９）に供給する。
また、前記システムクロック同期化回路（１９）は、前記位相差データ（Ｐ）に基づいて、前記システムクロック（ＳＣＬＫ、ＨＳＣＬＫ、ＣＫ）をシフトさせたリードクロック（ｒｃｌｋ）を生成し、前記リードクロック（ｒｃｌｋ）に基づいて、前記データ（ＤＱ）を前記ロジック回路（２７）に供給する供給タイミングを制御する。
【発明の効果】
【００１４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、メモリモジュールとメモリインターフェースとが基板に実装されたときに、その基板上の配線長等の実装形態によって可変する信号のＦｌｉｇｈｔ  Ｔｉｍｅ（伝達時間）に依存することなく、データストローブ信号ＤＱＳとシステムクロックＳＣＬＫとの同期をとることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。本実施形態のメモリインターフェース１１は、データストローブ信号に対応してデータの読み出しと書込みとが実行されるメモリに対し、そのデータの読み書きを制御する。本実施形態のメモリインターフェース１１は、適用される機器に対する制限は無く、その機器に搭載されたメモリが、データストローブ信号に対応していればよい。したがって、以下の実施形態においては、メモリインターフェース１１がコンピュータシステム１に搭載された場合を例示して、本実施形態の構成・動作について説明を行う。なお、本実施形態の構成・動作を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
図２は、本実施形態のメモリインターフェース１１を搭載したコンピュータシステム１の構成を例示するブロック図である。コンピュータシステム１は、メモリインターフェース１１を含むチップセットに対応した情報処理装置であり、入力、出力、記憶、演算、制御などの機能を実現することができる。そのコンピュータシステム１は、ＣＰＵ２と、メモリブリッジ３と、Ｉ／Ｏブリッジ４と、メモリ５と、グラフィックスカード６と、ＨＤＤ７と、スイッチ８と、周辺機器９とローカルＩ／Ｏ１０とを含んでいる。
【００１７】
ＣＰＵ２は、本実施形態のコンピュータシステム１を構成する情報処理装置本体に備えられた中央演算処理装置である。ＣＰＵ２は、コンピュータシステム１に備えられた各種装置の制御やデータの処理を行う。ＣＰＵ２は、入力装置（図示されず）などから受け取ったデータを解釈して演算し、その演算結果を出力装置（図示されず）などに出力する。
【００１８】
メモリブリッジ３は、ノースブリッジとも呼ばれ、ＣＰＵ２とメモリ５とを相互に接続してデータの橋渡し(Bridge)を行う。また、メモリブリッジ３は、ＣＰＵ２と拡張バスとを相互に接続してデータの橋渡しを行う。Ｉ／Ｏブリッジ４は、サウスブリッジとも呼ばれ、各種のＩ／Ｏコントローラを統合し、拡張バスなどとのデータの橋渡しを行う。
【００１９】
メモリ５は、主記憶装置（メインメモリ）とも呼ばれ、コンピュータシステム１の内部でデータやプログラムを記憶する装置である。メモリ５は、ＣＰＵ（中央処理装置）が直接読み書きできる領域を備えている。以下の実施形態においては、メモリ５が、ＤＤＲ３  ＳＤＲＡＭなどの高速な半導体記憶装置である場合を例示する。
【００２０】
グラフィックスカード６は、コンピュータシステム１の出力装置（例えば、液晶ディスプレイ）に、画面を表示するための回路基板である。グラフィックスカード６は、メモリブリッジ３を介してＣＰＵ２に接続され、ＣＰＵ２の命令に応答してユーザに画面を提供する。ＨＤＤ７は、電源が遮断された後も情報を保持し続けることができる補助記憶装置である。本実施形態のコンピュータシステム１においては、補助記憶装置として、ＨＤＤ７の他にフラッシュメモリなどの不揮発性半導体記憶装置を適用することもできる。周辺機器９は、スイッチ８を介してＩ／Ｏブリッジ４に接続される外部入出力装置である。ローカルＩ／Ｏ１０は、コンピュータシステム１に固有の周辺装置である。
【００２１】
また、図２に示されているように、メモリブリッジ３は、メモリインターフェース１１と、ＣＰＵインターフェースと、グラフィックインターフェースとを含んでいる。メモリインターフェース１１は、メモリ５に接続され、メモリ５へのデータの書き込みと、メモリ５からのデータの読み出しとを制御する。ＣＰＵインターフェースは、ＣＰＵ２に接続され、ＣＰＵ２からの命令を受け取ったり、ＣＰＵ２へデータを供給したりする。グラフィックインターフェースは、グラフィックスカード６に接続され、グラフィックスカード６への画像データの供給を制御する。
【００２２】
図３は、本実施形態のメモリインターフェース１１と、そのメモリインターフェース１１に接続されるメモリ５の構成を例示する回路図である。メモリインターフェース１１は、伝送線路を介してメモリ５に接続されている。その伝送線路は、メモリ５とメモリインターフェース１１との間で行われるデータ通信を適切に実行するように構成されている。クロック電送路１２は、メモリインターフェース１１を介して供給されるクロックＣＫを、メモリ５に伝送する。データストローブ伝送路１３は、メモリ５とメモリインターフェース１１との間で送受信されるデータストローブ信号ＤＱＳを、伝送する。データ伝送路１４は、メモリ５とメモリインターフェース１１との間で送受信されるデータ信号ＤＱを、伝送する。
【００２３】
メモリ５は、クロックバッファ１５と、データストローブ送受信回路１６と、データ送受信回路１７とを備えている。クロックバッファ１５は、クロック電送路１２を介して送られてくるクロックＣＫを、メモリ５の内部に供給している。
【００２４】
データストローブ送受信回路１６は、第１データストローブバッファ１６−１と第２データストローブバッファ１６−２とを含んでいる。第１データストローブバッファ１６−１は、メモリ５の内部から送られてくるデータストローブ信号ＤＱＳをデータストローブ伝送路１３を介してメモリインターフェース１１に供給している。第２データストローブバッファ１６−２は、データストローブ伝送路１３を介して送られてくるデータストローブ信号ＤＱＳを、メモリ５の内部に供給している。
【００２５】
データ送受信回路１７は、第１データバッファ１７−１と第２データバッファ１７−２とを含んでいる。第１データバッファ１７−１は、メモリ５の内部から送られてくるデータ信号ＤＱを、データ伝送路１４を介してメモリインターフェース１１に供給している。第２データバッファ１７−２は、データ伝送路１４を介して送られてくるデータ信号ＤＱを、メモリ５の内部に供給している。
【００２６】
メモリインターフェース１１は、遅延検出回路１８と、システムクロック同期化回路１９と、シリアル／パラレル変換回路２４と、パラレル／シリアル変換回路２５と、ＤＬＬ２６と、ロジック部２７と、ロジック部２８と、分周回路２９とＰＬＬ３１と、インバータ３２と、第１ＯＲ回路３３と、第１ＡＮＤ回路３４とを備えている。
【００２７】
遅延検出回路１８は、信号生成回路３６と、期待値照合回路３７と、演算回路３８とを含んでいる。遅延検出回路１８は、インバータ３２の入力端と第１ＡＮＤ回路３４の入力端に接続されている。インバータ３２の出力端は、第１ＯＲ回路３３の入力端に説即されている。そして、第１ＡＮＤ回路３４の出力端と第１ＯＲ回路３３の出力端は、遅延検出回路１８に接続されている。
【００２８】
遅延検出回路１８は、第１ＡＮＤ回路３４から供給される第１マスクデータストローブＭＡＳＫＤＱＳと、第１ＯＲ回路３３から供給される第２マスクデータストローブＭＡＳＫＤＱＳ１とを受け取っている。また、遅延検出回路１８は、ＰＬＬ３１に接続されている。遅延検出回路１８は、そのＰＬＬ３１から供給されるハイスピードクロックＨＳＣＬＫを受け取っている。また、遅延検出回路１８は、システムクロック同期化回路１９に接続され、遅延検出を実行した実行結果を、そのシステムクロック同期化回路１９に供給している。
【００２９】
システムクロック同期化回路１９は、Ｅｌａｓｔｉｃ  Ｂｕｆｆｅｒなどの回路で構成されている。システムクロック同期化回路１９は、上述の遅延検出回路１８と、シリアル／パラレル変換回路２４と、分周回路２９と、ＰＬＬ３１と、ロジック部２７とに接続されている。シリアル／パラレル変換回路２４は、メモリ５から送られてくるデータ信号ＤＱ（シリアルデータ）を、パラレルデータに変換してシステムクロック同期化回路１９に渡している。また、システムクロック同期化回路１９は、システムクロックＳＣＬＫと、ハイスピードクロックＨＳＣＬＫとを受け取っている。そのシステムクロック同期化回路１９は、シリアル／パラレル変換回路２４から供給される初期読み出しデータＲＤｒを、遅延検出回路１８が遅延検出を実行した実行結果に基づいて、システムクロックＳＣＬＫに同期させる動作を実行する。
【００３０】
パラレル／シリアル変換回路２５は、ロジック部２８から送られるパラレルデータを、データ信号ＤＱ（シリアルデータ）に変換している。ＤＬＬ２６は、第１ＡＮＤ回路３４の出力端に接続され、第１ＡＮＤ回路３４から供給される第１マスクデータストローブＭＡＳＫＤＱＳの位相を制御した後、シリアル／パラレル変換回路２４に供給している。ロジック部２７は、システムクロック同期化回路１９と分周回路２９とに接続され、そのシステムクロック同期化回路１９から供給されるデータを、システムクロックＳＣＬＫ同期して受け取っている。
【００３１】
また、メモリインターフェース１１は、データ送受信回路２１と、データストローブ送受信回路２２と、クロックバッファ２３とを備えている。データ送受信回路２１は、第１データバッファ２１−１と第２データバッファ２１−２とを含んでいる。第１データバッファ２１−１は、データ伝送路１４を介してメモリ５から送られるデータ信号ＤＱを受けとり、そのデータ信号ＤＱをシリアル／パラレル変換回路２４に供給している。第２データバッファ２１−２は、パラレル／シリアル変換回路２５から供給されるデータ信号ＤＱを、データ伝送路１４を介してメモリ５に送る。
【００３２】
データストローブ送受信回路２２は、第１ダーテストローブバッファ２２−１と第２データストローブバッファ２２−２とを含んでいる。第１ダーテストローブバッファ２２−１は、データストローブ伝送路１３を介してメモリ５から送られるデータストローブ信号ＤＱＳを受けとり、そのデータストローブ信号ＤＱＳを第１ＡＮＤ回路３４に供給している。第２データストローブバッファ２２−２は、ＰＬＬ３１から供給されるハイスピードクロックＨＳＣＬＫを、データストローブ伝送路１３を介してメモリ５に送っている。
【００３３】
クロックバッファ２３は、ＰＬＬ３１から供給されるハイスピードクロックＨＳＣＬＫを、クロックＣＫとしてクロック電送路１２を介してメモリ５に送っている。クロックバッファ２３は、その入力端から出力端に至る経路を通る信号に、伝搬遅延時間Ｔｐｄ０に対応した遅延を生じさせる。クロック電送路１２は、そのクロック電送路１２を伝わる信号に、伝搬遅延時間Ｔｐｄ１に対応した遅延を生じさせる。クロックバッファ１５と第１データストローブバッファ１６−１とを含む経路は、そのクロックバッファ１５の入力端から、その第１データストローブバッファ１６−１の出力端に至る経路で、伝搬遅延時間Ｔｐｄ２に対応した遅延を生じさせる。データストローブ伝送路１３は、そのデータストローブ伝送路１３を伝わる信号に、伝搬遅延時間Ｔｐｄ３に対応した遅延を生じさせる。第１ダーテストローブバッファ２２−１は、その入力端から出力端に至る経路を通る信号に、伝搬遅延時間Ｔｐｄ４に対応した遅延を生じさせる。
【００３４】
図４は、遅延検出回路１８の内部の信号生成回路３６と期待値照合回路３７との構成を例示するブロック図である。図４に示されているように、信号生成回路３６は、ハイスピードクロックＨＳＣＬＫと、外部からの命令に基づいて、内部で基準マスク信号生成命令ＭＡＳＫ＿ｎｅｇと反転基準マスク信号生成命令ＭＡＳＫ＿ｐｏｓとを生成する。また、その基準マスク信号生成命令ＭＡＳＫ＿ｎｅｇと反転基準マスク信号生成命令ＭＡＳＫ＿ｐｏｓとに基づいて、基準マスク信号ＭＡＳＫ＿ｒａｗとマスク信号ＭＡＳＫを生成する。また、信号生成回路３６は、基準マスク信号ＭＡＳＫ＿ｒａｗを、上述の第１ＯＲ回路３３の前段のインバータ３２に供給する。そして、信号生成回路３６は、マスク信号ＭＡＳＫを上述の第１ＡＮＤ回路３４に供給する。
【００３５】
第１ＡＮＤ回路３４は、そのマスク信号ＭＡＳＫと、第１ダーテストローブバッファ２２−１から供給されるデータストローブ信号ＤＱＳとに応答して、第１マスクデータストローブＭＡＳＫＤＱＳを出力する。第１ＯＲ回路３３は、反転した基準マスク信号ＭＡＳＫ＿ｒａｗと、第１ダーテストローブバッファ２２−１から供給されるデータストローブ信号ＤＱＳとに応答して、第２マスクデータストローブＭＡＳＫＤＱＳ１を出力する。
【００３６】
期待値照合回路３７は、第１シフトレジスタと第２シフトレジスタとを備えている。第１シフトレジスタは、第１マスクデータストローブＭＡＳＫＤＱＳに基づいて値を保持し、その保持する値をシフトデータストローブｓｈｉｆｔ＿ｄｑｓｔとして出力する。第２シフトレジスタは、第２マスクデータストローブＭＡＳＫＤＱＳ１に基づいて値を保持し、その保持する値を反転シフトデータストローブｓｈｉｆｔ＿ｄｑｓｂとして出力する。
【００３７】
図５は、システムクロック同期化回路１９の構成を例示するブロック図である。システムクロック同期化回路１９は、シリアル／パラレル変換回路２４の後段に配置され、そのシリアル／パラレル変換回路２４から供給されるパラレルデータを受け取っている。図５に示されているように、システムクロック同期化回路１９は、位相シフタ４１と、第１データ保持回路４２と、第２データ保持回路４３とを備えている。第１データ保持回路４２は、シリアル／パラレル変換回路２４から供給される初期読み出しデータＲＤｒを、読み出しクロックｒｃｌｋに応答してラッチしている。第２データ保持回路４３は、その第１データ保持回路４２に保持されているデータを、システムクロックＳＣＬＫに応答してラッチしている。位相シフタ４１は、第１データ保持回路４２に供給する読み出しクロックｒｃｌｋを生成している。位相シフタ４１は、遅延検出回路１８が遅延検出を実行した実行結果に基づいて、読み出しクロックｒｃｌｋを生成する。
【００３８】
図６は、位相シフタ４１の構成を例示するブロック図である。位相シフタ４１は、レジスタ群４４と、セレクタ群４５とを含んでいる。図６に示されているように、位相シフタ４１は、遅延検出回路１８が遅延検出を実行した実行結果を、システムクロックＳＣＬＫに対する位相シフト量に変換して、ＳｅｔｕｐとＨｏｌｄとを満たす位置に読み出しクロックｒｃｌｋをシフトさせている。
【００３９】
図７は、本実施形態のメモリインターフェース１１の動作の概要を例示するフローチャートである。図７に示されているように、ステップＳ１０１において、データストローブ信号ＤＱＳの最初のＦａｌｌ  Ｅｄｇｅを検出する。ステップＳ１０２において、データストローブ信号ＤＱＳの最後のＲｉｓｅ  Ｅｄｇｅ（データストローブ信号ＤＱＳの有効範囲）を検索する。
【００４０】
図８は、上述のステップＳ１０１またはステップＳ１０２における動作の詳細を例示するフローチャートである。図８のＳ２０１に示されているように、このときの動作を、ハイスピードクロックＨＳＣＬＫでシフトさせたマスク信号ＭＡＳＫを用いて、同じシフト位置でＲｅａｄ動作を実行する。ステップＳ２０２において、規格で規定されているジッタ測定時間Ｎ回のＲｅａｄ動作を繰り返したか否かの判断を行う。その判断の結果、ジッタ測定時間Ｎ回のＲｅａｄ動作が完了した場合、マスク信号ＭＡＳＫのシフトが完了したか否かの判断を行う（ステップＳ２０３、Ｓ２０４）。マスク信号ＭＡＳＫのシフトが完了した場合、処理は図７のステップＳ１０３に進む。
【００４１】
図７に戻り、ステップＳ１０３において、データストローブ信号ＤＱＳとシステムクロックＳＣＬＫの位相差を求める。ステップＳ１０３の動作は、データストローブ信号ＤＱＳをマスクしたことによる、そのデータストローブ信号ＤＱＳのエッジの数の変化（消失数）と、シフト位置に基づいて実行される。
【００４２】
これによって、システムクロック同期化回路１９において、Ｓｅｔｕｐ／Ｈｏｌｄを満たしたシステムクロックへの受け渡し時間を、ジッタを考慮した状態で最小に設定できる。そのため、システムのＲｅａｄ要求に対する応答時間を安全／最速にすることができる。
【００４３】
図９は、データストローブ信号ＤＱＳのＦａｌｌを検出する動作を例示するタイミングチャートである。図９に示されているように、１バーストのＲｅａｄ要求を繰り返し、マスク信号ＭＡＳＫをシフトさせていく。マスク信号ＭＡＳＫのシフト動作に応答して、ＤＱＳのＦａｌｌを検出し、システムクロックであるハイスピードクロックＨＳＣＬＫの間隔でマスク信号ＭＡＳＫの開始位置を決定する。
【００４４】
Ｆａｌｌ数のカウントは、上述の期待値照合回路３７の第１シフトレジスタの値（シフトデータストローブｓｈｉｆｔ＿ｄｑｓｔ［３：０］）によって行われる。図９を参照すると、マスク信号ＭＡＳＫのシフト位置を移動すると、初期値は“００００”となっている。このとき、マスク信号ＭＡＳＫに応答して有効になっているデータストローブ信号ＤＱＳのパルス分、第１レジスタを構成する記憶回路に１が入る。よって、この値が０１１１から１１１１になった所がマスク信号ＭＡＳＫの開始位置となる。
【００４５】
図１０は、データストローブ信号ＤＱＳのＲｉｓｅを検出する動作を例示するタイミングチャートである。図１０に示されているように、Ｆａｌｌを検出する動作と同様に、データストローブ信号ＤＱＳのＲｉｓｅを検出する。システムクロックであるハイスピードクロックＨＳＣＬＫの間隔でマスク信号ＭＡＳＫの解除位置を決定する。マスク信号ＭＡＳＫの解除位置は、上述の期待値照合回路３７の第２シフトレジスタの値（反転シフトデータストローブｓｈｉｆｔ＿ｄｑｓｂ［３：０］）が、“１１１１”から“０１１１”になった場所より、１パルス分（０．５ｔＣＫ）手前になる。
【００４６】
図１１は、上述のＲｉｓｅとＦａｌｌのエッジ検出中に実行される期待値照合の動作を例示するタイミングチャートである。上述のように、本実施形態では、データストローブ信号ＤＱＳのＲｉｓｅとＦａｌｌのエッジ検出の動作を、１つのシフトにつき、Ｎ回（Ｎは、規格で規定されているＪｉｔｔｅｒの測定時間に対応する数）Ｒｅａｄ動作を繰り返している。例えば、ＤＤＲ３  ＳＤＲＡＭでは、規定されている２００回のＲｅａｄ動作を実行する。このとき、期待値照合を実行し、シフトデータストローブｓｈｉｆｔ＿ｄｑｓｔ［３：０］と、反転シフトデータストローブｓｈｉｆｔ＿ｄｑｓｂ［３：０］との期待値の集計を行い、ジッタ要因で期待値になったりならなかったりする不確定区間を除去する。
【００４７】
図１２は、本実施形態のメモリインターフェース１１によるデータの読み出し動作を例示するタイミングチャートである。上述してきたように、データストローブ信号ＤＱＳのはじめのＲｉｓｅの位置と、データストローブ信号ＤＱＳの最後のＦａｌｌの位置の２つの測定結果により、マスク信号ＭＡＳＫ＝１バーストのデータストローブ信号ＤＱＳの有効範囲が決定される。図１２を参照すると、そのデータストローブ信号ＤＱＳの有効範囲に基づいて、システムクロックＳＣＬＫと、データストローブ信号ＤＱＳクロックドメインのシリアル／パラレル変換回路２４のデータの出力タイミングの位相差を示す位相差データＰ［ｎ：０］が特定される。この値を、システムクロック同期化回路１９のシステムクロックＳＣＬＫに対する位相シフト量に変換して、ＳｅｔｕｐとＨｏｌｄを満たす位置に読み出しクロックｒｃｌｋをシフトさせる。その読み出しクロックｒｃｌｋによってデータストローブ信号ＤＱＳドメインでパラレル変換されたデータ（初期読み出しデータＲＤｒ［７：０］）をラッチし、システムクロックＳＣＬＫで再度受けなおしてシステムクロックＳＣＬＫで同期したデータ（読み出しデータＲＤｓ［７：０］）を生成する。
【００４８】
［比較例］
以下に、本実施形態に対する理解を容易にするための比較例につい説明を行う。図１３は、本実施形態の構成を適用していないメモリインターフェースの動作を例示するタイミングチャートである。図１３には、理想的な実装が行われた場合の動作と、非理想的な実装が行われた場合の動作を対比して示している。
【００４９】
第１実装形態に対応するタイミングチャートは、理想的なデータの読み出し動作を示している。例えば、ＩＯバッファの遅延時間（伝搬遅延時間Ｔｐｄ０や伝搬遅延時間Ｔｐｄ４）や、伝送線路での遅延時間（伝搬遅延時間Ｔｐｄ１や伝搬遅延時間Ｔｐｄ３）が短い場合や、メモリの応答による遅延時間（例えば、伝搬遅延時間Ｔｐｄ２）が短い場合には、そのタイミングチャートに示される動作となる。図１３を参照すると、その理想的なデータの読み出し動作の場合、１［ｔＣＫ］以内で、データの読み出しの応答が完結することとなる。
【００５０】
しかしながら、ＬＳＩの実装形態などに起因して理想的なデータの読み出し動作が行えない場合がある。第２実装形態に対応するタイミングチャートは、非理想的なデータの読み出し動作を示している。例えば、ＩＯバッファの遅延時間（伝搬遅延時間Ｔｐｄ０や伝搬遅延時間Ｔｐｄ４）や、伝送線路での遅延時間（伝搬遅延時間Ｔｐｄ１や伝搬遅延時間Ｔｐｄ３）が長い場合や、メモリの応答による遅延時間（例えば、伝搬遅延時間Ｔｐｄ２）が長い場合には、そのタイミングチャートに示される動作となる。図１３を参照すると、その場合、システムクロック１周期を超えても、データ簿読み出しの応答が完結しないこととなる。
【００５１】
本実施形態のメモリインターフェース１１を適用することにとって、上記のような不具合を解消することがかのうである。メモリインターフェース１１はＰＬＬの後段を基準点ノードとした場合などに、その基準ノードから、第１マスクデータストローブＭＡＳＫＤＱＳが出力される出力端までの経路の遅延を、インターフェース側に内臓した遅延検出回路１８によって検出している。それによって、基板上の配線長等の実装形態によって可変する信号のＦｌｉｇｈｔ  Ｔｉｍｅ（伝達時間）を測定することが可能となっている。メモリインターフェース１１は、その測定結果に基づいて、読み出しデータと内部クロックとを同期させるので、Ｒｅａｄの応答時間が最小になる設定が自動的に実行される。
【００５２】
したがって、本実施形態のメモリインターフェース１１は、あらかじめ通常使用する前に遅延検出テストフローを実行することによって、伝達遅延を実装形態ごとに個別に測定し、その結果から内部回路をその遅延値に対応させることができる。そのため、基板の再設計が必要なくなり、コストの削減に有効である。また、伝達遅延を実装形態ごとに個別に測定し、その結果から内部回路をその遅延値に対応させることで、設計当初のメモリのグレードを量産時に変更可能となる。さらに、本実施形態のメモリインターフェース１１は、ランダムジッタ等のジッタ成分まで考慮している。そのため設計時の過剰マージンが不要となり、ＤＤＲインターフェースのシステム設計の簡易化に有効である。
【００５３】
以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【図面の簡単な説明】
【００５４】
【図１】図１は、従来の半導体装置の構成を示す回路図である。
【図２】図２は、本実施形態のコンピュータシステム１の構成を例示するブロック図である。
【図３】図３は、本実施形態のメモリインターフェース１１とメモリ５の構成を例示する回路図である。
【図４】図４は、信号生成回路３６と期待値照合回路３７との構成を例示するブロック図である。
【図５】図５は、システムクロック同期化回路１９の構成を例示するブロック図である。
【図６】図６は、位相シフタ４１の構成を例示するブロック図である。
【図７】図７は、本実施形態のメモリインターフェース１１の動作の概要を例示するフローチャートである。
【図８】図８は、ステップＳ１０１またはステップＳ１０２における動作を例示するフローチャートである。
【図９】図９は、データストローブ信号ＤＱＳのＦａｌｌを検出する動作を例示するタイミングチャートである。
【図１０】図１０は、データストローブ信号ＤＱＳのＲｉｓｅを検出する動作を例示するタイミングチャートである。
【図１１】図１１は、期待値照合の動作を例示するタイミングチャートである。
【図１２】図１２は、データの読み出し動作を例示するタイミングチャートである。
【図１３】図１３は、本実施形態の構成を適用していないメモリインターフェースの動作を例示するタイミングチャートである。
【符号の説明】
【００５５】
１…コンピュータシステム
２…ＣＰＵ
３…メモリブリッジ
４…Ｉ／Ｏブリッジ
５…メモリ
６…グラフィックスカード
７…ＨＤＤ
８…スイッチ
９…周辺機器
１０…ローカルＩ／Ｏ
１１…メモリインターフェース
１２…クロック電送路
１３…データストローブ伝送路
１４…データ伝送路
１５…クロックバッファ
１６…データストローブ送受信回路
１６−１…第１データストローブバッファ
１６−２…第２データストローブバッファ
１７…データ送受信回路
１７−１…第１データバッファ
１７−２…第２データバッファ
１８…遅延検出回路
１９…システムクロック同期化回路
２１…データ送受信回路
２１−１…第１データバッファ
２１−２…第２データバッファ
２２…データストローブ送受信回路
２２−１…第１ダーテストローブバッファ
２２−２…第２データストローブバッファ
２３…クロックバッファ
２４…シリアル／パラレル変換回路
２５…パラレル／シリアル変換回路
２６…ＤＬＬ
２７…ロジック部
２８…ロジック部
２９…分周回路
３１…ＰＬＬ
３２…インバータ
３３…第１ＯＲ回路
３４…第１ＡＮＤ回路
３５…演算回路
３６…信号生成回路
３７…期待値照合回路
３８…演算回路
４１…位相シフタ
４２…第１データ保持回路
４３…第２データ保持回路
４４…レジスタ群
４５…セレクタ群
ＤＱ…データ信号
ＤＱＳ…データストローブ信号
ＣＫ…クロック
ＳＣＬＫ…システムクロック
ＨＳＣＬＫ…ハイスピードクロック
Ｔｐｄ０…伝搬遅延時間
Ｔｐｄ１…伝搬遅延時間
Ｔｐｄ２…伝搬遅延時間
Ｔｐｄ３…伝搬遅延時間
Ｔｐｄ４…伝搬遅延時間
ＭＡＳＫ…マスク信号
ＭＡＳＫ＿ｒａｗ…基準マスク信号
ＭＡＳＫ＿ｎｅｇ…基準マスク信号生成命令
ＭＡＳＫ＿ｐｏｓ…反転基準マスク信号生成命令
ＭＡＳＫＤＱＳ…第１マスクデータストローブ
ＭＡＳＫＤＱＳ１…第２マスクデータストローブ
Ｐ…位相差データ
ＲＤｒ…初期読み出しデータ
ＲＤｓ…読み出しデータ
ｒｃｌｋ…読み出しクロック
ｓｈｉｆｔ＿ｄｑｓｔ…シフトデータストローブ
ｓｈｉｆｔ＿ｄｑｓｂ…反転シフトデータストローブ
【図１】
2010108217.tif 000003
【図２】
2010108217.tif 000004
【図３】
2010108217.tif 000005
【図４】
2010108217.tif 000006
【図５】
2010108217.tif 000007
【図６】
2010108217.tif 000008
【図７】
2010108217.tif 000009
【図８】
2010108217.tif 000010
【図９】
2010108217.tif 000011
【図１０】
2010108217.tif 000012
【図１１】
2010108217.tif 000013
【図１２】
2010108217.tif 000014
【図１３】
2010108217.tif 000015