(57)【要約】実データによりメモリが動作している状態で、データに対するストローブポイントを知ることができる技術を提供する。メモリコントローラ１は、読み出しデータ信号のデータスキューを調整するデータスキュー調整部２と、ストローブポイントを調整するストローブ調整部３と、データ変化点を検出するデータ変化点検出部４と、ストローブポイントを検出するストローブポイント検出部５と、読み出しデータ信号のそれぞれについて、動的タイミング情報を演算する動的タイミング演算部６と、動的タイミング情報を記憶する動的タイミング情報記憶部７と、動的タイミング情報を出力する動的タイミング情報出力部８と、を備える。
2017130983.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対する複数ビットのデータの書き込み及び読み出しを制御するメモリコントローラであって、
データ信号の相互の位相差であるデータスキューを調整するデータスキュー調整部と、
信号の変化点によってストローブポイントを規定するストローブ信号の当該変化点を調整するストローブ調整部と、を有するタイミング調整部と、
前記データ信号のそれぞれの変化点であるデータ変化点を検出するデータ変化点検出部と、
前記ストローブポイントを検出するストローブポイント検出部と、
前記データ信号のそれぞれについて、前記ストローブポイントと前記データ信号の変化点とに基づく動的タイミング情報を演算する動的タイミング演算部と、
前記動的タイミング情報を記憶する動的タイミング情報記憶部と、
前記動的タイミング情報を出力する動的タイミング情報出力部と、を備えるメモリコントローラ。
【請求項２】
前記データ信号は、基準となるクロック信号によりデータが変化するものであり、
前記動的タイミング情報は、前記データ変化点において前記データ信号が変化を始める時点又は変化を終える時点と前記クロック信号との時間と、前記クロック信号に対する前記ストローブ信号の時間と、を含む、請求項１に記載のメモリコントローラ。
【請求項３】
前記動的タイミング情報は、前記ストローブポイントに対する前記データ信号のセットアップ時間及びホールド時間を含む、請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記動的タイミング情報記憶部は、予め規定された評価期間内で、前記ストローブポイントに対して最も悪い条件となる前記動的タイミング情報であるワーストタイミング情報を、評価期間内ワーストタイミング情報として更新して記憶する請求項１から３の何れか一項に記載のメモリコントローラ。
【請求項５】
前記メモリは、前記メモリに書き込まれたデータを保持するために電荷を補充するリフレッシュ動作を、予め規定された時間であるリフレッシュ期間に亘って実施する揮発性メモリであり、
前記リフレッシュ動作は、予め規定された間隔であるリフレッシュサイクルで、繰り返し実施され、
前記リフレッシュサイクルの１周期には、前記メモリに対するデータの書き込み及び読み出しが行われない前記リフレッシュ期間と、前記メモリに対するデータの書き込み及び読み出しが行われる通常動作期間とを含み、
前記評価期間は、前記リフレッシュサイクルの１周期における前記通常動作期間であり、
前記動的タイミング情報出力部は、前記リフレッシュ期間に前記動的タイミング情報を出力する請求項４に記載のメモリコントローラ。
【請求項６】
前記タイミング調整部は、前記ワーストタイミング情報に基づいて前記データスキュー及び前記ストローブポイントを調整する請求項４又は５に記載のメモリコントローラ。
【請求項７】
前記タイミング調整部は、前記ストローブポイントが前記データ信号の有効期間の中央となるように、前記データスキュー及び前記ストローブポイントを調整する請求項６に記載のメモリコントローラ。
【請求項８】
前記タイミング調整部は、調整内容を示すキャリブレーション情報に基づいて前記データスキュー及び前記ストローブポイントを調整するものであり、
前記動的タイミング演算部は、予め規定されたテストデータが前記メモリに対して書き込まれ、読み出されるキャリブレーション動作の実行中に検出された前記データ変化点と前記ストローブポイントとに基づいて、前記キャリブレーション情報の初期値を決定すると共に、
前記動的タイミング情報出力部から出力された前記動的タイミング情報に基づき、前記評価期間内ワーストタイミング情報が、前記キャリブレーション情報に含まれる前記ワーストタイミング情報よりも悪い条件の場合には、前記キャリブレーション情報を前記評価期間内ワーストタイミング情報に基づいて更新する請求項４から７の何れか一項に記載のメモリコントローラ。
【請求項９】
前記動的タイミング演算部は、予め規定されたテストデータが前記メモリに対して書き込まれ、読み出されるキャリブレーション動作の実行中に検出された前記データ変化点と前記ストローブポイントとに基づいて、前記タイミング調整部による調整内容を示すキャリブレーション情報の初期値を決定し、
前記動的タイミング情報出力部は、少なくとも当該メモリコントローラよりも上位のコントローラに対して、前記動的タイミング情報を出力すると共に、当該動的タイミング情報に含まれる前記評価期間内ワーストタイミング情報が、前記キャリブレーション情報に含まれる前記ワーストタイミング情報よりも悪い条件の場合には、前記上位のコントローラに対して割込信号を出力する請求項４又は５に記載のメモリコントローラ。
【請求項１０】
前記メモリは、メモリセルに対する動作の基準となる内部クロックと、前記メモリの外部での動作の基準となる外部クロックとの位相を調整する位相調整機能を持たない簡易型メモリであり、
当該メモリコントローラは、さらに、前記内部クロックと前記外部クロックとの位相を調整する位相調整部を備える、請求項１から９の何れか一項に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに対する複数ビットのデータの書き込み及び読み出しを制御するメモリコントローラに関する。
【背景技術】
【０００２】
特開２００８−５２３３５号公報（特許文献１）に記載されているように、メモリや論理回路などが集積された、例えばシステムＬＳＩと称されるような半導体集積回路では、多くの場合、メモリと論理回路との間にメモリインターフェイス回路（メモリコントローラ）が備えられている。特許文献１の図１や図１３等に例示されているように、メモリ（３，１０３）から出力されるデータ信号（ＤＱ）は、同様にメモリ（３，１０３）から提供されるストローブ信号（ＤＱＳ）によって規定されたタイミング（ストローブポイント）でレジスタ等の取込回路（１２，１１２）にラッチされる。このストローブポイントは、データ信号が変化する変化点の近傍ではなく、データ信号が安定している期間（ウィンドウ（window）、アイ（eye）等と称される）内に設けられることが好ましい。【０００３】
但し、データ信号やストローブ信号の位相は、動作環境（電源電圧、半導体集積回路全体の消費電力、周囲温度、近隣の信号線を通る信号のクロストークノイズ等）の影響によって変動することがある。このため、メモリインターフェイス回路には、しばしば、データ信号やストローブ信号の位相を調整するための調整回路が備えられている。特許文献１には、インターフェイス回路（１０，１１０）に、ストローブ信号（ＤＱＳ）の位相を調整する可変遅延回路（１３，１１３）や、遅延調整回路（１４，１１４）を備えた構成や、さらにデータ信号（ＤＱ）の位相を調整するための固定遅延回路（１１）を備えた構成が例示されている。遅延調整回路（１４，１１４）の遅延設定値は、製品組み立て後や出荷前等の適切な時期に、メモリ（３，１３）及びインターフェイス回路（１０，１１０）を調整モードで動作させるキャリブレーションを行うことによって設定される（特許文献１の［００２２］等）。尚、このようなキャリブレーションは、半導体集積回路にテストデータを格納しておいて、半導体集積回路に電源が投入される都度、実行されてもよい。【０００４】
特許文献１にも記載されているように、このようなキャリブレーションは、多くの場合、特別な動作モード（例えば、上述した調整モード）で実施される。このため、例えば、半導体集積回路が実際に動作している際に、データ信号（実データ）とストローブポイントとの間にどの程度の余裕（タイミングマージン）が確保されているかなどを知ることは困難である。実データの内容によっては、複数ビットのデータを伝送する複数のデータ信号線の多くが同時に変化して消費電流が増加して遷移時間が長くなり、変化点の位相がずれる場合もある。このような場合には、データ信号に対するストローブポイントが好ましくない位置となることも考えられる。従って、遅延設定値の再設定や調整の要否の判断などを可能とするために、半導体集積回路が実際に動作している状態で、そのようなタイミングマージン等を確認できると好ましい。【０００５】
ところで、このようなメモリ及びメモリコントローラを備える形態は、上述したようなシステムＬＳＩ（半導体集積回路）に限らず、独立したチップ（パッケージが共通でダイが独立している形態も含む）を複数備えたマルチチップモジュールの場合もある。このような形態では、互いに独立したメモリチップとメモリコントローラとが用いられ、それぞれ異なるクロック信号を基準として動作する。多くの場合、メモリチップには、メモリコントローラのクロック信号と、メモリチップのクロック信号との位相差を調整するための位相調整器が備えられている。しかし、近年使用量が飛躍的に増加しているスマートフォンに用いられるメモリチップには、消費電力の抑制やコストの抑制のために、そのような位相調整器を備えないものが多い。そして、このようなメモリチップは、大量生産によるボリュームメリットもあって、比較的低コストである。このため、このようなメモリチップをスマートフォンなどとは異なる製品に転用する場合がある。このような場合には、さらに、マルチチップモジュールが実際に動作している際に、データ信号（実データ）とストローブポイントとの間にどの程度の余裕（タイミングマージン）が確保されているかなどを把握できると好ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−５２３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記背景に鑑みて、実データによりメモリが動作している状態で、データに対するストローブポイントを知ることができる技術の提供が望まれる。
【課題を解決するための手段】
【０００８】
１つの態様として、上記に鑑みた、メモリに対する複数ビットのデータの書き込み及び読み出しを制御するメモリコントローラは、
データ信号の相互の位相差であるデータスキューを調整するデータスキュー調整部と、
信号の変化点によってストローブポイントを規定するストローブ信号の当該変化点を調整するストローブ調整部と、を有するタイミング調整部と、
前記データ信号のそれぞれの変化点であるデータ変化点を検出するデータ変化点検出部と、
前記ストローブポイントを検出するストローブポイント検出部と、
前記データ信号のそれぞれについて、前記ストローブポイントと前記データ信号の変化点とに基づく動的タイミング情報を演算する動的タイミング演算部と、
前記動的タイミング情報を記憶する動的タイミング情報記憶部と、
前記動的タイミング情報を出力する動的タイミング情報出力部と、を備える。【０００９】
本構成によれば、データ変化点検出部及びストローブポイント検出部は、特別な動作モードではなく、メモリが実データを出力する通常の動作モードにおいて、データ変化点及びストローブポイントを検出する。そして、これら実データを対象としたデータ変化点及びストローブポイントに基づいて、動的タイミング情報が演算される。さらに、動的タイミング情報が記憶され、メモリコントローラから出力される。即ち、本構成によれば、実データによりメモリが動作している状態で、データに対するストローブポイントを知ることができる。【００１０】
メモリコントローラのさらなる特徴と利点は、図面を参照して説明する実施形態についての以下の記載から明確となる。
【図面の簡単な説明】
【００１１】
【図１】半導体集積回路の構成例を模式的に示すブロック図
【図２】リード制御部の構成例を模式的に示すブロック図
【図３】評価期間内ワーストタイミング情報の説明図
【図４】動的タイミング情報を更新する例を示すタイミングチャート
【図５】最悪条件が更新された際の動作の一例を示すフローチャート
【図６】最悪条件が更新された際の動作の他の例を示すフローチャート
【図７】リード制御部の他の構成例を模式的に示すブロック図
【図８】半導体集積回路の他の構成例を模式的に示すブロック図
【発明を実施するための形態】
【００１２】
以下、メモリコントローラの実施形態を図面に基づいて説明する。図１に示すように、半導体集積回路１００は、中核となるメインコントローラ（MAIN-CTRL）５０（例えばＣＰＵコア）と、メモリ（MEM）４０と、メモリコントローラ（MEM-CTRL）１と有するシステムＬＳＩである。尚、半導体集積回路１００は、システムＬＳＩに限らず、マルチチップモジュールなど複数の半導体チップを集めて構成されたハイブリッド回路であってもよい。メモリ４０は、ＤＲＡＭなどの揮発性のメモリである。メモリコントローラ１は、メモリ４０への複数ビット（例えば８ビット、１６ビットなど）のデータの書き込み及びメモリ４０からのデータの読み出しを制御するメモリインターフェイス回路である。
【００１３】
メモリコントローラ１は、リード制御部（RD-CTRL）１０、ライト制御部（WR-CTRL）２０、アドレス制御部（AD-CTRL）３０を有している。リード制御部１０は、メモリからのデータの読み出しを制御し、リードデータバス６１にデータを出力する回路である。ライト制御部２０は、ライトデータバス６２から入力されるデータをメモリ４０へ書き込む制御を行う回路である。アドレス制御部３０は、アドレスバス６３から入力されるアドレスをデコードしてメモリ４０を制御する回路である。
【００１４】
メモリ４０とメモリコントローラ１とは、メモリコントローラ１に備えられた入出力バッファ１２を介して接続されている。メモリ４０へデータを書き込む場合には、入出力バッファ１２の出力バッファを介して、データ信号とストローブ信号（ライトストローブ信号）とがメモリコントローラ１からメモリ４０へ出力される。メモリ４０からデータを読み出す場合には、入出力バッファ１２の入力バッファを介して、データ信号とストローブ信号（リードストローブ信号）とがメモリ４０からメモリコントローラ１へ入力される。尚、入出力バッファ１２の出力バッファ及び入力バッファは、トライステート出力型の素子であり、排他的に出力イネーブル状態となる。
【００１５】
図２のブロック図は、メモリコントローラ１のリード制御部１０を中心とした構成を模式的に示している。リード制御部１０は、データスキュー調整部（SKEW-ADJ）２と、ストローブ調整部（ST-ADJ）３と、データ変化点検出部（DET-DATA）４と、ストローブポイント検出部（DET-ST）５と、動的タイミング演算部（ACD-CALC）６、動的タイミング情報記憶部（ACD-SRG）７と、動的タイミング情報出力部（ACD-OUT）８と、キャリブレーション情報記憶部（CALIB-SRG）９と、レジスタ（REG）１１とを有している。尚、データスキュー調整部２及びストローブ調整部３は、タイミング調整部２３を構成する。メモリ４０からデータを読み出す際には、メモリ４０から出力されたデータがストローブ信号をトリガとしてレジスタ１１にラッチされ、レジスタ１１からリードデータバス６１に出力される。尚、レジスタ１１は、例えば、データのビット幅に応じた数のＤフリップフロップやＤラッチなどの記憶素子によって構成されている。
【００１６】
データスキュー調整部２は、データの読み出しにおいて、複数ビットの読み出しデータ信号の相互の位相差であるデータスキューを調整する。メモリ４０の各メモリセルから読み出されるデータは、単一ビットごとに独立している。従って、複数ビットの各信号線の電気的な状態は、信号線ごとに異なっており、データがハイ状態（Ｈ（データ値：１））からロー状態（Ｌ（データ値：０））に変化するタイミング（変化点）、Ｌ（データ値：０）からＨ（データ値：１）に変化するタイミング（変化点）も一様ではない。一方、レジスタ１１のトリガとなるストローブ信号は、レジスタ１１を構成する複数個の記憶素子（ＤフリップフロップやＤラッチ）の全てに共通の信号である。従って、ストローブ信号と各データ信号との間のタイミングマージンは、読み出しデータ信号ごとに異なる。
【００１７】
つまり、データ信号ごとにストローブ信号の変化点（ストローブポイントＳＰ）に対するデータ信号の変化点は異なる。データ信号とストローブポイントＳＰとの関係は、例えば、ストローブポイントＳＰに対するデータ信号のセットアップ時間（set up time）、ホールド時間（hold time）として規定することができる。これらセットアップ時間、ホールド時間は、データ信号ごとに異なるものとなる。換言すれば、データ信号が安定していてレジスタ１１にデータをラッチするために好適な期間（データ有効期間：ウィンドウ（window）、アイ（eye）等と称される）は、データ信号ごとに異なる。このため、データ信号全体のデータ有効期間は、最悪条件のセットアップ時間、及び最悪条件のホールド時間によって定まる。このデータ有効期間をできるだけ長くするためには、複数のデータ信号の相互の変化点が近いことが好ましい。データスキュー調整部２は、データ信号の相互の位相差（データスキュー）が小さくなるように、各データ信号の位相を必要に応じてずらすことで適切なデータ有効期間を確保する。
【００１８】
ストローブポイントＳＰに対するセットアップ時間及びホールド時間を考慮すると、ストローブポイントＳＰは、データ有効期間の中央付近にあることが好ましい。データスキュー調整部２により、適切なデータ有効期間が確保されていても、ストローブポイントＳＰが適切でないと、レジスタ１１によるデータのラッチの安定性が損なわれる。ストローブ調整部３は、データ有効期間に対するストローブポイントＳＰの位置を調整する。即ち、ストローブ調整部３は、信号の変化点によって読み出しデータ（読み出しデータ信号）をラッチするタイミングであるストローブポイントＳＰを規定するストローブ信号の当該変化点を調整する。尚、上記においては、「ストローブポイントＳＰは、データ有効期間の中央付近にあることが好ましい」と説明したが、要求されるセットアップ時間に比べて要求されるホールド時間が短いことも多い。従って、中央付近に限らず、レジスタ１１の特性に応じて、データ有効期間に対するストローブポイントＳＰが調整されると好適である。
【００１９】
データ変化点検出部４は、複数ビットのデータ信号（読み出しデータ信号）のそれぞれの変化点であるデータ変化点を検出する。具体的には、データスキュー調整部２によりデータスキューを調整された後のデータ信号のそれぞれのデータ変化点を検出する。ストローブポイント検出部５は、ストローブポイントＳＰを検出する。具体的には、ストローブ調整部３によりストローブポイントＳＰが調整された後の信号であり、レジスタ１１に提供されるストローブ信号の変化点であるストローブポイントＳＰを検出する。
【００２０】
動的タイミング演算部６は、ストローブポイントＳＰとデータ信号（読み出しデータ信号）のそれぞれのデータ変化点とに基づいて、データ信号のそれぞれについて、ストローブポイントＳＰに対する動的タイミング情報“ＡＣＤ”を演算する。動的タイミング情報は、例えば、上述したセットアップ時間及びホールド時間とすることができる。また、半導体集積回路１００及びメモリコントローラ１は、基準となるクロック信号によって動作しており、データ信号は、このクロック信号により変化する。従って、クロック信号を基準として、動的タイミング情報が演算されてもよい。例えば、動的タイミング情報は、データ変化点においてデータ信号が変化を始める時点又は変化を終える時点とクロック信号との時間と、クロック信号に対するストローブ信号の時間とによって規定されていてもよい。以下においては、動的タイミング情報が、セットアップ時間及びホールド時間によって規定されている形態を例示して説明する。動的タイミング情報記憶部７は、セットアップ時間及び前記ホールド時間を少なくとも含む動的タイミング情報を記憶する。動的タイミング情報出力部８は、動的タイミング情報を出力する。
【００２１】
尚、動的タイミング情報には、セットアップ時間及びホールド時間の他、データ信号の値（１又は０）や、データ信号の遷移状態を示す値（０００，００１，０１０，１１１，１１０，１０１，０１１，１００）、ストローブポイントＳＰの時刻等を含んでいてもよい。データ信号の値は、ストローブポイントＳＰにおけるデータ信号の値を示している。遷移状態を示す値は、ストローブポイントＳＰに対応するデータ値の前後のデータ値を含む３ビットの値を例示している。例えば、“０１０”は、データ値が“０”から“１”に遷移し、再び“０”に遷移した場合を示している。ストローブポイントＳＰは、データ値が“１”の期間にあり、“０”から“１”への遷移の際のセットアップ時間、“１”から“０”への遷移の際のホールド時間が当該遷移状態を示す値と関連づけて記憶される。
【００２２】
上述したように、複数ビットのデータ信号全体のデータ有効期間（ウィンドゥ、アイ）は、最悪条件のセットアップ時間、及び最悪条件のホールド時間によって定まる。従って、動的タイミング情報記憶部７は、複数ビットの各データ信号のセットアップ時間及びホールド時間の内、最も条件の悪いデータ信号のセットアップ時間、及び最も条件の悪いデータ信号のホールド時間を記憶してもよい。即ち、１回のストローブポイントＳＰに関しては、当該ストローブポイントＳＰに対して最も悪い条件となるセットアップ時間及びホールド時間であるワーストタイミング情報“ＷＳＴ−ＡＣＤ”を記憶してもよい。
【００２３】
このように記憶することによって、動的タイミング情報記憶部７の記憶容量が大きくなることを抑制できる。尚、当然ながら、動的タイミング情報記憶部７の記憶容量が充分に確保できるような場合などでは、各ビットに対応するデータ信号について、最も条件の悪いセットアップ時間及びホールド時間が記憶されてもよい。
【００２４】
また、動的タイミング情報記憶部７は、図３に示すように、予め規定された評価期間Ｔｅ内で、ストローブポイントＳＰに対して最も悪い条件となるワーストタイミング情報を、評価期間内ワーストタイミング情報“ＷＳＴ−ＡＣＤ（Ｔｅ）”として記憶してもよい。図３には、評価期間内ワーストタイミング情報として、最悪セットアップ時間（worst set up time）ｄ１、最悪ホールド時間（worst hold time）ｄ２、ストローブポイントＳＰの時刻（time）ｄ３（最悪セットアップ時間ｄ１に対応するストローブポイントＳＰの時刻、及び最悪ホールド時間ｄ２に対応するストローブポイントＳＰの時刻）、データの遷移状態を示す値（data）ｄ４（最悪セットアップ時間ｄ１に対応するデータの遷移状態を示す値、及び最悪ホールド時間ｄ２に対応するデータの遷移状態を示す値）が、動的タイミング情報記憶部７に記憶される例を示している。
【００２５】
尚、評価期間内ワーストタイミング情報は、図４に示すように、評価期間Ｔｅ内において逐次更新される。図４において、“ＡＣＤ（ｉ）”は、動的タイミング情報を示している（ｉ：任意の数）。括弧内の添え字は、評価期間Ｔｅ内における動的タイミング情報の番号を示している。例えば、“ＡＣＤ（ｎ）”は、ｎ番目の動的タイミング情報を示しており、“ＡＣＤ（ｎ−１）”は（ｎ−１）番目の動的タイミング情報、即ち、“ＡＣＤ（ｎ）”の１つ前の動的タイミング情報を示している。各動的タイミング情報“ＡＣＤ（ｉ）”は、その時点におけるワーストタイミング情報“ＷＳＴ−ＡＣＤ”と比較され、動的タイミング情報“ＡＣＤ（ｉ）”の方がワーストタイミング情報よりも悪い条件であった場合には、ワーストタイミング情報が当該動的タイミング情報“ＡＣＤ（ｉ）”に更新される。
【００２６】
例えば、図４に示すように、動的タイミング情報“ＡＣＤ（ｉ）”が“ＡＣＤ（ｎ）”の時には、ワーストタイミング情報“ＡＣＤ（ｎ−４）”の方が悪い条件であるので、ワーストタイミング情報“ＷＳＴ−ＡＣＤ”は更新されない。動的タイミング情報“ＡＣＤ（ｉ）”が“ＡＣＤ（ｎ）”の次の“ＡＣＤ（ｎ＋１）”の時には、ワーストタイミング情報“ＡＣＤ（ｎ−４）”よりも悪い条件であるので、ワーストタイミング情報が“ＡＣＤ（ｎ＋１）”に更新される。このように、逐次、新しい動的タイミング情報“ＡＣＤ（ｉ）”がワーストタイミング情報と比較され、より悪い条件の動的タイミング情報がワーストタイミング情報として更新される。即ち、動的タイミング情報記憶部は、予め規定された評価期間Ｔｅ内で、ストローブポイントＳＰに対して最も悪い条件となるセットアップ時間及びホールド時間であるワーストタイミング情報を、評価期間内ワーストタイミング情報として更新して記憶する。図４に示す例では、最終的に、動的タイミング情報“ＡＣＤ（ｎ＋５）”が評価期間内ワーストタイミング情報として記憶されている。
【００２７】
ところで、上述したように、メモリ４０は、揮発性のメモリであり、メモリに書き込まれたデータを保持するために電荷を補充するリフレッシュ動作（REFRESH）を、予め規定された時間であるリフレッシュ期間Ｔｒに亘って実施する必要がある。図３に示すように、このリフレッシュ動作は、予め規定された間隔であるリフレッシュサイクルＴｃｙｃで、繰り返し実施される。換言すれば、リフレッシュサイクルＴｃｙｃの１周期には、メモリ４０に対するデータの書き込み及び読み出しが行われないリフレッシュ期間Ｔｒと、メモリ４０に対するデータの書き込み及び読み出しが行われる通常動作（NORMAL）の期間とが含まれる。上述した評価期間Ｔｅは、実際にメモリ４０から読み出されるデータ信号とストローブ信号との動的タイミングが評価される期間であり、通常動作の期間に対応する。１回の評価期間Ｔｅは、リフレッシュサイクルＴｃｙｃの１周期における通常動作期間である。そして、動的タイミング情報出力部８は、リフレッシュ期間Ｔｒに動的タイミング情報（評価期間内ワーストタイミング情報）を出力する。
【００２８】
動的タイミング情報出力部８から出力された動的タイミング情報（評価期間内ワーストタイミング情報）は、モニタ情報として、メモリコントローラ１の外部、好適には半導体集積回路１００の外部に、半導体集積回路１００の端子を介して伝達されるとよい。これにより、実際にメモリ４０から読み出されるデータのタイミングマージンを半導体集積回路１００の外部から適切に検証することができる。或いは、動的タイミング情報（評価期間内ワーストタイミング情報）は、半導体集積回路１００の内部で、データスキュー調整部２やストローブ調整部３による調整内容を示すキャリブレーション情報を補正するための補正情報として用いられても好適である。尚、このキャリブレーション情報（調整内容）とは、例えば、信号の位相の遅れや進みなどの調整方向や、当該調整方向への調整量である。
【００２９】
図２に示すように、タイミング調整部２３（データスキュー調整部２及びストローブ調整部３）のキャリブレーション情報は、キャリブレーション情報記憶部９に記憶されており、キャリブレーション情報記憶部９からタイミング調整部２３に提供される。尚、キャリブレーション情報の初期値は、例えば半導体集積回路１００の製造工程や、半導体集積回路１００が実装される基板の製造工程など、生産時において決定されてキャリブレーション情報記憶部９に格納されてもよいし、半導体集積回路１００の使用時に電源が投入される都度、決定されて格納されてもよい。
【００３０】
例えば、半導体集積回路１００の生産時、又は使用時に電源が投入される都度、初期化処理の１つとしてキャリブレーション動作が実行される。キャリブレーション動作では、はじめに、ライトデータバス６２及びライト制御部２０を介して予め規定されたテストデータがメモリ４０に対して書き込まれる。次に、リード制御部１０及びリードデータバス６１を介してメモリ４０に書き込まれたテストデータが読み出される。リード制御部１０は、この読み出しの際に、上述したような動的タイミング情報を取得する。そして、リード制御部１０は、動的タイミング情報に基づいて、キャリブレーション情報の初期値を決定する。即ち、動的タイミング演算部６は、キャリブレーション動作の実行中に検出されたデータ変化点とストローブポイントＳＰに基づいて、キャリブレーション情報の初期値を決定する。
【００３１】
１つの態様として、このキャリブレーション情報の初期値など、キャリブレーション情報記憶部９に記憶されたキャリブレーション情報が、評価期間内ワーストタイミング情報に基づいて更新されると好適である。例えば、動的タイミング演算部６は、動的タイミング情報出力部８から出力される評価期間内ワーストタイミング情報に基づいてキャリブレーション情報記憶部９に記憶されたキャリブレーション情報を更新する。即ち、動的タイミング演算部６は、評価期間内ワーストタイミング情報が、キャリブレーション情報に含まれるワーストタイミング情報よりも悪い条件の場合には、キャリブレーション情報を評価期間内ワーストタイミング情報に基づいて更新する。
【００３２】
図５のフローチャートは、半導体集積回路１００に電源が投入される都度、初期化処理の１つとしてキャリブレーション動作が実行される場合の例を示している。半導体集積回路１００に電源が投入されると、はじめに初期化処理が実行され、キャリブレーション情報の初期値が決定される（＃１）。次に、動的タイミング情報出力部８から出力される評価期間内ワーストタイミング情報に基づいて、最悪条件が更新されたか否かが判定される（＃３）。最悪条件が更新されている場合、即ち、評価期間内ワーストタイミング情報が、キャリブレーション情報に含まれるワーストタイミング情報よりも悪い条件の場合には、キャリブレーション情報が、評価期間内ワーストタイミング情報に基づいて更新される（＃３：Ｙｅｓ→＃５）。最悪条件が更新されていない場合には、キャリブレーション情報はそのまま維持される（＃３：Ｎｏ→＃７）。メモリ４０が動作を継続している間、新たな評価期間内ワーストタイミング情報に基づいてステップ＃３の判定が繰り返される。
【００３３】
上記においては、キャリブレーション情報記憶部９に記憶されたキャリブレーション情報が、評価期間内ワーストタイミング情報に基づいて、メモリコントローラ１内において更新される形態について例示した。しかし、メモリコントローラ１は、最悪条件が更新されたか否かの判定及びその判定結果の出力のみを行い、キャリブレーション情報を更新するか否かの判定は、例えばメインコントローラ５０などの上位のコントローラが行ってもよい。例えば、動的タイミング情報出力部８は、少なくともメモリコントローラ１よりも上位のコントローラ（５０）に対して、動的タイミング情報を出力すると共に、当該動的タイミング情報に含まれる評価期間内ワーストタイミング情報が、キャリブレーション情報に含まれるワーストタイミング情報よりも悪い条件の場合には、上位のコントローラ（５０）に対して割込信号を出力する。
【００３４】
図６のフローチャートは、そのような割込信号を出力する場合の例を示している。図５の例と同様に、半導体集積回路１００に電源が投入されると、はじめに初期化処理が実行され、キャリブレーション情報の初期値が決定される（＃１）。次に、動的タイミング情報出力部８は、例えばメインコントローラ５０に対して、動的タイミング情報（評価期間内ワーストタイミング情報）を出力する（＃２）。この際、動的タイミング情報出力部８は、出力する動的タイミング情報（評価期間内ワーストタイミング情報）に基づき、最悪条件が更新されたか否かを判定する（＃３）。最悪条件が更新されている場合、即ち、評価期間内ワーストタイミング情報が、キャリブレーション情報に含まれるワーストタイミング情報よりも悪い条件の場合には、動的タイミング情報出力部８は、例えばメインコントローラ５０に対して、割込信号も出力する（＃３：Ｙｅｓ→＃４）。最悪条件が更新されていない場合には、割込信号は出力されない（＃３：Ｎｏ→＃７）。メモリ４０が動作を継続している間、新たな評価期間内ワーストタイミング情報に基づいてステップ＃２による動的タイミング情報の出力、及びステップ＃３の判定が繰り返される。
【００３５】
割込信号を受けた上位のコントローラ、例えばメインコントローラ５０は、割込信号と共に出力された動的タイミング情報（評価期間内ワーストタイミング情報）に基づいて、キャリブレーション情報記憶部９に記憶されたキャリブレーション情報を更新するか否かを判定する。メインコントローラ５０は、例えば、キャリブレーション情報記憶部９に記憶されたキャリブレーション情報に基づく調整量では、タイミングマージンが予め規定された許容量未満となるような場合に、当該キャリブレーション情報を更新すると判定する。そして、メインコントローラ５０は、メモリコントローラ１に対して、キャリブレーション情報の更新を指令する。この際、更新の指令のみを与えて、新たなキャリブレーション情報の演算はメモリコントローラ１（動的タイミング演算部６）に任せてもよいし、メインコントローラ５０が新たなキャリブレーション情報を演算して、メモリコントローラ１に提供してもよい。
【００３６】
ところで、システムＬＳＩなどの内部には、多くの信号線が存在するため、動的タイミング情報をメモリコントローラ１から出力するための信号線を単純に追加した場合には、配線密度の増加が問題となるおそれがある。このため、すでに存在する信号線を兼用して、動的タイミング情報を出力すると好適である。図３及び図４等を参照して、上述したように、動的タイミング情報は、メモリ４０に対するアクセス（書き込み及び読み出し）が行われない、リフレッシュ期間Ｔｒに出力される。リフレッシュ期間Ｔｒでは、デコード後のアドレス信号は使用されない。従って、図７に例示するように、デコード後のアドレス信号を出力する信号線（アドレス制御部３０からの出力信号線）を利用して動的タイミング情報を出力すると好適である。
【００３７】
〔その他の実施形態〕
以下、その他の実施形態について説明する。尚、以下に説明する各実施形態の構成は、それぞれ単独で適用されるものに限られず、矛盾が生じない限り、他の実施形態の構成と組み合わせて適用することも可能である。
【００３８】
（１）上記においては、メモリコントローラ１のリード制御部１０にタイミング調整部２３等を有して、データスキュー及びストローブポイントＳＰを調整する形態を例示して説明した。しかし、このようなタイミング調整部２３は、ライト制御部２０にも備えられていてもよい。ライト制御部２０にタイミング調整部２３等を備える形態については、当業者であれば、リード制御部１０についての説明から容易に理解可能であるので、詳細な説明は省略する。
【００３９】
（２）上記においては、タイミング調整部２３による調整内容を示すキャリブレーション情報の初期値が決定されている形態、具体的には当該初期値がキャリブレーション情報記憶部９に記憶されている形態を例示した。そして、評価期間内ワーストタイミング情報が、キャリブレーション情報に含まれるワーストタイミング情報よりも悪い条件の場合に、キャリブレーション情報が評価期間内ワーストタイミング情報に基づいて更新され、当該更新されたキャリブレーション情報に基づいてタイミング調整部２３がデータスキュー及びストローブポイントＳＰを調整する形態を例示した。
【００４０】
しかし、このようにキャリブレーション情報の初期値が決定されておらず、都度、タイミング調整部２３が、ワーストタイミング情報に基づいてデータスキュー及びストローブポイントを調整する形態であってもよい。即ち、評価期間Ｔｅにおいて検出した動的タイミング情報（ワーストタイミング情報）に基づいて、次の評価期間Ｔｅに相当する通常動作（NORMAL）においてデータスキュー及びストローブポイントＳＰを調整してもよい。
【００４１】
尚、初期値が設定されない場合においても、キャリブレーション情報記憶部９を備えていてよい。例えば、キャリブレーション情報記憶部９に、ワーストタイミング情報に基づくキャリブレーション情報が記憶され、タイミング調整部２３がキャリブレーション情報記憶部９に記憶されたキャリブレーション情報に基づいてデータスキュー及びストローブポイントＳＰを調整してもよい。初期値が設定されていない場合には、最初の評価期間Ｔｅにおいて検出した動的タイミング情報（ワーストタイミング情報）に基づいてキャリブレーション情報が設定されることになる。また、当然ながら、初期値が設定されない場合においても、キャリブレーション情報が更新され、当該更新されたキャリブレーション情報に基づいてタイミング調整部２３がデータスキュー及びストローブポイントＳＰを調整してもよい。
【００４２】
（３）上述したように、メモリ４０及びメモリコントローラ１を備える形態は、システムＬＳＩ（半導体集積回路）に限らず、独立したチップ（パッケージが共通でダイが独立している形態も含む）を複数備えたマルチチップモジュールであってもよい。このような形態では、互いに独立したメモリチップとメモリコントローラとが用いられ、それぞれ異なるクロック信号を基準として動作する。このように独立して汎用的に利用可能なメモリチップには、多くの場合、メモリコントローラのクロック信号と、メモリチップのクロック信号との位相差を調整するための位相調整器が備えられている。しかし、例えば、近年使用量が飛躍的に増加しているスマートフォンに用いられるメモリチップには、消費電力の抑制やコストの抑制のために、そのような位相調整器を備えないものがある。図１のメモリ４０はそのような位相調整器を備えていない形態を例示している。
【００４３】
汎用的なメモリ４０に位相調整器を付加するとカスタム品となり、スケールメリットも無くなってコストメリットが低下する。そこで、メモリコントローラ１に位相調整器を備えると好適である。図８は、メモリコントローラ１がさらに位相調整部（DLL）７０を備えている形態を例示している。図８に示すように、位相調整部７０は、リード制御部１０及びライト制御部２０に接続され、メモリ４０のクロック信号（内部クロック）と、メモリコントローラ１のクロック信号（外部クロック）との位相を調整する。ここでは、ＤＬＬ（Delay Locked Loop）により位相調整部７０が構成されている形態を例示しているが、ＰＬＬ（Phase Locked Loop）により構成されていてもよい。ＤＬＬやＰＬＬについては、当業者であれば容易に理解可能であるので詳細な説明は省略する。
【００４４】
位相調整部７０を備えることにより、ライト制御部２０における書き込み用のデータ信号のスキューや、ストローブ信号のタイミングはメモリ４０に入力される前に適切に調整される。しかし、リード制御部１０では、メモリ４０に位相調整器が備えられていないため、データ信号のスキューや、ストローブ信号のタイミングは、リード制御部１０に入力される前には調整されない。このため、メモリコントローラ１は、位相調整部７０を備えていても、上述したようにタイミング調整部２３を備えてデータスキューやストローブポイントＳＰが調整されると好適である。
【００４５】
〔実施形態の概要〕
以下、上記において説明したメモリコントローラ（１）の概要について簡単に説明する。
【００４６】
１つの態様として、メモリ（４０）に対する複数ビットのデータの書き込み及び読み出しを制御するメモリコントローラ（１）は、
データ信号の相互の位相差であるデータスキューを調整するデータスキュー調整部（２）と、
信号の変化点によってストローブポイント（ＳＰ）を規定するストローブ信号の当該変化点を調整するストローブ調整部（３）と、を有するタイミング調整部（２３）と、
前記データ信号のそれぞれの変化点であるデータ変化点を検出するデータ変化点検出部（４）と、
前記ストローブポイント（ＳＰ）を検出するストローブポイント検出部（５）と、
前記データ信号のそれぞれについて、前記ストローブポイント（ＳＰ）と前記データ信号の変化点とに基づく動的タイミング情報を演算する動的タイミング演算部（６）と、
前記動的タイミング情報を記憶する動的タイミング情報記憶部（７）と、
前記動的タイミング情報を出力する動的タイミング情報出力部（８）と、を備える。
【００４７】
本構成によれば、データ変化点検出部（４）及びストローブポイント検出部（５）は、特別な動作モードではなく、メモリ（４０）が実データを出力する通常の動作モードにおいて、データ変化点及びストローブポイント（ＳＰ）を検出する。そして、これら実データを対象としたデータ変化点及びストローブポイント（ＳＰ）に基づいて、動的タイミング情報が演算される。さらに、動的タイミング情報が記憶され、メモリコントローラ（１）から出力される。即ち、本構成によれば、実データによりメモリ（４０）が動作している状態で、データに対するストローブポイント（ＳＰ）を知ることができる。
【００４８】
１つの態様として、前記データ信号は、基準となるクロック信号によりデータが変化するものであり、前記動的タイミング情報は、前記データ変化点において前記データ信号が変化を始める時点又は変化を終える時点と前記クロック信号との時間と、前記クロック信号に対する前記ストローブ信号の時間とを含むと好適である。この構成によれば、クロック信号を基準とした適切な動的タイミング情報を得ることができる。
【００４９】
また、１つの態様として、前記動的タイミング情報は、前記ストローブポイントに対する前記データ信号のセットアップ時間及びホールド時間を含むと好適である。この構成によれば、セットアップ時間及びホールド時間を用いて適切な動的タイミング情報を得ることができる。
【００５０】
ここで、前記動的タイミング情報記憶部（７）は、予め規定された評価期間（Ｔｅ）内で、前記ストローブポイント（ＳＰ）に対して最も悪い条件となる前記動的タイミング情報であるワーストタイミング情報を、評価期間内ワーストタイミング情報として更新して記憶すると好適である。最も悪い条件となるワーストタイミング情報を更新して記憶することにより、メモリコントローラ（１）は、動的タイミング情報記憶部（７）の記憶容量が増大することを抑制しつつ、適切に必要な情報を得ることができる。
【００５１】
１つの態様として、前記メモリ（４０）は、前記メモリ（４０）に書き込まれたデータを保持するために電荷を補充するリフレッシュ動作を、予め規定された時間であるリフレッシュ期間（Ｔｒ）に亘って実施する揮発性メモリであり、前記リフレッシュ動作は、予め規定された間隔であるリフレッシュサイクル（Ｔｃｙｃ）で、繰り返し実施され、前記リフレッシュサイクル（Ｔｃｙｃ）の１周期には、前記メモリ（４０）に対するデータの書き込み及び読み出しが行われない前記リフレッシュ期間（Ｔｒ）と、前記メモリ（４０）に対するデータの書き込み及び読み出しが行われる通常動作期間と、を含み、前記評価期間（Ｔｅ）は、前記リフレッシュサイクル（Ｔｃｙｃ）の１周期における前記通常動作期間であり、前記動的タイミング情報出力部（８）は、前記リフレッシュ期間（Ｔｒ）に前記動的タイミング情報を出力すると、好適である。
【００５２】
通常動作期間を評価期間（Ｔｅ）とすることによって、実データによりメモリ（４０）が動作している状態で、当該メモリ（４０）から出力される読み出しデータ（読み出しデータ信号）に対するストローブポイント（ＳＰ）を適切に評価することができる。また、リフレッシュ期間（Ｔｒ）にはメモリ（４０）を使用することはできないから、動的タイミング情報を出力することによってメモリコントローラ１の負荷が増大しても、メモリ（４０）に対する実データの書き込み及び読み出しに影響を与えることがなく、好適である。
【００５３】
１つの態様として、前記タイミング調整部（２３）は、前記ワーストタイミング情報に基づいて前記データスキュー及び前記ストローブポイントを調整すると好適である。タイミング調整部（２３）は、ワーストタイミング情報が示す厳しい条件下でタイミングを調整するので、メモリ（４０）の動作の信頼性が向上する。
【００５４】
ここで、前記タイミング調整部は、前記ストローブポイント（ＳＰ）が前記データ信号の有効期間の中央となるように、前記データスキュー及び前記ストローブポイントを調整すると好適である。ストローブポイント（ＳＰ）がデータ信号の有効期間の中央であると、安定した動作が期待でき、メモリ（４０）の動作の信頼性が向上する。
【００５５】
また、１つの態様として、前記タイミング調整部（２３）は、調整内容を示すキャリブレーション情報に基づいて前記データスキュー及び前記ストローブポイント（ＳＰ）を調整するものであり、前記動的タイミング演算部（６）は、予め規定されたテストデータが前記メモリ（４０）に対して書き込まれ、読み出されるキャリブレーション動作の実行中に検出された前記データ変化点と前記ストローブポイント（ＳＰ）とに基づいて、前記キャリブレーション情報の初期値を決定すると共に、前記動的タイミング情報出力部（８）から出力された前記動的タイミング情報に基づき、前記評価期間内ワーストタイミング情報が、前記キャリブレーション情報に含まれる前記ワーストタイミング情報よりも悪い条件の場合には、前記キャリブレーション情報を前記評価期間内ワーストタイミング情報に基づいて更新すると好適である。
【００５６】
この構成によれば、メモリコントローラ（１）において、キャリブレーション情報の更新が必要か否かを判定し、キャリブレーション情報を更新する。従って、メモリ（４０）のタイミング調整の信頼性を迅速に向上させることができる。
【００５７】
また、１つの好適な態様として、前記動的タイミング演算部（６）は、予め規定されたテストデータが前記メモリ（４０）に対して書き込まれ、読み出されるキャリブレーション動作の実行中に検出された前記データ変化点と前記ストローブポイント（ＳＰ）とに基づいて、前記タイミング調整部（２３）による調整内容を示すキャリブレーション情報の初期値を決定し、前記動的タイミング情報出力部（８）は、少なくとも当該メモリコントローラ（１）よりも上位のコントローラに対して、前記動的タイミング情報を出力すると共に、当該動的タイミング情報に含まれる前記評価期間内ワーストタイミング情報が、前記キャリブレーション情報に含まれる前記ワーストタイミング情報よりも悪い条件の場合には、前記上位のコントローラに対して割込信号を出力すると好適である。
【００５８】
この構成によれば、例えば、メモリコントローラ（１）よりも上位のコントローラが、キャリブレーション情報の更新が必要か否かを判定するための材料を迅速且つ適切に、当該上位のコントローラに提供することができる。上位のコントローラによるシステム全体の最適化を考慮した判定に基づいて、メモリ（４０）からデータを読み出す際のタイミング調整の信頼性を適切に向上させることができる。
【００５９】
また、１つの態様として、前記メモリ（４０）は、メモリセルに対する動作の基準となる内部クロックと、前記メモリ（４０）の外部での動作の基準となる外部クロックとの位相を調整する位相調整機能を持たない簡易型メモリであり、当該メモリコントローラ（１）は、さらに、前記内部クロックと前記外部クロックとの位相を調整する位相調整部（７０）を備えると好適である。
【００６０】
メモリ（４０）とメモリコントローラ（１）とが、それぞれ異なるクロック信号を基準として動作するような場合、好適には、メモリ（４０）に位相調整器が設けられる。しかし、消費電力の抑制やコストの抑制のために、そのような位相調整器を備えないメモリ（４０）もある。この場合、メモリコントローラ（１）に位相調整部（７０）を設けることによって、例えばデータ書き込み時におけるデータ信号のスキューやストローブポイント（ＳＰ）のずれを抑制することができる。さらに、上述したようなタイミング調整部（２３）を設けることによって、データ読み出し時におけるデータ信号のスキューやストローブポイント（ＳＰ）のずれも調整することができるので、メモリ（４０）の動作の信頼性が向上する。
【符号の説明】
【００６１】
１      ：メモリコントローラ
２      ：データスキュー調整部
３      ：ストローブ調整部
４      ：データ変化点検出部
５      ：ストローブポイント検出部
６      ：動的タイミング演算部
７      ：動的タイミング情報記憶部
８      ：動的タイミング情報出力部
２３    ：タイミング調整部
４０    ：メモリ
７０    ：位相調整部
ＳＰ    ：ストローブポイント
Ｔｃｙｃ：リフレッシュサイクル
Ｔｅ    ：評価期間
Ｔｒ    ：リフレッシュ期間
【図１】
2017130983.tif 000003
【図２】
2017130983.tif 000004
【図３】
2017130983.tif 000005
【図４】
2017130983.tif 000006
【図５】
2017130983.tif 000007
【図６】
2017130983.tif 000008
【図７】
2017130983.tif 000009
【図８】
2017130983.tif 000010
【国際調査報告】
2017130983.tif 000011
2017130983.tif 000012
2017130983.tif 000013