(57)【特許請求の範囲】
【請求項１】
上位制御部からライトされたデータを格納するキャッシュメモリと、
前記上位制御部からリード指示された際に、前記キャッシュメモリに該当するデータが存在するか否かを判定し、この判定結果に基づいて指示する判定部と、
前記上位制御部からのリード要求に対して、メモリからのリードデータの取り込みを制御するキャリブレーション制御部と、
前記判定部からの指示に基づいて、前記該当するデータが存在する場合の前記キャッシュメモリからのリードデータ、または、前記該当するデータが存在しない場合の前記メモリからの前記キャリブレーション制御部を経由したリードデータのどちらかのリードデータを選択する選択回路と、
を有し、
前記キャリブレーション制御部は、
前記リードデータの取り込み位置のタイミングを調整するタイミング調整部と、
前記タイミング調整部による取り込み位置のタイミングに従い、前記メモリからのリードデータを取り込むリードデータ取り込み部と、
前記リードデータの取り込み位置の再調整を指示する再調整指示部と、
前記再調整指示部による再調整の指示毎に前記リードデータの取り込み位置の適したロック位置を記憶するロック位置制御部と、
を含み、
前記タイミング調整部は、前記ロック位置制御部に記憶されたロック位置に基づいて、前記リードデータの取り込み位置のタイミングを調整する、メモリ制御装置。
【請求項２】
請求項１に記載のメモリ制御装置において、
前記上位制御部からリード指示された際に、
前記判定部は、前記キャッシュメモリに該当するデータが存在するか否かを判定し、この判定結果に基づいて指示し、
前記選択回路は、前記判定部からの指示に基づいて、前記該当するデータが存在する場合には、前記キャッシュメモリからのリードデータを選択して前記上位制御部に出力し、前記該当するデータが存在しない場合には、前記メモリからの前記キャリブレーション制御部を経由したリードデータを選択して前記上位制御部に出力する、メモリ制御装置。
【請求項３】
請求項２に記載のメモリ制御装置において、
前記該当するデータが存在しない場合には、
前記判定部は、前記再調整指示部による再調整時点より前の旧ロック位置に戻す指示を前記キャリブレーション制御部に対して発行し、
前記キャリブレーション制御部は、前記判定部からの指示による旧ロック位置のタイミングに従い、前記メモリからのリードデータを取り込んで前記選択回路に出力する、メモリ制御装置。
【請求項４】
請求項１に記載のメモリ制御装置において、
前記再調整指示部は、環境変化検出時、定期的、またはその両方で、前記リードデータの取り込み位置の再調整を指示し、
前記ロック位置制御部は、初期設定で決定したロック位置を保持した後に、前記再調整指示部による再調整の指示の度に前記リードデータの取り込み位置の適したロック位置を更新する、メモリ制御装置。
【請求項５】
請求項４に記載のメモリ制御装置において、
前記キャリブレーション制御部は、前記再調整指示部からの指示による前記リードデータの取り込み位置の再調整の実行中に、前記上位制御部からリード指示があり、かつ、前記該当するデータが存在しない場合には、前記リードデータの取り込み位置の再調整を中断し、前記ロック位置制御部に保持されているロック位置に従い、前記タイミング調整部のタイミングを元に戻して、前記メモリからのリードデータを取り込む、メモリ制御装置。
【請求項６】
請求項５に記載のメモリ制御装置において、
前記キャリブレーション制御部は、前記リードデータの取り込み位置の再調整を中断した場合に、この中断したステップの情報を記憶部に記憶しておき、前記メモリからのリードデータの取り込みが終了した後に、前記記憶部に記憶しておいた情報に基づいて、前記中断したステップから前記リードデータの取り込み位置の再調整を再開する、メモリ制御装置。
【請求項７】
上位制御部と、メモリと、前記メモリに対する前記上位制御部からのリード／ライトを制御するメモリ制御装置と、を有するメモリシステムであって、
前記メモリ制御装置は、
前記上位制御部からライトされたデータを格納するキャッシュメモリと、
前記上位制御部からリード指示された際に、前記キャッシュメモリに該当するデータが存在するか否かを判定し、この判定結果に基づいて指示する判定部と、
前記上位制御部からのリード要求に対して、前記メモリからのリードデータの取り込みを制御するキャリブレーション制御部と、
前記判定部からの指示に基づいて、前記該当するデータが存在する場合の前記キャッシュメモリからのリードデータ、または、前記該当するデータが存在しない場合の前記メモリからの前記キャリブレーション制御部を経由したリードデータのどちらかのリードデータを選択する選択回路と、を有し、
前記キャリブレーション制御部は、
前記リードデータの取り込み位置のタイミングを調整するタイミング調整部と、
前記タイミング調整部による取り込み位置のタイミングに従い、前記メモリからのリードデータを取り込むリードデータ取り込み部と、
前記リードデータの取り込み位置の再調整を指示する再調整指示部と、
前記再調整指示部による再調整の指示毎に前記リードデータの取り込み位置の適したロック位置を記憶するロック位置制御部と、
を含み、
前記タイミング調整部は、前記ロック位置制御部に記憶されたロック位置に基づいて、前記リードデータの取り込み位置のタイミングを調整する、メモリシステム。
【請求項８】
請求項７に記載のメモリシステムにおいて、
前記上位制御部からリード指示された際に、
前記判定部は、前記キャッシュメモリに該当するデータが存在するか否かを判定し、この判定結果に基づいて指示し、
前記選択回路は、前記判定部からの指示に基づいて、前記該当するデータが存在する場合には、前記キャッシュメモリからのリードデータを選択して前記上位制御部に出力し、前記該当するデータが存在しない場合には、前記メモリからの前記キャリブレーション制御部を経由したリードデータを選択して前記上位制御部に出力する、メモリシステム。
【請求項９】
請求項８に記載のメモリシステムにおいて、
前記該当するデータが存在しない場合には、
前記判定部は、前記再調整指示部による再調整時点より前の旧ロック位置に戻す指示を前記キャリブレーション制御部に対して発行し、
前記キャリブレーション制御部は、前記判定部からの指示による旧ロック位置のタイミングに従い、前記メモリからのリードデータを取り込んで前記選択回路に出力する、メモリシステム。
【請求項１０】
請求項７に記載のメモリシステムにおいて、
前記再調整指示部は、環境変化検出時、定期的、またはその両方で、前記リードデータの取り込み位置の再調整を指示し、
前記ロック位置制御部は、初期設定で決定したロック位置を保持した後に、前記再調整指示部による再調整の指示の度に前記リードデータの取り込み位置の適したロック位置を更新する、メモリシステム。
【請求項１１】
請求項１０に記載のメモリシステムにおいて、
前記キャリブレーション制御部は、前記再調整指示部からの指示による前記リードデータの取り込み位置の再調整の実行中に、前記上位制御部からリード指示があり、かつ、前記該当するデータが存在しない場合には、前記リードデータの取り込み位置の再調整を中断し、前記ロック位置制御部に保持されているロック位置に従い、前記タイミング調整部のタイミングを元に戻して、前記メモリからのリードデータを取り込む、メモリシステム。
【請求項１２】
請求項１１に記載のメモリシステムにおいて、
前記キャリブレーション制御部は、前記リードデータの取り込み位置の再調整を中断した場合に、この中断したステップの情報を記憶部に記憶しておき、前記メモリからのリードデータの取り込みが終了した後に、前記記憶部に記憶しておいた情報に基づいて、前記中断したステップから前記リードデータの取り込み位置の再調整を再開する、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、およびこれを有するメモリシステムに関する。
【背景技術】
【０００２】
メモリ制御装置として、例えば、ＤＤＲ（Double Data Rate）方式のメモリに対して、上位制御部からのライト／リードを制御する制御装置がある。このメモリ制御装置においては、メモリから出力されるリードデータを取り込む際に、取り込み位置を調整する機能（以下、キャリブレーションと称する）が必要となる。このキャリブレーションが必要な理由は、リードデータは複数本の信号線から成り、信号線毎にボードの配線遅延等のばらつき差分があり、その差分を吸収する必要があるからである。
【０００３】
このようなメモリ制御装置の背景技術として、例えば特許文献１がある。特許文献１では、キャリブレーション実行のタイミングを制御するタイミング発生回路に温度センサが設けられ、タイミング発生回路は、温度センサでの検出温度の変化に応じて、キャリブレーション実行のタイミングを制御する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２４１００３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述したようなキャリブレーションは、初期状態で起動して、その後は取り込み位置を固定したまま運用することを想定していたが、周辺の温度環境、電圧状態の変化等で、取り込み位置を再調整する必要がある。もし、再調整が必要だった場合、キャリブレーション機能が起動してから終了するまでシステムを止める必要があるが、システムを止めることなくキャリブレーション再調整することが望まれる。また、もし再調整しない場合、メモリからのリードデータの取り込みが失敗となり、システムで見れば障害発生と見えてしまうので、その障害を見せないようにすることも必要となる。
【０００６】
前記特許文献１に記載のメモリ制御装置では、キャリブレーション再調整を実施している間にメモリにデータライトされた場合、余剰レジスタにデータを書き込むことで、再調整時間を隠しパフォーマンス低下させないようにしているが、メモリからのリードデータには対応していない。
【０００７】
本発明の目的は、キャリブレーション再調整において、メモリからのリードデータに対応可能なメモリ制御装置およびメモリシステムを提供することである。
【０００８】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１０】
一実施の形態におけるメモリ制御装置は、上位制御部からのリード要求に対して、メモリからのリードデータの取り込みを制御するキャリブレーション制御部を有する。前記キャリブレーション制御部は、前記リードデータの取り込み位置のタイミングを調整するタイミング調整部と、前記タイミング調整部による取り込み位置のタイミングに従い、前記メモリからのリードデータを取り込むリードデータ取り込み部と、前記リードデータの取り込み位置の再調整を指示する再調整指示部と、前記再調整指示部による再調整の指示毎に前記リードデータの取り込み位置の適したロック位置を記憶するロック位置制御部と、を含む。そして、前記タイミング調整部は、前記ロック位置制御部に記憶されたロック位置に基づいて、前記リードデータの取り込み位置のタイミングを調整する。
【００１１】
より好ましくは、前記メモリ制御装置は、前記上位制御部からライトされたデータを格納するキャッシュメモリと、前記上位制御部からリード指示された際に、前記キャッシュメモリに該当するデータが存在するか否かを判定し、この判定結果に基づいて指示する判定部と、前記判定部からの指示に基づいて、前記該当するデータが存在する場合の前記キャッシュメモリからのリードデータ、または、前記該当するデータが存在しない場合の前記メモリからの前記キャリブレーション制御部を経由したリードデータのどちらかのリードデータを選択する選択回路と、をさらに有する。
【００１２】
一実施の形態におけるメモリシステムは、上位制御部と、メモリと、前記メモリに対する前記上位制御部からのリード／ライトを制御するメモリ制御装置と、を有する。前記メモリ制御装置は、上述した一実施の形態におけるメモリ制御装置と同様の構成を有する。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００１４】
一実施の形態によれば、キャリブレーション再調整において、メモリからのリードデータに対応可能なメモリ制御装置およびメモリシステムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態におけるメモリシステムの構成の一例を示す図である。
【図２】本発明の一実施の形態における変形例のメモリシステムの構成の一例を示す図である。
【図３】本発明に対する比較技術におけるメモリシステムの構成の一例を示す図である。
【図４】本発明に対する比較技術におけるメモリシステムの動作において、キャリブレーションの一例を示すフローチャートである。
【図５】図４のフローチャートにおいて、取り込み位置のずらし方法を説明するための図である。
【図６】図４のフローチャートにおいて、取り込み位置の判定方法を説明するための図である。
【図７】本発明に対する比較技術におけるメモリシステムにおいて、キャリブレーションの問題点を説明するための図である。
【発明を実施するための形態】
【００１６】
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１７】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１８】
［実施の形態の概要］
まず、実施の形態の概要について説明する。本実施の形態の概要では、一例として、括弧内に一実施の形態の対応する構成要素の符号等を付して説明する。
【００１９】
一実施の形態におけるメモリ制御装置は、上位制御部（１）からのリード要求に対して、メモリ（２）からのリードデータの取り込みを制御するキャリブレーション制御部（３）を有する。前記キャリブレーション制御部は、前記リードデータの取り込み位置のタイミングを調整するタイミング調整部（４）と、前記タイミング調整部による取り込み位置のタイミングに従い、前記メモリからのリードデータを取り込むリードデータ取り込み部（５）と、前記リードデータの取り込み位置の再調整を指示する再調整指示部（８）と、前記再調整指示部による再調整の指示毎に前記リードデータの取り込み位置の適したロック位置を記憶するロック位置制御部（９）と、を含む。そして、前記タイミング調整部は、前記ロック位置制御部に記憶されたロック位置に基づいて、前記リードデータの取り込み位置のタイミングを調整する。
【００２０】
より好ましくは、前記メモリ制御装置は、前記上位制御部からライトされたデータを格納するキャッシュメモリ（７）と、前記上位制御部からリード指示された際に、前記キャッシュメモリに該当するデータが存在するか否かを判定し、この判定結果に基づいて指示する判定部（６）と、前記判定部からの指示に基づいて、前記該当するデータが存在する場合の前記キャッシュメモリからのリードデータ、または、前記該当するデータが存在しない場合の前記メモリからの前記キャリブレーション制御部を経由したリードデータのどちらかのリードデータを選択する選択回路（１０）と、をさらに有する。
【００２１】
一実施の形態におけるメモリシステムは、上位制御部（１）と、メモリ（２）と、前記メモリに対する前記上位制御部からのリード／ライトを制御するメモリ制御装置と、を有する。前記メモリ制御装置は、上述した一実施の形態におけるメモリ制御装置と同様の構成を有する。
【００２２】
以下、上述した実施の形態の概要に基づいた一実施の形態を図面に基づいて詳細に説明する。なお、一実施の形態を説明するための全図において、同一の部材には原則として同一の符号または関連する符号を付し、その繰り返しの説明は省略する。
【００２３】
また、以下においては、一実施の形態の特徴を分かり易くするために、本発明に対する比較技術と比較して説明する。
【００２４】
［比較技術］
比較技術におけるメモリ制御装置およびメモリシステムについて、図３〜図７を用いて説明する。
【００２５】
＜メモリシステムの構成＞
図３を用いて、比較技術におけるメモリシステムの構成について説明する。図３は、比較技術におけるメモリシステムの構成の一例を示す図である。
【００２６】
比較技術におけるメモリシステムは、上位制御部１と、メモリ２と、キャリブレーション制御部３と、を有している。このメモリシステム内のキャリブレーション制御部３には、タイミング調整部４と、リードデータ取り込み部５と、を有している。このメモリシステムにおいて、キャリブレーション制御部３の部分を、メモリ制御装置と称する。
【００２７】
上位制御部１は、メモリ２に対して、ライト／リードを指示するＣＰＵ（Central Processing Unit）等の制御部である。メモリ２は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）／ＳＳＲＡＭ（Synchronous Static Random Access Memory）相当のシンクロナスメモリであり、特にＤＤＲ方式のシンクロナスメモリに好適である。
【００２８】
キャリブレーション制御部３は、メモリ２からのリードデータの取り込みを制御する制御部である。タイミング調整部４は、リードデータの取り込み位置のタイミングを調整するＰＬＬ（Phase Locked Loop）相当の回路である。このＰＬＬの代わりに、ＤＬＬ（Delay Locked Loop）を用いてもよい。リードデータ取り込み部５は、タイミング調整部４によるタイミングに従い、メモリ２からのリードデータを取り込むフリップフロップ相当の回路である。
【００２９】
図３において、１００は上位制御部１からメモリ２に対するライト要求およびライトデータ、１０１は上位制御部１からメモリ２に対するリード要求、１０２はリード要求１０１に対して、メモリ２が出力したリード値（リードデータ、単線／複線（例：３２ｂｉｔ））、１０３はメモリ２からのリード値１０２に対して、キャリブレーション制御部３で取り込みタイミング位置を調整後のリード値（リードデータ）、の各信号（信号線）である。
【００３０】
＜メモリシステムの動作＞
図４〜図６を用いて、比較技術におけるメモリシステムの動作について説明する。図４は、比較技術におけるメモリシステムの動作において、キャリブレーションの一例を示すフローチャートである。図５は、取り込み位置のずらし方法を説明するための図である。図６は、取り込み位置の判定方法を説明するための図である。
【００３１】
比較技術におけるメモリシステムのリード動作は、以下の通りである（図３参照）。
【００３２】
（１）上位制御部１が、メモリ２に対してリード要求１０１を発行する。
【００３３】
（２）リード要求１０１に対して、メモリ２が、リード値１０２を出力する。
【００３４】
（３）キャリブレーション制御部３にて、予め取り込み位置を調整したタイミングにて、リード値１０２を取り込み、調整後のリード値１０３を上位制御部１に対して出力する。
【００３５】
上記（３）における、予め取り込み位置を調整する方法（キャリブレーション）は、一例として図４に示す手順となる。
【００３６】
キャリブレーションの開始後に、まずステップＳ１において、メモリ２の特定エリアに対し、特定データ（例：ａｌｌ“５”）をライトする。そして、ステップＳ２において、タイミング調整部４の位相調整位置を“０”度に設定する。このステップＳ２は、リード取り込み位置の初期化である。
【００３７】
次に、ステップＳ３において、メモリ２の特定エリアに対し、リード要求を行う。そして、ステップＳ４において、正しくデータを読めたか（例：ａｌｌ“５”）を判定する。この判定の結果、正しくデータを読めた場合（Ｙｅｓ）は、ステップＳ５において、取り込み位置に“ＯＫ”を記憶する。一方、正しくデータを読めなかった場合（Ｎｏ）には、ステップＳ６において、取り込み位置に“ＮＧ”を記憶する。
【００３８】
次に、ステップＳ５の終了後、または、ステップＳ６の終了後に、ステップＳ７において、タイミング調整部４を調整して、取り込み位置をずらした設定を行う。そして、ステップＳ８において、位置ずらしが完了したかを判定する。この判定の結果、位置ずらしが完了していない場合（Ｎｏ）は、ステップＳ３からの処理を繰り返す。位置ずらしが完了した場合（Ｙｅｓ）には、ステップＳ９において、ＯＫ箇所を集計し、そして、取り込み位置を中心点にロックする。これにより、キャリブレーションが終了となる。
【００３９】
上記ステップＳ２〜Ｓ８では、図５に示すように、クロックに同期してリードされるメモリリード値に対して、タイミング調整部４を用いて取り込み位置を少しずつずらし、正しく取り込める位置（取り込み成功＝“ＯＫ”）を探す。
【００４０】
上記ステップＳ９では、図６に示すように、例えば、“０”〜“７”の取り込み位置において、判定が“０”、“１”で“ＮＧ”、“２”、“３”、“４”、“５”、“６” で“ＯＫ”、“７”で“ＮＧ”の例のように、取り込み成功＝“ＯＫ”が２〜６箇所であれば、その中心点付近“４”で取り込み位置をロックすれば、リードデータの取り込みは成功する。
【００４１】
＜キャリブレーションの問題点＞
前述したようなキャリブレーションは、初期状態で起動して、その後は取り込み位置をロックしたまま運用することを想定していたが、周辺の温度環境、電圧状態の変化等で、取り込み位置を再調整する必要がある。すなわち、周辺の温度環境、電圧状態の変化等によって、初期設定でキャリブレーション結果にてロックした取り込み位置がずれてしまう可能性がある。
【００４２】
この一例を、図７を用いて説明する。図7は、キャリブレーションの問題点を説明するための図である。図７に示すように、メモリ２から出力されるリード位置がずれて、メモリリード値が遅くなった場合や、逆にメモリリード値が早くなった場合が発生する。本来であれば、再度キャリブレーション調整が必要であるが、現状では、ＯＫ位置の中心点でロックしているので、多少、ずれたとしても追随できるが、リスクが大きい。そこで、一実施の形態では、以下に説明するようなキャリブレーション再調整を行う。
【００４３】
［一実施の形態］
一実施の形態におけるメモリ制御装置およびメモリシステムについて、図１〜図２を用いて説明する。
【００４４】
＜メモリシステムの構成＞
図１を用いて、一実施の形態におけるメモリシステムの構成について説明する。図１は、一実施の形態におけるメモリシステムの構成の一例を示す図である。
【００４５】
一実施の形態におけるメモリシステムは、上位制御部１と、メモリ２と、キャリブレーション制御部３と、ヒット／ミス判定部６と、キャッシュメモリ７と、リード値選択回路１０と、を有している。このメモリシステム内のキャリブレーション制御部３には、タイミング調整部４と、リードデータ取り込み部５と、再調整指示部８と、ロック位置制御部９と、中断情報記憶部１１と、を有している。
【００４６】
このメモリシステムにおいて、キャリブレーション制御部３とヒット／ミス判定部６とキャッシュメモリ７とリード値選択回路１０とを含む部分を、メモリ制御装置と称する。メモリ制御装置には、さらに上位制御部１を含めることもある。
【００４７】
一実施の形態におけるメモリシステムでは、前述した比較技術におけるメモリシステムに対して、ヒット／ミス判定部６と、キャッシュメモリ７と、リード値選択回路１０と、再調整指示部８と、ロック位置制御部９と、中断情報記憶部１１と、が追加されている。
【００４８】
ヒット／ミス判定部６は、上位制御部１からリード指示された際、キャッシュメモリ７に該当するデータが存在するか否かを判定する判定部である。このヒット／ミス判定部６では、キャッシュメモリ７に該当するデータが存在する場合はキャッシュヒットとなり、存在しない場合はキャッシュミスとなる。
【００４９】
キャッシュメモリ７は、上位制御部１からライトされたデータを格納するメモリであり、通常のキャッシュ相当となる。このキャッシュメモリ７は、メモリ２に比べて高速・小容量のメモリであり、ＳＲＡＭ（Static Random Access Memory）が用いられる。
【００５０】
リード値選択回路１０は、ヒット／ミス判定部６におけるキャッシュヒット時のキャッシュメモリ７からのリード値、または、キャッシュミス時のメモリ２からのキャリブレーション制御部３を経由したリード値のどちらかのリード値を選択する選択回路である。このリード値選択回路１０で選択されたリード値は、上位制御部１に出力される。
【００５１】
再調整指示部８は、キャリブレーションを再調整指示するトリガー制御部である。この再調整指示部８におけるトリガーは、（ａ）環境変化検出時（温度センサによる温度変化や電圧センサによる電圧変化等の検出）にトリガー発行、（ｂ）定期的な時間監視でのトリガー発行（タイマによる割り込み等）、の２種類を想定する。温度センサや電圧センサ、タイマは、例えば、キャリブレーション制御部３やメモリシステムの内部に設けられている。この再調整指示部８による再調整指示に基づいて、本実施の形態におけるタイミング調整部４では、キャリブレーションを再調整するためのタイミングを生成するものである。
【００５２】
ロック位置制御部９は、今まで動作していたロック位置を記憶すると共に、旧ロック位置に戻すための制御部である。このロック位置制御部９では、例えば、キャリブレーション再調整中に上位制御部１からリード動作があり、キャッシュミスだった場合には、旧ロック位置に戻す制御を行う。また、ロック位置制御部９に記憶されたロック位置に基づいて、本実施の形態におけるタイミング調整部４では、メモリ２からのリードデータの取り込み位置のタイミングを調整するものである。そして、本実施の形態におけるリードデータ取り込み部５では、タイミング調整部４によるタイミングに従い、メモリ２からのリードデータを取り込むものである。
【００５３】
中断情報記憶部１１は、キャリブレーションの中断したステップの情報を記憶する記憶部である。この中断情報記憶部１１に記憶された情報は、キャリブレーションを再開する時に用いられる。
【００５４】
図１において、前述した比較技術に対して追加された各信号（信号線）は、以下の通りである。１０４は、上位制御部１からのリード指示時にキャッシュミスしたことを示す信号である。このキャッシュミスを示す信号１０４は、ヒット／ミス判定部６におけるキャッシュミスの判定結果に基づいて、ヒット／ミス判定部６からメモリ２に対して指示される信号である。
【００５５】
１０５は、上位制御部１からのリード指示時にキャッシュヒットしたことを示す信号である。このキャッシュヒットを示す信号１０５は、ヒット／ミス判定部６におけるキャッシュヒットの判定結果に基づいて、ヒット／ミス判定部６からキャッシュメモリ７に対して指示される信号である。
【００５６】
１０６は、キャッシュミス／ヒットによって、キャッシュリード値またはメモリリード値のどちらを選択するかを指示するための信号である。この選択信号１０６は、ヒット／ミス判定部６におけるキャッシュミス／ヒットの判定結果に基づいて、ヒット／ミス判定部６からリード値選択回路１０に対して指示される信号である。
【００５７】
１０７は、キャッシュミス時にメモリリードが発生するので、今まで動作していた旧ロック位置に戻すための指示を行う信号である。この旧ロック位置戻し指示１０７は、ヒット／ミス判定部６におけるキャッシュミスの判定結果に基づいて、ヒット／ミス判定部６からロック位置制御部９に対して指示される信号である。
【００５８】
１０８は、キャッシュメモリ７からのリード値である。このリード値１０８は、ヒット／ミス判定部６におけるキャッシュヒットの判定結果に基づいて、キャッシュメモリ７から読み出されるリードデータである。
【００５９】
１０９は、キャリブレーション制御部３で、ロック位置制御部９によるロック位置に従って、メモリ２からのデータをリードデータ取り込み部５に取り込み、出力したリード値である。このリード値１０９は、ヒット／ミス判定部６におけるキャッシュミスの判定結果に基づいて、メモリ２からキャリブレーション制御部３を経由して読み出されるリードデータである。
【００６０】
＜メモリシステムの動作＞
一実施の形態におけるメモリシステムの動作について、図１を参照しながら説明する。
【００６１】
＜＜ライト動作＞＞
一実施の形態におけるメモリシステムのライト動作は、以下の通りである。
【００６２】
（１）上位制御部１が、メモリ２に対してライト要求１００を発行する。
【００６３】
（２）ライトデータは、メモリ２およびキャッシュメモリ７の双方に格納される。この場合に、詳細は説明しないが、後述するリード動作と同様の概念で、メモリ２へのライトデータの格納を制御するキャリブレーション、キャリブレーション再調整が実行される。
【００６４】
＜＜リード動作＞＞
一実施の形態におけるメモリシステムのリード動作は、以下の通りである。
【００６５】
（１）上位制御部１が、メモリ２に対してリード要求１０１を発行する。
【００６６】
（２）リード要求１０１に対して、ヒット／ミス判定部６が、キャッシュメモリ７に該当するデータがあるかをサーチする。
【００６７】
もし、該当するデータがあり、キャッシュヒット１０５した場合には、キャッシュメモリ７からリードデータ（リード値１０８）の読み出しを実施し、メモリ２に対してはリード要求をしない。もし、該当するデータがなく、キャッシュミス１０４した場合には、メモリ２に対してリード要求を実施し、メモリ２からリードデータ（リード値１０２）の読み出しを行って、このリード値１０２をキャリブレーション制御部３内のリードデータ取り込み部５に取り込む。
【００６８】
併せて、ヒット／ミス判定部６は、（ａ）キャッシュメモリ７からのリード値１０８、または、メモリ２からキャリブレーション制御部３を経由したリード値１０９のどちらを上位制御部１に戻すかをリード値選択回路１０に選択信号１０６を用いて指示する。（ｂ）キャッシュミスした場合には、キャリブレーション再調整中の可能性もあることから、旧ロック位置戻し指示１０７にて、キャリブレーション制御部３に対し、ロック位置を元に戻す指示を発行する。
【００６９】
（３）リード値選択回路１０にて、ヒット／ミス判定部６からの指示による選択信号１０６に基づいて、選択されたリード値１０８またはリード値１０９が上位制御部１にリード値１０３として出力される。
【００７０】
＜＜キャリブレーション動作＞＞
一実施の形態におけるメモリシステムのキャリブレーション動作は、以下の通りである。
【００７１】
（１）初期設定にて、メモリ２からのリード値取り込み位置を、前述した比較技術において図４〜図６を用いて説明したキャリブレーション機能にて決定する。この決定したロック位置は、ロック位置制御部９にて保持される。
【００７２】
（２）再調整指示部８にて、環境変化検出時あるいは定期的にキャリブレーション再調整指示を発行する。その指示に従い、タイミング調整部４、リードデータ取り込み部５にて、リードデータの取り込み位置を再度認識する。すなわち、初期設定と同様にして、メモリ２からのリード値取り込み位置を再調整するキャリブレーションの再実行が行われる。このキャリブレーションの再実行では、キャリブレーション再調整指示が発行される度にロック位置は更新しながら保持される。
【００７３】
（３）キャリブレーションの再実行中では、メモリ２に対して連続リードを実施して再調整していることから、上位制御部１からのリード要求があり、かつ、キャッシュミスした場合は、旧ロック位置戻し指示１０７に従い、キャリブレーションを中断し、ロック位置制御部９に保持されているロック位置に従い、タイミング調整部４の位相値に基づくタイミングを元に戻し、メモリ２からのリード値１０２を取り込む。キャリブレーションを中断した場合は、この中断したステップの情報をキャリブレーション制御部３内の中断情報記憶部１１に記憶しておき、連続リードの終了後に中断情報に基づいて中断したステップからキャリブレーションを再開する。
【００７４】
以上のような動作をすることで、キャリブレーション再実行中でも、システムのパフォーマンスを低下させることなく、再調整ができ、メモリ２からのリード値１０２を最適な箇所にて取り込むことができる。
【００７５】
＜変形例＞
図２は、一実施の形態における変形例のメモリシステムの構成の一例を示す図である。前述の例では、キャッシュメモリ７を用いたが、図２に示すように、フリップフロップ相当のレジスタ２１でも構わない。レジスタ２１を用いた場合、ヒット率は悪くなるが、構成として、キャッシュメモリより物量が小さくできるメリットがある。
【００７６】
＜効果＞
以上説明した一実施の形態におけるメモリ制御装置およびメモリシステムによれば、キャリブレーション再調整において、メモリ２からのリードデータに対応することができる。これにより、メモリ２からのリードデータの取り込み失敗（リードデータ化け）を防止することができる。特に、環境変化検出時や定期的にキャリブレーション再調整を行うことで、環境変化や経年変化等に追随することができる。例えば、インフラ関連や車載関連の制御では、システム立ち上げ後から温度・環境変化が激しいので、このような技術分野に適用して特に効果がある。また、キャリブレーション再調整をできる限り見せなくすることで、システムのパフォーマンス低下を最低限にすることができる。例えば、キャリブレーションの再調整では、数ｍｓオーダが必要なので、その時間、システムの停止を防止することができる。より詳細には、以下の通りである。
【００７７】
（１）メモリシステム内のメモリ制御装置は、上位制御部１からのリード要求に対して、メモリ２からのリードデータの取り込みを制御するキャリブレーション制御部３を有する。キャリブレーション制御部３は、タイミング調整部４と、リードデータ取り込み部５と、再調整指示部８と、ロック位置制御部９と、を含む。タイミング調整部４は、リードデータの取り込み位置のタイミングを調整する。リードデータ取り込み部５は、タイミング調整部４による取り込み位置のタイミングに従い、メモリ２からのリードデータを取り込む。再調整指示部８は、リードデータの取り込み位置の再調整を指示する。ロック位置制御部９は、再調整指示部８による再調整の指示毎にリードデータの取り込み位置の適したロック位置を記憶する。そして、タイミング調整部４は、ロック位置制御部９に記憶されたロック位置に基づいて、リードデータの取り込み位置のタイミングを調整する。このようにして、メモリ２からのリードデータに対応可能なキャリブレーション再調整を実現することができる。
【００７８】
（２）メモリシステム内のメモリ制御装置は、キャッシュメモリ７と、ヒット／ミス判定部６と、リード値選択回路１０と、をさらに有する。キャッシュメモリ７は、上位制御部１からライトされたデータを格納する。ヒット／ミス判定部６は、上位制御部１からリード指示された際に、キャッシュメモリ７に該当するデータが存在するか否かを判定し、この判定結果に基づいて指示する。リード値選択回路１０は、ヒット／ミス判定部６からの指示に基づいて、該当するデータが存在する場合のキャッシュメモリ７からのリードデータ、または、該当するデータが存在しない場合のメモリ２からのキャリブレーション制御部３を経由したリードデータのどちらかのリードデータを選択する。このようなキャッシュ相当の機構を用いることで、キャリブレーション再調整において、リードデータにも対応できるようになる。
【００７９】
（３）メモリ制御装置において、上位制御部１からリード指示された際に、ヒット／ミス判定部６は、キャッシュメモリ７に該当するデータが存在するか否かを判定し、この判定結果に基づいて指示することができる。そして、リード値選択回路１０は、ヒット／ミス判定部６からの指示に基づいて、該当するデータが存在する場合には、キャッシュメモリ７からのリードデータを選択して上位制御部１に出力し、該当するデータが存在しない場合には、メモリ２からのキャリブレーション制御部３を経由したリードデータを選択して上位制御部１に出力することができる。
【００８０】
（４）メモリ制御装置において、該当するデータが存在しない場合には、ヒット／ミス判定部６は、再調整指示部８による再調整時点より前の旧ロック位置に戻す指示をキャリブレーション制御部３に対して発行することができる。そして、キャリブレーション制御部３は、ヒット／ミス判定部６からの指示による旧ロック位置のタイミングに従い、メモリ２からのリードデータを取り込んでリード値選択回路１０に出力することができる。
【００８１】
（５）メモリ制御装置において、再調整指示部８は、環境変化検出時、定期的、またはその両方で、リードデータの取り込み位置の再調整を指示することができる。そして、ロック位置制御部９は、初期設定で決定したロック位置を保持した後に、再調整指示部８による再調整の指示の度にリードデータの取り込み位置の適したロック位置を更新することができる。
【００８２】
（６）メモリ制御装置において、キャリブレーション制御部３は、再調整指示部８からの指示によるリードデータの取り込み位置の再調整の実行中に、上位制御部１からリード指示があり、かつ、該当するデータが存在しない場合には、リードデータの取り込み位置の再調整を中断し、ロック位置制御部９に保持されているロック位置に従い、タイミング調整部４のタイミングを元に戻して、メモリ２からのリードデータを取り込むことができる。
【００８３】
（７）メモリ制御装置において、キャリブレーション制御部３は、リードデータの取り込み位置の再調整を中断した場合に、この中断したステップの情報を中断情報記憶部１１に記憶しておき、メモリ２からのリードデータの取り込みが終了した後に、中断情報記憶部１１に記憶しておいた情報に基づいて、中断したステップからリードデータの取り込み位置の再調整を再開することができる。
【００８４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８５】
例えば、本発明は、周辺環境が厳しく、かつメモリを搭載しているシステムに適用して、特に効果があるが、メモリ以外で、キャリブレーションのような調整機構が必要なシステム等にも応用することができる。
【００８６】
また、上記した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【００８７】
１  上位制御部
２  メモリ
３  キャリブレーション制御部
４  タイミング調整部
５  リードデータ取り込み部
６  ヒット／ミス判定部
７  キャッシュメモリ
８  再調整指示部
９  ロック位置制御部
１０  リード値選択回路
１１  中断情報記憶部
２１  レジスタ
【図１】
0006449727.tif 000002
【図２】
0006449727.tif 000003
【図３】
0006449727.tif 000004
【図４】
0006449727.tif 000005
【図５】
0006449727.tif 000006
【図６】
0006449727.tif 000007
【図７】
0006449727.tif 000008