(57)【要約】【課題】データ転送レートが高くなった場合であっても転送エラーの発生を低減することができるスキュー調整回路を提供する。【解決手段】スキュー調整回路は、リードデータの各々のビット毎に設けられた複数のリードデータ保持回路を備える。各々のリードデータ保持回路は、遅延段数設定信号の値に応じて、その遅延時間が各々所定時間ずつ少なくなる、第１、第２および第３の信号からなる３つの遅延信号を出力する可変遅延線と、３つの遅延信号を保持し、保持された３つの遅延信号を同期化後の信号として出力する同期化回路と、３つの同期化後の信号間の値が同じである場合、現在の遅延段数設定信号の値を保持し、第１および第２の信号間の値は同じで、第２および第３の信号間の値が違う場合、現在の遅延段数設定信号の値を所定数加算し、第２および第３の信号間の値が同じで、第１および第２の信号間の値が違う場合、現在の遅延段数設定信号の値を所定数減算する。【選択図】図１
2007241614.tif 000002
【特許請求の範囲】
【請求項１】
データバスを介して転送される複数ビットからなるリードデータの各々のビット間のスキューを調整するスキュー調整回路であって、
前記リードデータの各々のビット毎に設けられた複数のリードデータ保持回路を備え、
各々の前記リードデータ保持回路は、前記リードデータの各々対応するビットを遅延し、遅延段数設定信号の値に応じて、その遅延時間が各々所定時間ずつ少なくなる、第１、第２および第３の信号からなる３つの遅延信号を出力する可変遅延線と、保持信号に同期して、前記可変遅延線から入力される３つの遅延信号を保持し、読み出し信号に同期して、前記保持された３つの遅延信号を読み出して同期化後の信号として出力する同期化回路と、前記読み出し信号に同期して、前記同期化回路から入力される３つの同期化後の信号を保持し、該３つの同期化後の信号間の値をそれぞれ比較して、前記３つの同期化後の信号の各々の信号間の値が同じか違うかを判定し、前記３つの同期化後の信号の全ての信号間の値が同じである場合、現在の遅延段数設定信号の値を保持し、前記第１および第２の信号間の値は同じで、前記第２および第３の信号間の値が違う場合、現在の遅延段数設定信号の値を所定数加算し、前記第２および第３の信号間の値が同じで、前記第１および第２の信号間の値が違う場合、現在の遅延段数設定信号の値を所定数減算する遅延段数判定回路とを備えていることを特徴とするスキュー調整回路。
【請求項２】
前記リードデータは、半導体メモリから読み出されるリードデータであることを特徴とする請求項１に記載のスキュー調整回路。
【請求項３】
前記リードデータと前記保持信号とが、前記半導体メモリから当該スキュー調整回路へ同時に転送されるソースシンクロナス方式の転送方式を採用するものであることを特徴とする請求項２に記載のスキュー調整回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データバスを介して転送される複数ビットからなるリードデータの各々のビット間のスキューを調整するスキュー調整回路に関するものである。
【背景技術】
【０００２】
従来のメモリシステムについて、ＪＥＤＥＣ（Joint Electron Device Engineering Council）規格のＤＤＲ（Double Data Rate）／ＤＤＲ２の半導体メモリと、その制御を行うメモリコントローラ回路とによって構成される例を挙げて説明を行う。
【０００３】
ＤＤＲ／ＤＤＲ２のメモリを使用するメモリシステムでは、例えばソースシンクロナス方式と呼ばれる転送方式が採用されている。ソースシンクロナス方式は、メモリとメモリコントローラ回路との間で、データバスを介して転送される複数ビットからなるデータＤＱと、それら複数ビットのデータＤＱを保持するタイミング信号（保持信号）となるストローブ信号ＤＱＳとが同時に転送される転送方式である。
【０００４】
従来のメモリコントローラ回路では、ストローブ信号ＤＱＳに固定遅延線（ＤＬＬ：ディレイ・ロックド・ループ）を挿入し、ストローブ信号ＤＱＳの位相を約９０°遅延させることによって、メモリに対するリード／ライトが行われている。
【０００５】
メモリライト時は、図４に示すように、何らかのデバイスからメモリコントローラ回路に転送されてくるライトストローブ信号ＤＱＳとライトデータＤＱの変化タイミングがほぼ一致している。そのため、メモリコントローラ回路は、ライトストローブ信号ＤＱＳに約９０°の位相遅延を与え、位相遅延後の遅延ライトストローブ信号ＤＱＳの変化タイミングが、ライトデータのほぼ中央位置に来るように調整してメモリに転送する。
【０００６】
これにより、メモリは、ライトストローブ信号ＤＱＳの変化タイミングに対して、ライトデータＤＱを保持するために充分なセットアップおよびホールド時間を確保することができる。
【０００７】
一方、図５に示すように、メモリリード時も、メモリからメモリコントローラ回路に転送されてくるリードストローブ信号ＤＱＳとリードデータＤＱの変化タイミングはほぼ一致している。同様に、メモリコントローラ回路は、リードストローブ信号ＤＱＳに約９０°の位相遅延を与え、位相遅延後の遅延リードストローブ信号の変化タイミングが、リードデータＤＱのほぼ中央位置に来るように調整する。
【０００８】
これにより、メモリコントローラ回路は、遅延リードストローブ信号の変化タイミングに対して、リードデータＤＱを保持するために充分なセットアップおよびホールド時間を確保することができる。
【０００９】
以下、具体例を挙げて説明する。
【００１０】
図６は、従来のメモリコントローラ回路の構成を表す一例の概略図である。同図に示すメモリコントローラ回路５０は、ストローブ信号ＤＱＳに同期して、データバスを介して転送される８ビットのデータＤＱ［７：０］のリード／ライトを行うソースシンクロナス方式のものである。メモリコントローラ回路５０は、リードデータ保持回路５２と、リードストローブ信号遅延回路５４とによって構成されている。
【００１１】
なお、本発明は、リードデータの各々のビット間の位相ずれの補正に関するものであるから、図６では、説明を容易化するために、ＤＤＲ／ＤＤＲ２メモリからのリードデータに関わる回路部分だけを示してある。また、図６では、図面の煩雑さを避けるために、メモリシステムに含まれるＤＤＲ／ＤＤＲ２メモリの表示は省略し、メモリコントローラ回路５０だけを示してある。
【００１２】
リードストローブ信号遅延回路５４は、リードストローブ信号ＤＱＳの位相を約９０°遅延して、所定時間遅延された遅延リードストローブ信号delayed_DQSを出力するもので、固定遅延線（ＤＬＬ）６４と、遅延量設定回路６６とによって構成されている。
【００１３】
遅延量設定回路６６には、リードストローブ信号ＤＱＳの位相遅延量（信号遅延時間）を決定する遅延時間設定信号の値が保持されている。リードストローブ信号ＤＱＳは、固定遅延線６４によって、遅延時間設定信号の値に応じて、その位相が約９０°遅延される。その結果、遅延リードストローブ信号delayed_DQSの変化タイミングは、リードデータＤＱ［７：０］のほぼ中央位置に来るように調整される。
【００１４】
リードデータ保持回路５２は、８ビットのリードデータＤＱ［７：０］の各々のビット毎に１つずつ、合計で８つ（８ビット分）設けられている。各々のリードデータ保持回路５２は、非同期ＦＩＦＯ（First-In First-Out）メモリ５８によって構成されている。
【００１５】
一方で、非同期ＦＩＦＯメモリ５８には、リードデータＤＱ［７：０］が、ストローブ信号遅延回路５４から入力される遅延リードストローブ信号delayed_DQSに同期して保持される。また、他方では、非同期ＦＩＦＯメモリ５８に保持されているデータが、システムクロック回路６２から入力されるシステムクロック信号system_clockに同期して読み出され、同期化後のリードデータＲｅａｄ_ＤＱ［７：０］として出力される。
【００１６】
遅延リードストローブ信号delayed_DQSによる保持タイミングとシステムクロック信号system_clockによる読み出しタイミングは非同期である。このため、非同期ＦＩＦＯメモリ５８は、遅延リードストローブ信号delayed_DQSによる保持タイミングとシステムクロック信号system_clockによる読み出しタイミングとのタイミング同期をとるための同期化回路として用いられている。
【００１７】
なお、実使用の前に、リードデータＤＱ［７：０］に対するリードストローブ信号ＤＱＳの位相遅延量を変化させて、ＤＤＲ／ＤＤＲ２メモリからデータのリードを複数回繰り返し行うことにより、上記の位相遅延量の最適値を決定することができる。
【００１８】
ここで、本発明の先行技術文献としては、例えば特許文献１等がある。
【００１９】
特許文献１には、例えばメモリデバイスからのストローブ信号を遅延させて最適なラッチ信号を生成する可変ディレイ回路をメモリコントローラに設け、この可変ディレイ回路の遅延量を変化させてメモリデバイスからの読出データが正常にラッチできる範囲を求め、可変ディレイ回路の遅延量をその範囲内の最適な量に設定する遅延量選択手段を備えるメモリシステムが開示されている。
【００２０】
【特許文献１】特開２００１−３３７８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上記の通り、メモリリード時には、メモリからメモリコントローラ回路に転送されてくるリードデータＤＱ［７：０］とリードストローブ信号ＤＱＳの変化タイミングはほぼ一致している。このため、メモリコントローラ回路５０は、リードストローブ信号ＤＱＳに約９０°の位相遅延を与え、遅延リードストローブ信号delayed_DQSを発生することによって、リードデータＤＱ［７：０］の取り込みを実現している。
【００２２】
しかし、従来のメモリコントローラ回路５０には、リードデータＤＱのビット間スキューを吸収する機構が用意されていない。このため、メモリコントローラチップ（パッケージを含む）、ＰＣＢ（プリント回路基板）、メモリデバイスなどで発生するリードデータＤＱのビット間のスキューによって、図５および図７に示すように、メモリリード時のリードデータＤＱ［７：０］のタイミングマージンが大幅に削減されてしまう。
【００２３】
なお、図５および図７では、リードデータＤＱの白抜き部がバリッドデータ（有効データ）を表し、網掛け部は、インバリッドデータ（無効データ）を表す。言い換えると、白抜き部は、遅延リードストローブ信号delayed_DQSによって、リードデータＤＱ［７：０］の全てのビットを正しく保持できる期間であることを表し、網掛け部分は、その少なくとも一部のビットを正しく保持できない期間であることを表す。
【００２４】
このリードデータＤＱのビット間スキューによる影響は、データ転送レートが比較的低い場合にはほとんど問題にならないが、データ転送レートが高くなるに従って、次第に深刻な問題となる。
【００２５】
本発明の目的は、前記従来技術に基づく問題点を解消し、リードデータの各々のビット間のスキューを調整することによって、データ転送レートが高くなった場合であっても転送エラーの発生を低減することができるスキュー調整回路を提供することにある。
【課題を解決するための手段】
【００２６】
上記目的を達成するために、本発明は、データバスを介して転送される複数ビットからなるリードデータの各々のビット間のスキューを調整するスキュー調整回路であって、
前記リードデータの各々のビット毎に設けられた複数のリードデータ保持回路を備え、
各々の前記リードデータ保持回路は、前記リードデータの各々対応するビットを遅延し、遅延段数設定信号の値に応じて、その遅延時間が各々所定時間ずつ少なくなる、第１、第２および第３の信号からなる３つの遅延信号を出力する可変遅延線と、保持信号に同期して、前記可変遅延線から入力される３つの遅延信号を保持し、読み出し信号に同期して、前記保持された３つの遅延信号を読み出して同期化後の信号として出力する同期化回路と、前記読み出し信号に同期して、前記同期化回路から入力される３つの同期化後の信号を保持し、該３つの同期化後の信号間の値をそれぞれ比較して、前記３つの同期化後の信号の各々の信号間の値が同じか違うかを判定し、前記３つの同期化後の信号の全ての信号間の値が同じである場合、現在の遅延段数設定信号の値を保持し、前記第１および第２の信号間の値は同じで、前記第２および第３の信号間の値が違う場合、現在の遅延段数設定信号の値を所定数加算し、前記第２および第３の信号間の値が同じで、前記第１および第２の信号間の値が違う場合、現在の遅延段数設定信号の値を所定数減算する遅延段数判定回路とを備えていることを特徴とするスキュー調整回路を提供するものである。
【００２７】
ここで、前記リードデータは、半導体メモリから読み出されるリードデータであることが好ましい。
【００２８】
また、前記リードデータと前記保持信号とが、前記半導体メモリから当該スキュー調整回路へ同時に転送されるソースシンクロナス方式の転送方式を採用するものであることが好ましい。
【発明の効果】
【００２９】
本発明のスキュー調整回路を適用することによって、リードデータの各々のビットに対応する可変遅延線から出力される複数ビットの信号のビット間のスキューを大幅に低減することができ、メモリリード時のリードデータのタイミングマージンを大幅に増大させることができる。従って、データ転送レートが高くなった場合であっても転送エラーの発生を低減することができる。
【００３０】
言い換えると、リードデータのビット間のスキューを低減することでタイミングマージンが増大するため、高いデータ転送レートを実現することができる。また、メモリコントローラチップやＰＣＢの設計も容易に行うことができるようになる。
【発明を実施するための最良の形態】
【００３１】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のスキュー調整回路を詳細に説明する。
【００３２】
図１は、本発明のスキュー調整回路を適用するメモリコントローラ回路の構成を表す一実施形態の概略図である。同図に示すメモリコントローラ回路１０は、ストローブ信号ＤＱＳに同期して、データバスを介して転送される８ビットのデータＤＱ［７：０］のリード／ライトを行うソースシンクロナス方式のもので、リードデータ保持回路１２と、リードストローブ信号遅延回路１４とによって構成されている。
【００３３】
従来例の場合と同様に、図１においても、説明を容易化するために、リードデータに関わる回路部分だけを示してあるが、ライトデータに関わる回路部分は、任意の構成とすることができる。また、本実施形態では、図６に示す、従来のメモリコントローラ回路５０との対比が容易となるように、メモリシステムに含まれるＤＤＲ／ＤＤＲ２メモリの表示を省略し、メモリコントローラ回路１０だけを示してある。
【００３４】
リードストローブ信号遅延回路１４は、リードストローブ信号ＤＱＳの位相を約９０°遅延して、所定時間遅延された遅延リードストローブ信号delayed_DQSを出力するもので、固定遅延線（ＤＬＬ）２４と、遅延量設定回路２６とによって構成されている。なお、本実施形態の場合、リードストローブ信号遅延回路１４は、図６に示す従来のリードストローブ信号遅延回路５４と同じ構成のものである。
【００３５】
固定遅延線２４には、ＤＤＲ／ＤＤＲ２メモリから、リードデータＤＱ［７：０］に同期したリードストローブ信号ＤＱＳが入力され、遅延量設定回路２６から遅延時間設定信号が入力されている。また、固定遅延線２４からは、遅延リードストローブ信号delayed_DQSが出力されている。遅延リードストローブ信号delayed_DQSは、後述する非同期ＦＩＦＯメモリ１８に入力されている。
【００３６】
遅延量設定回路２６には、リードストローブ信号ＤＱＳの位相遅延量（信号遅延時間）を決定する遅延時間設定信号の値が保持されている。リードストローブ信号ＤＱＳの位相は、遅延時間設定信号の値に応じて、固定遅延線２４によって約９０°遅延される。その結果、遅延リードストローブ信号delayed_DQSの変化タイミングは、後述する可変遅延線１６の出力信号punctualのほぼ中央位置に来るように調整される。
【００３７】
なお、リードストローブ信号ＤＱＳの位相遅延量は、遅延量設定回路２４に設定される遅延時間設定信号の値を変更することによって変更することができる。また、実使用の前に、リードストローブ信号ＤＱＳの位相遅延量を変化させて、ＤＤＲ／ＤＤＲ２メモリからリードデータＤＱ［７：０］の読み出しを複数回繰り返し行うことにより、上記の位相遅延量の最適値を決定することができる。
【００３８】
次に、リードデータ保持回路１２は、８ビットのリードデータＤＱ［７：０］の各々のビット毎に１つずつ、合計８つ（８ビット分）設けられている。各々のリードデータ保持回路１２は、可変遅延線１６と、非同期ＦＩＦＯメモリ１８と、遅延段数判定回路２０とによって構成されている。本実施形態の場合、８ビット分のリードデータ保持回路１２が、本発明のスキュー調整回路を構成する。
【００３９】
本実施形態の場合、可変遅延線１６には、ＤＤＲ／ＤＤＲ２メモリから読み出されるリードデータＤＱ［７：０］が入力され、後述する遅延段数判定回路２０から遅延段数設定信号が入力されている。また、可変遅延線１６からは、リードデータＤＱ［７：０］の対応するビットが遅延され、その遅延時間が各々所定時間ずつ異なる信号late（遅い）、punctual（普通）、early（早い）からなる３つの遅延信号が出力されている。
【００４０】
図２に示すように、図１に示す可変遅延線１６は、直列に接続された複数段のバッファ回路（遅延素子）２８ａ、２８ｂ、２８ｃ、…  と、マルチプレクサ３０とによって構成されている。
【００４１】
初段のバッファ回路２８ａには、リードデータＤＱ［ｉ］（ｉは、各々対応するビットの数値）が入力されている。また、マルチプレクサ３０には、リードデータＤＱ［ｉ］と、各々のバッファ回路２８ａ、２８ｂ、２８ｃ、…  の出力信号が入力され、その選択信号として、遅延段数設定信号の値ｎが入力されている。また、マルチプレクサ３０からは、信号late、punctual、earlyが出力されている。
【００４２】
可変遅延線１６では、リードデータＤＱ［７：０］の対応するビットが、バッファ回路２８ａ、２８ｂ、２８ｃ、…  によって順次遅延される。そして、遅延段数設定信号の値ｎ（本実施形態の場合、ｎは２以上の整数）に応じて、それぞれバッファ回路を（ｎ＋２）段、ｎ段、（ｎ−２）段ずつ遅延された信号がマルチプレクサ３０によって選択され、それぞれ信号late、punctual、earlyとして出力される。
【００４３】
なお、バッファ回路によって遅延される信号の数は３つ以上とする。言い換えると、マルチプレクサ３０に入力される信号の数は４つ以上とし、それらの信号の中から、３つの信号が選択され、それぞれ信号late、punctual、earlyとして出力される。また、バッファ回路の段数（遅延時間）に制限はないが、リードデータＤＱ［７：０］のビット間スキューを解消するために必要最低限の少ない段数である方が好ましい。
【００４４】
また、３つの遅延信号の各々の信号間のバッファ回路の段数差（遅延時間差）は一定とするが、その段数差は、本実施形態のように２段に限らず、１段でも良いし、３段以上としても良い。
【００４５】
続いて、非同期ＦＩＦＯメモリ１８には、可変遅延線１６から信号late、punctual、early、ストローブ信号遅延回路１４から遅延リードストローブ信号delayed_DQS（保持信号）、システムクロック回路２２からシステムクロック信号system_clock（読み出し信号）がそれぞれ入力されている。また、非同期ＦＩＦＯメモリ１８からは、それぞれ信号late、punctual、earlyに対応する信号late_s、punctual_s、early_sが出力されている。
【００４６】
前述の通り、リードデータ保持回路１２は、８ビットのリードデータＤＱ［７：０］の各々のビット毎に１つずつ、合計８つ設けられている。８つのリードデータ保持回路１２の非同期ＦＩＦＯメモリ１８から出力される合計８ビットの信号punctual_sが、保持および読み出しのタイミング同期化後の８ビットのリードデータＲｅａｄ_ＤＱ［７：０］として、リードデータ保持回路１２から出力されている。
【００４７】
一方で、非同期ＦＩＦＯメモリ１８には、可変遅延線１６から入力される３つの信号late、punctual、earlyが、遅延リードストローブ信号delayed_DQS（保持信号）に同期して保持される。また、他方では、非同期ＦＩＦＯメモリ１８に保持されている３つの信号が、システムクロック信号system_clock（読み出し信号）に同期して読み出され、同期化後の信号late_s、punctual_s、early_sが出力される。
【００４８】
既に述べた通り、遅延リードストローブ信号delayed_DQSによる保持タイミングとシステムクロック信号system_clockによる読み出しタイミングは非同期である。このため、非同期ＦＩＦＯメモリ１８は、遅延リードストローブ信号delayed_DQSによる保持タイミングとシステムクロック信号system_clockによる読み出しタイミングとのタイミング同期をとるための同期化回路として用いられている。
【００４９】
続いて、遅延段数判定回路２０には、非同期ＦＩＦＯメモリ１８から信号late_s、punctual_s、early_sが入力され、さらに、システムクロック回路２２からシステムクロック信号system_clockが入力されている。また、遅延段数判定回路２０からは、遅延段数設定信号が出力されている。この遅延段数設定信号は、前述の可変遅延線１６に入力されている。
【００５０】
遅延段数判定回路２０は、非同期ＦＩＦＯメモリ１８から入力される信号late_s、punctual_s、early_sを、システムクロック信号system_clockに同期して保持し、信号punctual_sの値と信号late_s、early_sの値とをそれぞれ比較する。そして、各々の値が同じ（リード成功）か違う（リード失敗）かを判定し、一方でもリード失敗の場合、両者共にリード成功となるように遅延段数設定信号の値ｎを変更する。
【００５１】
次に、メモリコントローラ回路１０の動作を説明する。
【００５２】
ＤＤＲ／ＤＤＲ２メモリからリードデータＤＱ［７：０］を読み出す場合、リードストローブ信号遅延回路１４では、リードストローブ信号ＤＱＳの位相が約９０°遅延され、遅延リードストローブ信号delayed_DQSが出力される。また、リードデータ保持回路１２では、遅延段数判定回路２０において、遅延段数設定信号の値ｎが、例えばその最小値と最大値のちょうど中間の値（中央値）に設定される。
【００５３】
ＤＤＲ／ＤＤＲ２メモリから読み出されたリードデータＤＱ［７：０］の各々のビットが、各々対応するリードデータ保持回路１２の可変遅延線１６に入力され、遅延される。そして、可変遅延線１６からは、遅延段数設定信号の値ｎに応じて、それぞれバッファ回路の（ｎ＋２）段、ｎ段、（ｎ−２）段ずつ遅延された３つの信号late、punctual、earlyが出力される。
【００５４】
続いて、可変遅延線１６の出力信号late、punctual、earlyが、ストローブ信号遅延回路１４から入力される遅延リードストローブ信号delayed_DQSに同期して非同期ＦＩＦＯメモリ１８に保持される。また、非同期ＦＩＦＯメモリ１８に保持されたデータは、システムクロック回路２２から入力されるシステムクロック信号system_clockに同期して読み出され、同期化後の信号late_s、punctual_s、early_sとして出力される。
【００５５】
遅延段数判定回路２０は、システムクロック信号system_clockに同期して入力される信号punctual_s（第２の信号）の値と信号late_s、early_s（第１、第３の信号）との値をそれぞれ比較する。そして、信号punctual_sの値と信号late_s、early_sの値が同じ値（リード成功）か、それとも違う値（リード失敗）かを判定し、一方でもリード失敗の場合、両者共に成功となるように遅延段数設定信号の値ｎを変更する。
【００５６】
すなわち、遅延段数判定回路２０は、信号late_s、early_sが共にリード成功である場合、現在の遅延段数設定信号の値ｎを保持する。一方、信号early_sはリード成功であるが、信号late_sがリード失敗である場合、現在の遅延段数設定信号の値ｎをｎ−１とする。逆に、信号late_sがリード成功であるが、信号early_sがリード失敗である場合、現在の遅延段数設定信号の値ｎをｎ＋１とする。
【００５７】
以後、リードデータＤＱ［７：０］の全てのビットでリード成功となるまで上記動作を所定の回数繰り返し行うことによって、各々のビット毎に、遅延段数設定信号の値ｎの最適値が決定され、遅延段数判定回路２０に保持される。
【００５８】
上記の遅延段数設定信号の値ｎを決定する動作は、例えばメモリコントローラ回路１０の起動時に１回だけ行われる。あるいは、実使用前に、１回だけ行われる。遅延段数設定信号の値ｎが決定されると、リードデータＤＱ［７：０］の読み出しが行われた時に、遅延段数設定信号の値ｎに基づいて、可変遅延線１６により信号punctualの位相が遅延される。これ以後の動作は、従来のメモリコントローラ回路５０と同じである。
【００５９】
なお、リード成功、失敗の判定や遅延段数設定信号の値ｎは、上記例のように、１回のリード動作毎に決定しても良いし、あるいは、複数回のリード動作の結果に基づいて決定するようにしても良い。また、遅延段数設定信号の値ｎを、その中央値に設定して上記動作を開始することは必須ではなく、遅延段数設定信号の値ｎを、例えば最小値や最大値に設定、あるいは、その中間の所定値に設定するなど適宜変更しても良い。
【００６０】
メモリコントローラ回路１０には、リードデータＤＱ［７：０］のビット間スキューを吸収するスキュー調整回路が設けられている。これにより、リードデータＤＱ［７：０］に各々対応する可変遅延線１６から出力される８ビットの信号puctualのビット間のスキューは図３に示すように大幅に低減され、メモリリード時のリードデータＤＱ［７：０］のタイミングマージンが大幅に増大される。
【００６１】
従って、メモリコントローラ回路１０では、データ転送レートが高くなった場合であっても転送エラーの発生を低減することができる。言い換えると、リードデータＤＱ［７：０］のビット間のスキューを低減することができる。このため、高いデータ転送レートを実現することができる。また、メモリコントローラチップやＰＣＢの設計も容易にすることができる。
【００６２】
なお、本発明は、ＤＤＲ／ＤＤＲ２を含む、半導体メモリから読み出されるデータに関係なく、データバスを介して転送される複数ビットからなるリードデータのビット間のスキューの調整に適用可能である。また、ソースシンクロナス方式であることも限定されず、ストローブ信号（保持信号）を、メモリシステムの外部から与える構成としても良い。また、本発明は、任意のビット数からなるデータバスにも同様に適用可能である。
【００６３】
また、可変遅延線は、図示例の構成のものに限定されず、同様の機能を果たす他の構成の回路を使用することが可能である。同様に、非同期ＦＩＦＯメモリは、同様の機能を果たす他の構成のタイミング同期化回路を使用することが可能である。また、遅延段数判定回路の具体的な回路構成は例示していないが、これも当業者であれば、同様の機能を果たす様々な回路を容易に構成することが可能である。
【００６４】
本発明は、基本的に以上のようなものである。
以上、本発明のスキュー調整回路について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【図面の簡単な説明】
【００６５】
【図１】本発明のスキュー調整回路を適用するメモリコントローラ回路の構成を表す一実施形態の概略図である。
【図２】図１に示す可変遅延線の構成を表す回路図である。
【図３】本発明の適用前と適用後のリードデータの状態を表す概念図である。
【図４】ソースシンクロナス方式によるデータライト時の動作を表すタイミングチャートである。
【図５】ソースシンクロナス方式によるデータリード時の動作を表すタイミングチャートである。
【図６】従来のメモリコントローラ回路の構成を表す一例の概略図である。
【図７】従来のリードデータの状態を表す概念図である。
【符号の説明】
【００６６】
１０，５０  メモリコントローラ回路
１２，５２  リードデータ保持回路
１４，５４  リードストローブ信号遅延回路
１６  可変遅延線
１８，５８  非同期ＦＩＦＯメモリ
２０  遅延段数判定回路
２２，６２  システムクロック回路
２４，６４  固定遅延線（ＤＬＬ）
２６，６６  遅延量設定回路
２８ａ、２８ｂ、２８ｃ、…  バッファ回路（遅延素子）
３０  マルチプレクサ
【図１】
2007241614.tif 000003
【図２】
2007241614.tif 000004
【図３】
2007241614.tif 000005
【図４】
2007241614.tif 000006
【図５】
2007241614.tif 000007
【図６】
2007241614.tif 000008
【図７】
2007241614.tif 000009