(57)【特許請求の範囲】
【請求項１】
終端抵抗のオン／オフが可能である双方向バッファを有し、
上記終端抵抗のプルアップ側とプルダウン側の抵抗値を異なる値に制御することが可能であり、上記双方向バッファがストローブ信号の送受信に用いられる、メモリ制御装置であって、
終端抵抗をオンする際に、終端抵抗のプルアップ側とプルダウン側の抵抗値を異なる値に制御した後に、
内部受信クロックイネーブル信号を有効にして、入力されるストローブ信号を内部受信クロックとして使用することが可能になるように制御し、更に内部受信クロックの立ち上がりを検出した後に、終端抵抗のプルアップ側とプルダウン側の抵抗値を同じ値に制御することを特徴とする
メモリ制御装置。
【請求項２】
内部受信クロックの偶数番目の立下りを検出した後に、内部受信クロック信号を無効にし、その後終端抵抗をオフに制御することを特徴とする請求項１に記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＤＲ／ＤＤＲ２−ＳＤＲＡＭなどのデータの高速パラレルインターフェースに関する。
【背景技術】
【０００２】
大容量メモリとして使用されるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は、同期式のＤＤＲ１−ＳＤＲＡＭやＤＤＲ２−ＳＤＲＡＭなどのダブルデータレート方式が主流となっている。特に、ＤＤＲ２−ＳＤＲＡＭは、クロックレートにつき４００ＭＨｚ〜８００ＭＨｚの仕様がＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）により規格化されている。
【０００３】
このように、ＤＤＲ−ＳＤＲＡＭの動作速度は高くなり、それと共に実装基板上のメモリ制御用ＬＳＩ（メモリコントローラＬＳＩ）とメモリＬＳＩとの間の配線遅延値、及び該配線遅延値のスキューの影響が大きくなってきている。そのため、メモリコントローラＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を開発して高速のＤＤＲ−ＳＤＲＡＭと接続することが難しくなってきている。
【０００４】
例えば、ＤＤＲ２−８００の場合、メモリクロック周波数が４００ＭＨｚ（即ち、クロック周期が２．５ｎｓ）となり、実装基板上の遅延値、スキューの影響が無視できなくなる。
【０００５】
図２（ａ）は、ＤＤＲ２−ＳＤＲＡＭのリードタイミングを示す波形図である。メモリコントローラは、メモリが出力する差動ストローブ信号（DQS/DQSB）とそれと同期するデータ（DQS7〜DQS0）とを、タイミングを図って取り込む必要がある。
【０００６】
図２（ｂ）は、上記リードタイミングにおける、メモリコントローラの理想的なタイミングを示す波形図である。Ｏｕｔ１は、ＤＤＲ２−ＳＤＲＡＭの差動ストローブ信号のメモリコントローラ側のＩＯバッファ（双方向バッファ）（図１参照）の内部信号を示す。ここで、ＤＱＳ／ＤＱＳＢがＨｉｚ（ハイインピーダンス）になっている場合、Ｏｕｔ１を“Ｈ”又は“Ｌ”のいずれにするか、は、実際には制御できない、図２（ｂ）の斜線部がそれにあたる。
【０００７】
メモリコントローラは、クロックイネーブル（ｃｌｏｃｋ  ｅｎａｂｌｅ）信号を内部で生成し、それと、ＩＯバッファ（双方向バッファ）から内部へ出力されるｏｕｔ１との論理積（ＡＮＤ）を取った信号（図２のｃｌｏｃｋ  ｅｎａｂｌｅ  ＆  ｏｕｔ１）を受信クロックとして用い、クロック周期を９０度遅延させデータを取り込む。
【０００８】
このように外部から入力されるストローブ信号を内部データ取り込みクロックに生成する手法は、入力されるストローブ信号とメモリクロックの位相関係を、メモリコントローラ内部の制御回路が把握できないと成立し得ない。ＤＤＲ２−８００の場合、メモリクロック周期が２．５ｎｓであるため、図２（ａ）のＤＱＳのＬ期間（Ｈｉｚ→Ｌ）は、２．５ｎｓ以下でしか保証され得ない。したがって、ｃｌｏｃｋ  ｅｎａｂｌｅ信号の立ち上がりは、この２．５ｎｓ以下のＬ期間を正確に捉える必要がある。
【０００９】
しかしながら、図４に示すように、メモリコントローラＬＳＩ１２とメモリの実装ボード１８上の遅延時間（メモリコントローラＬＳＩ１２がクロックを出力しメモリ１８に到達する時間と、到達したクロックに同期しメモリ１８がストローブ信号を出力しメモリコントローラＬＳＩ１２に到達する時間）を考慮すると、２．５ｎｓ以下の期間でｃｌｏｃｋ  ｅｎａｂｌｅ信号を立ち上げることは非常に困難である。
【００１０】
ｃｌｏｃｋ  ｅｎａｂｌｅ信号の立ち上がりが、ＤＱＳのＬ期間に行われない例を図２（ｃ）（ｄ）に示している。これらの波形を示すメモリコントローラでは、受信クロックのデューティ、又はクロックエッジのタイミングや個数が崩れており、正しいデータ受信ができなくなっている。
【００１１】
なお、図２（ｃ）（ｄ）は、ＤＱＳ／ＤＱＳＢのＨｉｚ期間がＩＯバッファ（双方向バッファ）を通じてｏｕｔ１出力で“Ｈ”と認識された場合を示している。ＤＱＳ／ＤＱＳＢのＨｉｚ期間のｏｕｔ１出力が“Ｌ”となるか“Ｈ”となるか、を、メモリコントローラはそもそも制御できない。
【００１２】
なお、特許文献１は、無駄なアクセスサイクルの発生を減少し、効率的なメモリアクセスを実現することができるメモリシステムを開示する。
特許文献２は、メモリデバイス制御回路において、内部クロックとDQS信号の位相関係が不確定な場合にも、コントローラ側でDQS信号にノイズ等の影響による誤動作を防ぐ仕組みを開示する。
特許文献３は、ＲＤＲＡＭメモリコントローラでオープンページ方式を採る場合にページが不必要に長くオープンされることによる不要な電力消費を改善する仕組みを開示する。
特許文献４は、有効なメモリ帯域幅を拡張させるためのメモリアクセス処理を制御するためのメモリコントローラの構成及び動作方法を開示する。
特許文献５は、メモリ構成の帯域幅を効率的に用いるメモリアクセス方法に対する改善されたアプローチを開示する。
特許文献６は、メモリアクセスにおけるオーバーヘッドを隠蔽した高転送効率を実現するメモリアクセス装置を開示する。
特許文献７は、メモリアクセス時にアドレスとデータとがクロストークを発生した場合にも、正常動作を保証するメモリアクセス制御回路を開示する。
特許文献８は、キャッシュメモリと主記憶装置との一貫性を保つために、２次キャッシュメモリから１次キャッシュメモリに対してキャッシュメモリエントリの無効化を要求する場合に、バスの競合を発生することなく１次キャッシュメモリの主記憶装置に対する一貫性を保ち、更に、バスアービトレーションを必要としないシステムを構築するメモリアクセス装置を開示する。
【特許文献１】特開２００１−２４３１１１公報
【特許文献２】特開２００６−０４０３１８公報
【特許文献３】特開２００６−１０７３３０公報
【特許文献４】特開２００５−５２５６５２公報
【特許文献５】特開２００５−２５１１９６公報
【特許文献６】特開２００６−２６０４７２公報
【特許文献７】特開平０５−０６７００４号公報
【特許文献８】特許３２１５１９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、ボード上の遅延の大小に関わらず、メモリが出力するストローブ信号を正しく受信クロックとして受け取れるメモリコントローラを提供する。
【課題を解決するための手段】
【００１４】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項１に記載のメモリ制御装置は、
終端抵抗のオン／オフが可能である双方向バッファを有し、
上記終端抵抗のプルアップ側とプルダウン側の抵抗値を異なる値に制御することが可能であり、上記双方向バッファがストローブ信号の送受信に用いられる、メモリ制御装置であって、
終端抵抗をオンする際に、終端抵抗のプルアップ側とプルダウン側の抵抗値を異なる値に制御した後に、
内部受信クロックイネーブル信号を有効にして、入力されるストローブ信号を内部受信クロックとして使用することが可能になるように制御し、更に内部受信クロックの立ち上がりを検出した後に、終端抵抗のプルアップ側とプルダウン側の抵抗値を同じ値に制御することを特徴とする。
【００１５】
本発明に係る請求項２に記載のメモリ制御装置は、
内部受信クロックの偶数番目の立下りを検出した後に、内部受信クロック信号を無効にし、その後終端抵抗をオフに制御することを特徴とする請求項１に記載のメモリ制御装置である。
【発明の効果】
【００２３】
本発明を利用することにより、メモリコントローラは、外部の配線遅延の変動に配慮せずとも、メモリコントローラのリード制御が可能となる。更に、リード期間が確実に行われるような構成であることにより、入力バッファの低消費電力のタイミングが確実に判断されるようになる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明に係る好適な実施形態を説明する。
【００２５】
図１は、本発明に係るＤＤＲ２−ＳＤＲＡＭの差動ストローブ信号のメモリコントローラ側のＩＯバッファ（双方向バッファ、差動バッファ）２の概略の回路図である。図１に示す双方向バッファ２では、Ｒ１Ｕ、Ｒ１Ｄ、Ｒ２Ｕ、Ｒ２Ｄの抵抗値は５０Ω、７５Ω、又は１５０Ωからの選択が可能であり、オン（ＯＮ）すると電圧値を電源の１／２とするように制御する終端抵抗として使用される。このような双方向バッファ２の機能は、ＤＤＲ２−ＳＤＲＡＭの備えるべき仕様とされている。
【００２６】
更に、本発明のメモリコントローラ１２では、Ｒ１Ｕ及びＲ２Ｄを（５０＋α）Ω、（７５＋α）Ω、（１５０＋α）Ωの抵抗値にするように制御することが可能であり、Ｒ１Ｄ及びＲ２Ｕを（５０−α）Ω、（７５−α）Ω、（１５０−α）Ωの抵抗値にするように制御することが可能である。ここでの「α」は、５０、７５、又は１５０に比べて十分に小さい値である。
【００２７】
したがって、通常、端子ＩＯＡ、ＩＯＢに１／２×ＶＤＤＱ（ＤＤＲ２−ＳＤＲＡＭ電源電圧）を印加する、というＤＤＲ２−ＳＲＡＭの仕様通りの動作を行うこと以外に、端子ＩＯＡの電圧値を１／２×ＶＤＤＱより低い値にオフセット、端子ＩＯＢの電圧値を１／２×ＶＤＤＱより高い値にオフセットすることが可能となる。このオフセットされた電圧値に設定することにより、メモリ１８及びメモリコントローラ１２自身の、出力バッファがオフ（ＯＦＦ）している場合でも、図１のｏｕｔ１に安定して“Ｌ”を出力できる（即ち、ＩＯＡが差動バッファの−側、ＩＯＢが差動バッファの＋側となり、電圧値がＩＯＡ＜ＩＯＢの関係になって、差動バッファの出力ｏｕｔ１は“Ｌ”になる）。このオフセットされた電圧値を示す終端、又は１／２×ＶＤＤＱの電圧値を示す終端の選択、及びオンオフ（ＯＮ／ＯＦＦ）の選択は、図１に示すリード制御回路４が制御する。
【００２８】
図３は、本発明に係るメモリ制御装置における制御のタイミングを示す波形図の例である。ＤＱＳ／ＤＱＳＢがＨｉｚの状態のとき、終端抵抗がオフ（ＯＦＦ）の場合にはｏｕｔ１は“Ｈ”となるか“Ｌ”となるか、いずれになるかは制御できない（図３のＴｅｒｍｉｎａｔｉｏｎ  Ｃｏｎｔｒｏｌ＝ＯＦＦの期間）。Ｒ１Ｕ＞Ｒ１Ｄ、Ｒ２Ｕ＜Ｒ２Ｄとして電圧値がオフセットされている状態では、Ｏｕｔ１は、メモリ１８のストローブ信号出力バッファがオフ（ＯＦＦ）で、且つメモリコントローラ１２自身のストローブ信号出力バッファがオフ（ＯＦＦ）であっても、Ｏｕｔ１は安定して“Ｌ”を出力することができる。したがって、クロックイネーブル（Ｃｌｏｃｋ  ｅｎａｂｌｅ）信号は、この（電圧値が）オフセットされている状態の期間では、メモリ１８がストローブ信号をドライブするタイミングを考慮することなく、イネーブルとなることが可能となる。このため、クロックイネーブル（Ｃｌｏｃｋ  ｅｎａｂｌｅ）信号と論理積（ＡＮＤ）をとった受信クロックエッジは、メモリ１８がドライブするストローブ信号と完全に同期が取れることになる。この完全に同期がとれた受信クロックの最初の立ち上がりエッジで、本来の終端抵抗値（図３のＴｅｒｍｉｎａｔｉｏｎ  Ｃｏｎｔｒｏｌ＝（Ｒ１Ｕ＝Ｒ１Ｄ，Ｒ２Ｕ＝Ｒ２Ｄ）の状態）に戻す。
【００２９】
図１に示すリード制御回路４は、安定した受信クロックエッジの立下りをカウントし、リードすべきデータと対応するエッジ分とが一致すれば、クロックイネーブル（Ｃｌｏｃｋ  ｅｎａｂｌｅ）信号を立ち下げて無効にする。ＤＤＲ２−ＳＤＲＡＭでは、一回のリードコマンドに対し、データが４バーストまたは８バースト単位でリードが実施される。したがって、複数のリードコマンドが続いても、２×ｎ回の立下りエッジをカウントすればリードの完了が判断できるからである。クロックイネーブル（Ｃｌｏｃｋ  ｅｎａｂｌｅ）信号を立ち下げ後、メモリコントローラ１２内部のクロック（メモリクロックと同期したクロック、または、メモリクロックがバッファを介してメモリに入力される前のクロック）の少なくとも半周期分を保証して終端抵抗をオフ（ＯＦＦ）することにより、有効なデータの最後の入力する期間までは、終端抵抗がオン（ＯＮ）の状態を保つことができる。データの双方向バッファの終端の制御では、電圧値がオフセットされた終端にする必要が無く、図３に示すストローブ信号の双方向バッファ２の終端抵抗がオン（ＯＮ）の期間に、通常の１／２×ＶＤＤＱで終端されていればよい。
【００３０】
ストローブ信号、及び双方向バッファ２の入力バッファを低消費電力状態に制御する場合も、本発明に係る終端抵抗オン／オフ（ＯＮ／ＯＦＦ）に同期させる（終端抵抗ＯＦＦ時は低消費電力とし、ＯＮ時は通常動作とする）ことにより、必要な期間、即ち、リードデータとストローブがメモリから出力され入力バッファがアクティブになることが必須となる期間以外は、低消費電力状態にすることが容易となる。
【００３１】
図５は、データバスが４バイト（３２ビット）である、本発明に係るメモリコントローラ１２の概略のブロック図である。図５に示すメモリコントローラ１２は、必要なデータバスが４バイトである故に、４つのＤａｔａＢｕｆｆｅｒマクロ１４が備わる。
【００３２】
一つのＤａｔａＢｕｆｆｅｒマクロ１４の構成は、図６に示すものとなる。即ち、ＤａｔａＢｕｆｆｅｒマクロ１４は、データ送受信制御回路と、メモリのコマンドを制御し延いては上記データ送受信制御回路を制御するコマンド制御回路を含む。データ送受信制御回路は、１本のストローブ信号の送受信用の双方向バッファ、８本のデータの送受信用双方向バッファ、リードデータバッファ２２、ライトデータバッファ２４、及び、リードライト制御回路２６を有する。メモリコントローラ１２は、必要なデータバスが８ビットなら一つのＤａｔａ  Ｂｕｆｆｅｒマクロ、３２ビットなら四つのＤａｔａ  Ｂｕｆｆｅｒマクロを接続してメモリ制御を行う。
【００３３】
図５に示すメモリコントローラ１２を利用すれば、データバスが8×ｎビットであれば回路として簡易な構成をとることができる。図５に示すＤａｔａ  Ｂｕｆｆｅｒマクロ１４とメモリ１８’、１８”（メモリ１、メモリ２）と間の矢印は、ＤＱＳ／ＤＱＳＢ、及びＤＱ８ビットの信号の接続を示している。ここでの信号の接続に、ＤＤＲ２−ＳＤＲＡＭで必要とされるデータマスク信号が含まれてもよい。
【００３４】
また、図３に示すようにＴｅｒｍｉｎａｔｉｏｎ  Ｃｏｎｔｒｏｌ＝（Ｒ１Ｕ＞Ｒ１Ｄ，Ｒ２Ｕ＜Ｒ２Ｄ）のオフセットされた状態の期間内（図３では、ＣＬＫの２サイクルであるが、それ以上でも良い）なら、どのタイミングでメモリ１８のリードデータが来ても確実にリード動作を行うことが可能である内部受信クロックを生成することができる。その結果、実装ボード上の遅延値の許容範囲を広くすることが可能になる。そうすると、Ｄａｔａ  Ｂｕｆｆｅｒマクロ一つがメモリのバイト毎のデータの制御に使用されるのだから、図５に示すように、バイト毎の信号の遅延を、実装ボード上でのＤａｔａ  Ｂｕｆｆｅｒマクロ毎の異なる配線長（遅延値）に対応させることが可能になる。従来では、全てのデータで等しい配線長を得るためにわざわざ迂回させて配線する場合もあったが、その必要が無くなる。
【００３５】
本発明に係るメモリコントローラが接続するメモリは、ＤＤＲ２−ＳＤＲＡＭであってよい。ＤＤＲ２−ＳＤＲＡＭの場合、リードデータの取り込みにはＤＬＬを使って９０度内部で受信クロックをずらして使用する、という手法が一般的である（図示していないが、図１に示すリード制御回路４、図６に示す制御回路２６に含まれる）。この手法では、回路素子の物理的配置にも配慮されねばならない。図５及び図６に示す構成を採り、同じ物理的回路素子の配置を持ったＤａｔａ  Ｂｕｆｆｅｒマクロを使うことにより、メモリコントローラＬＳＩを開発する毎に配置作業を行う、という必要が無くなる。
【図面の簡単な説明】
【００３６】
【図１】本発明に係るＤＤＲ２−ＳＤＲＡＭの差動ストローブ信号のメモリコントローラ側のＩＯバッファ（双方向バッファ、差動バッファ）の概略の回路図である。
【図２】図２（ａ）は、ＤＤＲ２−ＳＤＲＡＭのリードタイミングを示す波形図である。図２（ｂ）は、上記リードタイミングにおける、メモリコントローラの理想的なタイミングを示す波形図である。図２（ｃ）（ｄ）は、ｃｌｏｃｋ  ｅｎａｂｌｅ信号の立ち上がりが、ＤＱＳのＬ期間に行われない例を示す波形図である。
【図３】本発明に係るメモリ制御装置における制御のタイミングを示す波形図の例である。
【図４】メモリコントローラとメモリの実装ボードとの間で、遅延時間が発生する様子を示す図である。
【図５】データバスが４バイト（３２ビット）である、本発明に係るメモリコントローラ１２の概略のブロック図である。
【図６】一つのＤａｔａＢｕｆｆｅｒマクロの構成を示す図である。
【符号の説明】
【００３７】
４・・・リード制御回路、１２・・・メモリコントローラ、１８・・・メモリ、２２・・・リードデータバッファ、２４・・・ライトデータバッファ。
【図１】
0005143512.tif 000002
【図２】
0005143512.tif 000003
【図３】
0005143512.tif 000004
【図４】
0005143512.tif 000005
【図５】
0005143512.tif 000006
【図６】
0005143512.tif 000007