(57)【特許請求の範囲】
【請求項１】
メモリインターフェース回路おいて、コントローラとメモリ間で差動データストローブ信号を受信する受信回路であって、
前記差動データストローブ信号の一方と他方を比較して、前記差動データストローブ信号の一方が他方より高い時に高論理値を出力し、一方が他方より低い時に低論理値を出力し、一方と他方が等しい時に出力が不定となる主レシーバと、
前記差動データストローブ信号の一方をストローブ基準電圧と比較して、前記差動データストローブ信号の一方が前記ストローブ基準電圧より高い時に高論理値を出力し、一方が前記ストローブ基準電圧より低い時に低論理値を出力し、一方が前記ストローブ基準電圧と等しい時に出力が不定となる副レシーバと、
前記主レシーバの出力と前記副レシーバの出力の論理和を出力する判定回路と、を有することを特徴とする受信回路。
【請求項２】
前記ストローブ基準電圧は、前記差動データストローブ信号のコモン電圧と電源電圧の間の任意の電圧に設定される請求項１記載の受信回路。
【請求項３】
コントローラと、メモリと、を有し、
前記コントローラが前記メモリにデータの書き込みを行う時に、前記コントローラは、差動データストローブ信号に同期して書き込みデータを前記メモリに出力し、
前記コントローラが前記メモリからデータの読み出しを行う時に、前記メモリは、前記コントローラからのコマンド信号に応答して、差動データストローブ信号に同期して読み出しデータを前記コントローラに出力する、メモリインターフェース回路であって、
前記コントローラは、前記メモリから前記差動データストローブ信号を受信する差動データストローブ信号受信回路と、前記差動データストローブ信号受信回路の出力に同期してデータを取り込むデータ受信回路と、を有し、
前記差動データストローブ信号受信回路は、
前記差動データストローブ信号の一方と他方を比較して、前記差動データストローブ信号の一方が他方より高い時に高論理値を出力し、一方が他方より低い時に低論理値を出力し、一方と他方が等しい時に出力が不定となる主レシーバと、
前記差動データストローブ信号の一方をストローブ基準電圧と比較して、前記差動データストローブ信号の一方が前記ストローブ基準電圧より高い時に高論理値を出力し、一方が前記ストローブ基準電圧より低い時に低論理値を出力し、一方が前記ストローブ基準電圧と等しい時に出力が不定となる副レシーバと、
前記主レシーバの出力と前記副レシーバの出力の論理和を出力する判定回路と、を有することを特徴とするメモリインターフェース回路。
【請求項４】
前記メモリは、前記コントローラから前記差動データストローブ信号を受信するメモリ側差動データストローブ信号受信回路と、前記メモリ側差動データストローブ信号受信回路の出力に同期してデータを取り込むデータ受信回路と、を有し、
前記メモリ側差動データストローブ信号受信回路は、
前記差動データストローブ信号の一方と他方を比較して、前記差動データストローブ信号の一方が他方より高い時に高論理値を出力し、一方が他方より低い時に低論理値を出力し、一方と他方が等しい時に出力が不定となる主レシーバと、
前記差動データストローブ信号の一方をストローブ基準電圧と比較して、前記差動データストローブ信号の一方が前記ストローブ基準電圧より高い時に高論理値を出力し、一方が前記ストローブ基準電圧より低い時に低論理値を出力し、一方が前記ストローブ基準電圧と等しい時に出力が不定となる副レシーバと、
前記主レシーバの出力と前記副レシーバの出力の論理和を出力する判定回路と、を有することを特徴とする請求項３に記載のメモリインターフェース回路。
【請求項５】
前記ストローブ基準電圧は、前記差動データストローブ信号のコモン電圧と電源電圧の間の任意の電圧に設定される請求項３または４に記載のメモリインターフェース回路。
【請求項６】
前記コントローラおよび前記メモリは、前記差動データストローブ信号受信回路および前記メモリ側差動データストローブ信号受信回路の動作状態を制御するレシーバ制御信号を生成するレシーバ制御を有する請求項３または４に記載のメモリインターフェース回路。
【請求項７】
メモリインターフェース回路おいて、コントローラとメモリ間で、差動データストローブ信号に同期して送信されるデータの受信方法であって、
前記差動データストローブ信号の一方と他方を比較する第１の比較を行い、前記差動データストローブ信号の一方が他方より高い時に高論理値の比較結果を出力し、一方が他方より低い時に低論理値の比較結果を出力し、等しい時に出力を不定とする第１の比較結果を出力し、
前記差動データストローブ信号の一方をストローブ基準電圧と比較する第２の比較を行い、前記差動データストローブ信号の一方が前記ストローブ基準電圧より高い時に高論理値の比較結果を出力し、一方が前記ストローブ基準電圧より低い時に低論理値の比較結果を出力し、一方が前記ストローブ基準電圧と等しい時に出力を不定とする第２の比較結果を出力し、
前記第１の比較結果と前記第２の比較結果の論理和を生成し、
前記論理和の変化に同期して前記データを受信する、ことを特徴とする受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信回路、メモリインターフェース回路および受信方法に関する。
【背景技術】
【０００２】
ＣＰＵ（コントローラ）と外部メモリ(Dual Inline Memory Module: DIMM)間を接続する規格として、Double Data Rate(DDR)規格があり、動作速度の高速化に伴い、ＤＤＲ４の規格が策定されている。
【０００３】
ＤＤＲ４では、データ伝送のインターフェース形式としてPseudo Open Drain(POD)と呼ばれるインターフェースを採用することが決定されている。ＰＯＤインターフェースは、ＣＭＯＳ出力に対し、終端抵抗を信号端子と電源間に接続する形式である。したがって、出力電圧（入力電圧）は、「高(High: H)」電位＝電源電圧（ＶＤＤＱ）、「低(Low: L)」電位＝ＶＤＤＱを終端抵抗と出力バッファの出力インピーダンスの比で分圧した電圧となる。
【０００４】
コントローラがメモリに対してデータの書き込みおよび読み出しを行うためには、ＤＱＳと呼ばれるデータストローブ信号およびＤＱと呼ばれるデータ信号をコントローラとＤＩＭＭ間でやりとりする。メモリにデータを書き込む（ライト動作）時は、コントローラからＤＩＭＭにデータストローブ信号およびデータ信号が送信される。メモリからデータを読み出す（リード動作）時は、ＤＩＭＭからコントローラにデータストローブ信号およびデータ信号が送信される。データストローブ信号およびデータ信号の他に、コントローラがメモリに対して動作（ライト／リード）を指定する、アドレス信号、コマンド信号があり、これらの信号はコントローラからＤＩＭＭに対して一方的に送信される。
【０００５】
データストローブ信号（ＤＱＳ）は、差動信号であり、正相のＤＱＳ＿ｔと逆相のＤＱＳ＿ｃとを含む。コントローラおよびＤＩＭＭのＤＱＳ用ドライバ（出力回路）から出力されるＤＱＳ＿ｔおよびＤＱＳ＿ｃの論理レベルは常に反転信号であり、論理値はＤＱＳ＿ｔおよびＤＱＳ＿ｃの電位関係で決定される。具体的には、ＤＱＳ＿ｔ＞ＤＱＳ＿ｃの時には“Ｈ”、ＤＱＳ＿ｔ＜ＤＱＳ＿ｃの時には“Ｌ”、ＤＱＳ＿ｔ＝ＤＱＳ＿ｃの時には不定である。
【０００６】
データ信号（ＤＱ）はシングルエンドであり、論理値の判定は、コモン電圧に対する電位関係で決定される。
【０００７】
書き込みおよび読み出し動作時、データ信号を受信する側（書き込み時においてはメモリ、読み出し時においてはコントローラ）では、データストローブ信号（ＤＱＳ）をデータ信号（ＤＱ）のタイミング基準として扱い、データを受け取る。そのため、受信されたデータストローブ信号（ＤＱＳ）はデータ信号（ＤＱ）を取り込む回路に供給されるが、データストローブ信号（ＤＱＳ）の受信回路での遅延が大きいと、データ信号（ＤＱ）を取り込めない事態が生じる。ＤＤＲ４は高速のメモリインターフェースであり、データストローブ信号（ＤＱＳ）の受信回路の遅延は小さいことが求められる。
【０００８】
メモリに対する書き込みおよび読み出しを行わない時は、コントローラおよびＤＩＭＭは、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）を出力しない。そのため、ＤＤＲ４では、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）は、終端抵抗の影響で共に“Ｈ”になる。特に、データストローブ信号（ＤＱＳ）は、ＤＱＳ＿ｔおよびＤＱＳ＿ｃが共に“Ｈ”になり、論理値が確定しない、すなわち不定になる。データストローブ信号（ＤＱＳ）が不定状態の時に、ノイズ等の影響でデータ信号（ＤＱ）が取り込まれ、内部に伝搬されると誤動作が発生する場合が起こり得る。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１１５２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
高速のメモリインターフェース回路において、差動データストローブ信号（ＤＱＳ）に同期して送信されるデータ信号を誤って取り込む誤動作が発生しないことが望まれている。
【課題を解決するための手段】
【００１１】
第１の態様の受信回路は、メモリインターフェース回路において、コントローラとメモリ間で差動データストローブ信号を受信する受信回路であって、主レシーバと、副レシーバと、判定回路と、を有する。主レシーバは、差動データストローブ信号の一方と他方を比較して、差動データストローブ信号の一方が他方より高い時に高論理値を出力し、一方が他方より低い時に低論理値を出力し、一方と他方が等しい時に出力が不定となる。副レシーバは、差動データストローブ信号の一方をストローブ基準電圧と比較して、差動データストローブ信号の一方がストローブ基準電圧より高い時に高論理値を出力し、一方がストローブ基準電圧より低い時に低論理値を出力し、一方がストローブ基準電圧と等しい時に出力が不定となる。判定回路は、主レシーバの出力と副レシーバの出力の論理和を出力する。
【００１２】
第２の態様のメモリインターフェース回路は、コントローラと、メモリと、を有する。コントローラがメモリにデータの書き込みを行う時に、コントローラは、差動データストローブ信号に同期して書き込みデータをメモリに出力する。コントローラがメモリからデータの読み出しを行う時に、メモリは、コントローラからのコマンド信号に応答して、差動データストローブ信号に同期して読み出しデータをコントローラに出力する。コントローラは、メモリから差動データストローブ信号を受信する差動データストローブ信号受信回路と、差動データストローブ信号受信回路の出力に同期してデータを取り込むデータ受信回路と、を有する。差動データストローブ信号受信回路は、主レシーバと、副レシーバと、判定回路と、を有する。主レシーバは、差動データストローブ信号の一方と他方を比較して、差動データストローブ信号の一方が他方より高い時に高論理値を出力し、一方が他方より低い時に低論理値を出力し、一方と他方が等しい時に出力が不定となる。副レシーバは、差動データストローブ信号の一方をストローブ基準電圧と比較して、差動データストローブ信号の一方がストローブ基準電圧より高い時に高論理値を出力し、一方がストローブ基準電圧より低い時に低論理値を出力し、一方がストローブ基準電圧と等しい時に出力が不定となる。判定回路は、主レシーバの出力と副レシーバの出力の論理和を出力する。
【００１３】
第３の態様の受信方法は、メモリインターフェース回路おいて、コントローラとメモリ間で、差動データストローブ信号に同期して送信されるデータの受信方法である。差動データストローブ信号の一方と他方を比較する第１の比較を行う。差動データストローブ信号の一方が他方より高い時に高論理値の比較結果を出力し、一方が他方より低い時に低論理値の比較結果を出力し、等しい時に出力を不定とする第１の比較結果を出力する。差動データストローブ信号の一方をストローブ基準電圧と比較する第２の比較を行う。差動データストローブ信号の一方がストローブ基準電圧より高い時に高論理値の比較結果を出力し、一方がストローブ基準電圧より低い時に低論理値の比較結果を出力し、ストローブ基準電圧と等しい時に出力を不定とする第２の比較結果を出力する。第１の比較結果と第２の比較結果の論理和を生成する。論理和の変化に同期してデータを受信する。
【発明の効果】
【００１４】
実施形態によれば、メモリインターフェース回路において、差動データストローブ信号（ＤＱＳ）の正相と逆相信号が共に高レベルでも出力が確定する受信回路が実現される。
【図面の簡単な説明】
【００１５】
【図１】図１は、ＰＯＤインターフェースの通信経路部分の構成および信号を示す図である。
【図２】図２は、図１において、ドライバ（出力バッファ）をＣＭＯＳインバータで実現した回路例を示す図であり、（Ａ）が回路構成を、（Ｂ）が信号電位を説明するためＣＭＯＳインバータを形成するトランジスタをインピーダンス成分で表した場合を示す。
【図３】図３は、コントローラとメモリ間で送信される信号と、それらの信号を送受信するためにコントローラおよびメモリ（ＤＩＭＭ）に設けられる回路を示す図である。
【図４】図４は、コントローラとメモリ間で送信されるデータ信号およびデータストローブ信号を示すタイムチャートであり、（Ａ）が書き込み（ライト）動作時の信号を、（Ｂ）が読み出し（リード）動作時の信号を示す。
【図５】図５は、コントローラのメモリインターフェースに関係する部分の構成を示す図である。
【図６】図６は、差動データストローブ信号を受信するレシーバ、データ信号を受信するレシーバ、遅延回路およびラッチ（またはＦＦ）の部分を示す回路図および動作を示すタイムチャートである。
【図７】図７は、レシーバにおける入力に対する出力の値を示す図である。
【図８】図８は、コントローラからメモリ（ＤＩＭＭ）へのデータの書き込み動作におけるタイミングずれを説明する図である。
【図９】図９は、コントローラがメモリ（ＤＩＭＭ）からデータを読み出す動作におけるタイミングずれを説明する図である。
【図１０】図１０は、実施形態のメモリインターフェース回路における差動データストローブ信号の受信回路（レシーバ）の構成および動作を説明する図であり、（Ａ）が回路構成を、（Ｂ）から（Ｄ）が各部における入力と出力の関係を示す。
【図１１】図１１は、差動データストローブ信号の例とそれに対する主レシーバ、副レシーバおよび判定回路の出力の変化を示すタイムチャートである。
【発明を実施するための形態】
【００１６】
実施形態のメモリインターフェース回路を説明する前に、メモリインターフェース回路の基本的な構成および動作について説明する。
【００１７】
ＣＰＵ（コントローラ）と外部メモリ(Dual Inline Memory Module: DIMM)間を接続する規格として、Double Data Rate(DDR)規格がある。動作速度の高速化に伴い、ＤＤＲ２，ＤＤＲ３，ＤＤＲ４といった規格が策定されている。
【００１８】
ＤＤＲ２およびＤＤＲ３では、データ伝送のインターフェース形式としてStub-Series Terminated Logic(SSTL)と呼ばれるインターフェースが採用されていた。これに対して、ＤＤＲ４では、データ伝送のインターフェース形式としてPseudo Open Drain(POD)と呼ばれるインターフェースを採用することが決定されている。
【００１９】
図１は、ＰＯＤインターフェースの通信経路部分の構成および信号を示す図である。図１において、（Ａ）はシングルエンド信号を伝送する場合の構成を、（Ｂ）は伝送されるシングルエンド信号を、（Ｃ）は差動信号を伝送する場合の構成を、（Ｄ）は伝送される差動信号を、示す。
【００２０】
図２は、図１において、ドライバ（出力バッファ）をＣＭＯＳインバータで実現した回路例を示す図であり、（Ａ）が回路構成を、（Ｂ）が信号電位を説明するためＣＭＯＳインバータを形成するトランジスタをインピーダンス成分で表した場合を示す。
【００２１】
図１の（Ａ）に示すように、シングルエンド信号を伝送するＰＯＤインターフェースは、ドライバ１１と、レシーバ１２と、終端抵抗１３と、伝送線路１４と、を有する。図２の（Ａ）に示すように、ＰＯＤインターフェースは、ＣＭＯＳ出力に対し、終端抵抗を信号端子と電源間に接続する形式である。したがって、図２の（Ａ）および（Ｂ）に示すように、伝送信号の出力電圧（入力電圧）は、「高(High: H)」電位が電源電圧（ＶＤＤＱ）である。また、「低(Low: L)」電位が、ＶＤＤＱを終端抵抗１３のインピーダンスとドライバのＮＭＯＳトランジスタの出力インピーダンスＲＬの比で分圧した電圧となる。
【００２２】
図１の（Ｂ）に示すように、伝送信号は、Ｈ電位またはＬ電位に変化し、ＤＤＲ４によれば、Ｈ電位とＬ電位の幅は１８６ｍＶで、Ｈ電位とＬ電位の中間レベルがコモン電圧である。
【００２３】
図１の（Ｃ）に示すように、差動信号を伝送するＰＯＤインターフェースは、ドライバ２１と、レシーバ２２と、終端抵抗２３および２４と、伝送線路２５および２６と、を有する。終端抵抗２３は伝送線路２５と電源ＶＤＤＱとの間に接続され、終端抵抗２４は伝送線路２６と電源ＶＤＤＱとの間に接続される。図１の（Ｄ）に示すように、伝送信号は、差動である以外は、シングルエンド信号の場合と同じである。
【００２４】
ＤＤＲ４は、ＤＤＲ３の２倍の伝送速度を実現するため、送受信される信号振幅がＤＤＲ３の信号振幅よりも小さい（１８６ｍＶ）。したがって、ＤＤＲ４で使用されるレシーバ回路は、コモン電圧範囲が広く、小振幅信号を扱うことが求められる。
【００２５】
図３は、コントローラとメモリ間で送信される信号と、それらの信号を送受信するためにコントローラおよびメモリ（ＤＩＭＭ）に設けられる回路を示す図である。
【００２６】
図３に示すように、コントローラ３０からメモリ（ＤＩＭＭ）５０には、差動クロック信号、アドレス信号（ＡＤＤ）およびコマンド信号（ＣＭＤ）を含む制御信号が送信される。差動クロック信号（ＣＫ）は、コントローラ３０とメモリ(ＤＩＭＭ)５０が同期して動作するための信号である。アドレス信号およびコマンド信号は、コントローラがメモリに対して動作（ライト／リード）を指定する信号であり、コントローラ３０からメモリ（ＤＩＭＭ）５０に対して一方的に送信される。
【００２７】
コントローラ３０は、差動クロック信号、アドレス信号およびコマンド信号を出力するドライバ３１−３３を有する。メモリ（ＤＩＭＭ）５０は、差動クロック信号、アドレス信号およびコマンド信号を受信するレシーバ５１−５３を有する。
【００２８】
さらに、コントローラ３０がメモリ（ＤＩＭＭ）５０に対してデータの書き込みおよび読み出しを行うためには、差動データストローブ信号（ＤＱＳ）とデータ信号（ＤＱ）をコントローラとメモリ（ＤＩＭＭ）間でやりとりする。メモリ（ＤＩＭＭ）５０にデータを書き込む（ライト動作）時は、コントローラ３０からメモリ（ＤＩＭＭ）５０にデータストローブ信号およびデータ信号が送信される。メモリ（ＤＩＭＭ）５０からデータを読み出す（リード動作）時は、メモリ（ＤＩＭＭ）５０からコントローラ３０にデータストローブ信号およびデータ信号が送信される。言い換えれば、データストローブ信号およびデータ信号は、双方向に送信される信号である。
【００２９】
コントローラ３０は、データストローブ信号を送信するドライバ３４と、データストローブ信号を受信するレシーバ３５と、データ信号を送信するドライバ３６と、データ信号を受信するレシーバ３７と、を有する。メモリ（ＤＩＭＭ）５０は、データストローブ信号を受信するレシーバ５４と、データストローブ信号を送信するドライバ５５と、データ信号を受信するレシーバ５６と、データ信号を送信するドライバ５７と、を有する。コントローラ３０のドライバ３４とメモリ（ＤＩＭＭ）５０のドライバ５５が同時に動作するとデータストローブ信号が衝突するので、一方が動作状態（オン状態）の時には、他方は非動作状態（オフ状態）になるように制御される。また、コントローラ３０のドライバ３４とレシーバ３５が共に動作状態の場合、レシーバ３５はドライバ３４が送信するデータストローブ信号を受信することになる。このような事態を避けるため、ドライバ３４とレシーバ３５は同時には動作状態にならないように制御される。メモリ（ＤＩＭＭ）５０のドライバ５５とレシーバ５４についても同様に制御される。さらに、コントローラ３０のデータ信号（ＤＱ）を送信するドライバ３６および受信するレシーバ３７と、メモリ（ＤＩＭＭ）５０のデータ信号（ＤＱ）を送信するレシーバ５６および受信するドライバ５７についても同様に制御される。
【００３０】
例えば、コントローラ３０は、書き込みコマンド信号の出力に同期してドライバ３４およびドライバ３６を動作状態にするドライバ制御信号を生成する。また、コントローラ３０は、読み出しコマンド信号の出力に同期してレシーバ３５およびレシーバ３７を動作状態にするレシーバ制御信号を生成する。
【００３１】
例えば、メモリ（ＤＩＭＭ）５０は、書き込みコマンド信号の受信に同期してレシーバ５４およびレシーバ５６を動作状態にするレシーバ制御信号を生成する。また、メモリ（ＤＩＭＭ）５０は、読み出しコマンド信号の受信に同期してドライバ５５およびドライバ５７を動作状態にするドライバ制御信号を生成する。
【００３２】
図４は、コントローラとメモリ間で送信されるデータ信号およびデータストローブ信号を示すタイムチャートであり、（Ａ）が書き込み（ライト）動作時の信号を、（Ｂ）が読み出し（リード）動作時の信号を示す。
【００３３】
データストローブ信号（ＤＱＳ）は、差動信号であり、正相のＤＱＳ＿ｔと逆相のＤＱＳ＿ｃを含む。図では、ＤＱＳ＿ｔを実線で、ＤＱＳ＿ｃを破線で示す。例えば、図４の（Ａ）に示すように、書き込み（ライト）動作時には、ＤＱＳは、ＤＱの送信開始の１．５周期前からＤＱの送信終了の０．５周期後の間出力される。ＤＱＳとＤＱの変化エッジは、０．５周期ずれている。また、図４の（Ｂ）に示すように、読み出し（リード）動作時には、ＤＱＳは、ＤＱの送信開始の２．０周期前からＤＱの送信終了までの間出力される。ＤＱＳとＤＱの変化エッジは、同じ位相である。ただし、図４の（Ａ）および（Ｂ）のタイムチャートは一例であり、ＤＱＳとＤＱが同期していればよく、位相関係およびＤＱに対してＤＱＳが出力される期間は各種の例があり得る。
【００３４】
コントローラ３０およびメモリ（ＤＩＭＭ）５０のＤＱＳ用ドライバ３４，５５から出力されるＤＱＳ＿ｔおよびＤＱＳ＿ｃの論理レベルは常に反転信号であり、レシーバ３５およびレシーバ５４における論理値は、ＤＱＳ＿ｔおよびＤＱＳ＿ｃの電位関係で決定される。具体的には、ＤＱＳ＿ｔ＞ＤＱＳ＿ｃの時には“Ｈ”、ＤＱＳ＿ｔ＜ＤＱＳ＿ｃの時には“Ｌ”、ＤＱＳ＿ｔ＝ＤＱＳ＿ｃの時には不定である。
【００３５】
データ信号（ＤＱ）はシングルエンドであり、論理値の判定は、コモン電圧に対する電位関係で決定される。
【００３６】
書き込みおよび読み出し動作時、データ信号を受信する側（書き込み時においてはメモリ（ＤＩＭＭ）、読み出し時においてはコントローラ）では、データストローブ信号（ＤＱＳ）をデータ信号（ＤＱ）のタイミング基準として扱い、データを受け取る。具体的には、データストローブ信号（ＤＱＳ）の遷移でデータ信号（ＤＱ）を取り込んだ後、内部に取り込む。または、データストローブ信号（ＤＱＳ）で内部クロックの位相調整を行った後、内部クロックでデータ信号（ＤＱ）を取り込む。以下の説明では、ＤＱＳの遅延量を調整した後、ＤＱＳの遷移でＤＱを取り込むものとして説明する。
【００３７】
メモリに対する書き込みおよび読み出しを行わない時は、コントローラ３０およびメモリ（ＤＩＭＭ）５０は、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）を出力しない。そのため、ＤＤＲ４では、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）は、終端抵抗の影響で共に“Ｈ”になる。特に、データストローブ信号（ＤＱＳ）は、ＤＱＳ＿ｔおよびＤＱＳ＿ｃが共に“Ｈ”になり、レシーバにおける論理値が確定しない、すなわち不定状態になる。
【００３８】
データストローブ信号（ＤＱＳ）が不定状態の時に、ノイズ等の影響でデータ信号（ＤＱ）が取り込まれ、内部に伝搬されると誤動作が発生する場合が起こり得る。これを防止するため、コントローラおよびメモリ（ＤＩＭＭ）では、自身がデータを受け取るタイミング以外では、データストローブ信号（ＤＱＳ）のレシーバの動作を停止し、不定入力が内部に伝搬しないようにする防止策を行う。
【００３９】
前述のように、双方向に送信されるデータストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）の衝突防止および誤った信号取り込みを防止するため、コントローラ３０およびメモリ（ＤＩＭＭ）５０は、ドライバ制御信号およびレシーバ制御信号を生成する。このレシーバ制御信号を利用して、誤ったデータが取り込まれ、内部に伝搬されるのを防止することが考えられる。後述するように、メモリ（ＤＩＭＭ）５０からデータを読み出す読み出し（リード）動作で、レシーバの動作状態を制御する場合のタイミング制御が難しいため、以下コントローラ３０のレシーバ３５のレシーバ制御信号を例として説明する。
【００４０】
図５は、コントローラ３０のメモリインターフェースに関係する部分の構成を示す図である。
コントローラ３０は、前述のように、ドライバ３−３４および３６と、レシーバ３５および３７と、を有する。コントローラ３０は、さらに、レベリング回路３８と、レシーバ制御回路３９と、遅延回路４０と、ラッチ（またはフリップフロップ（ＦＦ））４１と、を有する。
【００４１】
レシーバ３５は、レシーバ制御回路３９の出力するレシーバ制御信号が“Ｈ”の時データストローブ信号（ＤＱＳ）を通過させ、レシーバ制御信号が“Ｌ”の時出力を“Ｈ”に固定する。レシーバ制御回路３９は、コマンド信号が書き込み（ライト）動作であるか読み出し（リード）動作であるかに応じて、メモリ（ＤＩＭＭ）５０にデータを書き込む際には、コントローラ３０自体が書き込むデータを取り込まないように、レシーバ制御信号を“Ｌ”とする。レシーバ制御回路３９は、ＤＩＭＭ５０からデータを読み取る際には、レシーバ制御信号を“Ｈ”とする。
【００４２】
メモリ（ＤＩＭＭ）５０からデータを読み取る際には、レシーバ３５が通過させたデータストローブ信号（ＤＱＳ）は、遅延回路４０を経由してラッチ（またはＦＦ）４１のクロック端子に印加させる。ラッチ（またはＦＦ）４１は、遅延調整されたＤＱＳの立上りおよび立下りを利用して、レシーバ３７が通過させたデータ信号（ＤＱ）を取り込む。
【００４３】
図６は、レシーバ３５、レシーバ３７、遅延回路４０およびラッチ（またはＦＦ）４１の部分を示す回路図および動作を示すタイムチャートである。図６の（Ａ）の回路図では、レシーバ３５を、差動型のレシーバ３５Ａであることを明確にするように示している。
【００４４】
図７は、レシーバ３５Ａにおける入力（ＤＱＳ＿ｔとＤＱＳ＿ｃ、レシーバ制御信号（ｃ））に対する出力Ｙの値を示す図である。
レシーバ３５Ａの出力Ｙは、レシーバ制御信号（ｃ）が“Ｈ（１）”である時には、ＤＱＳ＿ｔ＞ＤＱＳ＿ｃの場合“Ｈ”に、ＤＱＳ＿ｔ＜ＤＱＳ＿ｃの場合“Ｌ”に、ＤＱＳ＿ｔ＝ＤＱＳ＿ｃの場合に不定になる。また、レシーバ３５Ａの出力Ｙは、レシーバ制御信号（ｃ）が“Ｌ（０）”である時には、入力にかかわらず“Ｈ”になる。
【００４５】
図６の（Ｂ）に示すように、レシーバ制御信号（ｃ）は、レシーバ３５の動作状態を制御するマスク信号として利用される。レシーバ制御信号（ｃ）が“Ｈ”である期間は、レシーバ３５に入力するデータストローブ信号（ＤＱＳ）の受信タイミングと一致することが求められる。具体的には、レシーバ制御信号（ｃ）は、ＤＱＳ＿ｔとＤＱＳ＿ｃが反転信号である期間に“Ｈ”であり、ＤＱＳ＿ｔとＤＱＳ＿ｃの高低が判定できず、不定になる期間は“Ｌ”であることが求められる。もし、レシーバ制御信号（ｃ）が、ＤＱＳ＿ｔとＤＱＳ＿ｃの判定が不定になる期間に“Ｈ”になると誤ってデータ信号（ＤＱ）でない値をデータとして取り込むことが起こり得る。また、データストローブ信号（ＤＱＳ）が受信されているのもかかわらず、レシーバ制御信号（ｃ）が“Ｈ”にならないと、必要なデータ信号（ＤＱ）が取り込めない場合が起こり得る。
【００４６】
図５に戻り、レシーバ制御信号が“Ｈ”になる期間を受信タイミングと一致させるため、レベリング回路３８はレベリングを行う。レベリングは、既知のデータをメモリ（ＤＩＭＭ）５０から読み出しながら、レシーバ制御回路３９にレシーバ制御信号の位相を変化させ、実際にコントローラ３０が受信したデータが、既知のデータと一致するタイミングを探し出す位相調整動作である。この時の位相調整ステップは、データ信号（ＤＱ）の周期より十分に短くする。
【００４７】
図８は、コントローラ３０からメモリ（ＤＩＭＭ）５０へのデータの書き込み動作におけるタイミングずれを説明する図である。
【００４８】
メモリ（ＤＩＭＭ）５０へのデータの書き込み動作では、書き込み制御信号、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）は、コントローラ３０からメモリ（ＤＩＭＭ）５０に同方向に送信される。信号送信の途中経路となるＬＳＩ内部の遅延、ＰＣＢにおける遅延等は、すべての信号に同じように付加されるため、書き込みのためのコマンド（ＣＭＤ）信号を元に作られる書き込み制御信号と、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）との間の相対遅延は変化しない。そのため、メモリ（ＤＩＭＭ）５０は、コントローラ３０から書き込みのためのコマンド（ＣＭＤ）信号を受け取った後、決まった一定の遅延後にデータストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）が入力される。したがって、メモリ（ＤＩＭＭ）５０は、例えば書き込みのためのコマンド（ＣＭＤ）信号基づいて、データストローブ信号（ＤＱＳ）のレシーバを有効にするタイミングを容易に決定することができ、レシーバ制御信号を正確に生成できる。
【００４９】
図９は、コントローラ３０がメモリ（ＤＩＭＭ）５０からデータを読み出す動作におけるタイミングずれを説明する図である。
【００５０】
メモリ（ＤＩＭＭ）５０からのデータの読み出し動作では、コントローラ３０がメモリ（ＤＩＭＭ）５０に読み出しのためのコマンド（ＣＭＤ）信号を送信し、メモリ（ＤＩＭＭ）５０は、受け取った読み出しのためのコマンド（ＣＭＤ）信号に応じてメモリからデータを読み出す。そして、メモリ（ＤＩＭＭ）５０は、データストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）をコントローラ３０に送信する。例えば、コントローラ３０は、読み出しのためのコマンド（ＣＭＤ）信号の送信から一定の遅延後にデータストローブ信号（ＤＱＳ）のレシーバを有効にするレシーバ制御信号を生成する。しかし、コントローラ３０が読み出しのためのコマンド（ＣＭＤ）信号を送信してからＤＩＭＭ５０が読み出しのためのコマンド（ＣＭＤ）信号を受信するまでの時間は、コントローラ２０からメモリ（ＤＩＭＭ）５０までの信号経路長により異なる。また、メモリ（ＤＩＭＭ）５０が読み出しのためのコマンド（ＣＭＤ）信号を受信してから、データを読み出すまでの時間も個体差がある。そのため、コントローラ３０が、読み出しのためのコマンド（ＣＭＤ）信号を送信してから、メモリ（ＤＩＭＭ）５０からデータストローブ信号（ＤＱＳ）およびデータ信号（ＤＱ）を受信するまでの時間（フライトタイムと称される）は一定ではなく、メモリ（ＤＩＭＭ）の遅延差や実装位置、距離などの影響を受ける。このため、読み出しのためのコマンド（ＣＭＤ）信号の送信を起点としてレシーバ制御信号を生成したのでは、ずれが生じる。なお、データストローブ信号（ＤＱＳ）とデータ信号（ＤＱ）は、常に同方向の信号のため、ＤＱＳとＤＱ間の相対遅延はほぼ一定である。
【００５１】
前述のように、データストローブ信号（ＤＱＳ）の入力タイミングとレシーバ制御信号がずれると、ＤＱＳを正常に取り込めなくなり、不定な判定が出力されるか、または必要なＤＱＳのエッジを取り込めないという事態が生じる。この問題は、メモリインターフェースの通信速度が高速になるとより一層顕著になる。
【００５２】
以上のような理由で、レシーバを有効にするタイミングを、出荷時などにあらかじめ予測することは難しい。そこで、レベリングと呼ばれるトレーニング（タイミングの設定動作）を随時行うことにより、正確なタイミングでレシーバ制御信号を生成することが行われる。レベリングは、装置の起動時に実施し、それ以降は、装置環境（電源電圧、周囲温度など）が大きく変化し、フライトタイムが変化するような場合には再レベリングが必要となる。再レベリング実施は、以下のようなタイミング例で行うことが考えられる。一例は、データ読み出しに失敗した時である。別の例は、データ信号／データストローブ信号の位相関係を監視し、一定以上の位相変化を検出した時である。さらに別の例は、環境変化と関係無しに、あらかじめ設計時に決めた時間間隔を経過した時である。いずれの場合においても、再レベリング実施中は、ユーザプログラムからのメモリアクセスが実施できない。
【００５３】
さらに、レベリングを行うには、そのための専用のレベリング回路が必要であり、回路規模が大きくなり、コスト増を招く。このように、レシーバ制御信号を精密に制御するには、コストが増加する上、プログラムの実行速度を低下させる。
以上のような理由で、レシーバ制御信号を精密に制御して、レシーバが不定な判定を出力するか、または必要なＤＱＳのエッジを取り込めないという事態を避けるのは難しい。
【００５４】
以下に説明する実施形態では、出力が不定にならない差動データストローブ信号（ＤＱＳ）の受信回路が実現される。実施形態の差動データストローブ信号（ＤＱＳ）の受信回路（レシーバ）は、ＤＤＲ４などの高速のメモリインターフェース回路に使用されるように、ＤＱＳの入力から出力までの遅延が小さい。
【００５５】
図１０は、実施形態のメモリインターフェース回路における差動データストローブ信号（ＤＱＳ）の受信回路（レシーバ）の構成および動作を説明する図であり、（Ａ）が回路構成を、（Ｂ）から（Ｄ）が各部における入力と出力の関係を示す。
【００５６】
実施形態のメモリインターフェース回路は図３に示したような全体構成を有し、コントローラは図５に示したような構成を有し、差動データストローブ信号（ＤＱＳ）のレシーバ３５が、図１０の（Ａ）に示す回路構成を有する。また、メモリ（ＤＩＭＭ）５０の差動データストローブ信号（ＤＱＳ）のレシーバ５４も図１０の（Ａ）に示す回路構成を有する。以下の説明では、レシーバ３５および５４を合わせて、単に差動データストローブ信号（ＤＱＳ）のレシーバと称する。
【００５７】
なお、前述のように、レシーバ５４による差動データストローブ信号（ＤＱＳ）の受信は、コマンド信号の受信から一定時間後に行われるので、レシーバ５４に供給するレシーバ制御信号は、誤動作の発生しないようにレシーバ５４を制御することもできる。そのため、メモリ（ＤＩＭＭ）５０のレシーバ５４には、図１０の（Ａ）に示す回路構成を適用せず、図６に示した構成にする場合もあり得る。
【００５８】
図１０の（Ａ）に示すように、実施形態のメモリインターフェース回路における差動データストローブ信号（ＤＱＳ）のレシーバは、主レシーバ６１と、副レシーバ６２と、判定回路６３と、を有する。主レシーバ６１および副レシーバ６２は、差動増幅回路で実現される。判定回路６３は、ＯＲゲートで実現される。
【００５９】
主レシーバ６１は、差動データストローブ信号（ＤＱＳ）の正相信号ＤＱＳ＿ｔと逆相信号ＤＱＳ＿ｃを比較する。主レシーバ６１の出力ａは、図１０の（Ｂ）に示すように、ＤＱＳ＿ｔ＞ＤＱＳ＿ｃの時には“Ｈ”に、ＤＱＳ＿ｔ＜ＤＱＳ＿ｃの時には“Ｌ”に、ＤＱＳ＿ｔ＝ＤＱＳ＿ｃの時には不定に、なる。
【００６０】
副レシーバ６２は、差動データストローブ信号（ＤＱＳ）の正相信号ＤＱＳ＿ｔとストローブ基準電圧ＶＲＥＦＳを比較する。ストローブ基準電圧ＶＲＥＦＳは、コモン電圧より高く、ＶＤＤＱより少し低い電圧に設定される。副レシーバ６２の出力ｂは、図１０の（Ｃ）に示すように、ＤＱＳ＿ｔ＞ＶＲＥＦＳの時には“Ｈ”に、ＤＱＳ＿ｔ＜ＶＲＥＦＳの時には“Ｌ”に、ＤＱＳ＿ｔ＝ＶＲＥＦＳの時には不定に、なる。
【００６１】
判定回路６３は、主レシーバ６１の出力と副レシーバ６２の出力の論理和を出力する。したがって、判定回路６３の出力Ｙは、図１０の（Ｄ）に示すように、ａとｂのいずれか一方が“Ｈ”の時には“Ｈ”になり、ａとｂの両方が“Ｌ”の時に“Ｌ”になる。
【００６２】
図１１は、差動データストローブ信号（ＤＱＳ）の変化例とそれに対する主レシーバ６１、副レシーバ６２および判定回路６３の出力ａ、ｂおよびＹの変化を示すタイムチャートである。
【００６３】
送信側から差動データストローブ信号（ＤＱＳ）の送信が開始される前（期間Ｐ）には、ＤＱＳ＿ｔ＝ＤＱＳ＿ｃ＝ＶＤＤＱ（“Ｈ”レベル）である。この時、ａは不定であり、ｂおよびＹは“Ｈ”である。
【００６４】
ＤＱＳの送信が開始されてから終了するまでの期間が期間Ｑである。期間Ｑでは、ＤＱＳの送信が開始されると、ＤＱＳ＿ｃが“Ｌ”に向かって変化を開始し、ある程度時間が経過すると、ＤＱＳ＿ｔとＤＱＳ＿ｃは反転信号として１周期毎に“Ｈ”／“Ｌ”が変化する。主レシーバ６１の出力ａは、変化開始直後はＤＱＳ＿ｔ＞ＤＱＳ＿ｃになるため不定から“Ｈ”に変化し、約１周期が経過するとＤＱＳ＿ｔ＜ＤＱＳ＿ｃになるため、“Ｌ”に変化する。以後、ＤＱＳが送信されている間、出力ａは、１周期ごとに“Ｈ”と“Ｌ”に変化を繰り返す。
【００６５】
ＤＱＳの送信が終了する時には、ＤＱＳ＿ｔは“Ｌ”から“Ｈ”に向かって変化するが、ＤＱＳ＿ｃは“Ｈ”を維持するので、出力ａは、ＤＱＳ＿ｔが“Ｈ”になるまで“Ｌ”であり、ＤＱＳ＿ｔが“Ｈ”になると不定になる。このように、ＤＱＳの送信が終了した以後の期間Ｒでは、出力ａは不定になる。
【００６６】
図示のように、ストローブ基準電圧ＶＲＥＦＳは、ＶＤＤＱより少し低い電圧に設定されており、ＤＱＳの変化開始後約１周期経過すると、ＤＱＳ＿ｔが“Ｌ”レベルに向かって変化を開始し、ＤＱＳ＿ｔ＜ＶＲＥＦＳとなるので、出力ｂは“Ｌ”に変化する。図示のように、ＤＱＳが送信されている間、出力ｂは、出力ａの“Ｌ”レベルの期間を少し広げた変化を繰り返す。ＤＱＳの送信が終了する時には、出力ａが不定になる前に“Ｈ”に変化する。
【００６７】
出力Ｙは、出力ａと出力ｂの論理和であり、ＤＱＳの送信が終了する時に出力ｂが“Ｈ”に変化するのに応じて“Ｈ”に変化する以外、出力ａと同じように変化する。
【００６８】
図１１に示すように、実施形態のメモリインターフェース回路における差動データストローブ信号（ＤＱＳ）のレシーバの出力Ｙは、常に出力値が確定し、不定になることはない。したがって、レシーバの出力が不定になることにより発生する誤ったデータ信号（ＤＱ）を取り込むといった問題は発生しない。
【００６９】
なお、実施形態のメモリインターフェース回路においても、メモリ（ＤＩＭＭ）５０へのデータ書き込み時に、コントローラ３０のドライバ３４が出力した差動データストローブ信号（ＤＱＳ）をレシーバ３５が取り込まないようにする。そのため、レシーバ制御回路３９を設け、レシーバ制御信号を生成し、レシーバ３５の動作状態を制御する。しかし、実施形態のレシーバ３５の出力Ｙは、常に出力値が確定するため、レシーバ制御信号を精密に制御する必要はなく、コマンド信号の出力を起点にして生成しても問題は生じない。これは、メモリ（ＤＩＭＭ）５０の差動データストローブ信号（ＤＱＳ）を受信するレシーバ５４についても同様である。
【００７０】
図１０の（Ａ）に示すように、実施形態のメモリインターフェース回路における差動データストローブ信号（ＤＱＳ）のレシーバは、回路の構成要素が少なく、各構成要素も簡単な回路であり、回路規模が小さい。さらに、主レシーバと副レシーバは同じ回路で形成でき、遅延差が生じにくい。さらに、判定回路は、論理和を出力するのみであり、簡単な回路であり、遅延量が小さい。これにより、レシーバの出力でデータ信号（ＤＱ）を取り込む時に時間的余裕が大きい。
【００７１】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００７２】
３０    ＣＰＵ（コントローラ）
３１−３４，３６    ドライバ
３５，３７    レシーバ
３８    レベリング回路
３９    レシーバ制御回路
４０    遅延回路
４１    ラッチ（またはＦＦ）
５０    メモリ（ＤＩＭＭ）
５１−５４，５６    レシーバ
５５，５７    ドライバ
６１    主レシーバ
６２    副レシーバ
６３    判定回路
【図１】
0006372324.tif 000002
【図２】
0006372324.tif 000003
【図３】
0006372324.tif 000004
【図４】
0006372324.tif 000005
【図５】
0006372324.tif 000006
【図６】
0006372324.tif 000007
【図７】
0006372324.tif 000008
【図８】
0006372324.tif 000009
【図９】
0006372324.tif 000010
【図１０】
0006372324.tif 000011
【図１１】
0006372324.tif 000012