(57)【特許請求の範囲】
【請求項１】
メモリからリードデータとリードクロックとを入力され、ライトデータをライトクロックと共に前記メモリへ送信する半導体装置であって、
前記リードデータまたは前記リードクロックに可変な遅延を与えるリードディレイヤと、前記リードディレイヤの遅延量を制御するリードディレイ調整部と、前記ライトデータまたは前記ライトクロックに可変な遅延を与えるライトディレイヤと、前記ライトディレイヤの遅延量を制御するライトディレイ調整部とを含み、
ＳＤＲまたは低速なライトクロックにて第１のライトデータを前記メモリにライトし、その後、前記メモリからＤＤＲにて第１のデータをリードし、前記リードしたデータと前記第１のライトデータを比較した結果に基づいて前記リードディレイ調整部が前記リードディレイヤの遅延量を制御した上で、
ＤＤＲにて第２のライトデータを前記メモリにライトし、その後、前記メモリから第２のデータをリードし、前記リードした第２のデータと前記第２のライトデータとを比較した結果に基づいて前記ライトディレイ調整部が前記ライトディレイヤの遅延量を制御する半導体装置。
【請求項２】
請求項１に記載の半導体装置であって、
前記リードデータはＤＤＲリードデータであり、
前記リードクロックはリード並走クロックであることを特徴とする半導体装置。
【請求項３】
請求項１に記載の半導体装置であって、
前記ライトデータはＤＤＲライトデータであり、
前記ライトクロックはメモリクロックであることを特徴とする半導体装置。
【請求項４】
請求項１ないし請求項３のいずれか一つに記載の半導体装置であって、
前記リードディレイヤおよび前記ライトディレイヤは、複数の遅延素子とセレクタとで構成され、複数段に直列接続された前記遅延素子の少なくとも各段の出力を接続した前記セレクタの出力を選択することを特徴とする半導体装置。
【請求項５】
請求項１ないし請求項３のいずれか一つに記載の半導体装置であって、
テストパターンを記録する記録部をさらに備えることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に係り、特にメモリおよびメモリ制御用ＬＳＩに関する。
【背景技術】
【０００２】
Single Data Rate（以下ＳＤＲ）メモリのライトデータは、メモリクロックの立下りから立上りの１周期で書き込まれる。一方、リードデータは、リードデータ並走クロックの立上りから立下りの１周期で読み込む。
【０００３】
Double Data Rate（以下ＤＤＲ）メモリでは、基準クロックの半周期で１単位のデータの読み書きを行う。具体的には、ＤＤＲメモリのリードデータは、リードデータ並走クロックの立上りから立下りの半周期および立下りから立上りの半周期で、それぞれデータを読みこむ。一方、ライトデータは、リードデータとは１/４周期ずらして書き込む。これは、ライトデータの単位長の中心部にメモリクロックの立上りと立下りを充てるためである。
【０００４】
インターフェース上の様々な要因による特性ばらつきを装置に吸収させ、システム全体を安定的に動作させる手段の一つに、システムを本格運用する前段階で試験的に運用し、インターフェースする相手装置が確実にデータを受け取ることができる最適ポイントを探る技術がある。この最適ポイントを探る技術をトレーニングと呼ぶ。
特許文献１には、メモリインターフェースに関するトレーニング技術が開示されている。
【０００５】
【特許文献１】特開平１１−２１９３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
同期式メモリには、高速でデータの読み書きが実行される。このため、メモリ制御用ＬＳＩと同期式メモリの個体差、電圧、温度等の環境差によって、信号遅延であるディレイ、クロックと信号基準ポイントのずれであるスキュー等の特性に差が生じることが分かってきた。このため動作環境が異なる場合は、同じ同期式メモリとそのインターフェースＩＣとを常に安定して動作させることが難しくなってきた。
【０００７】
特許文献１に記載の発明では、メモリからシステム側が受け取るリードデータ自体はその基準クロックにて確実に受け取ることができる、または確実に受け取ることができるマージンが分かっていることが前提となっている。このため、基準クロックに対してライトまたはリードのデータが正しく相手が受け取れるポイントにあるかどうか分からないときには、誤動作を起こす可能性がある。
本発明の目的は、個体差または環境差による伝播特性の差を調整しうる半導体装置を提供することにある。
【課題を解決するための手段】
【０００８】
データまたはクロックに可変量の遅延を与えるディレイヤと、ディレイヤの遅延量を制御するディレイ調整部とからなる半導体装置により達成できる。
【発明の効果】
【０００９】
本発明によれば、個体差または環境差による伝播特性の差を調整し得る半導体装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下本発明の実施の形態について、実施例を用いて、図面を参照しながら説明する。なお、実質同一の部材には同じ符号を振り説明は繰り返さない。
まず、初めに図１ないし図８を用いて、ディレイヤの設置場所（システムＬＳＩ／メモリ）、データ対象（リードデータ／ライトデータ）、ディレイ対象（データ／クロック）の８種類の組み合わせを説明する。
【００１１】
ここで、図１はディレイ対象をシステムＬＳＩ側のリードデータとしたシステムＬＳＩ（メモリ制御用ＬＳＩ）−ＤＤＲメモリシステムのブロック図である。図２はディレイ対象をシステムＬＳＩ側のリードデータ並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。図３はディレイ対象をシステムＬＳＩ側のライトデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。図４はディレイ対象をシステムＬＳＩ側のメモリクロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【００１２】
また、図５はディレイ対象をＤＤＲメモリ側のライトデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。図６はディレイ対象をＤＤＲメモリ側のライトデータ取り込みクロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。図７はディレイ対象をＤＤＲメモリ側のリードデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。図８はディレイ対象をＤＤＲメモリ側のリードデータ並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。なお、以下の記載ではメモリを制御する側をシステムと呼ぶ。また、図１ないし図８にはタイミングを説明する図面を添付する。
【００１３】
まず、システム側（メモリ制御側）にディレイヤを設け、リードデータの読み込みを確実にする構成を図１および図２を用いて説明する。図１（ａ）において、ＤＤＲメモリ１００は、同相でリードデータと、リードデータ並走クロックをシステムＬＳＩ ２００Ａに送出する。リードデータを入力バッファ２１０で受信したシステムＬＳＩ ２００Ａは、リードデータをディレイヤ２２０Ａに転送し、ディレイ調整部２６０Ａが指示する量のディレイを受けた後、２分岐されてラッチ２３０に送信される。ラッチ２３０−１には、インバータ２４０によって逆相のリードデータ並走クロックが、供給されている。また、ラッチ２３０−２には、正相のリードデータ並走クロックが、供給されている。ラッチ２３０からの２信号は、ＤＤＲデータ取り出し部２５０で、ＳＤＲに変換され、リードデータとなる。
【００１４】
ここで、ディレイヤ２２０は、１５段のディレイ素子を直列に並べ、入力および各段の出力（設定０〜１５）をセレクタで選択する構成である。ディレイ調整部２６０は、セレクタの出力をコントロールする。なお、ディレイヤ２２０はハードウェアロジック以外にソフトウェアで実現することもできる。ディレイ調整部２６０の設定値は、トレーニングにより決定する。図１（ａ）の構成では、リードデータに遅延を与えるので、１ビット毎または１バイト毎のきめ細かい調整が可能である。
【００１５】
図１（ｂ）に示すタイミング図は、システムＬＳＩ ２００Ａが読み込むリード並走クロックとリードデータおよびシステムＬＳＩ ２００Ａがディレイ調整をしたリードデータを示す。ＤＤＲメモリのリードデータは、リードデータ並走クロックの立上りから立下りの半周期および立下りから立上りの半周期で、それぞれデータを読みこむ。システムＬＳＩ ２００Ａは、リードデータをリードデータ並走クロックの立上りおよび立下りで読み込む。このため図１（ｂ）では、リードデータを概ね４分の１周期ディレイさせて、システムＬＳＩ ２００Ａがリードデータを、その有効期間の中央付近で読み込むように調整する。  図２（ａ）に示すＤＤＲメモリ１００は、同相でリードデータと、リードデータ並走クロックをシステムＬＳＩ ２００Ｂに送出する。リードデータを入力バッファ２１０で受信したシステムＬＳＩ ２００Ｂは、リードデータをラッチ２３０に転送する。一方、リードデータ並走クロックは、ディレイヤ２２０Ｂが受信し、ディレイ調整部２６０Ｂが指示する量のディレイを受けた後、２分岐されて、一方はラッチ２３０−２に供給され、他方はインバータ２４０を経由して、逆送のリードデータ並走クロックがラッチ２３０−１に供給される。ラッチ２３０からの２信号は、ＤＤＲデータ取り出し部２５０で、ＳＤＲに変換され、リードデータとなる。図２（ａ）の構成ではクロックのディレイを調整するので回路規模（またはソフトウェア規模）が小さくてすむ。
【００１６】
図２（ｂ）に示すタイミング図は、システムＬＳＩ ２００Ｂが読み込むリード並走クロックとリードデータおよびシステムＬＳＩ ２００Ｂがディレイ調整をしたリード並走クロックを示す。ＤＤＲメモリのリードデータは、リードデータ並走クロックの立上りから立下りの半周期および立下りから立上りの半周期で、それぞれデータを読みこむ。システムＬＳＩ ２００Ｂは、リード並走クロックを概ね４分の１周期ディレイさせて、ディレイされたリードデータ並走クロックの立上りと立下りでリードデータを読み込む。
【００１７】
次に、システム側にディレイヤを設け、ライトデータの書き込みを確実にする構成を図３および図４を用いて説明する。
図３（ａ）において、ＤＤＲメモリ１００が受信するメモリクロックとライトデータの位相は、図３（ｂ）のメモリクロックとディレイ調整後のライトデータの関係とする必要がある。システムＬＳＩ ２００Ｃは、メモリクロックを生成するメモリクロック生成部２７０と、クロックの１周期の立下りから立上りまでのライトデータをＤＤＲのライトデータに変換するＤＤＲ化部２８０と、ＤＤＲのライトデータにディレイを与えるディレイヤ２２０Ｃと、ディレイヤ２２０Ｃのディレイ量を設定するディレイ調整部２６０Ｃと、出力バッファ２９０とで構成されている。ここで、ＤＤＲ化部２８０の出力は、図３（ｂ）のメモリクロックとライトデータの関係であり、ディレイヤ２２０Ｃを調整して、ＤＤＲメモリが受信するライトデータを、ディレイ調整後ライトデータとメモリクロックの関係とする。図３（ａ）の構成では、ライトデータにディレイを与えているので、きめ細かい調整が可能である。
【００１８】
一方、図４（ａ）に示す構成では、ディレイヤ２２０Ｄをメモリクロック生成部２７０の後ろに置き、図４（ｂ）に示すようにメモリクロックのディレイ量をディレイ調整部２６０Ｄが調整する。この構成では、メモリクロックのみ調整すれば良いので、簡単な構成となる。
【００１９】
ＤＤＲメモリ側にディレイヤを設けライトデータの書き込みを確実にする構成を図５および図６を用いて説明する。基本的な構成は、図１および図２で説明したシステム側にディレイヤを設けリードデータの読み込みを確実にする構成をＤＤＲメモリに適用したものである。しかし、一般にメモリはシステムに対して受動的（システムの命令に反応する）な部品である。このためシステム側の制御が必要である。なお、制御用にも信号線が必要だが図示を省く。
【００２０】
図５（ａ）に示すＤＤＲメモリ１００Ａは、メモリクロックとライトデータを受信する。このメモリクロックとライトデータは、図５（ｂ）に示すようにスキューが発生している。ＤＤＲメモリ１００Ａは、ライトデータをディレイヤ１１０Ａに転送し、ディレイ調整部１５０Ａが指示する量のディレイを受けた後、２分岐されてラッチ１３０に送信される。ラッチ１３０−１には、インバータ１２０によって逆相のメモリクロックが、供給されている。また、ラッチ１３０−２には、正相のメモリクロックが、供給されている。ラッチ１３０からの２信号は、ＤＤＲデータ取り出し部１６０で、ＳＤＲに変換される。トレーニング状態において、ＳＤＲに変換されたライトデータは、パターン比較部１４０でメモリトレーニング用パターン３００と比較され、この結果がディレイ調整部１５０Ａに送信される。
【００２１】
一方、システムＬＳＩ ２００Ｅには、トレーニング設定部２０５と、トレーニング設定部２０５のメモリトレーニング用テストパターン３００と通常時ライトデータとを選択するセレクタ２１５が設けられている。トレーニング設定部２０５は、トレーニング時にはセレクタ２１５の出力をメモリトレーニング用テストパターンとして、ＤＤＲ化部２８０、出力バッファ２９０を介して、ＤＤＲメモリ１００Ａに送信する。
【００２２】
本実施例では、メモリ機能として、ライトトレーニングモードを用意し、そのモード時のライトアクセスはアドレス毎にメモリ内部で持つ特定パターンと比較チェックする。システムＬＳＩは、ライトトレーニングモードへの設定変更と、そのモード時での特定パターンデータでのライトアクセスを行う。これによりメモリ側でのディレイ調整制御をおこなうことができる。この調整により、図５（ｂ）に示すディレイ調整後のライトデータを得ることができる。
【００２３】
なお、本実施例ではシステムＬＳＩおよびメモリは、内部データをＳＤＲで扱うものとして説明したが、内部データをＤＤＲで扱うシステムＬＳＩまたはメモリに付いても、ＤＤＲ−ＳＤＲ変換を行なう部位等が不要なことを除いて、基本となる構成と動作は同様である。また、外部データをＳＤＲで扱うものであっても良く、ＳＤＲまたはＤＤＲ以外のデータレート（例えばＱｕａｄ−ＤＲ）についても有効である。これは、他の実施例に付いても同様である。
【００２４】
図６（ａ）に示すＤＤＲメモリ１００Ｂは、分岐したＤＤＲデータ取り出し用のメモリクロックにディレイ調整機構１５０Ｂからの制御でディレイを与えるディレイヤ１１０Ｂを設けている。
【００２５】
本実施例でも、ＤＤＲメモリ１００Ｂにライトトレーニングモードを用意し、そのモード時のライトアクセスはアドレス毎にメモリ内部で持つ特定パターンと比較チェックする。システムＬＳＩ２００Ｅは、ライトトレーニングモードへの設定変更と、そのモード時での特定パターンデータでのライトアクセスを行う。これによりＤＤＲメモリ１１０Ｂでのディレイ調整制御をおこなうことができる。この調整により、図５（ｂ）に示すディレイ調整後のメモリクロックを得ることができる。
【００２６】
ＤＤＲメモリ側にディレイヤを設け、システムＬＳＩでのリードデータの読み込みを確実にする構成を図７および図８を用いて説明する。基本的な構成は、図３および図４で説明したシステム側にディレイヤを設けライトデータの書き出しを確実にする構成をＤＤＲメモリに適用したものである。しかし、一般にメモリはシステムに対して受動的なので、システム側の制御が必要である。なお、制御用にも信号線が必要だが図示を省く。
【００２７】
図７（ａ）において、ＤＤＲメモリ１００Ｃは、メモリトレーニング用テストパターン３００とメモリリードデータとを入力とするセレクタ１９０と、セレクタ１９０の出力を入力とするＤＤＲ化部１７０と、ＤＤＲ化されたリードデータにディレイ調整部１５０Ｃからの指示に基づいてディレイを与えるディレイヤ１１０Ｃと、リードデータ並走クロック生成部１８０とから構成されている。
【００２８】
一方、システムＬＳＩ ２００Ｆは、ＤＤＲデータ取り出し部２５０の出力とメモリトレーニング用テストパターン３００とを入力とするパターン比較部２２５とを備える。
【００２９】
トレーニングモードが選択されると、ＤＤＲメモリ１００Ｃのセレクタ１９０は、メモリトレーニング用テストパターン３００を選択する。この結果、テストパターン３００がＤＤＲ化されて、ディレイ調整部１５０Ｃが選択したディレイが与えられて、システムＬＳＩ ２００Ｆに送信される。システムＬＳＩ ２００Ｆのパターン比較部２２５は、送信されてきたデータと自己が保有するテストパターン３００を比較し、その結果をＤＤＲメモリ１００Ｃのディレイ調整部１５０Ｃに返信する。
【００３０】
ディレイ調整部１５０Ｃは、ディレイの量を変えてパターン比較を繰り返せば最適なディレイ量を把握することができる。
図７（ｂ）の内部リードデータはＤＤＲ化部１７０の出力波形である。一方、リードデータ入力と、リードデータ並走クロック入力は、システムＬＳＩ ２００Ｆの入力波形である。リードデータ入力は、スキュー等の特性の異なる環境に置かれても、その環境でディレイ量を調整できる。その結果安定した特性とすることができる。
【００３１】
本実施例では、ＤＤＲメモリ１００Ｃにリードトレーニングモードを用意して、リードトレーニングモード時のリードアクセスは一定アドレス毎に特定パターンを送出するものとする。システムＬＳＩ ２００Ｆは、そのモードへの設定変更と、そのモード時のリードデータパターンチェックを行いメモリにチェックＯＫ/ＮＧを伝達する。これによりメモリ側でのディレイ調整制御をおこなうことができる。
【００３２】
なお、パターン比較はシステムＬＳＩ ２００Ｆで実施しているので、テストパターン３００をＤＤＲメモリ１００Ｃに持たず、ライトデータとして書き込んだ後、リードデータとして読み込んでも良い。なお、この場合にはライトデータの健全性を検証した後、実施する。この変形例は、図８でも共通である。
【００３３】
図８（ａ）において、ＤＤＲメモリ１００Ｄは、リードデータ並走クロックの出力にディレイ調整部１５０Ｄからの指示に基づくディレイを与えるディレイヤ１１０Ｄを有する。
図８のシステムＬＳＩ−ＤＤＲメモリシステムトレーニングモードの動作は、図７とまったく同じである。
【００３４】
図８（ｂ）のリードデータ入力とリードデータ並走クロック入力は、システムＬＳＩ ２００Ｆの入力である。一方、内部リードデータ並走クロックは、リードデータ並走クロック生成部１８０の出力である。リードデータ並走クロック入力は、スキュー等の特性の異なる環境に置かれても、その環境でディレイ量を調整できる。その結果安定した特性とすることができる。
【００３５】
さて、これまでリードデータの読み出しを確実に実施する実施例を４例、ライトデータの書き込みを確実にする実施例を４例説明してきた。それらの組み合わせは自由であり、１６種類の組み合わせがある。すべてについて説明するのは紙面に限りがあるので、発明者が最も適切と判断した２例を図９および図１０を用いて説明する。なお、残った１４例が不適切と判断したわけではない。ここで、図９はディレイ対象をシステムＬＳＩのライトデータとリードデータ並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。また、図１０はディレイ対象をＤＤＲメモリのメモリクロックとシステムＬＳＩのリード並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【００３６】
図９は、図２と図３とを組み合わせたシステムＬＳＩ−ＤＤＲメモリシステムである。また、図１０は、図３と図６と図８とを組み合わせたシステムＬＳＩ−ＤＤＲメモリシステムである。
【００３７】
図９の構成は、メモリを制御するシステムＬＳＩに閉じるので、現時点で最良と発明者が判断した構成である。ここで、クロックを遅延対象とした方が、回路は簡単になるにも関わらず、ディレイ対象をライトデータとリードデータ並走クロックとしている理由は、メモリクロックに遅延を与えるとリードデータ並走クロックに影響がおよぶ（その結果リード側の遅延量を補正する必要が生まれる）メモリが存在するからである。図９の構成の説明は、図２および図３で実施したので、ここでは省略する。なお、図９のＤＤＲメモリ１００は、ライトデータの入力端子と、リードデータの出力端子が異なるライト／リード分離Ｉ／Ｏを図示しているが、端子が共通のライト／リード共通Ｉ／Ｏであってもよい。これは、他の実施例にも共通である。
【００３８】
図１０のＤＤＲメモリ１００Ｂは、図６のＤＤＲメモリ１００Ｂと同じ構成である。一方、図１０のシステムＬＳＩ ２００Ｈは、図３と図６とを組み合わせ、さらに図８のシステムＬＳＩ ２００Ｆのパターン比較部２２５を組み合わせた構成である。パターン比較部２２５は、その比較結果をディレイ調整部２６０Ｈに送信する。なお、ここでＤＤＲメモリ１００Ｂは、テストパターンを持たないが、システムＬＳＩ ２００Ｈが、事前に通常のデータとしてテストパターンを送信し、当該データを読み出すことでテストパターンを読み出す。
【００３９】
このように構成することで、ＤＤＲメモリ１００Ｂが送信するテストパターンについて、ディレイヤ２２０Ｂのディレイ量を変えてパターン比較を繰り返せばディレイヤ２２０Ｂの最適なディレイ量を把握することができる。
【００４０】
なお、ＤＤＲメモリ１００Ｂに、図８のＤＤＲメモリ１００Ｄのメモリトレーニング用テストパターン３００とセレクタ１９０と図８で省略されたＤＤＲ化部１７０とを追加した構成としてもよい。図１０のＤＤＲメモリ１００ＢおよびシステムＬＳＩ ２００Ｈは、共に入力されたデータを自分自身でトレーニングする点が好ましい。また、ＤＤＲメモリ１００Ｂは、リードデータ並走クロックを生成するために、遅延を与えられていないメモリクロックを用いる。
【００４１】
次に、データトレーニングのタイムチャートを図１１および図１２を用いて説明する。ここで、図１１はリードデータトレーニングのタイムチャートとトレーニング結果を示す図である。また、図１２はライトデータトレーニングのタイムチャートとトレーニング結果を示す図である。
【００４２】
ここで、データトレーニングはリードデータから実施し、リードデータまたはリードデータ並走クロックに与える最適なディレイ量としてから、ライトデータのデータトレーニングを行う。ＳＤＲでライトできるＤＤＲメモリはＳＤＲでライト、またＤＤＲのみのライトを行なうＤＤＲメモリに付いてはライト時は周波数を下げてライトする等、リードデータトレーニング用のライトデータを、ＳＤＲで確実に書き込んで、混乱を避けるためである。
【００４３】
図１１（ａ）には、リードデータまたはリードデータ並走クロックのディレイヤ設定”０”について、上から順にメモリコマンド、アドレス、ライトデータ、リードデータを記載してある。まず、ＳＤＲでアドレス０からアドレスｎまでデータを書き込む。次に、ＤＤＲでアドレス０からアドレスｎまでデータを読み出す。読み出したデータと、書き込んだデータを比較し、一つでも比較ＮＧがあればディレイヤ設定”０”はＮＧとする。これをディレイヤ設定”１５”まで繰り返す。この結果をまとめたのが、図１１（ｂ）である。
【００４４】
図１１（ｂ）は、図１１（ａ）の手順を取って得たディレイヤ設定と、ＮＧ/ＯＫ結果の表である。この結果は、ディレイヤ設定”０”〜”２”、”１０”、”１３”〜”１５”がＮＧ、他のディレイヤ設定がＯＫであったので、追って図１３で説明する手順で、ディレイヤ設定”６”をディレイ最適値としている。
【００４５】
図１２と図１１とを比較すれば分かるように、ディレイ量を振るディレイヤがライトデータまたはメモリクロック用であることと、ライトデータが最初からＤＤＲであることが異なる。前半は当然として、後半は既に終了したリードデータトレーニングによって、リードデータの健全性が保証されているからである。したがって、図１２の説明は図１１の説明に尽きており、説明を省く
図１３ないし図１８を用いて、トレーニング制御のフローを説明する。ここで、図１３はディレイヤをシステムＬＳＩに設けたリードデータの読み込みを確実とする制御フローである。図１４はディレイヤをシステムＬＳＩに設けたライトデータの読み込みを確実とする制御フローである。図１５はディレイヤをＤＤＲメモリに設けたライトデータの読み込みを確実とする制御フローである。図１６はディレイヤをＤＤＲメモリに設けたリードデータの読み込みを確実とする制御フローである。図１７は図９に示すシステムＬＳＩ−ＤＤＲメモリシステムの制御フローである。図１８は図１０に示すシステムＬＳＩ−ＤＤＲメモリシステムの制御フローである。
【００４６】
図１３において、ディレイヤの設置箇所がシステムＬＳＩであれば、ディレイ対象がリードデータであってもリードデータ並走クロックであっても良い。トレーニングを開始すると、まずレジスタをリセットする（Ｓ４０１）。ここでリセットするのは、以下の項目である。（１）ディレイヤの設定値レジスタを”０”とする。（２）連続ＯＫ回数レジスタを”０”とする。（３）連続ＯＫ最大回数レジスタを”０”とする。（４）連続ＯＫ最終時ディレイヤ値レジスタを”０”とする。次に、予め定めた領域に対しＳＤＲモードでテストデータを書き込む（Ｓ４０２）。書き込んだ領域をＤＤＲモードで読み出す（Ｓ４０３）。書き込んだ領域で、書き込んだデータと読み出したデータとの比較を行う（Ｓ４０４）。この結果が全てＯＫでなければ（Ｎｏ）、連続ＯＫ回数レジスタをクリアして（Ｓ４０５）、ステップ４０９に移行する。
【００４７】
ステップ４０４で全てＯＫなら（Ｙｅｓ）、連続ＯＫ回数レジスタをインクリメントする（Ｓ４０６）。連続ＯＫ回数レジスタの値と連続ＯＫ最大回数レジスタの値を比較し（Ｓ４０７）、最大ＯＫ回数を超えていなければ（Ｎｏ）、ステップ４０９に移行する。最大ＯＫ回数を超えているなら（Ｙｅｓ）、連続ＯＫ最大回数レジスタの値を連続ＯＫ回数レジスタの値とし、連続ＯＫ最終時ディレイヤ設定値レジスタの値を現在のディレイヤ設定値の値とする（Ｓ４０８）。ディレイヤの設定値と設定可能上限値を比較し（Ｓ４０９）、ディレイヤの設定値が設定可能上限値未満であれば（Ｎｏ）、ディレイヤ設定値をインクリメントし（Ｓ４１０）、ステップ４０２に戻る。ディレイヤの設定値が設定可能上限値以上であれば（Ｙｅｓ）、連続最大ＯＫ回数レジスタの値と予め定めたトレーニング成功判定回数とを比較する（Ｓ４１１）。連続最大ＯＫ回数レジスタの値がトレーニング成功判定回数未満なら（Ｎｏ）、トレーニング失敗である。連続最大ＯＫ回数レジスタの値がトレーニング成功判定回数以上なら（Ｙｅｓ）、ディレイヤ設定値を（連続ＯＫ最終時ディレイ設定−連続ＯＫ最大回数レジスタの値÷２）として（Ｓ４１２）、トレーニング成功に遷移する。なお、ステップ４１２において計算途中ででた少数点以下は切り捨てる。また、ステップ４０５ないしステップ４１２はトレーニング結果判定およびディレイヤ設定値算出制御ステップ（Ｓ４２０）と呼ぶ。
【００４８】
図１４を用いてシステムＬＳＩにディレイヤを設けたライトトレーニング手順を説明する。図１４のフローは、ライトデータを遅延させる場合、メモリクロックを遅延させる場合に共通なフローである。
【００４９】
トレーニングを開始すると、まずレジスタをリセットする（Ｓ４２１）。予め定めた領域にＤＤＲモードでテストデータを書き込む（Ｓ４２２）。書き込んだ領域をＤＤＲモードで読み出す（Ｓ４２３）。書き込んだ領域で、書き込んだデータと読み出したデータとの比較を行う（Ｓ４２４）。このデータの比較以降は図１３と同様にトレーニング結果判定およびディレイヤ設定値算出制御を実施する（Ｓ４２０）。
【００５０】
図１５を用いてＤＤＲメモリにディレイヤを設けたライトトレーニング手順を説明する。ここで、ディレイ対象はライトデータであってもメモリクロックであっても良い。なお、メモリ内部にはテストパターンを本来のメモリ領域とは別に持っている。
【００５１】
トレーニングを開始すると、まずレジスタをリセットする（Ｓ４３１）。ここでリセットするのは、以下の項目である。（１）ディレイヤの設定値レジスタを”０”とする。（２）連続ＯＫ回数レジスタを”０”とする。（３）連続ＯＫ最大回数レジスタを”０”とする。（４）連続ＯＫ最終時ディレイヤ値レジスタを”０”とする。次に、システムより予め定めた領域に対しＤＤＲモードでテストデータを書き込む（Ｓ４３２）。書き込まれたデータとテストパターンとを比較する（Ｓ４３３）。この結果（Ｓ４３４）が全てＯＫでなければ（Ｎｏ）、連続ＯＫ回数レジスタをクリアして（Ｓ４３５）、ステップ４３９に移行する。
【００５２】
ステップ４３４で全てＯＫなら（Ｙｅｓ）、連続ＯＫ回数レジスタをインクリメントする（Ｓ４３６）。連続ＯＫ回数レジスタの値と連続ＯＫ最大回数レジスタの値を比較し（Ｓ４３７）、最大ＯＫ回数を超えていなければ（Ｎｏ）、ステップ４３９に移行する。最大ＯＫ回数を超えているなら（Ｙｅｓ）、連続ＯＫ最大回数レジスタの値を連続ＯＫ回数レジスタの値とし、連続ＯＫ最終時ディレイヤ設定値レジスタの値を現在のディレイヤ設定値の値とする（Ｓ４３８）。ディレイヤの設定値と設定可能上限値を比較し（Ｓ４３９）、ディレイヤの設定値が設定可能上限値未満であれば（Ｎｏ）、ディレイヤ設定値をインクリメントし（Ｓ４４０）、ステップ４３２に戻る。ディレイヤの設定値が設定可能上限値以上であれば（Ｙｅｓ）、連続最大ＯＫ回数レジスタの値と予め定めたトレーニング成功判定回数とを比較する（Ｓ４４１）。連続最大ＯＫ回数レジスタの値がトレーニング成功判定回数未満なら（Ｎｏ）、トレーニング失敗である。連続最大ＯＫ回数レジスタの値がトレーニング成功判定回数以上なら（Ｙｅｓ）、ディレイヤ設定値を（連続ＯＫ最終時ディレイ設定−連続ＯＫ最大回数レジスタの値÷２）として（Ｓ４４２）、トレーニング成功に遷移する。なお、ステップ４４２において計算途中ででた少数点以下は切り捨てる。また、ステップ４３５ないしステップ４４２はトレーニング結果判定およびディレイヤ設定値算出制御ステップ（Ｓ４５０）と呼ぶ。
【００５３】
図１６を用いてＤＤＲメモリにディレイヤを設けたリードトレーニング手順を説明する。ここで、ディレイ対象はリードデータであっても、リードデータ並走クロックであっても良い。なお、メモリ内部にはテストパターンを本来のメモリ領域とは別に持っている。また、システムにもテストパターンを持っている。
【００５４】
トレーニングを開始すると、まずレジスタをリセットする（Ｓ４５１）。ここでリセットするのは、以下の項目である。（１）ディレイヤの設定値レジスタを”０”とする。（２）連続ＯＫ回数レジスタを”０”とする。（３）連続ＯＫ最大回数レジスタを”０”とする。（４）連続ＯＫ最終時ディレイヤ値レジスタを”０”とする。次に、システムにテストパターン部をＤＤＲモードでデータリードしてもらい、システム側でテストパターンを比較し、その結果の連絡を受ける（Ｓ４５２）。連絡を受けた比較結果が全データＯＫか確認する（Ｓ４５３）。このデータの比較以降は図１５と同様にトレーニング結果判定およびディレイヤ設定値算出制御処理する（Ｓ４５０）。
なお、本実施例では、メモリ内部に正規に書き込まれたテストパターンを読み込んでいるので、最初からＤＤＲモードでリードすることができる。
【００５５】
図１７を参照して、図９に示すシステムＬＳＩ−ＤＤＲメモリシステムの制御フローを説明する。トレーニングを開始すると、まずリードデータ並走クロックのディレイ調整トレーニングを実施する（Ｓ５０１）。リードデータ並走クロックのディレイ調整トレーニングの結果が成功か否か確認する（Ｓ５０２）。否なら（Ｎｏ）、トレーニング失敗であり、一般メモリアクセス不可とする。成功ならば（Ｙｅｓ）、ライトデータディレイ調整トレーニングを実行する（Ｓ５０３）。ライトデータディレイ調整トレーニングの結果が成功か否か確認する（Ｓ５０４）。否なら（Ｎｏ）、トレーニング失敗であり、一般メモリアクセス不可とする。成功ならば（Ｙｅｓ）、トレーニング成功であり、一般メモリアクセス開始可とする。
【００５６】
図１８を参照して、図１０に示すシステムＬＳＩ−ＤＤＲメモリシステムの制御フローを説明する。トレーニングを開始すると、まず、メモリにおいてメモリクロックのディレイ調整トレーニングを実施する（Ｓ５１１）。メモリクロックのディレイ調整トレーニングの結果が成功か否か確認する（Ｓ５１２）。否なら（Ｎｏ）、トレーニング失敗であり、一般メモリアクセス不可とする。成功ならば（Ｙｅｓ）、システムＬＳＩにおいてリードデータ並走クロックのディレイ調整トレーニングを実行する（Ｓ５１３）。リードデータ並走クロックのディレイ調整トレーニングの結果が成功か否か確認する（Ｓ５１４）。否なら（Ｎｏ）、トレーニング失敗であり、一般メモリアクセス不可とする。成功ならば（Ｙｅｓ）、トレーニング成功であり、一般メモリアクセス開始可とする。
【００５７】
以上説明した実施例に拠れば、ＤＤＲメモリまたはメモリ制御ＩＣにおいて、リードデータとリードデータ並走クロックの位相関係およびライトデータとメモリクロックとの位相関係を調整することができる。その結果、個体差または環境差による伝播特性の差を調整し得る半導体装置（ＤＤＲメモリまたはメモリ制御ＩＣ）を提供することができる。
【図面の簡単な説明】
【００５８】
【図１】ディレイ対象をシステムＬＳＩ側のリードデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図２】ディレイ対象をシステムＬＳＩ側のリードデータ並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図３】ディレイ対象をシステムＬＳＩ側のライトデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図４】ディレイ対象をシステムＬＳＩ側のメモリクロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図５】ディレイ対象をＤＤＲメモリ側のライトデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図６】ディレイ対象をＤＤＲメモリ側のライトデータ取り込みクロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図７】ディレイ対象をＤＤＲメモリ側のリードデータとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図８】ディレイ対象をＤＤＲメモリ側のリードデータ並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図９】ディレイ対象をシステムＬＳＩのライトデータとリードデータ並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図１０】ディレイ対象をＤＤＲメモリのメモリクロックとシステムＬＳＩのリード並走クロックとしたシステムＬＳＩ−ＤＤＲメモリシステムのブロック図である。
【図１１】リードデータトレーニングのタイムチャートと比較結果を示す図である。
【図１２】ライトデータトレーニングのタイムチャートと比較結果を示す図である。
【図１３】ディレイヤをシステムＬＳＩに設けたリードデータの読み込みを確実とする制御フローである。
【図１４】ディレイヤをシステムＬＳＩに設けたライトデータの読み込みを確実とする制御フローである。
【図１５】ディレイヤをＤＤＲメモリに設けたライトデータの読み込みを確実とする制御フローである。
【図１６】ディレイヤをＤＤＲメモリに設けたリードデータの読み込みを確実とする制御フローである。
【図１７】図９に示すシステムＬＳＩ−ＤＤＲメモリシステムの制御フローである。
【図１８】図１０に示すシステムＬＳＩ−ＤＤＲメモリシステムの制御フローである。
【符号の説明】
【００５９】
１００…ＤＤＲメモリ、１１０…ディレイヤ、１２０…インバータ、１３０…ラッチ、１４０…パターン比較部、１５０…ディレイ調整部、１６０…ＤＤＲデータ取り出し部、１７０…ＤＤＲ化部、１８０…リードデータ並走クロック生成部、１９０…セレクタ、２００…システムＬＳＩ、２０５…トレーニング設定部、２１０…入力バッファ、２１５…セレクタ、２２０…ディレイヤ、２２５…パターン比較部、２３０…ラッチ、２４０…インバータ、２５０…ＤＤＲデータ取り出し部、２６０…ディレイ調整部、２７０…メモリクロック生成部、２８０…ＤＤＲ化部、２９０…出力バッファ、３００…テストパターン。
【図１】
0004763360.tif 000002
【図２】
0004763360.tif 000003
【図３】
0004763360.tif 000004
【図４】
0004763360.tif 000005
【図５】
0004763360.tif 000006
【図６】
0004763360.tif 000007
【図７】
0004763360.tif 000008
【図８】
0004763360.tif 000009
【図９】
0004763360.tif 000010
【図１０】
0004763360.tif 000011
【図１１】
0004763360.tif 000012
【図１２】
0004763360.tif 000013
【図１３】
0004763360.tif 000014
【図１４】
0004763360.tif 000015
【図１５】
0004763360.tif 000016
【図１６】
0004763360.tif 000017
【図１７】
0004763360.tif 000018
【図１８】
0004763360.tif 000019