(57)【要約】【課題】メモリデバイス間における遅延時間のばらつきを解消する。【解決手段】データ端子２０ｄがメモリコントローラ３０に共通接続されたメモリデバイス２１〜２４を備える。メモリデバイス２１〜２４のそれぞれは、リードコマンドに応答してメモリセルアレイ１００から読み出されたリードデータＤａｔａをデータ端子２０ｄに出力するデータ出力回路１２０と、データ出力回路１２０によるリードデータＤＱの出力タイミングを調整する出力タイミング調整回路１３０とを備える。メモリコントローラ３０は、メモリデバイス２１〜２４にそれぞれ設定コマンドを発行することにより、リードコマンドを発行してからリードデータＤＱを受信するまでの遅延時間がメモリデバイス２１〜２４間において一致するよう、出力タイミング調整回路１３０による調整量を設定する。【選択図】図３
2012008881.tif 000002
【特許請求の範囲】
【請求項１】
メモリコントーラと、
少なくともデータ端子が前記メモリコントローラに共通接続され、前記メモリコントローラより発行されるコマンドに基づいて動作を行う複数のメモリデバイスと、を備え、
前記複数のメモリデバイスのそれぞれは、メモリセルアレイと、リードコマンドに応答して前記メモリセルアレイから読み出されたリードデータを前記データ端子に出力するデータ出力回路と、前記データ出力回路による前記リードデータの出力タイミングを調整する出力タイミング調整回路と、を備え、
前記メモリコントローラは、前記複数のメモリデバイスにそれぞれ設定コマンドを発行することにより、前記リードコマンドを発行してから前記リードデータを受信するまでの遅延時間が前記複数のメモリデバイス間において一致するよう、前記出力タイミング調整回路による調整量を設定することを特徴とするメモリシステム。
【請求項２】
前記メモリコントローラは、前記遅延時間が最も遅いメモリデバイスを基準とし、他のメモリデバイスにおける前記遅延時間が前記最も遅いメモリデバイスの前記遅延時間と一致するよう、前記出力タイミング調整回路による調整量を設定することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記出力タイミング調整回路は、内部クロック信号を遅延させる可変遅延回路と、前記可変遅延回路の遅延量を設定するレジスタとを含むことを特徴とする請求項１又は２に記載のメモリシステム。
【請求項４】
前記メモリコントローラは、前記設定コマンドを発行することにより、前記レジスタに設定される調整コードの値を所定のピッチで変化させることを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記メモリコントローラは、前記設定コマンドを発行するとともに、前記レジスタに設定される調整コードを前記複数のメモリデバイスのそれぞれに供給することを特徴とする請求項３に記載のメモリシステム。
【請求項６】
前記複数のメモリデバイスのそれぞれは、前記メモリセルアレイに含まれる複数のメモリセルを特定するためのアドレス信号を受けるアドレス端子をさらに備え、
前記メモリコントローラは、前記レジスタの設定値を前記アドレス端子を介して前記複数のメモリデバイスのそれぞれに供給することを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記内部クロック信号は、前記メモリコントローラより供給された外部クロック信号に基づき生成された信号であることを特徴とする請求項４乃至６のいずれか一項に記載のメモリシステム。
【請求項８】
前記メモリコントローラは、前記リードデータが入力されるタイミングを測定する入力タイミング測定回路を備え、前記入力タイミング測定回路による測定結果に基づいて、各メモリデバイスの遅延時間を評価することを特徴とする請求項４乃至７のいずれか一項に記載のメモリシステム。
【請求項９】
前記メモリコントローラは、前記入力タイミング測定回路による測定結果に基づいて前記調整コードを生成する調整コード生成回路をさらに備えることを特徴とする請求項８に記載のメモリシステム。
【請求項１０】
前記メモリコントローラは、入力タイミング信号に同期して前記リードデータを取り込むデータ入力回路をさらに備え、
前記入力タイミング測定回路は、前記入力タイミング信号を連続的に活性化させることにより、前記リードデータを正しく取り込めるタイミングと前記リードデータを正しく取り込めないタイミングとの境界を判定することを特徴とする請求項８又は９に記載のメモリシステム。
【請求項１１】
前記メモリコントローラと前記複数のメモリデバイスが一つのインターポーザ上にパッケージングされていることを特徴とする請求項１乃至１０のいずれか一項に記載のメモリシステム。
【請求項１２】
前記複数のメモリデバイスが積層されていることを特徴とする請求項１乃至１１のいずれか一項に記載のメモリシステム。
【請求項１３】
前記メモリコントローラと前記複数のメモリデバイスが積層されていることを特徴とする請求項１２に記載のメモリシステム。
【請求項１４】
前記複数のメモリデバイスに設けられた前記データ端子と前記メモリコントローラに設けられたデータ端子は、前記複数のメモリデバイスをそれぞれ貫通する貫通電極を介して接続されていることを特徴とする請求項１２又は１３に記載のメモリシステム。
【請求項１５】
前記複数のメモリデバイスのそれぞれは、前記リードコマンドに応答して前記メモリセルアレイからパラレルに読み出された複数のリードデータをシリアルに変換するパラレルシリアル変換機能を有していることを特徴とする請求項１乃至１４のいずれか一項に記載のメモリシステム。
【請求項１６】
メモリコントローラから複数のメモリデバイスにそれぞれリードコマンドを発行し、前記複数のメモリデバイスからそれぞれリードデータを受け付けることによって、前記複数のメモリデバイスの動作速度を評価する工程と、
前記メモリコントローラから前記複数のメモリデバイスにそれぞれ設定コマンドを発行し、前記複数のメモリデバイスにそれぞれ対応する調整コードを保持させることによって、前記リードコマンドを発行してから前記リードデータを受信するまでの遅延時間を前記複数のメモリデバイス間において一致させる工程と、を備えることを特徴とするメモリシステムの制御方法。
【請求項１７】
前記一致させる工程は、動作速度の速いメモリデバイスほど動作速度が遅くなるよう、前記調整コードを保持させることを特徴とする請求項１６に記載のメモリシステムの制御方法。
【請求項１８】
前記メモリコントローラは、設定コマンドを発行することによって前記調整コードを前記複数のメモリデバイスごとに変化させることを特徴とする請求項１６又は１７に記載のメモリシステムの制御方法。
【請求項１９】
前記評価の結果に基づいて、前記複数のメモリデバイスの動作速度にそれぞれ対応する調整コードを生成する工程をさらに備え、
前記メモリコントローラは、前記複数のメモリデバイスにそれぞれ対応する調整コードを供給することによって、前記複数のメモリデバイスにそれぞれ対応する調整コードを保持させることを特徴とする請求項１６又は１７に記載のメモリシステムの制御方法。
【請求項２０】
前記一致させる工程は、前記遅延時間が最も遅いメモリデバイスを基準とし、他のメモリデバイスにおける前記遅延時間が前記最も遅いメモリデバイスの前記遅延時間と一致するよう、前記調整コードを保持させることを特徴とする請求項１６乃至１９のいずれか一項に記載のメモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリシステム及びその制御方法に関し、特に、メモリコントローラに複数のメモリデバイスが共通接続された構成を有するメモリシステム及びその制御方法に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）などのメモリデバイスを含むメモリシステムにおいては、システム全体のメモリ容量を増大すべく、複数のメモリデバイスが一つのメモリコントローラに共通接続されることがある。メモリコントローラとは、メモリデバイスにリードコマンドやライトコマンドなどの各種コマンドを発行するとともに、リードデータの受信やライトデータの送信を行うコントロールデバイスである。メモリコントローラは、ＣＰＵ（Central Processing Unit）とメモリデバイスとの間に設けられることが多いが、ＣＰＵそのものがメモリコントローラの役割を果たすこともある。
【０００３】
上述のように、複数のメモリデバイスが一つのメモリコントローラに共通接続されるメモリシステムの場合、メモリコントローラがリードコマンドを発行してからリードデータを受信するまでの時間がメモリデバイスごとにばらつくことがある。ばらつきの原因は様々であり、製造プロセスに起因するばらつきや、配線負荷に起因するばらつきなどが挙げられる。このうち、配線負荷に起因するばらつきは、例えば複数のメモリデバイスを積層したタイプのメモリシステムなどにおいてはほとんどキャンセルされるが、このようなメモリシステムにおいても製造プロセスに起因するばらつきはキャンセルされず、無視できない時間差となって現れることがある。
【０００４】
リードコマンドを発行してからリードデータを受信するまでの遅延時間がメモリデバイスごとにばらつくと、メモリコントローラ側におけるリードデータのラッチマージンが減少する。例えば、遅延時間の長いメモリデバイスと遅延時間の短いメモリデバイスを連続アクセスした場合、遅延時間の長いメモリデバイスからのリードデータと遅延時間の短いメモリデバイスからのリードデータとが一部重複するため、これらリードデータの有効幅（パスウィンドウ）が狭くなってしまう。しかも、これら前後のリードデータの論理レベルが相違する場合、リードデータの重複期間において貫通電流が流れるという問題もある。
【０００５】
このような遅延時間のばらつきによる問題を防止する方法としては、例えば特許文献１に記載された方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３５５８５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された方法は、遅延時間を随時モニタしその結果に応じて遅延時間を調整していることから、データの転送を極めて高速で行う場合には、調整が間に合わなくなるおそれがある。このため、データの転送を極めて高速で行う場合であっても、遅延時間のばらつきを確実にキャンセル可能な方法が求められている。
【課題を解決するための手段】
【０００８】
本発明によるメモリシステムは、メモリコントーラと、少なくともデータ端子が前記メモリコントローラに共通接続され、前記メモリコントローラより発行されるコマンドに基づいて動作を行う複数のメモリデバイスと、を備え、前記複数のメモリデバイスのそれぞれは、メモリセルアレイと、リードコマンドに応答して前記メモリセルアレイから読み出されたリードデータを前記データ端子に出力するデータ出力回路と、前記データ出力回路による前記リードデータの出力タイミングを調整する出力タイミング調整回路と、を備え、前記メモリコントローラは、前記複数のメモリデバイスにそれぞれ設定コマンドを発行することにより、前記リードコマンドを発行してから前記リードデータを受信するまでの遅延時間が前記複数のメモリデバイス間において一致するよう、前記出力タイミング調整回路による調整量を設定することを特徴とする。
【０００９】
本発明によるメモリシステムの制御方法は、メモリコントローラから複数のメモリデバイスにそれぞれリードコマンドを発行し、前記複数のメモリデバイスからそれぞれリードデータを受け付けることによって、前記複数のメモリデバイスの動作速度を評価する工程と、前記メモリコントローラから前記複数のメモリデバイスにそれぞれ設定コマンドを発行し、前記複数のメモリデバイスにそれぞれ対応する調整コードを保持させることによって、前記リードコマンドを発行してから前記リードデータを受信するまでの遅延時間を前記複数のメモリデバイス間において一致させる工程と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、メモリコントローラからメモリデバイスに設定コマンドを発行し、これによって各メモリデバイスにそれぞれ調整コードを保持させていることから、遅延時間を随時モニタすることなく、遅延時間を複数のメモリデバイス間において一致させることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の好ましい第１の実施形態によるメモリシステム１０の構造を説明するための模式的な断面図である。
【図２】メモリシステム１０の配線構造を説明するためのブロック図である。
【図３】メモリデバイス２１〜２４及びメモリコントローラ３０の主要部の構成を説明するためのブロック図である。
【図４】データ出力回路１２０の回路図である。
【図５】第１の実施形態における出力タイミング調整動作を説明するためのフローチャートである。
【図６】出力タイミング調整動作を行う前におけるメモリデバイス２１〜２４からのリードデータＤＱの出力タイミングの一例を示すタイミング図である。
【図７】データの衝突が生じている様子を説明するためのタイミング図である。
【図８】リードデータＤＱの出力タイミングが調整可能な様子を説明するためのタイミング図である。
【図９】パス判定（Ｐ）されるケースとフェイル判定（Ｆ）されるケースとの関係を説明するためのタイミング図である。
【図１０】出力タイミング調整動作を行う前後におけるリードデータＤＱの出力タイミングを説明するためのタイミング図であり、（ａ）は調整前の状態を示し、（ｂ）は調整後の状態を示している。
【図１１】データの衝突が生じない様子を説明するためのタイミング図である。
【図１２】本発明の好ましい第２の実施形態におけるメモリデバイス２１〜２４及びメモリコントローラ３０の主要部の構成を説明するためのブロック図である。
【図１３】第２の実施形態における出力タイミング調整動作を説明するためのフローチャートである。
【図１４】リードデータＤＱを２つのグループに分類し、グループごとに出力タイミングを調整する例を示すブロック図である。
【図１５】２つの可変遅延回路１３４をクロックツリー１５０の途中にそれぞれ挿入した例を示す回路図である。
【図１６】変形例によるメモリシステムの配線構造を説明するためのブロック図である。
【図１７】変形例によるメモリデバイス２１〜２４の構造を説明するためのブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
【００１３】
図１は、本発明の好ましい第１の実施形態によるメモリシステム１０の構造を説明するための模式的な断面図である。
【００１４】
図１に示すように、本実施形態によるメモリシステム１０は、４つのメモリデバイス２１〜２４と１つのメモリコントローラ３０を有しており、これらが積層された構造を有している。メモリデバイス２１〜２４及びメモリコントローラ３０は、それぞれシリコン基板を用いた１チップの半導体デバイスである。メモリデバイス２１〜２４は互いに同じ回路構成を有しており、特に限定されるものではないが、本実施形態ではいずれも汎用ＤＲＡＭチップである。したがって、そのアクセス方法は規格によって定められている。
【００１５】
ここで、汎用ＤＲＡＭとは、外部端子を介して外部とのインターフェースを行う回路からなるいわゆる「フロントエンド部」と、複数のメモリセルアレイ及びそれらへのアクセスを行う回路からなるいわゆる「バックエンド部」の両者を含むＤＲＡＭであり、特に限定されるものではないが、例えばＤＤＲ３（Double Data Rate 3）型のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などが該当する。ＤＤＲ３型のＳＤＲＡＭにおいては、いわゆるプリフェッチ動作を８ビット単位で行う。つまり、リード動作においては、１回のアクセスでバックエンド部から８ビットのリードデータをパラレルに読み出し、これをフロントエンド部においてパラレルシリアル変換を行うことによって、これら８ビットのリードデータを外部へシリアルに出力する。逆に、ライト動作においては、１回のアクセスでフロントエンド部に８ビットのライトデータを外部からシリアルに入力し、これをフロントエンド部においてシリアルパラレル変換した後、バックエンド部にパラレルに供給する。したがって、本実施形態において使用する汎用ＤＲＡＭは、フロントエンド部が削除されバックエンド部のみが集積されたいわゆる「コアチップ」とは異なるものである。
【００１６】
メモリデバイス２１〜２４には、いずれもシリコン基板を貫通する多数の貫通電極ＴＳＶ（Through Silicon Via）が設けられており、これによって上下に隣接するチップが電気的に接続されている。また、メモリコントローラ３０にも多数の貫通電極ＴＳＶが設けられており、これによってインターポーザ４０の表面４１に設けられた配線と電気的に接続されている。インターポーザ４０上に積層されたメモリコントローラ３０及びメモリデバイス２１〜２４は、封止樹脂５０によって覆われ、これにより各チップが物理的に保護される。
【００１７】
インターポーザ４０は樹脂からなる回路基板であり、その裏面４２には複数の外部端子（半田ボール）ＳＢが形成されている。インターポーザ４０は、メモリシステム１０の機械的強度を確保するとともに、電極ピッチを拡大するための再配線基板として機能する。つまり、インターポーザ４０の上面４１に形成された電極をスルーホール電極によって裏面４２に引き出し、裏面４２に設けられた再配線層によって、外部端子ＳＢのピッチを拡大している。図１に示す外部端子ＳＢの数は例示であり、実際にはより多数の外部端子が設けられている。
【００１８】
図２は、本実施形態によるメモリシステム１０の配線構造を説明するためのブロック図である。
【００１９】
図２に示すように、４つのメモリデバイス２１〜２４は、メモリコントローラ３０に対して共通接続されている。より具体的には、メモリコントローラ３０に設けられたクロック端子３０ａ、アドレス端子３０ｂ、コマンド端子３０ｃ及びデータ端子３０ｄは、メモリデバイス２１〜２４に設けられたクロック端子２０ａ、アドレス端子２０ｂ、コマンド端子２０ｃ及びデータ端子２０ｄにそれぞれ共通接続されている。これにより、メモリコントローラ３０から出力される外部クロック信号ＣＬＫ、アドレス信号ＡＤＤ及びコマンドＣＭＤは、４つのメモリデバイス２１〜２４に共通に供給されることになる。また、各メモリデバイス２１〜２４から出力されるリードデータＤＱは、共通のデータバスを介してメモリコントローラ３０に入力され、逆に、メモリコントローラ３０から出力されるライトデータＤＱは、共通のデータバスを介してメモリデバイス２１〜２４に入力される。特に限定されるものではないが、本実施形態では、各チップに１２８個のデータ端子が設けられており、これにより一度に１２８ビットのリードデータ又はライトデータを転送することができる。
【００２０】
メモリコントローラ３０がいずれのメモリデバイス２１〜２４を選択するかは、チップ選択信号を用いて行う。チップ選択信号は、メモリデバイス２１〜２４ごとに個別に設けられた配線を用いて各メモリデバイス２１〜２４に供給すればよい。一方、共通の配線を介してチップ選択信号をメモリデバイス２１〜２４に供給する場合には、各メモリデバイス２１〜２４にチップアドレスを割り当て、チップ選択信号の値とチップアドレスとが一致するメモリデバイスを選択すればよい。
【００２１】
図３は、メモリデバイス２１〜２４及びメモリコントローラ３０の主要部の構成を説明するためのブロック図である。尚、メモリデバイス２１〜２４は互いに同じ回路構成を有しているため、図３においては代表してメモリデバイス２４の構成のみを示している。
【００２２】
図３に示すように、メモリデバイス２１〜２４には、メモリセルアレイ１００と、メモリセルアレイ１００に対してアクセス動作を行うアクセス制御回路１１０と、メモリセルアレイから読み出されたリードデータをデータ端子２０ｄに出力するデータ出力回路１２０と、データ出力回路１２０の動作タイミングを調整する出力タイミング調整回路１３０とを有している。尚、図３においては、１２８個のデータ端子２０ｄをまとめて１個のデータ端子２０ｄとして表記している。
【００２３】
メモリセルアレイ１００には、多数のＤＲＡＭメモリセルＭＣが含まれており、いずれのメモリセルＭＣに対してアクセスを行うかは、アドレス端子２０ｂより供給されるアドレス信号ＡＤＤによって指定される。具体的には、アドレス端子２０ｂより供給されるアドレス信号ＡＤＤ及びコマンド端子２０ｃより供給されるコマンドＣＭＤがアクセス制御回路１１０に入力され、コマンドＣＭＤがリードコマンドである場合には、アドレス信号ＡＤＤによって特定されるメモリセルＭＣに対してリード動作が行われ、読み出されたリードデータＤａｔａがデータ出力回路１２０に供給される。データ出力回路１２０は、アクセス制御回路１１０より供給される出力イネーブル信号ＥＮ及び出力タイミング調整回路１３０より供給される出力タイミング信号ＣＬＫＯに基づいて、リードデータを外部に出力する。データ出力回路１２０の回路構成については後述する。
【００２４】
図３に示すように、アクセス制御回路１１０にはコマンドデコーダ１１２が含まれている。コマンドデコーダ１１２は、コマンド端子２０ｃより供給されるコマンドＣＭＤをデコードし、デコード結果に基づいて各種内部信号を生成する回路である。例えば、コマンドＣＭＤがリードコマンドである場合、コマンドデコーダ１１２は図示しないリード信号を活性化させ、これによってリード動作が行われる。また、コマンドＣＭＤが設定コマンドである場合、コマンドデコーダ１１２はアップダウン信号ＵＰ／ＤＮを活性化させる。アップダウン信号ＵＰ／ＤＮは、出力タイミング調整回路１３０に含まれるレジスタ１３２に供給され、これによってレジスタ１３２の設定値である調整コードがアップカウント又はダウンカウントされる。
【００２５】
また、出力タイミング調整回路１３０には、可変遅延回路１３４も含まれている。可変遅延回路１３４は、内部クロックＩＣＬＫを受け、これを遅延させることによって出力タイミング信号ＣＬＫＯを生成する回路である。その遅延量は、レジスタ１３２に設定された調整コードによって指定される。内部クロックＩＣＬＫとは、クロック端子２０ａを介して供給される外部クロックＣＬＫを、バッファ回路１４０によってバッファリングした信号である。
【００２６】
図４は、データ出力回路１２０の回路図である。
【００２７】
図４に示すように、データ出力回路１２０は、リードデータＤａｔａ及び出力イネーブル信号ＥＮを受けてＰ側駆動信号ＯＰ１及びＮ側駆動信号ＯＮ１を生成する論理回路１２１と、出力タイミング信号ＣＬＫＯに同期してＰ側駆動信号ＯＰ１及びＮ側駆動信号ＯＮ１をそれぞれラッチするラッチ回路１２２，１２３と、ラッチ回路１２２から出力されたＰ側駆動信号ＯＰ２によってオン／オフ制御されるプルアップバッファ１２４と、ラッチ回路１２３から出力されたＮ側駆動信号ＯＮ２によってオン／オフ制御されるプルダウンバッファ１２５とを備えている。プルアップバッファ１２４はＰチャンネル型のＭＯＳトランジスタからなり、そのソースは高位側電源ＶＤＤＱに接続され、ドレインはデータ端子２０ｄに接続されている。また、プルダウンバッファ１２５はＮチャンネル型のＭＯＳトランジスタからなり、そのソースは低位側電源ＶＳＳＱに接続され、ドレインはデータ端子２０ｄに接続されている。
【００２８】
論理回路１２１は、出力イネーブル信号ＥＮがローレベルに非活性化している場合には、リードデータＤａｔａの論理値に関わらず、Ｐ側駆動信号ＯＰ１をハイレベル、Ｎ側駆動信号ＯＮ１をローレベルとする。これにより、プルアップバッファ１２４及びプルダウンバッファ１２５はいずれもオフすることから、データ端子２０ｄはハイインピーダンス状態となる。これに対し、出力イネーブル信号ＥＮがハイレベルに活性化している場合には、リードデータＤａｔａがハイレベルであればＰ側駆動信号ＯＰ１及びＮ側駆動信号ＯＮ１はいずれもローレベルとなり、リードデータＤａｔａがローレベルであればＰ側駆動信号ＯＰ１及びＮ側駆動信号ＯＮ１はいずれもハイレベルとなる。したがって、これらがラッチ回路１２２，１２３にラッチされると、プルアップバッファ１２４及びプルダウンバッファ１２５のいずれかがオンすることから、データ端子２０ｄはリードデータＤａｔａと同じ論理レベルに駆動される。
【００２９】
上述の通り、ラッチ回路１２２，１２３によるＰ側駆動信号ＯＰ１及びＮ側駆動信号ＯＮ１のラッチタイミングは、出力タイミング信号ＣＬＫＯに同期して行われる。図４に示すように、出力タイミング信号ＣＬＫＯは、クロック端子２０ａに入力された外部クロックＣＬＫがバッファ回路１４０及び可変遅延回路１３４を通過することによって生成される。既に説明したとおり、本実施形態ではメモリデバイス２１〜２４のそれぞれに１２８個のデータ端子２０ｄが設けられているため、可変遅延回路１３４を通過した出力タイミング信号ＣＬＫＯは、クロックツリー１５０によって分岐され、それぞれのデータ出力回路１２０に分配される。
【００３０】
図３に戻って、メモリコントローラ３０には、データ端子３０ｄを介して入力されるリードデータＤＱを入力タイミング信号ＣＬＫＩに同期してラッチするデータ入力回路２１０と、入力タイミング信号ＣＬＫＩを生成するとともにリードデータＤＱが入力されるタイミングを測定する入力タイミング測定回路２２０と、入力タイミング測定回路２２０による測定結果に基づいて設定コマンドを発行するコマンド生成回路２５０とを備える。
【００３１】
詳細については後述するが、入力タイミング測定回路２２０は、入力タイミング信号ＣＬＫＩを連続的に活性化させることにより、データ入力回路２１０がリードデータＤＱを正しく取り込めるタイミングと正しく取り込めないタイミングとの境界を判定する回路である。
【００３２】
その他、メモリコントローラ３０には外部クロックＣＬＫを生成するクロック生成回路２４０と、アドレス信号ＡＤＤを生成するアドレス生成回路２３０が設けられている。クロック生成回路２４０によって生成された外部クロックＣＬＫは、クロック端子３０ａを介して出力され、メモリデバイス２１〜２４に設けられたクロック端子２０ａに共通に供給される。同様に、コマンド生成回路２５０によって生成されたコマンドＣＭＤは、コマンド端子３０ｃを介して出力され、メモリデバイス２１〜２４に設けられたコマンド端子２０ｃに共通に供給される。また、アドレス生成回路２３０によって生成されたアドレス信号ＡＤＤは、アドレス端子３０ｂを介して出力され、メモリデバイス２１〜２４に設けられたアドレス端子２０ｂに共通に供給される。
【００３３】
以上が本実施形態によるメモリシステム１０の構成である。次に、本実施形態によるメモリシステム１０の動作について、リードデータＤＱの出力タイミング調整動作に着目して説明する。
【００３４】
図５はリードデータＤＱの出力タイミング調整動作を説明するためのフローチャートである。
【００３５】
図５に示すように、リードデータＤＱの出力タイミング調整動作においては、まずメモリデバイス２１〜２４のいずれかを選択し（ステップＳ１）、選択したメモリデバイスに対してリードコマンドを発行する（ステップＳ２）。これにより読み出されるリードデータＤＱをメモリコントローラ３０内のデータ入力回路２１０を介して取り込むのであるが、この時、入力タイミング信号ＣＬＫＩを連続的に活性化させることにより、どのタイミングであればリードデータＤＱを正しく取り込むことができ、どのタイミングであればリードデータＤＱを正しく取り込むことができないのか評価する（ステップＳ３）。かかる評価は入力タイミング測定回路２２０が行う。具体的な評価方法については後述する。
【００３６】
次に、別のメモリデバイスを選択し（ステップＳ１）、上記の同様の評価を行う（ステップＳ２，Ｓ３）。このようにして全てのメモリデバイス２１〜２４について評価が完了すると（ステップＳ４：ＹＥＳ）、各メモリデバイス２１〜２４についての評価結果を検証し、最も遅延時間の長いメモリデバイスを特定する。かかる動作も入力タイミング測定回路２２０が行う。
【００３７】
そして、メモリデバイス２１〜２４のうち最も遅延時間の長いメモリデバイスを除くいずれかを選択し（ステップＳ１１）、選択したメモリデバイスに対して設定コマンドを発行する（ステップＳ１２）。これにより、当該メモリデバイスにおいてはアップダウン信号ＵＰ／ＤＮが活性化し、レジスタ１３２に保持される調整コードがアップカウントされる。調整コードがアップカウントされると、可変遅延回路１３４による遅延量は増大する。次に、選択したメモリデバイスに対して再びリードコマンドを発行し（ステップＳ１３）、入力タイミング信号ＣＬＫＩを連続的に活性化させることによって入力タイミングを測定する（ステップＳ１４）。かかる動作は、上述したステップＳ２，Ｓ３における動作と同じである。
【００３８】
そして、ステップＳ１４にて測定した遅延時間と、最も遅延時間の長いメモリデバイスの遅延時間とを比較し、ステップＳ１４にて測定した遅延時間の方が短ければ（ステップＳ１５：ＮＯ）、ステップＳ１２に戻って再び設定コマンドを発行する。これを繰り返すことにより、ステップＳ１４にて測定した遅延時間と、最も遅延時間の長いメモリデバイスの遅延時間とが一致した場合（ステップＳ１５：ＹＥＳ）、当該メモリデバイスに対する調整動作を完了し、ステップＳ１１に戻って別のメモリデバイスに対する調整動作を行う。このような動作をメモリデバイス２１〜２４のうち最も遅延時間の長いメモリデバイスを除く全てに対して実行すると（ステップＳ１６：ＹＥＳ）、一連の出力タイミング調整動作が完了する。
【００３９】
上記の出力タイミング調整動作は、電源投入時やリセット時などに毎回実行することが好ましい。但し、各メモリデバイス２１〜２４に含まれるレジスタ１３２が不揮発性である場合は、電源投入やリセットの度に上記の出力タイミング調整動作を行う必要はない。
【００４０】
以下、出力タイミング調整動作についてより詳細に説明する。
【００４１】
図６は、出力タイミング調整動作を行う前におけるメモリデバイス２１〜２４からのリードデータＤＱの出力タイミングの一例を示すタイミング図である。
【００４２】
出力タイミング調整動作を行う前はメモリデバイス２１〜２４間において速度のばらつきが存在する。図６に示す例では、外部クロックＣＬＫの基準となるアクティブエッジＣＬＫ０に対して、リードデータＤＱの出力が開始されるタイミングがメモリデバイス２２、２１（＝２４）、２３の順となっている。つまり、メモリデバイス２２の遅延時間が最も短く、メモリデバイス２３の遅延時間が最も長い。尚、図６においては、外部クロックＣＬＫのアクティブエッジＣＬＫ０の位置を揃えて表示しているが、これは、メモリデバイス間における遅延時間の差を説明するためであり、実際には、１回のアクティブエッジＣＬＫ０に対してリードデータＤＱを出力するメモリデバイスは一つである。つまり、同じアクティブエッジＣＬＫ０を基準として複数のメモリデバイスが同時にリードデータＤＱの出力を行うことはない。これは、データ端子２０ｄがメモリデバイス２１〜２４において共通接続されているためである。
【００４３】
このように、出力タイミング調整動作を行う前は、メモリデバイス２１〜２４間においてリードデータＤＱの出力開始タイミングがばらついているため、メモリデバイス２１〜２４から次々にリードデータＤＱを出力させると、データバス上でリードデータＤＱの衝突が生じる。図７は、これを説明するためのタイミング図であり、遅延時間が最も長いメモリデバイス２３がアクティブエッジＣＬＫ１を基準としてリードデータＤＱの出力を行った後、遅延時間が最も短いメモリデバイス２２が次のアクティブエッジＣＬＫ２を基準としてリードデータＤＱの出力を行ったケースを示している。このようなケースでは、メモリデバイス２３からのリードデータＤＱの最後の部分と、メモリデバイス２２からのリードデータＤＱの最初の部分が同時に出力されることになるため、この部分でデータの衝突が生じる。データの衝突が生じている期間はリードデータＤＱの論理レベルは不定となることから、メモリコントローラ３０はリードデータＤＱを正しく取り込むことができない。したがって、このままではリードデータＤＱの有効幅（パスウィンドウ）が狭くなってしまう。しかも、これら前後のリードデータＤＱの論理レベルが相違する場合、リードデータＤＱの重複期間において貫通電流が流れてしまう。
【００４４】
このような遅延時間の差による問題は、出力タイミング調整回路１３０を用いて図８に示すようにリードデータＤＱの出力タイミングを調整し、これによってメモリデバイス２１〜２４間において遅延時間を一致させることで解消される。遅延時間をどの程度とするかは、メモリコントローラ３０に設けられた入力タイミング測定回路２２０を用いた測定の結果に基づいて決定される。入力タイミング測定回路２２０を用いた測定は、図９に示すように、あるメモリデバイスから出力されるリードデータＤＱの取り込みを複数のタイミングで試行し、これによって、リードデータＤＱを正しく取り込めるタイミングと正しく取り込めないタイミングとの境界を判定することにより行う。
【００４５】
具体的には、図３に示した入力タイミング測定回路２２０によって入力タイミング信号ＣＬＫＩを連続的に活性化させ、これによりデータ入力回路２１０がリードデータＤＱを正しく取り込むことができればパス（図９に示す符号Ｐ）、正しく取り込むことができなければフェイル（図９に示す符号Ｆ）と判定する。このような判定は、１２８ビットのリードデータＤＱ全てについて行っても構わないし、１２８ビットのリードデータＤＱの中から１ビットだけ代表して行っても構わない。前者の方法において、１２８ビットのリードデータＤＱ間に速度のばらつきがある場合には、最も遅いリードデータＤＱを当該メモリデバイスの動作速度として採用すればよい。
【００４６】
入力タイミング信号ＣＬＫＩの周波数は、高ければ高いほどより高精度な測定が可能となるため、メモリコントローラ３０が許容可能な最高周波数とすることが好ましい。このような測定を行うと、図９に示すように、当初フェイル判定（Ｆ）であったのがあるタイミングからパス判定（Ｐ）に変化する。この変化タイミングが当該メモリデバイスの遅延時間を示している。具体的なパス判定（Ｐ）又はフェイル判定（Ｆ）は、期待値とリードデータＤＱとの比較によって行う。つまり、期待値とリードデータＤＱが一致していればパス判定（Ｐ）、期待値とリードデータＤＱが一致していなければフェイル判定（Ｆ）とする。したがって、判定を行う前提として、当該メモリデバイスに予め期待値を書き込んでおくことが必要であることは言うまでもない。
【００４７】
図１０は出力タイミング調整動作を行う前後におけるリードデータＤＱの出力タイミングを説明するためのタイミング図であり、（ａ）は調整前の状態を示し、（ｂ）は調整後の状態を示している。
【００４８】
図１０（ａ）に示すように、遅延時間に差のあるメモリデバイス２１〜２４に対してそれぞれ入力タイミング測定回路２２０を用いた測定を行うと、フェイル判定（Ｆ）からパス判定（Ｐ）に切り替わるタイミングがメモリデバイス２１〜２４ごとに相違する。具体的には、メモリデバイス２１，２４においては、フェイル判定（Ｆ）が４回続いた後、５回目にパス判定（Ｐ）が現れるのに対し、メモリデバイス２２においては、フェイル判定（Ｆ）が３回続いた後、４回目にパス判定（Ｐ）が現れ、メモリデバイス２３においては、フェイル判定（Ｆ）が６回続いた後、７回目にパス判定（Ｐ）が現れる。
【００４９】
図３に示した入力タイミング測定回路２２０は、このような判定結果に基づき、最も遅延時間の長いメモリデバイスを特定する。この場合、メモリデバイス２１、２２、２４ともフェイル判定（Ｆ）が６回続いた後、７回目にパス判定（Ｐ）が現れるよう遅延時間を拡大すればよいことから、メモリデバイス２１，２４については遅延時間を２ピッチ増大させ、メモリデバイス２２については遅延時間を３ピッチ増大させればよい。既に説明したとおり、遅延時間の増大は、各メモリデバイス２１、２２、２４に設定コマンドを発行することにより、アップダウン信号ＵＰ／ＤＮを１回又は２回以上活性化させることにより行う。
【００５０】
このような調整を行うと、図１０（ｂ）に示すように、各メモリデバイス２１〜２４ともアクティブエッジＣＬＫ０からリードデータＤＱの出力までの時間がほぼ一致することになる。その結果、メモリデバイス２３とメモリデバイス２２に対して連続アクセスを行った場合であっても、図１１に示すようにデータの衝突は生じなくなる。これにより、リードデータＤＱの有効幅（パスウィンドウ）が十分に確保されるとともに、貫通電流が流れることがなくなる。
【００５１】
以上説明したように、本実施形態によるメモリシステム１０によれば、メモリデバイス２１〜２４間における遅延時間差をほぼ無くすことができることから、メモリデバイス２１〜２４に対して連続的なリードアクセスを行った場合であっても、データの衝突や貫通電流の発生などの問題が生じることがない。しかも、遅延時間の調整を電源投入時やリセット時などに行っていることから、実際のアクセス時において遅延時間をリアルタイムに調整する必要がない。このため、データの転送速度が極めて高い場合であっても、遅延時間のばらつきを確実にキャンセルすることが可能となる。
【００５２】
また、本実施形態では、実際に遅延時間を測定しながら調整コードを１ピッチずつアップカウントしていることから（ステップＳ１２〜Ｓ１５）、極めて正確な調整が可能となる。但し、本発明において、実際に遅延時間を測定しながら調整コードを１ピッチずつアップカウントすることは必須でなく、各メモリデバイス２１〜２４のレジスタ１３２に調整コードを直接入力することも可能である。以下、各メモリデバイス２１〜２４のレジスタ１３２に調整コードを直接入力する実施形態について説明する。
【００５３】
図１２は、本発明の好ましい第２の実施形態におけるメモリデバイス２１〜２４及びメモリコントローラ３０の主要部の構成を説明するためのブロック図である。
【００５４】
図１２に示すように、本実施形態においては、メモリコントローラ３０から設定コマンドが発行されると、メモリデバイス２１〜２４に含まれるコマンドデコーダ１１２は、設定信号ＳＥＴを活性化させる。設定信号ＳＥＴはレジスタ１３２に供給され、これが活性化するとレジスタ１３２の設定値である調整コードの上書きが可能となる。図１２に示すように、調整コードはアドレス端子２０ｂより供給される。
【００５５】
一方、メモリコントローラ３０に含まれるアドレス生成回路２３０には、入力タイミング測定回路２２０による測定結果に基づいて調整コードＣＯＤＥを生成する調整コード生成回路２３２が含まれている。調整コード生成回路２３２によって生成された調整コードＣＯＤＥは、アドレス端子３０ｂを介して出力され、メモリデバイス２１〜２４に設けられたアドレス端子２０ｂに共通に供給される。
【００５６】
図１３は、本実施形態における出力タイミング調整動作を説明するためのフローチャートである。
【００５７】
本実施形態における出力タイミング調整動作は、図１３に示すように、ステップＳ１〜Ｓ４までは図５に示した動作と同じである。そして、全てのメモリデバイス２１〜２４について評価が完了すると（ステップＳ４：ＹＥＳ）、各メモリデバイス２１〜２４についての評価結果を検証し、メモリデバイス２１〜２４ごとに調整コードＣＯＤＥを生成する（ステップＳ２１）。調整コードＣＯＤＥの生成は、調整コード生成回路２３２が行う。
【００５８】
そして、メモリデバイス２１〜２４のいずれかを選択し（ステップＳ２２）、選択したメモリデバイスに対して設定コマンドを発行するとともに、当該メモリデバイスに対応する調整コードＣＯＤＥを供給する（ステップＳ２３）。これにより、当該メモリデバイスのレジスタ１３２には、対応する調整コードＣＯＤＥが書き込まれることになる。このような動作を全てのメモリデバイス２１〜２４に対して実行すると（ステップＳ２４：ＹＥＳ）、一連の出力タイミング調整動作が完了する。
【００５９】
本実施形態においても、出力タイミング調整動作は電源投入時やリセット時などに毎回実行することが好ましい。但し、各メモリデバイス２１〜２４に含まれるレジスタ１３２が不揮発性である場合は、電源投入やリセットの度に上記の出力タイミング調整動作を行う必要はない。また、メモリコントローラ３０側に調整コードＣＯＤＥを不揮発的に記憶する回路を設けておけば、電源投入時やリセット時などに図１３に示すステップＳ１〜Ｓ４及びＳ２１を毎回実行する必要はなく、ステップＳ２２〜Ｓ２４のみを実行すれば足りる。
【００６０】
以上説明したように、本実施形態においては、各メモリデバイス２１〜２４のレジスタ１３２に調整コードを直接入力していることから、出力タイミング調整動作を速やかに完了することが可能となる。
【００６１】
尚、上述した各実施形態では、１２８ビットのリードデータＤＱに対して出力タイミングを一括調整しているが、本発明がこれに限定されるものではなく、同時に出力される複数ビットのリードデータＤＱをいくつかのグループに分類し、グループごとに出力タイミングを調整することも可能である。
【００６２】
図１４は、リードデータＤＱを２つのグループに分類し、グループごとに出力タイミングを調整する例を示すブロック図である。
【００６３】
図１４に示す例では、各メモリデバイス２１〜２４に２つの出力タイミング調整回路１３０−１、１３０−２が設けられている。一方の出力タイミング調整回路１３０−１は、６４ビット分のリードデータＤＱを出力するデータ出力回路１２０−１に出力タイミング信号ＣＬＫＯ−１を供給し、他方の出力タイミング調整回路１３０−２は、残りの６４ビット分のリードデータＤＱを出力するデータ出力回路１２０−２に出力タイミング信号ＣＬＫＯ−２を供給する。
【００６４】
メモリコントローラ３０側においても、２つのデータ入力回路２１０−１、２１０−２と２つの入力タイミング測定回路２２０−１、２２０−２が設けられており、それぞれ対応するグループのリードデータＤＱの入力タイミングを測定する。
【００６５】
このような構成は、チップ上のレイアウトなどに起因して、グループごとにリードデータＤＱの出力タイミングが若干相違するケースにおいて好適である。例えば、１２８個のデータ端子２０ｄのうち、半分の６４個がチップ上のあるエリアに集中的に配置され、残りの６４個がチップ上の他のエリアに集中的に配置されているケースにおいては、集中的に配置された各６４個のデータ端子から出力されるリードデータＤＱ間における時間差はほとんど生じないものの、エリアの異なるデータ端子から出力されるリードデータＤＱ間においては無視できない時間差が生じることがある。このようなケースにおいては、図１４に示す例のように、データ端子２０ｄが配置されたエリアごとにリードデータＤＱをグループ分けし、グループごとに出力タイミングを調整することが好ましい。
【００６６】
この場合、図１５に示すように、２つの可変遅延回路１３４をクロックツリー１５０の途中にそれぞれ挿入することにより、グループごとに最適な遅延量とすることが可能となる。
【００６７】
図１６は、変形例によるメモリシステムの配線構造を説明するためのブロック図である。
【００６８】
図１６に示す例では、メモリデバイス２１ａ〜２４ａがいずれも４つのチャネル（チャネル０〜チャネル３）を有しており、チャネルごとにメモリコントローラ３０ｘに対して共通接続されている。メモリデバイス２１ａ〜２４ａには、チャネルごとにクロック端子２０ａ、アドレス端子２０ｂ、コマンド端子２０ｃ及びデータ端子２０ｄが設けられており、これらがメモリコントローラ３０の当該チャネルに対応するクロック端子３０ａ、アドレス端子３０ｂ、コマンド端子３０ｃ及びデータ端子３０ｄに接続されている。
【００６９】
このような構成を有するメモリシステムの場合、図１７に示すように、チャネルごとに出力タイミング調整回路１３０−０〜１３０−３及びデータ出力回路１２０−０〜１２０−３を設け、これによってチャネルごとにリードデータＤＱの出力タイミングを調整可能とすることが好ましい。この場合も、１つのチャネルに属する１２８ビットのリードデータＤＱに対して出力タイミングを一括調整するのではなく、１つのチャネルに属する１２８ビットのリードデータＤＱをいくつかのグループに分類し、グループごとに出力タイミングを調整しても構わない。
【００７０】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【００７１】
例えば、上記実施形態では、１つのメモリコントローラと複数のメモリデバイスが積層されたメモリシステムを例に説明したが、本発明がこれに限定されるものではない。但し、上記実施形態のように、メモリコントローラと複数のメモリデバイスを積層し、これらを貫通電極によって相互に接続すると、配線負荷の差などがほとんど存在しなくなることから、メモリデバイス間におけるリードデータの時間差は、メモリデバイス間における動作速度差によってほぼ決まる。このような点を考慮すれば、本発明は積層型のメモリシステムへの適用が最も好適である。
【００７２】
また、上記実施形態では、メモリデバイスに設けられたクロック端子、アドレス端子、コマンド端子をメモリコントローラに共通接続しているが、本発明においては、少なくとも複数のメモリデバイスに設けられたデータ端子がメモリコントローラに共通接続されていれば足り、クロック端子、アドレス端子、コマンド端子などが共通接続されていることは必須でない。但し、これら端子についても共通接続されているメモリシステムに本発明を適用することが好適である。
【符号の説明】
【００７３】
１０        メモリシステム
２１〜２４  メモリデバイス
２０ａ      クロック端子
２０ｂ      アドレス端子
２０ｃ      コマンド端子
２０ｄ      データ端子
３０        メモリコントローラ
３０ａ      クロック端子
３０ｂ      アドレス端子
３０ｃ      コマンド端子
３０ｄ      データ端子
４０        インターポーザ
５０        封止樹脂
１００      メモリセルアレイ
１１０      アクセス制御回路
１１２      コマンドデコーダ
１２０      データ出力回路
１２１      論理回路
１２２，１２３    ラッチ回路
１２４      プルアップバッファ
１２５      プルダウンバッファ
１３０      出力タイミング調整回路
１３２      レジスタ
１３４      可変遅延回路
１４０      バッファ回路
１５０      クロックツリー
２１０      データ入力回路
２２０      入力タイミング測定回路
２３０      アドレス生成回路
２３２      調整コード生成回路
２４０      クロック生成回路
２５０      コマンド生成回路
ＣＬＫＩ    入力タイミング信号
ＣＬＫＯ    出力タイミング信号
ＣＯＤＥ    調整コード
ＤＱ        リードデータ
【図１】
2012008881.tif 000003
【図２】
2012008881.tif 000004
【図３】
2012008881.tif 000005
【図４】
2012008881.tif 000006
【図５】
2012008881.tif 000007
【図６】
2012008881.tif 000008
【図７】
2012008881.tif 000009
【図８】
2012008881.tif 000010
【図９】
2012008881.tif 000011
【図１０】
2012008881.tif 000012
【図１１】
2012008881.tif 000013
【図１２】
2012008881.tif 000014
【図１３】
2012008881.tif 000015
【図１４】
2012008881.tif 000016
【図１５】
2012008881.tif 000017
【図１６】
2012008881.tif 000018
【図１７】
2012008881.tif 000019