説明

メモリインタフェース回路及びタイミング調整方法

【課題】ストローブ信号のHi−Z状態の取り込みを防止しつつ、内部ストローブゲート信号のタイミング調整を高精度に行うことができるメモリインタフェース回路を提供する。
【解決手段】メモリインタフェース回路では、ストローブ信号DQSをマスクする内部ストローブゲート信号DQSGに対して0.5tCK分遅延した相対関係を有する内部ストローブゲート調整信号DQSGAが生成される。また、内部ストローブゲート調整信号DQSGAの活性化タイミングを時間的後方から前方にシフトさせる毎にストローブ信号DQSの電位を取り込み、第2期間T2以上連続してL電位であることを検出したときに検出信号が出力される。そして、メモリインタフェース回路では、検出信号に応じて内部ストローブゲート調整信号DQSGAの活性化タイミングを調整することで、内部ストローブゲート信号DQSGの活性化タイミングを調整する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリインタフェース回路及びタイミング調整方法に関するものである。
【背景技術】
【0002】
従来、半導体記憶装置としてDRAM(Dynamic Random Access Memory)が用いられている。また、近年では、システムの動作速度の高速化に対応するため、クロックの立ち上がりと立ち下がりの双方でデータを入出力するダブルデータレート方式が採用されている。このような半導体記憶装置は、DDR−SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)、DDR2−SDRAMやDDR3−SDRAMと呼ばれる。
【0003】
例えばシステム装置がDDR−SDRAM(メモリ)からデータを読み出す場合、DDR−SDRAMは、リードデータを出力するとともに、そのリードデータに同期したリードデータストローブ信号(ストローブ信号)を出力する。システム装置内の受信回路では、ストローブ信号のタイミングを調整し、そのタイミング調整されたストローブ信号に基づいてリードデータを取り込む。
【0004】
ここで、システム装置にストローブ信号を伝達する信号線は、双方向通信の伝送路として用いられ、複数のメモリが接続されることが想定されている。このため、メモリは、ストローブ信号を出力する際に、リードデータを出力する期間のみストローブ信号を伝達する信号線を駆動し、それ以外の期間はその信号線を駆動しない。従って、図16(a)に示すように、ストローブ信号DQSは、リードデータを取り込むのに有効な期間、リードデータを取り込むのに有効な先頭立ち上がりエッジに先立つプリアンブル期間及び最後の立ち下がりの後に存在するポストアンブル期間における論理は確定しているが、その他の期間はハイインピーダンス(Hi−Z)状態となる。このため、受信回路内でリードデータを取り込むラッチ回路のクロック端子にストローブ信号DQSを直接供給すると、ストローブ信号DQSのHi−Z状態にパルスが乗ってしまった場合に、一旦ラッチされたリードデータが破壊されてしまう恐れがある。
【0005】
そこで、ストローブ信号DQSのHi−Z状態を内部ストローブゲート信号によりマスクして、Hi−Z状態のストローブ信号DQSが上記ラッチ回路に供給されないように制御する技術が提案されている(例えば、特許文献1,2参照)。すなわち、上記内部ストローブゲート信号は、ストローブ信号DQSのプリアンブル期間tRPRE中にストローブ信号DQSの取り込みを許可するH電位に遷移し、ストローブ信号DQSのポストアンブル期間中にストローブ信号DQSの取り込みを禁止するL電位に遷移するように生成される。
【0006】
但し、システム装置側のクロック信号CKがメモリに伝達され、メモリから受信回路にストローブ信号DQSが伝搬されるまでの経路には、システム装置側の入出力特性、伝送路遅延、メモリ特性などの種々のばらつき要因が存在するため、上記経路の信号遅延(フライトタイム)が一定ではない。従って、ストローブ信号DQSが受信回路に伝達されるタイミングも一定ではない。具体的には、図16(a)に示すように、リードコマンドREADからリードレイテンシRL後のクロック信号CKの立ち上がりエッジ(以下、「基準エッジRE」ともいう。)と、ストローブ信号DQSの立ち上がりエッジとにずれが生じる。このずれはtDQSCKとして規格が決められており、基準エッジREに対するずれ量(位相誤差)の最小値をtDQSCKmin、最大値をtDQSCKmaxと示している。なお、tDQSCKが「0」の場合には、クロック信号CKの立ち上がりエッジ及び立ち下がりエッジがストローブ信号DQSの立ち上がりエッジ及び立ち下がりエッジにそれぞれ一致する。ここで、DDR3−SDRAMなどの遅延同期ループ(Delay Locked Loop:DLL)回路を搭載したメモリでは、メモリ側でDLL回路を用いてストローブ信号DQSの位相をクロック信号CKの位相に高精度に合わせているため、上記ずれ量は小さい。例えばDDR3−SDRAMのtDQSCKスペックでは、tDQSCKminが−500ps、tDQSCKmaxが+500psである。
【0007】
以上のように、ストローブ信号DQSが受信回路に伝達されるタイミングは一定でないため、フライトタイムに合わせて、上記内部ストローブゲート信号の立ち上がりエッジ(活性化タイミング)がストローブ信号DQSのプリアンブル期間に到来するようにタイミング調整する必要がある。このとき、上記ずれ量が小さい場合には、図16(b)に示すように、基準エッジREの周辺をサーチすればストローブ信号DQSのプリアンブル期間tRPREに続く先頭立ち上がりエッジを必ず検出することができる。そこで、この検出した先頭立ち上がりエッジの位相に対して例えば−180度位相をずらしたタイミングで上記内部ストローブゲート信号DQSGが立ち上がるようにタイミング調整することにより、内部ストローブゲート信号DQSGをストローブ信号DQSのプリアンブル期間tRPREに立ち上げることができる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−250859号公報
【特許文献2】特開2008−293279号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、近年、モバイル機器の消費電力やデータ転送速度を画期的に改善したLPDDR2−SDRAM(Low Power DDR2 SDRAM)が開発されている。しかし、このようなLPDDR2−SDRAMでは、システム装置側のクロック信号とストローブ信号DQSの位相を調整するDLL回路が搭載されていないため、ストローブ信号DQSの出力タイミングが大きく変動する。具体的には、図17に示すように、DLL回路が非搭載のメモリでは、リードコマンドREADからリードレイテンシRL後のクロック信号CKの立ち上がりエッジを基準エッジREとして、ストローブ信号DQSを制御することになっている。このようなメモリにおけるtDQSCKは、基準エッジREからストローブ信号DQSの先頭立ち上がりエッジまでの遅延時間(位相遅れ)として規定されている。図17において、基準エッジREに対する遅延時間の最小値をtDQSCKmin、最大値をtDQSCKmaxとして示している。そして、LPDDR2−SDRAMのtDQSCKスペックでは、tDQSCKminが+2500ps、tDQSCKmaxが+5500psとなり、DDR3−SDRAMのそれと比べて1桁以上大きな値になる。
【0010】
このようなLPDDR2−SDRAMにおいて上記内部ストローブゲート信号のタイミング調整を行うためには、ストローブ信号DQSの先頭立ち上がりエッジを探索するためのサーチ範囲を広く設定する必要がある。しかし、図17から明らかなようにtDQSCKminからtDQSCKmaxまでの範囲内でストローブ信号DQSがHi−Zとなる期間(破線枠参照)が存在するため、サーチ範囲を広く設定すると、ストローブ信号DQSのHi−Z状態を取り込んでしまい、内部ストローブゲート信号の活性化タイミングを正しく調整できない場合がある。
【0011】
また、LPDDR2−SDRAMでは、システム装置の動作中もストローブ信号DQSの出力タイミングがクロック信号CKの周期の±0.5周期分変動する。このため、システム装置の動作中においても、内部ストローブゲート信号の間欠的なタイミング調整が必要となる。
【課題を解決するための手段】
【0012】
本発明の一観点によれば、 メモリから入力されるストローブ信号に応じて前記メモリから入力されるデータの取り込みタイミングを制御するメモリインタフェース回路において、非活性の場合に前記ストローブ信号をマスクする内部ストローブゲート信号に対してクロック信号の1周期よりも短い第1期間分遅延した相対関係を有する内部ストローブゲート調整信号を生成し、前記内部ストローブゲート調整信号の活性化タイミングを調整して前記内部ストローブゲート信号の活性化タイミングを制御する制御部と、前記ストローブ信号の第1電位から前記第1電位よりも高い第2電位への変化タイミングを検出したとき、及び第2期間以上連続して前記第1電位であることを検出したときの少なくとも一方のタイミングで検出信号を出力する検出部とを有し、前記制御部は、前記検出信号に応じて前記内部ストローブゲート調整信号の活性化タイミングを調整する。
【発明の効果】
【0013】
本発明の一観点によれば、ストローブ信号のHi−Z状態の取り込みを防止しつつ、内部ストローブゲート信号のタイミング調整を高精度に行うことができるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】システムの概略ブロック図。
【図2】(a)〜(c)は、起動時のゲートトレーニング動作を説明するためのタイミングチャート。
【図3】(a)、(b)は、動作中のゲートトレーニング動作を説明するためのタイミングチャート。
【図4】メモリインタフェース回路の内部構成例を示すブロック図。
【図5】受信回路の内部構成例を示すブロック図。
【図6】ゲートトレーニング制御回路の内部構成例を示すブロック図。
【図7】取込回路及び検出回路の内部構成例を示す回路図。
【図8】起動時のゲートトレーニング動作を示すフローチャート。
【図9】起動時のゲートトレーニング動作を示すタイミングチャート。
【図10】起動時のゲートトレーニング動作を示すタイミングチャート。
【図11】起動時のゲートトレーニング動作を示すタイミングチャート。
【図12】動作中のゲートトレーニング動作を示すフローチャート。
【図13】動作中のゲートトレーニング動作を示すタイミングチャート。
【図14】動作中のゲートトレーニング動作を示すタイミングチャート。
【図15】動作中のゲートトレーニング動作を示すタイミングチャート。
【図16】(a)、(b)は、従来のゲートトレーニング動作を説明するためのタイミングチャート。
【図17】クロック信号とストローブ信号の関係を説明するためのタイミングチャート。
【発明を実施するための形態】
【0015】
以下、一実施形態を図1〜図15に従って説明する。
図1に示すように、システムは、制御装置10と、制御装置10によってアクセスされるメモリ装置20とを有している。制御装置10は、例えば1つのチップ(半導体集積回路装置:LSI)である。メモリ装置20は、同期式の半導体記憶装置、例えばLPDDR2−SDRAM(Low Power Double Data Rate 2 Synchronous Dynamic Random Access Memory)である。
【0016】
次に、制御装置10の内部構成例を説明する。
コア回路11は、実行する処理に応じて、メモリ装置20のデータを読み込むためのリード要求と、そのデータが格納されたアドレスとをメモリコントローラ12に出力する。また、コア回路11は、メモリ装置20にデータを書き込むためのライト要求と、そのデータを格納するアドレスとをメモリコントローラ12に出力する。なお、コア回路11は、例えば中央処理装置(Central Processing Unit:CPU)である。
【0017】
メモリコントローラ12は、当該メモリコントローラ12の内部クロック信号CLKを、メモリインタフェース回路13を介して相補のクロック信号CK,XCKとしてメモリ装置20に供給する。
【0018】
また、メモリコントローラ12は、コア回路11からの要求に応じて、メモリインタフェース回路13を介してメモリ装置20にアクセスする。例えばコア回路11からの要求がリード要求の場合には、メモリコントローラ12は、メモリインタフェース回路13を介してコマンドCMD(ここでは、リードコマンド)及びアドレスをメモリ装置20に供給する。すると、メモリ装置20は、リードコマンドに応答し、該当アドレスから読み出したデータ列DQと、そのデータ列DQの電位の遷移タイミングに同期したデータストローブ信号(ストローブ信号)DQSとを、メモリインタフェース回路13を介してメモリコントローラ12に出力する。このとき、メモリ装置20は、相補のクロック信号CK,XCKの電位の遷移タイミングに同期してデータ列DQをバースト出力する、すなわちメモリコントローラ12の内部クロック信号(図示略)の2倍の周波数でデータ列DQをバースト出力する。ここで、バースト出力とは、与えられた先頭のアドレスから、連続したアドレスに格納されたデータを順次出力することを指す。一方、コア回路11からの要求がライト要求の場合には、メモリコントローラ12は、メモリインタフェース回路13を介してライトコマンド、データ列DQ、ストローブ信号DQS、及びデータ列DQを書き込むアドレスをメモリ装置20に供給する。すると、メモリ装置20は、該当するアドレスにデータ列DQを記憶する。
【0019】
また、メモリコントローラ12は、データ列DQをメモリインタフェース回路13で取り込むタイミングを較正(調整)するゲートトレーニングの実行を要求するリクエスト信号REQをメモリインタフェース回路13に出力する。メモリコントローラ12は、所定のタイミングで上記リクエスト信号REQを出力する。所定のタイミングは、例えば制御装置10の起動時や、制御装置10の動作中において、コア回路11がメモリ装置20にアクセスしないタイミングである。
【0020】
メモリインタフェース回路13は、インタフェース回路14と、トレーニング回路15とを有している。
インタフェース回路14は、ストローブ信号DQSに応じてメモリ装置20との間でデータ列DQの授受を行う。すなわち、インタフェース回路14は、リード動作時に、メモリ装置20から供給されるストローブ信号DQSに応じてタイミング調整された内部ストローブ信号を生成し、その内部ストローブ信号に同期してデータ列DQを取り込み、その取り込んだデータ列DQをメモリコントローラ12に出力する。また、インタフェース回路14は、ライト動作時に、メモリコントローラ12から受け取ったデータ列DQ及びストローブ信号DQSをメモリ装置20に出力する。
【0021】
トレーニング回路15は、メモリコントローラ12からのリクエスト信号REQに応じてゲートトレーニングを実行する。ここで、ストローブ信号DQSを伝達する伝送路は双方向通信の伝送路として用いられるため、リード動作時以外はインタフェース回路14においてストローブ信号DQSが図2に示す内部ストローブゲート信号DQSGによりゲーティングされている。具体的には、内部ストローブゲート信号(ゲート信号)DQSGがL電位(非活性)のときにストローブ信号DQSがゲーティング(マスク)され、ゲート信号DQSGがH電位(活性)のときにストローブ信号DQSがインタフェース回路14に取り込まれる。そして、トレーニング回路15は、メモリ装置20から入力されるストローブ信号DQSの第1電位(低電位)から第1電位よりも高い第2電位(高電位)への遷移タイミングに合わせて、ゲート信号DQSGの活性化タイミングを調整する。具体的には、トレーニング回路15は、ストローブ信号DQSのプリアンブル期間tRPRE内にゲート信号DQSGの活性化タイミング(立ち上がりエッジ)が到来するように、ゲート信号DQSGのタイミングを調整する。このようなゲート信号DQSGにより、ストローブ信号DQSのハイインピーダンス状態(Hi−Z状態)がインタフェース回路14に取り込まれることが抑制される。
【0022】
なお、プリアンブル期間tRPREは、データ列DQを取り込むのに有効な先頭立ち上がりに先立ち、クロック信号CKの約1周期(具体的には、0.9周期)分だけ低電位(L電位)となる期間である。このプリアンブル期間tRPREの長さは、クロック信号CKの周期をtCKとすると、0.9tCKとも表現できる。また、Hi−Z状態では、ストローブ信号DQSは、インタフェース回路14の外部に接続される終端抵抗(図示略)により、例えば高電位(H電位)及びL電位の中間の電圧に設定されている。
【0023】
次に、上記トレーニング回路15で実行されるゲートトレーニングについて説明する。
ゲートトレーニングは、例えば制御装置10の起動時に実行されるとともに、システム動作中の一定間隔毎に実行される。まず、制御装置10の起動時に実行されるゲートトレーニングの動作について図2に従って説明する。なお、図2において、縦軸及び横軸は、説明を簡潔にするため、適宜拡大、縮小して示している。
【0024】
図2(a)に示すように、ゲート信号DQSGに対し第1期間T1(ここでは、0.5tCK)分遅延した相対関係を有する内部ストローブゲート調整信号(ゲート調整信号)DQSGAが生成される。このゲート調整信号DQSGAの活性化タイミングは、基準エッジRE(図17参照)からの遅延時間が最大であるtDQSCKmaxのストローブ信号DQSの先頭立ち上がりエッジ(第1タイミングt1参照)よりも時間的に後方に設定される。続いて、ゲート調整信号DQSGAの活性化タイミングを時間的後方から前方へシフトさせ、ゲート調整信号DQSGAの活性化タイミングに同期してストローブ信号DQSの電位を順次取り込む。このとき、図2(b)に示すように、ストローブ信号DQSが第2期間T2(ここでは、0.75tCK)連続して低電位(L電位)となった場合(第2タイミングt2参照)に、ストローブ信号DQSのプリアンブル期間tRPREが検出されたと判定される。次いで、図2(c)に示すように、プリアンブル期間tRPREであると判定されたタイミング位置(第2タイミングt2参照)から第2期間T2(ここでは、0.75tCK)遅延させた位置(第3タイミングt3参照)にゲート調整信号DQSGAをシフトさせる。そして、そのシフトさせた位置が制御装置10動作中のゲートトレーニングにおけるゲート調整信号DQSGAの基準位置に設定される。このとき、ゲート調整信号DQSGAと連動してゲート信号DQSGも0.75tCK分遅延させる。これにより、ゲート信号DQSGの活性化タイミングが、上記プリアンブル期間tRPREを検出したタイミング位置(第2タイミングt2参照)から0.25tCK分遅延された位置(第4タイミングt4参照)、つまりプリアンブル期間tRPREの中央付近の位置に設定される。
【0025】
次に、制御装置10動作中のゲートトレーニングの概要について図3に従って説明する。なお、図3において、縦軸及び横軸は、説明を簡潔にするため、適宜拡大、縮小して示している。
【0026】
図3(a)に示すように、上記起動時のゲートトレーニングで設定されたゲート調整信号DQSGAの活性化タイミングを、上記基準位置(第3タイミングt3参照)を基準にしてメモリ装置20のtDQSCKスペックに応じたサーチ範囲(ここでは、±0.5tCKの範囲)内でシフトさせ、ストローブ信号DQSの電位を順次取り込む。そして、図3(b)に示すように、ストローブ信号DQSがL電位からH電位に遷移するタイミング、もしくはストローブ信号DQSがH電位からL電位に遷移するタイミングを検出し、その検出したタイミング位置にゲート調整信号DQSGAの活性化タイミングを一致させる(第5タイミングt5参照)。これにより、ゲート調整信号DQSGAの立ち上がりエッジ(活性化タイミング)が、ストローブ信号DQSの先頭立ち上がりエッジに一致する。このとき、ゲート調整信号DQSGAと連動してゲート信号DQSGもシフトされるため、ゲート信号DQSGの活性化タイミングがストローブ信号DQSのプリアンブル期間tRPREの中央付近の位置に設定される(第6タイミングt6参照)。
【0027】
次に、メモリインタフェース回路13において上記ゲートトレーニングに関連する主要な構成について、その一例を図4〜図7に従って説明する。ここでは、まず、インタフェース回路14の構成例について説明する。
【0028】
インタフェース回路14は、コマンド送信回路31と、受信回路32と、遅延制御回路33とを有している。コマンド送信回路31には、メモリ装置20からデータ列DQを読み出す際にメモリコントローラ12から出力されるリードコマンドREADがトレーニング回路15を介して入力される。また、コマンド送信回路31には、上記ゲートトレーニングを実行する際にトレーニング回路15から出力されるトレーニング用のLPDDR2コマンド(モードレジスタリードコマンドMRR)が入力される。コマンド送信回路31は、リードコマンドREAD又はモードレジスタリードコマンドMRRをメモリ装置20に送信する。なお、メモリ装置20では、モードレジスタリードコマンドMRRによってモードレジスタ(図示略)に設定されたモード信号が読み出され、そのモード信号によってトレーニング用の動作モードが選択される。
【0029】
受信回路32は、メモリ装置20から出力されるデータ列DQをストローブ信号DQSに基づいて受信する。ここで、受信回路32の内部構成例を図5に従って説明する。
受信回路32は、第1DLL回路34と、アンド回路35と、第2DLL回路36と、D型フリップフロップ回路(FF回路)37,38とを有している。
【0030】
第1DLL回路34には、所定のタイミングで立ち上がるパルス信号PSが供給される。このパルス信号PSは、図9に示すように、例えばリードコマンドREADからリードレイテンシRL後のクロック信号CKの1サイクル前のクロック信号CKの立ち上がりエッジ(基準エッジRE)に応答してH電位に立ち上がる信号である。図5に示すように、第1DLL回路34には、遅延制御回路33(図4参照)から第1遅延量D1又は第2遅延量D2が供給される。
【0031】
第1DLL回路34は、リード動作時に、第1遅延量D1をパルス信号PSに与えて上記内部ストローブゲート信号DQSGを生成する。すなわち、第1遅延量D1は、内部ストローブゲート信号DQSGの活性化タイミングを調整するための遅延量である。具体的には、第1遅延量D1は、ゲート信号DQSGの活性化タイミング(立ち上がりエッジ)がストローブ信号DQSのプリアンブル期間tRPREの中央付近に到来するように、ゲート信号DQSGを遅延させるための遅延量である。また、第1DLL回路34は、ゲートトレーニング時に、第2遅延量D2をパルス信号PSに与えて上記内部ストローブゲート調整信号DQSGAを生成する。すなわち、第2遅延量D2は、内部ストローブゲート調整信号DQSGAの活性化タイミングを調整するための遅延量である。具体的には、第2遅延量D2は、ゲートトレーニング時に、ゲート調整信号DQSGAの活性化タイミング(立ち上がりエッジ)を順次シフトさせるための遅延量である。ここで、第2遅延量D2は、第1遅延量D1に0.5tCKを加算した値になる。そして、第1DLL回路34で生成されたゲート信号DQSG又はゲート調整信号DQSGAは、アンド回路35に供給される。
【0032】
なお、第1DLL回路34の時間分解能は、例えば1/64tCKである。このため、ゲート信号DQSG及びゲート調整信号DQSGAのタイミング調整(遅延設定)は、1/64tCK毎での調整が可能である。
【0033】
アンド回路35には、ストローブ信号DQSが供給される。このアンド回路35は、ストローブ信号DQSとゲート信号DQSG又はゲート調整信号DQSGAとを論理積演算し、その演算結果に応じた内部ストローブ信号IDQSを出力する。例えばアンド回路35は、ゲート信号DQSGがL電位のときには、ストローブ信号DQSの信号レベルに関わらずL電位の内部ストローブ信号IDQSを出力する。すなわち、ゲート信号DQSGがL電位のときには、ストローブ信号DQSがゲーティング(マスク)される。一方、アンド回路35は、ゲート信号DQSGがH電位のときには、ストローブ信号DQSと実質的に等しいタイミングで立ち上がる/立ち下がる内部ストローブ信号IDQSを出力する。同様に、アンド回路35は、L電位のゲート調整信号DQSGAに応答してL電位の内部ストローブ信号IDQSを出力し、H電位のゲート調整信号DQSGAに応答してストローブ信号DQSと実質的に等しいタイミングで立ち上がる/立ち下がる内部ストローブ信号IDQSを出力する。この内部ストローブ信号IDQSは、第2DLL回路36に供給されるとともに、上記遅延制御回路33(図4参照)を通じてトレーニング回路15に供給される。
【0034】
第2DLL回路36は、内部ストローブ信号IDQSに所定の遅延量(例えば、内部ストローブ信号IDQSの位相の90度分)を与えて遅延内部ストローブ信号(遅延信号)IDQSdを生成する。この遅延信号IDQSdは、FF回路37,38のクロック端子に供給される。
【0035】
FF回路37,38のデータ入力端子には、メモリ装置20からデータ列DQが供給される。具体的には、FF回路37,38には、バースト長に応じた数のデータを有するデータ列DQがストローブ信号DQSに同期して連続的に入力される。ここで、バースト長とはメモリのバースト動作における連続動作の回数を表す概念であり、与えられた先頭のアドレスから、バースト長に規定された回数だけアドレスが連続して動作することを意味する。FF回路37は、遅延信号IDQSdの立ち上がりエッジに応答してデータ列DQをラッチし、ラッチしたレベルと等しいレベルのリードデータRD1を出力する。FF回路38は、遅延信号IDQSdの立ち下がりエッジに応答してデータ列DQをラッチし、ラッチしたレベルと等しいレベルのリードデータRD2を出力する。これらリードデータRD1,RD2は、トレーニング回路15内の第2送受信回路43又はメモリコントローラ12に供給される。
【0036】
このようにして、FF回路37,38では、内部ストローブ信号IDQSの立ち上がりエッジと立ち下がりエッジとに同期して、ダブルデータレートでのデータ列DQの取り込みが実現される。
【0037】
図4に示すように、遅延制御回路33には、トレーニング回路15から第1シフト値SFT1又は第2シフト値SFT2が入力される。遅延制御回路33は、第1シフト値SFT1をデコードして上記第1遅延量D1を生成し、その第1遅延量D1を受信回路32に出力する。また、遅延制御回路33は、第2シフト値SFT2をデコードして上記第2遅延量D2を生成し、その第2遅延量D2を受信回路32に出力する。また、遅延制御回路33は、受信回路32から出力された内部ストローブ信号IDQSを、トレーニング回路15の第3送受信回路44に出力する。
【0038】
次に、トレーニング回路15の構成例を説明する。
トレーニング回路15は、トレーニング制御回路40と、ゲートトレーニング制御回路41と、第1送受信回路42と、第2送受信回路43と、第3送受信回路44と、セレクタ45とを有している。
【0039】
トレーニング制御回路40は、トレーニング回路15(トレーニング動作)全体を制御する。このトレーニング制御回路40は、メモリコントローラ12から上記リクエスト信号REQを受信し、そのリクエスト信号REQに応じて、ゲートトレーニング制御回路41及びセレクタ45の動作を制御する。トレーニング制御回路40は、リクエスト信号REQに応答してアクノリッジ信号ACKをメモリコントローラ12に返送する。具体的には、トレーニング制御回路40は、リクエスト信号REQに応答してアクノリッジ信号ACKをH電位に立ち上げ、ゲートトレーニングが正常に終了する(つまり上記内部ストローブゲート信号DQSGのタイミングが正常に調整される)と、アクノリッジ信号ACKをL電位に立ち下げる。また、トレーニング制御回路40は、トレーニング動作と通常動作(例えば、リード動作)を切り替えるモード切替信号MCをゲートトレーニング制御回路41に出力する。なお、トレーニング動作を指令するモード切替信号MCは、起動時のゲートトレーニング又は制御装置10動作中のゲートトレーニングのいずれか一方を選択する信号である。
【0040】
トレーニング制御回路40は、メモリ装置20のtDQSCKスペックに応じて、上記ゲート調整信号DQSGAをシフトさせて内部ストローブ信号IDQSの電位を取り込むサーチ範囲を示す設定信号SSを生成し、その設定信号SSをゲートトレーニング制御回路41に出力する。具体的には、トレーニング制御回路40は、上記サーチ範囲のスタート位置とエンド位置とを示す設定信号SSをゲートトレーニング制御回路41に出力する。さらに、トレーニング制御回路40は、上記サーチ範囲内でストローブ信号DQSの立ち上がりエッジを検出できなかったことを示すエラー信号ERRがゲートトレーニング制御回路41から入力されると、トレーニング動作の再試行(リトライ)を要求するエラーフラグEFをメモリコントローラ12に出力する。
【0041】
ゲートトレーニング制御回路41は、ゲートトレーニング動作を制御する。ここで、ゲートトレーニング制御回路41の内部構成例を図6に従って説明する。
ゲートトレーニング制御回路41は、シフト値設定回路51と、制御回路52と、取込回路53と、検出回路54と、シフト値演算回路55とを有している。
【0042】
シフト値設定回路51には、上記設定信号SSが入力される。シフト値設定回路51は、設定信号SSにより設定されたサーチ範囲に基づいて、そのサーチ範囲内でゲート調整信号DQSGAの活性化タイミングをシフトさせるための第2シフト値SFT2を生成する。また、シフト値設定回路51には、前回のゲートトレーニング動作においてゲート調整信号DQSGAの立ち上がりエッジをストローブ信号DQSの先頭立ち上がりエッジに一致させたときの第2シフト値SFT2が基準シフト値SFTBとしてシフト値演算回路55から入力される。シフト値設定回路51は、設定信号SSに基づいて設定されるサーチ範囲と、基準シフト値SFTBとに基づいて、サーチ範囲内でゲート調整信号DQSGAの活性化タイミングをシフトさせるための第2シフト値SFT2を生成する。このシフト値設定回路51は、上記サーチ範囲内で第2シフト値SFT2を段階的に減少させる、つまり第2シフト値SFT2を微少時間分ずつ減少させる。ここで、上記微少時間は、例えば上記第1DLL回路34(図5参照)の時間分解能(遅延調整の分解能)に応じて設定され、本実施形態では1/64tCKに設定される。
【0043】
制御回路52には、ゲート信号DQSGの活性化タイミングを調整するための第1シフト値SFT1がシフト値演算回路55から入力される。また、制御回路52には、上記トレーニング制御回路40からモード切替信号MCが入力される。この制御回路52は、モード切替信号MCにより設定される動作モードに応じた信号を出力する。具体的には、制御回路52は、ゲートトレーニング動作時に、上記モードレジスタリードコマンドMRRを生成し、そのコマンドMRRを第1送受信回路42に出力する。また、制御回路52は、上記ゲートトレーニング動作時に、シフト値設定回路51からの第2シフト値SFT2を第3送受信回路44に出力する。一方、制御回路52は、リード動作時に、シフト値演算回路55からの第1シフト値SFT1を第3送受信回路44に出力する。
【0044】
取込回路53には、受信回路32(図4参照)から遅延制御回路33及び第3送受信回路44を通じて、内部ストローブ信号IDQSが入力される。また、取込回路53は、ゲート調整信号DQSGAの活性化タイミングがシフトされる毎に内部ストローブ信号IDQSの電位を検出し、その電位を保持する。この取込回路53は、図7に示すように、例えば直列に接続された複数(ここでは、256個)のFF回路(ビット)b0〜b255を含むシフトレジスタ53Aを有している。シフトレジスタ53Aは、上記ゲート調整信号DQSGAの活性化タイミングに同期して出力されるH電位のラッチ信号LTをトリガにして動作する。具体的には、シフトレジスタ53Aは、H電位のラッチ信号LTが入力される毎にビットb255〜b1の値をそれぞれビットb254〜b0にシフトさせるとともに、その時の内部ストローブ信号IDQSをビットb255として取り込む。ここで、上記ゲート調整信号DQSGAの活性化タイミングは1/64tCK毎にシフトされるため、シフトレジスタ53Aの上位48ビットb255〜b208にラッチされた電位が内部ストローブ信号IDQSの0.75(=48/64)tCK分の期間の電位に相当する。
【0045】
検出回路54は、取込回路に取り込まれた結果に基づいて、所定の検出ポイントを検出して検出信号DSを出力する。例えば起動時のゲートトレーニングにおいて、検出回路54は、内部ストローブ信号IDQSのL電位が第2期間T2(例えば、0.75tCK)連続したことを検出して検出信号DSを出力する。すなわち、検出回路54は、図7に示すように、シフトレジスタ53Aの上位48ビットb255〜b208の出力端子が入力端子に接続されるNOR回路54Aを有し、そのNOR回路54Aの出力信号がH電位になったときに所定期間だけH電位となる検出信号DSを出力する。また、制御装置10動作中のゲートトレーニングにおいて、検出回路54は、内部ストローブ信号IDQSの立ち上がりエッジを検出して検出信号DSを出力する。すなわち、制御装置10動作中のゲートトレーニングにおいては、初めにシフトレジスタ53Aの各ビットb0〜b255が初期値(=1)に設定され、上位2ビットb255,b254にラッチされた電位状態が異なる場合に内部ストローブ信号IDQSの立ち上がりエッジが検出される。そして、検出回路54は、その検出に応じて所定期間だけH電位となる検出信号DSを出力する。この検出信号DSは、シフト値設定回路51及びシフト値演算回路55に供給される。なお、シフト値設定回路51は、H電位の検出信号DSに応答して、その時の第2シフト値SFT2をシフト値演算回路55に出力するとともに、第2シフト値SFT2の減算処理を終了する。
【0046】
また、検出回路54は、制御装置10動作中のゲートトレーニングにおいて、設定されたサーチ範囲内で内部ストローブ信号IDQSの立ち上がりエッジを検出できなかった場合に、エラー信号ERRをトレーニング制御回路40(図4参照)に出力する。
【0047】
シフト値演算回路55には、上記トレーニング制御回路40からモード切替信号MCが入力される。このシフト値演算回路55は、モード切替信号MCに応じて動作を切り替える。
【0048】
具体的には、シフト値演算回路55は、起動時のゲートトレーニングを選択するモード切替信号MCが入力される場合に、H電位の検出信号DSが入力されると、シフト値設定回路51からの第2シフト値SFT2に対して第2期間T2(例えば、0.75tCK)分の時間を加算して基準シフト値SFTBを生成する。
【0049】
また、シフト値演算回路55は、制御装置10動作中のゲートトレーニングを選択するモード切替信号MCが入力される場合に、H電位の検出信号DSが入力されると、ゲート調整信号DQSGAの立ち上がりエッジと内部ストローブ信号IDQSの先頭立ち上がりエッジが一致したときの第2シフト値SFT2を基準シフト値SFTBに設定する。さらに、シフト値演算回路55は、基準シフト値SFTBに対して第1期間T1(例えば、0.5tCK)分の時間を減算して第1シフト値SFT1を生成する。そして、シフト値演算回路55は、基準シフト値SFTBをシフト値設定回路51に出力するとともに、第1シフト値SFT1を制御回路52に出力する。
【0050】
図4に示すように、上記モードレジスタリードコマンドMRRは、第1送受信回路42に入力される。第1送受信回路42は、受信したコマンドMRRをセレクタ45に出力する。セレクタ45には、メモリコントローラ12からリードコマンドREADが入力される。セレクタ45は、トレーニング制御回路40からの制御信号に基づいて、リードコマンドREAD又はモードレジスタリードコマンドMRRをコマンド送信回路31に出力する。
【0051】
第2送受信回路43は、受信回路32から入力されるリードデータをゲートトレーニング制御回路41に出力する。第3送受信回路44は、ゲートトレーニング制御回路41と遅延制御回路33との間で、第1シフト値SFT1、第2シフト値SFT2及び内部ストローブ信号IDQSの送受信を制御する。
【0052】
なお、本実施形態において、制御装置10はシステム装置の一例、遅延制御回路33、第1DLL回路34、シフト値設定回路51、制御回路52及びシフト値演算回路55は、制御部の一例、第1DLL回路34は遅延回路の一例である。また、取込回路53及び検出回路54は検出部の一例、第2シフト値SFT2は遅延設定値の一例、tDQSCKスペックは出力遅延スペックの一例、起動時のゲートトレーニングは第1ゲートトレーニングの一例、制御装置10動作時のゲートトレーニングは第2ゲートトレーニングの一例である。
【0053】
次に、上記メモリインタフェース回路13の動作(ここでは、ゲートトレーニング動作)を説明する。
まず、起動時のゲートトレーニング動作について図8〜図11に従って説明する。なお、図9〜図11において、縦軸及び横軸は、説明を簡潔にするため、適宜拡大、縮小して示している。
【0054】
今、制御装置10が起動され、メモリコントローラ12からリクエスト信号REQが入力されると、トレーニング制御回路40は、アクノリッジ信号ACKをH電位に立ち上げる(図8のステップS1)。続く初期設定(ステップS2)では、トレーニング制御回路40から出力される設定信号SSに基づいてサーチ範囲が設定され、シフトレジスタ53Aの各ビットb0〜b255が初期値(=1)に設定される。このとき、トレーニング制御回路40は、起動時のゲートトレーニング動作を選択するモード切替信号MCを出力する。
【0055】
続いて、ゲートトレーニング制御回路41内の制御回路52は、トレーニング制御回路40からのモード切替信号MCに応答して、モードレジスタリードコマンドMRRを発行する(ステップS3)。このコマンドMRRに応答して、メモリ装置20は、リードコマンドREADが入力されたときと同様に、リードレイテンシRL後のクロック信号CKの立ち上がりエッジ(基準エッジRE)を基準にして、ストローブ信号DQSのタイミングが制御される。
【0056】
一方、トレーニング回路15では、内部ストローブ信号IDQSがアサートされ(ステップS4)、第2シフト値SFT2の初期値が設定される(ステップS5)。この第2シフト値SFT2の初期値は、上記ステップS2で設定されたサーチ範囲に応じてシフト値設定回路51によって設定される。
【0057】
詳述すると、図9に示すように、サーチ範囲は、そのスタート位置がtDQSCKmaxのときのストローブ信号DQSの先頭立ち上がりエッジよりも時間的に後方側に設定される。なお、サーチ範囲のスタート位置は、tDQSCKmaxのときのストローブ信号DQSの先頭立ち上がりエッジと同じ位置(タイミング)であってもよい。また、サーチ範囲のエンド位置は、tDQSCKminのときのストローブ信号DQSのプリアンブル期間tRPREの開始位置よりも時間的に後方側に設定される。そして、第2シフト値SFT2の初期値は、クロック信号CKの基準エッジREからサーチ範囲のスタート位置までの時間に設定される。
【0058】
そして、第2シフト値SFT2の初期値は、制御回路52及び第3送受信回路44を通じて遅延制御回路33に供給される。遅延制御回路33は、第2シフト値SFT2をデコードして第2遅延量D2を生成し、その第2遅延量D2を受信回路32内の第1DLL回路34に出力する。この第2遅延量D2に応じて第1DLL回路34は、クロック信号CKの基準エッジREで立ち上がるパルス信号PSを上記第2シフト値SFT2に相当する時間だけ遅延させ、内部ストローブゲート調整信号DQSGAを生成する。これにより、上記サーチ範囲のスタート位置でH電位に立ち上がるゲート調整信号DQSGAが生成される。そして、ゲート調整信号DQSGAが活性化されると、メモリ装置20から入力されるストローブ信号DQSが内部ストローブ信号IDQSとして遅延制御回路33を通じてトレーニング回路15に出力される。
【0059】
次に、トレーニング回路15の取込回路53では、ゲート調整信号DQSGAの立ち上がりエッジに同期したラッチ信号LTの立ち上がりエッジに応答して、内部ストローブ信号IDQSの電位をラッチする(図8のステップS6)。本例では、このときの内部ストローブ信号IDQSの電位がH電位であるため、シフトレジスタ53Aのビットb255にH電位がラッチされる。このため、上位48ビットb255〜b208は全て「1」となる。従って、検出信号DSはL電位のままとなり、H電位の検出信号DSは出力されない(ステップS7でNO)。
【0060】
すると、ゲートトレーニング動作が継続され、第2シフト値SFT2が微小期間分だけ減少される(ステップS8)。これにより、ゲート調整信号DQSGAの立ち上がりエッジが時間的後方から前方側にシフトされる。
【0061】
続いて、ステップS3に戻って、モードレジスタリードコマンドMRRが再び発行されると、メモリ装置20から上述と同様のタイミングでストローブ信号DQSがメモリインタフェース回路13に出力される。そして、上記ステップS8で活性化タイミングが変更されたゲート調整信号DQSGAが活性化されると、メモリ装置20から入力されるストローブ信号DQSが内部ストローブ信号IDQSとして取込回路53に出力される。続いて、取込回路53では、ゲート調整信号DQSGAの立ち上がりエッジに同期したラッチ信号LTの立ち上がりエッジに応答して、内部ストローブ信号IDQSの電位をラッチする(ステップS7)。
【0062】
このような一連の動作が繰り返し実行されると、ゲート調整信号DQSGAの立ち上がりエッジが時間的後方から前方に向かって徐々にシフトされ、時間的後方から前方に向かうストローブ信号DQSの電位が順次取り込まれる。
【0063】
やがて、図10に示すように、内部ストローブ信号IDQSのH電位からL電位への遷移(先頭立ち上がりエッジ)から第2期間T2(0.75tCK)分だけL電位が取り込まれると、シフトレジスタ53Aの上位48ビットb255〜b208がすべて「0」になる。すると、検出回路54内のNOR回路54Aの出力信号がH電位となり、H電位の検出信号DSが出力される(図8のステップS7でYES)。これにより、その時のゲート調整信号DQSGAの活性化タイミングが内部ストローブ信号IDQSのプリアンブル期間tRPRE上にあると判定することができる。
【0064】
続いて、上記H電位の検出信号DS及びモード切替信号MCに応答して、シフト値演算回路55は、H電位の検出信号DSが出力されたときの第2シフト値SFT2に基づいて、第1シフト値SFT1及び基準シフト値SFTBを算出する(ステップS9)。具体的には、図11に示すように、シフト値演算回路55は、ゲート調整信号DQSGAの立ち上がりエッジをストローブ信号DQSの先頭立ち上がりエッジに一致させるように、H電位の検出信号DSが出力されたときの第2シフト値SFT2に対して第2期間T2(0.75tCK)分の時間を加算して基準シフト値SFTBを算出する。また、シフト値演算回路55は、ゲート信号DQSGの立ち上がりエッジがストローブ信号DQSのプリアンブル期間tRPREの中央付近に到来するように、上記基準シフト値SFTBに対して第1期間T1(0.5tCK)分を減算して第1シフト値SFT1を算出する。なお、リード動作時には、この第1シフト値SFT1がインタフェース回路14に供給され、その第1シフト値SFT1によって内部ストローブゲート信号DQSGが生成されるため、受信回路32において、ストローブ信号DQSを内部ストローブ信号IDQSとして正常に取り込むことができる。
【0065】
以上のように、第1シフト値SFT1及び基準シフト値SFTBが算出されると、トレーニング制御回路40は、アクノリッジ信号ACKをL電位に立ち下げ(ステップS10)、ゲートトレーニング動作を終了する。
【0066】
次に、制御装置10動作中のゲートトレーニング動作について図12〜図15に従って説明する。なお、図13〜図15において、縦軸及び横軸は、説明を簡潔にするため、適宜拡大、縮小して示している。
【0067】
今、制御装置10動作時においてコア回路11がメモリ装置20にアクセスしていない場合に、前回のゲートトレーニングからメモリ装置20のスペックに応じた時間(例えば、1.6μs)が経過すると、メモリコントローラ12からトレーニング制御回路40にリクエスト信号REQが供給される。すると、トレーニング制御回路40は、アクノリッジ信号ACKをH電位に立ち上げる(ステップS21)。続く初期設定(ステップS22)では、シフトレジスタ53Aの各ビットb0〜b255が初期値(=1)に設定され、サーチ範囲がメモリ装置20のスペックに応じて設定される。具体的には、制御装置10の動作中にメモリ装置20のスペックで許容されているストローブ信号DQSの変動量(変動範囲)に応じて設定される。より具体的には、サーチ範囲は、図13に示すように、基準シフト値SFTBに0.5tCK分の時間を加算した位置(スタート位置)から、基準シフト値SFTBから0.5tCK分の時間を減算した位置(エンド位置)までの範囲である。また、このとき、トレーニング制御回路40は、制御装置10動作時のゲートトレーニング動作を選択するモード切替信号MCを出力する。
【0068】
次いで、ゲートトレーニング制御回路41内の制御回路52は、トレーニング制御回路40からのモード切替信号MCに応答して、モードレジスタリードコマンドMRRを発行する(図12のステップS23)。このコマンドMRRに応答して、メモリ装置20は、リードコマンドREADが入力されたときと同様のタイミングでストローブ信号DQSをメモリインタフェース回路13に出力する。
【0069】
一方、トレーニング回路15では、内部ストローブ信号IDQSがアサートされ(ステップS24)、第2シフト値SFT2が設定される(ステップS25)。この第2シフト値SFT2は、上記ステップS22で設定されたサーチ範囲のスタート位置に応じて、シフト値設定回路51によって設定される。具体的には、図13に示すように、第2シフト値SFT2は、クロック信号CKの基準エッジREからサーチ範囲のスタート位置までの時間、つまり基準シフト値SFTBに0.5tCK分の時間を加算した値に設定される。
【0070】
そして、このように設定された第2シフト値SFT2は、制御回路52及び第3送受信回路44を通じて遅延制御回路33に供給される。遅延制御回路33は、第2シフト値SFT2をデコードして第2遅延量D2を生成し、その第2遅延量D2を第1DLL回路34に出力する。これにより、上記サーチ範囲のスタート位置でH電位に立ち上がるゲート調整信号DQSGAが生成される。そして、このゲート調整信号DQSGAが活性化されると、メモリ装置20から入力されるストローブ信号DQSが内部ストローブ信号IDQSとして遅延制御回路33を通じてトレーニング回路15に出力される。
【0071】
次に、トレーニング回路15の取込回路53は、ゲート調整信号DQSGAの立ち上がりエッジに同期したラッチ信号LTの立ち上がりエッジに応答して、内部ストローブ信号IDQSの電位をラッチする(図12のステップS26)。本例では、このときの内部ストローブ信号IDQSの電位がH電位であるため、シフトレジスタ53Aのビットb255にH電位がラッチされる。このため、ビットb255の電位が初期値(=1)から変化せず、ビットb255とビットb254にラッチされた電位が同じであるため、H電位の検出信号DSは出力されない(ステップS27でNO)。
【0072】
次いで、上記設定されたサーチ範囲内でのゲート調整信号DQSGAのシフト動作が終了していないため(ステップS28でNO)、第2シフト値SFT2がサーチ範囲内で微少期間分だけ減少される(ステップS29)。これにより、ゲート調整信号DQSGAの立ち上がりエッジが時間的後方から前方側にシフトされる。
【0073】
その後、ステップS23及びステップS26〜S29の処理が繰り返し実行される。やがて、図14に示すように、L電位の内部ストローブ信号IDQSがビットb255にラッチされると、ビットb255でラッチされた値が1から0に変化する。すなわち、ビットb254とビットb255にラッチされた値が異なる状態になる。これにより、内部ストローブ信号IDQS(ストローブ信号DQS)のL電位からH電位への変化タイミング(先頭立ち上がりエッジ)が検出され、その検出に応答してH電位の検出信号DSが出力される(ステップS27でYES)。なお、上記設定されたサーチ範囲には、ビットb254とビットb255にラッチされた電位が異なる電位になるのは、ストローブ信号DQSのプリアンブル期間tRPREに続く先頭立ち上がりエッジが発生する部分のみである。
【0074】
続いて、上記H電位の検出信号DS及びモード切替信号MCに応答して、シフト値演算回路55は、第1シフト値SFT1及び基準シフト値SFTBを算出する(ステップS30)。具体的には、図15に示すように、シフト値演算回路55は、H電位の検出信号DSが出力されたときの第2シフト値SFT2に基づいて、ゲート調整信号DQSGAの活性化タイミングがストローブ信号DQSの先頭立ち上がりエッジに略一致するように基準シフト値SFTBを生成する。また、シフト値演算回路55は、上記生成した基準シフト値SFTBに対して0.5tCK分の時間を減算して第1シフト値SFT1を算出する。これにより、第1シフト値SFT1によって遅延される内部ストローブゲート信号DQSGは、その活性化タイミングがストローブ信号DQSのプリアンブル期間tRPREの中央付近に到来する。なお、リード動作時には、この内部ストローブゲート信号DQSGがアンド回路35に供給されるため、受信回路32において、ストローブ信号DQSを内部ストローブ信号IDQSとして正常に取り込むことができる。
【0075】
以上のように、第1シフト値SFT1及び基準シフト値SFTBが算出されると、トレーニング制御回路40は、アクノリッジ信号ACKをL電位に立ち下げ(図12のステップS31)、ゲートトレーニング動作を終了する。
【0076】
一方、H電位の検出信号DSが出力されずに、上記サーチ範囲内でのゲート調整信号DQSGAのシフト動作が終了した場合には(ステップS28でYES)、サーチ範囲内にストローブ信号DQSの先頭立ち上がりエッジが存在しないと判定され、検出回路54からエラー信号ERRが出力される(ステップS32)。このエラー信号ERRに応答してトレーニング制御回路40からメモリコントローラ12にエラーフラグEFが出力され、メモリコントローラ12に対してゲートトレーニングのリトライが要求される。すると、メモリコントローラ12は、上述した起動時のゲートトレーニングを実行させるためのリクエスト信号REQをトレーニング回路15に出力する。このとき、メモリコントローラ12は、コア回路11からのリード要求に対して、上記起動時のゲートトレーニングのリトライ後のリード動作完了までコア回路11にアクノリッジ信号を出力しない。
【0077】
このように、本実施形態のメモリインタフェース回路13では、ストローブ信号DQSのタイミング変動がサーチ範囲を超えた場合に、ゲートトレーニングのリトライが要求され、起動時のゲートトレーニングが実行される。
【0078】
以上説明した本実施形態によれば、以下の効果を奏することができる。
(1)内部ストローブゲート調整信号DQSGAの活性化タイミングを、tDQSCKmaxのときのストローブ信号DQSの先頭立ち上がりエッジよりも時間的に後方側のタイミングから時間的前方へ向かってシフトさせるようにした。さらに、ゲート調整信号DQSGAをシフトさせる毎にストローブ信号DQSの電位を順次取り込み、ストローブ信号DQSが第2期間T2連続してL電位となった場合に、ストローブ信号DQSのプリアンブル期間tRPREを検出したことを示す検出信号DSを出力するようにした。これにより、プリアンブル期間前に存在するHi−Z状態を取り込む前にH電位の検出信号DSが出力されることになるため、ストローブ信号DQSのHi−Z状態がインタフェース回路14内部に取り込まれることが抑制される。
【0079】
ここで、H電位の検出信号DSが出力されたタイミング位置は、ストローブ信号DQSの先頭立ち上がりエッジから第2期間T2だけ時間的に前方にシフトされた位置になる。このため、上記タイミング位置に基づいて、内部ストローブゲート信号DQSGの活性化タイミングを、ストローブ信号DQSのプリアンブル期間tRPREの中央付近に到来するように容易に調整することができる。
【0080】
(2)内部ストローブゲート信号DQSGに対して第1期間T1(0.5tCK)分遅延した相対関係を有する内部ストローブゲート調整信号DQSGAを生成するようにした。また、ゲートトレーニング終了時に、内部ストローブゲート調整信号DQSGAの活性化タイミングを、ストローブ信号DQSの先頭立ち上がりエッジに一致させるよう調整した。これにより、内部ストローブゲート信号DQSGの活性化タイミングが、ストローブ信号DQSのプリアンブル期間tRPREの中央付近に到来するように制御される。
【0081】
(3)さらに、制御装置10動作中のゲートトレーニングでは、前回のゲートトレーニング動作でタイミング調整されたゲート調整信号DQSGAの活性化タイミングを基準にして、メモリ装置20のスペックに応じた範囲(±0.5tCK)をサーチ範囲に設定するようにした。メモリ装置20のスペックから制御装置10動作中のストローブ信号DQSのタイミング変動はクロック信号CKの1サイクル以内であるため、動作中のゲートトレーニングは、クロック信号CKの約1サイクルで実行することができる。このように、前回のゲートトレーニング動作でストローブ信号DQSの立ち上がりエッジと一致するようにタイミング調整されたゲート調整信号DQSGAの活性化タイミングを基準にすることで、制御装置10動作中のゲートトレーニングを短時間で実行することができる。
【0082】
(4)制御装置10動作中のゲートトレーニングにおいて、サーチ範囲内でストローブ信号DQSの先頭立ち上がりエッジを検出できなかった場合に、メモリコントローラ12にエラー通知するようにした。これにより、メモリコントローラ12に対して起動時のゲートトレーニング動作の再試行を要求することができる。
【0083】
(他の実施形態)
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態では、内部ストローブゲート信号DQSGに対して第1期間T1(0.5tCK)分遅延した相対関係を有する内部ストローブゲート調整信号DQSGAを生成するようにしたが、ゲート信号DQSGに対するゲート調整信号DQSGAの遅延量(第1期間T1)は特に制限されない。例えば上記第1期間T1をストローブ信号DQSのプリアンブル期間tRPREよりも短い時間に設定すれば、ゲート調整信号DQSGAの活性化タイミングをストローブ信号DQSの先頭立ち上がりエッジに一致させたときに、ゲート信号DQSGの活性化タイミングをプリアンブル期間tRPRE上に設定することができる。
【0084】
・上記実施形態では、ストローブ信号DQSのプリアンブル期間tRPREを検出する際のL電位期間(第2期間T2)を0.75tCKとした。これに限らず、ストローブ信号DQSのL電位期間(ここでは、0.5tCK)よりも長い期間だけL電位が連続することを検出できればプリアンブル期間tRPREを検出することができる。このため、上記第2期間T2を、プリアンブル期間tRPRE(約0.9tCK)を超えない範囲で、少なくとも0.5tCKを超える期間に設定するようにしてもよい。
【0085】
・上記実施形態のゲートトレーニングでは、内部ストローブゲート調整信号DQSGAの活性化タイミングのみでストローブ信号DQSを内部ストローブ信号IDQSとしてトレーニング回路15に出力するようにした。これに限らず、内部ストローブゲート信号DQSGの活性化タイミングと内部ストローブゲート調整信号DQSGAの活性化タイミングの双方でストローブ信号DQSを内部ストローブ信号IDQSとしてトレーニング回路15に出力するようにしてもよい。この場合には、内部ストローブゲート信号DQSGの活性化タイミングで取り込まれた内部ストローブ信号IDQSの電位と、内部ストローブゲート調整信号DQSGAの活性化タイミングで取り込まれた内部ストローブ信号IDQSの電位との組み合わせによって、プリアンブル期間tRPREをより確実に検出することができる。なお、この場合には、内部ストローブゲート信号DQSGの活性化タイミングで取り込まれた内部ストローブ信号IDQSの電位に基づいてプリアンブル期間tRPREを検出し、その検出によりゲートトレーニング動作を終了する。
【0086】
・上記実施形態の制御装置10動作中のゲートトレーニングでは、サーチ範囲のスタート位置を基準シフト値SFTBに対して0.5tCK分の時間を加算した位置に設定するようにした。これに限らず、例えばサーチ範囲のスタート位置を基準シフト値SFTBに対して0.5tCK分の時間を減算した位置に設定するようにしてもよい。この場合には、ゲート調整信号DQSGAの活性化タイミングをスタート位置から時間的前方から後方に向かってシフトさせる。
【0087】
・上記実施形態における受信回路32の内部構成は、図5に示した回路に限定されない。例えば上記受信回路32では、ゲート信号DQSG及びゲート調整信号DQSGAの双方を第1DLL回路34で生成するようにしたが、ゲート信号DQSGとゲート調整信号DQSGAを別の回路で生成するようにしてもよい。
【0088】
・上記実施形態では、メモリ装置20をLPDDR2−SDRAMに具体化したが、その他のDLL回路が非搭載のメモリに具体化してもよい。また、メモリ装置20を、DLL回路をオフにするDLLオフモードを有するメモリ(例えば、DDR3−SDRAM)に具体化してもよい。
【符号の説明】
【0089】
10 制御装置
12 メモリコントローラ
13 メモリインタフェース回路
14 インタフェース回路
15 トレーニング回路
20 メモリ
32 受信回路
33 遅延制御回路
34 DLL回路
40 トレーニング制御回路
41 ゲートトレーニング制御回路
51 シフト値設定回路
52 制御回路
53 取込回路
54 検出回路
55 シフト値演算回路
CK クロック信号
DQ データ列
DQS ストローブ信号
DQSG 内部ストローブゲート信号
DQSGA 内部ストローブゲート調整信号
IDQS 内部ストローブ信号
SFT1 第1シフト値
SFT2 第2シフト値
SFTB 基準シフト値
DS 検出信号
ERR エラー信号

【特許請求の範囲】
【請求項1】
メモリから入力されるストローブ信号に応じて前記メモリから入力されるデータの取り込みタイミングを制御するメモリインタフェース回路において、
非活性の場合に前記ストローブ信号をマスクする内部ストローブゲート信号に対してクロック信号の1周期よりも短い第1期間分遅延した相対関係を有する内部ストローブゲート調整信号を生成し、前記内部ストローブゲート調整信号の活性化タイミングを調整して前記内部ストローブゲート信号の活性化タイミングを制御する制御部と、
前記ストローブ信号の第1電位から前記第1電位よりも高い第2電位への変化タイミングを検出したとき、及び第2期間以上連続して前記第1電位であることを検出したときの少なくとも一方のタイミングで検出信号を出力する検出部とを有し、
前記制御部は、前記検出信号に応じて前記内部ストローブゲート調整信号の活性化タイミングを調整する
ことを特徴とするメモリインタフェース回路。
【請求項2】
前記制御部は、前記内部ストローブゲート調整信号の活性化タイミングを定める遅延設定値を段階的に減少して前記内部ストローブゲート調整信号の活性化タイミングを変化させ、
前記検出部は、前記内部ストローブゲート調整信号の活性化タイミングの変化に伴って前記ストローブ信号の電位を取り込み、前記ストローブ信号が前記クロック信号の少なくとも2分の1周期を超える前記第2期間以上連続して前記第1電位であることを検出して前記検出信号を出力し、
前記制御部は、前記検出信号に応じて前記内部ストローブゲート調整信号の活性化タイミングを前記第2期間分遅延させる
ことを特徴とする請求項1に記載のメモリインタフェース回路。
【請求項3】
前記制御部は、前記内部ストローブゲート調整信号の活性化タイミングを定める遅延設定値を前記メモリの出力遅延スペックに応じた範囲内で段階的に変化して前記内部ストローブゲート調整信号の活性化タイミングを変化させ、
前記検出部は、前記内部ストローブゲート調整信号の活性化タイミングの変化に伴って前記ストローブ信号の電位を取り込み、前記ストローブ信号が前記第1電位から前記第2電位に変化したタイミング、又は前記第2電位から前記第1電位に変化したタイミングを検出して前記検出信号を出力し、
前記制御部は、前記検出信号に応じて前記ストローブ信号の前記第1電位から前記第2電位への変化タイミングと前記ストローブゲート調整信号の活性化タイミングとを一致させるように調整する
ことを特徴とする請求項1又は2に記載のメモリインタフェース回路。
【請求項4】
前記内部ストローブゲート調整信号は、前記内部ストローブゲート信号に対して前記クロック信号の2分の1周期分遅延した相対関係を有し、
前記検出部は、前記ストローブ信号が前記クロック信号の4分の3周期以上連続して前記第1電位であることを検出して前記検出信号を出力し、
前記制御部は、前記検出信号に応じて前記内部ストローブゲート調整信号の活性化タイミングを前記クロック信号の4分の3周期分遅延させる
ことを特徴とする請求項2に記載のメモリインタフェース回路。
【請求項5】
前記制御部は、前記クロック信号に対する前記ストローブ信号の遅延時間が最大であるときのストローブ信号のプリアンブル期間に続く先頭立ち上がりエッジよりも時間的に後方に前記内部ストローブゲート調整信号の活性化タイミングが到来するように、前記遅延設定値の初期値を設定する
ことを特徴とする請求項2又は4に記載のメモリインタフェース回路。
【請求項6】
前記メモリの出力遅延スペックに応じた範囲は、保持された前記内部ストローブゲート調整信号の活性化タイミングに対して前記クロック信号の±2分の1周期分の範囲であることを特徴とする請求項3に記載のメモリインタフェース回路。
【請求項7】
前記検出部は、
前記メモリの出力遅延スペックに応じた範囲内で前記内部ストローブゲート調整信号の活性化タイミングを変化させたときに、前記ストローブ信号の前記第1電位から前記第2電位への変化タイミングを検出できなかった場合に、エラー信号を出力する
ことを特徴とする請求項3又は6に記載のメモリインタフェース回路。
【請求項8】
前記検出部は、
システム装置の起動時に実行される前記内部ストローブゲート信号の活性化タイミングの調整において、前記ストローブ信号の電位が前記第2期間以上連続して前記第1電位であることを検出して前記検出信号を出力するとともに、
前記システム装置の動作中に実行される前記内部ストローブゲート信号の活性化タイミングの調整において、前記ストローブ信号の前記第1電位から前記第2電位への変化タイミングを検出して前記検出信号を出力する
ことを特徴とする請求項1〜7のいずれか1つに記載のメモリインタフェース回路。
【請求項9】
前記制御部は、前記内部ストローブゲート信号を生成する遅延回路の時間分解能に応じて、前記遅延設定値を段階的に変化させることを特徴とする請求項2〜7のいずれか1つに記載のメモリインタフェース回路。
【請求項10】
メモリから入力されるストローブ信号に応じて前記メモリから入力されるデータの取り込みタイミングを調整するタイミング調整方法において、
非活性の場合に前記ストローブ信号をマスクする内部ストローブゲート信号に対してクロック信号の1周期よりも短い第1期間分遅延した相対関係を有する内部ストローブゲート調整信号を生成し、
前記ストローブ信号の第1電位から前記第1電位よりも高い第2電位への変化タイミングを検出したとき、及び第2期間以上連続して前記第1電位であることを検出したときの少なくとも一方のタイミングで検出信号を出力し、
前記検出信号に応じて前記内部ストローブゲート調整信号の活性化タイミングを調整することで、前記内部ストローブゲート信号の活性化タイミングを調整する
ことを特徴とするタイミング調整方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−65086(P2013−65086A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−202124(P2011−202124)
【出願日】平成23年9月15日(2011.9.15)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】