(57)【要約】【課題】リフレッシュコマンドの発行とキャリブレーションコマンドの発行を連続させないメモリ制御技術を提供する。【解決手段】設定されたリフレッシュサイクルを基準にリフレッシュ動作を要求するためのリフレッシュコマンドを発行し、設定されたキャリブレーションサイクルを基準にキャリブレーション動作を要求するためのキャリブレーションコマンドと、を発行するメモリ制御回路（３０）に、リフレッシュコマンドの発行後所定時間だけキャリブレーションコマンドの発行を抑制し、キャリブレーションコマンドの発行後所定時間だけリフレッシュコマンドの発行を抑制する制御機能を採用する。【選択図】図６
2014135067.tif 000002
【特許請求の範囲】
【請求項１】
ＤＤＲ型のＳＤＲＡＭを制御するメモリ制御回路と、
前記メモリ制御回路に前記ＳＤＲＡＭのアクセスを要求するアクセス要求回路と、を有し、
前記メモリ制御回路は、
前記アクセス要求回路からのアクセス要求に応答するためのアクセスコマンドと、
設定されたリフレッシュサイクルを基準に前記ＳＤＲＡＭの記憶情報を再生するリフレッシュ動作を要求するためのリフレッシュコマンドと、
設定されたキャリブレーションサイクルを基準に前記ＳＤＲＡＭの終端抵抗値を補正するためのキャリブレーション動作を要求するためのキャリブレーションコマンドと、を発行可能とされ、
前記メモリ制御回路は、さらに、
前記リフレッシュコマンドの発行後前記キャリブレーションコマンドの発行を制限する期間を指定する第１レジスタと、
前記キャリブレーションコマンドの発行後前記リフレッシュコマンドの発行を制限する期間を指定する第２レジスタと、を有する、
半導体装置。
【請求項２】
前記メモリ制御回路は、さらに、
前記第１レジスタに設定された期間を計数する第１カウンタと、
前記第２レジスタに設定された期間を計数する第２カウンタと、を備え、
前記リフレッシュコマンドの発行後、前記第１カウンタの計数値が前記第１レジスタの設定された期間を超えるまで、前記キャリブレーションコマンドの発行を制限し、
前記キャリブレーションコマンドの発行後、前記第２カウンタの計数値が前記第２レジスタの設定された期間を超えるまで前記リフレッシュコマンドの発行を制限する、請求項１記載の半導体装置。
【請求項３】
前記メモリ制御回路は、リフレッシュサイクルが設定されるリフレッシュサイクルレジスタと、
前記リフレッシュサイクルレジスタに設定されたリフレッシュサイクルの期間を計数するリフレッシュサイクルカウンタと、を有し、
前記リフレッシュサイクルカウンタによる計数値が第１閾値に到達した以降は、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了していなくても前記リフレッシュコマンドを発行する、請求項２記載の半導体装置。
【請求項４】
前記メモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が前記第１閾値の手前の第２閾値に到達した以降は前記アクセス要求回路からのアクセス要求に応答するアクセスが完了しているとき前記リフレッシュコマンドを発行する、請求項３記載の半導体装置。
【請求項５】
前記メモリ制御回路は、さらに、
リフレッシュコマンド余剰発行回数が設定される最大余剰回数レジスタと、
前記リフレッシュコマンドの発行毎に１をインクリメントし、前記リフレッシュサイクルカウンタによるリフレッシュサイクル期間のカウント満了毎に１をデクリメントする余剰回数カウンタと、を有し、
前記リフレッシュサイクルカウンタによる計数値が前記第２閾値に到達するまでは、前記余剰回数カウンタによる計数値が前記最大余剰回数レジスタの設定値に達していないことを条件に、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了しているとき前記リフレッシュコマンドを発行する、請求項４記載の半導体装置。
【請求項６】
前記メモリ制御回路は、さらに、
キャリブレーションサイクルが設定されるキャリブレーションサイクルレジスタと、
前記キャリブレーションサイクルレジスタに設定されたキャリブレーションサイクルの期間を計数するキャリブレーションサイクルカウンタと、を有し、
前記キャリブレーションサイクルカウンタによる計数値が前記キャリブレーションサイクルレジスタで指定された値に到達し、且つ、前記リフレッシュサイクルカウンタの値がキャリブレーション閾値に達している場合、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了されていなくても前記キャリブレーションコマンドを発行する、請求項３記載の半導体装置。
【請求項７】
前記メモリ制御回路は、前記キャリブレーションサイクルカウンタによる計数値が前記キャリブレーションサイクルレジスタで指定された値に到達し、且つ、前記リフレッシュサイクルカウンタの値がキャリブレーション閾値に達していない場合、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了されている場合に、前記キャリブレーションコマンドを発行する、請求項６記載の半導体装置。
【請求項８】
前記キャリブレーションサイクルカウンタは、前記リフレッシュコマンドの発行毎に計数動作を行い、計数値が前記キャリブレーションサイクルレジスタの設定値に達したとき初期値に戻される、請求項７記載の半導体装置。
【請求項９】
ＣＰＵと、
前記ＣＰＵに結合されたバスと、
前記バスの結合され、ＤＤＲ型のＳＤＲＡＭを制御するメモリ制御回路と、を有し、
前記メモリ制御回路は、
前記ＣＰＵからのアクセス要求に応答するためのアクセスコマンドと、
設定されたリフレッシュサイクルを基準に前記ＳＤＲＡＭの記憶情報を再生するリフレッシュ動作を要求するためのリフレッシュコマンドと、
設定されたキャリブレーションサイクルを基準に前記ＳＤＲＡＭの終端抵抗値を補正するためのキャリブレーション動作を要求するためのキャリブレーションコマンドとを発行可能であり、
前記メモリ制御回路は、さらに、
前記リフレッシュコマンドの発行後における前記キャリブレーションコマンドの発行を制限する期間を指定する第１レジスタと、
前記キャリブレーションコマンドの発行後における前記リフレッシュコマンドの発行を制限する期間を指定する第２レジスタと、を有する、
１個の半導体基板に形成されたマイクロコンピュータ。
【請求項１０】
前記メモリ制御回路は、さらに、
前記第１レジスタに設定された期間を計数する第１カウンタと、
前記第２レジスタに設定された期間を計数する第２カウンタと、を備え、
前記リフレッシュコマンドの発行後、前記第１カウンタの計数値が前記第２レジスタの設定された期間を超えるまで、前記キャリブレーションコマンドの発行を制限し、
前記キャリブレーションコマンドの発行後、前記第２カウンタの計数値が前記第１レジスタの設定された期間を超えるまで前記リフレッシュコマンドの発行を制限する、請求項９記載のマイクロコンピュータ。
【請求項１１】
ＤＤＲ型のＳＤＲＡＭを制御するメモリ制御回路と、
前記メモリ制御回路に前記ＳＤＲＡＭのアクセスを要求するアクセス要求回路と、を有し、
前記メモリ制御回路は、
前記アクセス要求回路からのアクセス要求に応答するためのアクセスコマンドと、
設定されたリフレッシュサイクルを基準に前記ＳＤＲＡＭの記憶情報を再生するリフレッシュ動作を要求するためのリフレッシュコマンドと、
設定されたキャリブレーションサイクルを基準に前記ＳＤＲＡＭの終端抵抗値を補正するためのキャリブレーション動作を要求するためのキャリブレーションコマンドと、を発行可能とされ、
前記メモリ制御回路は、さらに、
前記リフレッシュコマンドの発行後における前記キャリブレーションコマンドの発行を抑止する期間を指定する第１レジスタ、を有する半導体装置。
【請求項１２】
前記メモリ制御回路は、さらに、
前記第１レジスタに設定された期間を計数する第１カウンタを備え、
前記リフレッシュコマンドの発行後、前記第１カウンタの計数値が前記第１レジスタの設定された期間を超えるまで、前記キャリブレーションコマンドの発行を抑止する、請求項１１記載の半導体装置。
【請求項１３】
前記メモリ制御回路は、さらに、
前記キャリブレーションコマンドの発行後における前記リフレッシュコマンドの発行を抑止する期間を指定する第２レジスタを、有する、
請求項１１または１２記載の半導体装置。
【請求項１４】
前記メモリ制御回路は、さらに、
前記第２レジスタに設定された期間を計数する第２カウンタを備え、
前記キャリブレーションコマンドの発行後、前記第２カウンタの計数値が前記第２レジスタの設定された期間を超えるまで前記リフレッシュコマンドの発行を抑止しする、請求項１３記載の半導体装置。
【請求項１５】
ＤＤＲ型のＳＤＲＡＭを制御するメモリ制御回路と、
前記メモリ制御回路に前記ＳＤＲＡＭのアクセスを要求するアクセス要求回路と、を有し、
前記メモリ制御回路は、
前記アクセス要求回路からのアクセス要求に応答するためのアクセスコマンドと、
設定されたリフレッシュサイクルを基準に前記ＳＤＲＡＭの記憶情報を再生するリフレッシュ動作を要求するためのリフレッシュコマンドと、
設定されたキャリブレーションサイクルを基準に前記ＳＤＲＡＭの終端抵抗値を補正するためのキャリブレーション動作を要求するためのキャリブレーションコマンドと、を発行可能とされ、
前記メモリ制御回路は、さらに、
前記キャリブレーションコマンドの発行後における前記リフレッシュコマンドの発行を抑止する期間を指定する第１レジスタ、を有する半導体装置。
【請求項１６】
前記メモリ制御回路は、さらに、
前記第１レジスタに設定された期間を計数する第１カウンタを備え、
前記キャリブレーションコマンドの発行後、前記第１カウンタの計数値が前記第１レジスタの設定された期間を超えるまで前記リフレッシュコマンドの発行を抑止しする、請求項１５記載の半導体装置。
【請求項１７】
前記メモリ制御回路は、さらに、
前記リフレッシュコマンドの発行後における前記キャリブレーションコマンドの発行を抑止する期間を指定する第２レジスタ、を有する、請求項１５または１６記載の半導体装置。
【請求項１８】
前記メモリ制御回路は、さらに、
前記第２レジスタに設定された期間を計数する第２カウンタを備え、
前記リフレッシュコマンドの発行後、前記第２カウンタの計数値が前記第２レジスタの設定された期間を超えるまで、前記キャリブレーションコマンドの発行を抑止する、請求項１７記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＤＲ（Double Data Rate）型のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）であるＤＤＲ−ＳＤＲＡＭを制御するメモリ制御技術、特にリフレッシュコマンドとキャリブレーションコマンドの発行制御技術に関し、例えばＤＤＲ−ＳＤＲＡのメモリ制御回路を備えたマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
ＤＤＲ−ＳＤＲＡＭには、蓄積容量の電荷情報がリークしてデータ反転を生ずる前に記憶情報を再生するリフレッシュ動作が必要とされ、また、データ系の外部インタフェース回路に終端抵抗を設けることで容易にデバイス端での信号反射を抑制して高速データ転送に必要な波形品質を確保するというダイナミックオンダイターミネーション（Dynamic On Die Termination）が採用されている。それによる抵抗値は選択可能にされる。ダイナミックオンダイターミネーション（単にダイナミックＯＤＴとも称する）によって選択可能な抵抗値は抵抗の温度特性や電源電圧を考慮して決定しなければならないため、ダイナミックＯＤＴによる抵抗値を補正するためのキャリブレーション動作が可能にされる。
【０００３】
特許文献１にはダイナミックＯＤＴによる抵抗値を補正するためのキャリブレーション動作を指示するコマンドを発行するメモリコントローラについて記載される。
【０００４】
特許文献２にはＤＤＲ−ＳＤＲＡＭにおけるダイナミックＯＤＴによるキャリブレーション回路や補正回路について記載される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−４８３８４号公報
【特許文献２】特開２００９−２８４２６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ダイナミックＯＤＴによる抵抗値を補正するためのキャリブレーション動作中はＤＤＲ−ＳＤＲＳＡＭはアクセスコマンドを受け付けることができない。リフレッシュ動作中にアクセスコマンドを受け付けることができないのと同様である。リフレッシュ動作は所定時間内にメモリセルアレイ内の全てのメモリセルを一巡するように行われなければならない。また、信号品質を維持するためにはキャリブレーション動作も所定時間毎に繰り返し行われることが必要になる。メモリ制御回路は、所定のリフレッシュインターバル毎にＤＤＲ−ＳＤＲＡＭにリフレッシュ動作を指示するためのリフレッシュコマンドを発行し、また、所定のキャリブレーションインターバル毎にＤＤＲ−ＳＤＲＡＭにキャリブレーション動作を指示するためのキャリブレーションコマンドを発行する。
【０００７】
キャリブレーション動作及びリフレッシュ動作には比較的長い時間を要するため、双方が連続すると、アクセスコマンドの発行待ち時間が長くなる。従来のＤＤＲ−ＳＤＳＲＡＭに対するメモリ制御技術においては、リフレッシュコマンドの発行とキャリブレーションコマンドの発行が連続しないようにタイミング制御する工夫がなされていない。
【０００８】
本発明の目的は、リフレッシュコマンドの発行とキャリブレーションコマンドの発行を連続させないメモリ制御技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、設定されたリフレッシュサイクルを基準にリフレッシュ動作を要求するためのリフレッシュコマンドを発行し、設定されたキャリブレーションサイクルを基準にキャリブレーション動作を要求するためのキャリブレーションコマンドとを発行するメモリ制御回路に、リフレッシュコマンドの発行後所定時間だけキャリブレーションコマンドの発行を抑制し、キャリブレーションコマンドの発行後所定時間だけリフレッシュコマンドの発行を抑制する制御機能を採用する。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、リフレッシュコマンドの発行とキャリブレーションコマンドの発行を連続させないようにメモリ制御を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】図１は本発明の一実施の形態に係るデータ処理システムのブロック図である。
【図２】図２はキャリブレーションコマンド（ＺＱＣＳコマンド）の説明図である
【図３】図３はリフレッシュコマンド（ＲＥＦコマンド）の説明図である。
【図４】図４はＳＤＲＡＭコントローラとＳＤＲＡＭとの接続形態として２個のＳＤＲＡＭのデータ入出力端子をＳＤＲＡＭコントローラの対応するデータ入出力端子に共通接続した構成を採用したデータ処理システムのブロック図である。
【図５】図５は２個のＳＤＲＡＭのデータ入出力端子をＳＤＲＡＭコントローラの上位側データ入出力端子と下位側データ入出力端子に分け、同じくデータストローブ信号についても２個のＳＤＲＡＭに対して上位側と下位側で個別に接続して２個のＳＤＲＡＭを並列動作させるような接続形態を採用したデータ処理システムのブロック図である。
【図６】図６はＳＤＲＡＭコントローラの具体例を示すブロック図である。
【図７】図７はＳＤＲＡＭコントローラによるリフレッシュコマンド及びキャリブレーションコマンドの発行タイミングを例示するタイミングチャートである。
【図８】図８は図７に対し上記抑止期間の制御を行わない場合の比較例にかかるタイミングチャートである。
【図９】図９はリフレッシュコマンドを用いるオートリフレッシュの全体的な制御フローチャートである。
【図１０】図１０は先行リフレッシュ動作の制御フローチャートである。
【図１１】図１１は強制リフレッシュ動作の制御フローチャートである。
【図１２】図１２は緊急リフレッシュ動作の制御フローチャートである。
【図１３】図１３はキャリブレーションコマンドを用いるオートキャリブレーションの全体的な制御フローチャートである。
【図１４】図１４は通常キャリブレーション動作の制御フローチャートである。
【図１５】図１５は緊急キャリブレーション動作の制御フローチャートである。
【図１６】図１６は通常キャリブレーション動作を行う場合の動作タイミングチャートである。
【図１７】図１７は緊急キャリブレーションを行う場合の動作タイミングチャートである。
【図１８】図１８はＳＤＲＡＭコントローラが選択的にチップ選択を行う複数個のＳＤＲＡＭに対して並列にキャリブレーション動作を行う場合の動作タイミングチャートである。
【図１９】図１９はＳＤＲＡＭコントローラが選択的にチップ選択を行う複数個のＳＤＲＡＭに対してキャリブレーション動作を順次連続実行する場合の動作タイミングチャートである。
【図２０】図２０はＳＤＲＡＭコントローラが選択的にチップ選択を行う複数個のＳＤＲＡＭに対して複数個のＳＤＲＡＭに対してキャリブレーション動作をラウンドロビンアルゴリズムにより逐次的に行う場合の動作タイミングチャートである。
【発明を実施するための形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕＜リフレッシュコマンドとキャリブレーションコマンドの連続発行を抑制＞
本発明の代表的な実施の形態に係る半導体装置（１）は、ＤＤＲ型のＳＤＲＡＭ（２（２＿ａ，２＿ｂ））を制御するメモリ制御回路（２０）と、前記メモリ制御回路に前記ＳＤＲＡＭのアクセスを要求するアクセス要求回路（１０〜１４）と、を有する。前記メモリ制御回路は、前記アクセス要求回路からのアクセス要求に応答するためのアクセスコマンド（ＡＣＴ，ＲＥＡＤ）と、設定されたリフレッシュサイクルを基準に前記ＳＤＲＡＭの記憶情報を再生するリフレッシュ動作を要求するためのリフレッシュコマンド（ＲＥＦ）と、設定されたキャリブレーションサイクルを基準に前記ＳＤＲＡＭの内部状態を補正するためのキャリブレーション動作を要求するためのキャリブレーションコマンド（ＺＱＣＳ）とを発行し、前記リフレッシュコマンドの発行後所定時間だけ前記キャリブレーションコマンドの発行を抑制し、前記キャリブレーションコマンドの発行後所定時間だけ前記リフレッシュコマンドの発行を抑制する。
【００１７】
これにより、リフレッシュコマンドの発行とキャリブレーションコマンドの発行を連続させないようにすることができ、双方のコマンドが連続することによるアクセス速度の低下を防止することができる。
【００１８】
〔２〕＜ｒｚｃｎｔ、ｚｒｃｎｔ、ＴＣＡＬＲＺ、ＴＣＡＬＺＲ＞
項１の半導体装置において、前記メモリ制御回路は、前記リフレッシュコマンドの発行後、前記キャリブレーションコマンドの発行を抑制する期間を指定する第１抑制期間レジスタ（ＴＣＡＬＲＺ）と、前記第１抑制期間レジスタに設定された期間を計数する第１抑制期間カウンタ（ｒｚｃｎｔ）と、前記キャリブレーションコマンドの発行後前記リフレッシュコマンドの発行を抑制する期間を指定する第２抑制期間レジスタ（ＴＣＡＬＺＲ）と、前記第２抑制期間レジスタに設定された期間を計数する第２抑制期間カウンタ（ｚｒｃｎｔ）と、を備える。メモリ制御回路は、前記キャリブレーションコマンドの発行後に第１抑制期間カウンタの計数値が第１抑制期間レジスタの設定された期間を超えるまでリフレッシュコマンドの発行を抑止し、前記リフレッシュコマンドの発行後に第２抑制期間カウンタの計数値が第２抑制期間レジスタの設定された期間を超えるまでキャリブレーションコマンドの発行を抑止する。
【００１９】
抑止期間を抑制期間レジスタにプログラマブルに設定することが可能である。
【００２０】
〔３〕＜リフレッシュサイクルカウント値に応ずる緊急リフレッシュ＞
項２の半導体装置において、前記メモリ制御回路は、リフレッシュサイクルが設定されるリフレッシュサイクルレジスタ（ＲＥＦＩＮＴ）と、前記リフレッシュサイクルレジスタに設定されたリフレッシュサイクルの期間を計数するリフレッシュサイクルカウンタ（ｉｎｔｃｎｔ）とを有する。メモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が第１閾値（ＲＥＦＴＨ０）に到達した以降は前記アクセス要求回路からのアクセス要求に応答するアクセスが完了していなくても前記リフレッシュコマンドを発行する。
【００２１】
リフレッシュ休止期間が長くなった緊急時に対処することができる。緊急にリフレッシュコマンドを発行したとき、メモリ制御回路はそのリフレッシュコマンドの発行によって中断した期間をメモリアクセスのウェイトサイクルとして制御すればよい。
【００２２】
〔４〕＜リフレッシュサイクルカウント値に応ずる強制リフレッシュ＞
項３の半導体装置において、前記メモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が前記第１閾値の手前の第２閾値（ＲＥＦＴＨ）に到達した以降は前記アクセス要求回路からのアクセス要求に応答するアクセスが完了しているとき前記リフレッシュコマンドを発行する。
【００２３】
リフレッシュ動作の緊急度が低い場合には、前記アクセス要求回路からのアクセス要求に対するＳＤＲＡＭアクセスの連続性が保証されてアクセス性能が低下しないようになる。
【００２４】
〔５〕＜余剰回数カウント値に応ずる先行リフレッシュの有無＞
項４の半導体装置において、前記メモリ制御回路は、リフレッシュコマンド余剰発行回数が設定される最大余剰回数レジスタ（ＲＥＦＰＭＡＸ）と、前記リフレッシュコマンドの発行毎に１をインクリメントし、前記リフレッシュサイクルカウンタによるリフレッシュサイクル期間のカウント満了毎に１をデクリメントする余剰回数カウンタ（ｐｃｎｔ）を有する。このときメモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が前記第２閾値に到達するまでは、前記余剰回数カウンタによる計数値が前記最大余剰回数レジスタの設定値に達していないことを条件に、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了しているとき前記リフレッシュコマンドを発行する。
【００２５】
ＳＤＲＡＭに対するアクセスがないときいつでもリフレッシュ動作を行えば、動作に無駄を生ずるだけでなくアクセス要求回路によるＳＤＲＡＭへのアクセスの機会を減ずる結果にもなる。余剰回数カウント値を考慮することによってそのような欠点を顕在化させずに済む。要するに、リフレッシュ動作の緊急度が更に低い場合にはＳＤＲＡＭに対する前記アクセス要求回路からのアクセスをリフレッシュ動作に対して最優先とすることができる。
【００２６】
〔６〕＜キャリブレーションサイクルカウント値に応ずる緊急キャリブレーション＞
項３の半導体装置において、前記メモリ制御回路は、キャリブレーションサイクルが設定されるキャリブレーションサイクルレジスタ（ＣＡＬＩＮＴ）と、前記キャリブレーションサイクルレジスタに設定されたキャリブレーションサイクルの期間を計数するキャリブレーションサイクルカウンタ（ｃａｌｃｎｔ）とを有する。このとき、前記メモリ制御回路は、前記キャリブレーションサイクルカウンタによる計数値が前記キャリブレーションサイクルレジスタで指定された値に到達し、且つ前記リフレッシュサイクルカウンタの値がキャリブレーション閾値（ＣＡＬＴＨ０）に達している場合には前記アクセス要求回路からのアクセス要求に応答するアクセスが完了されていなくても前記キャリブレーションコマンドを発行する。
【００２７】
キャリブレーション休止期間が長くなった緊急時に対処することができる。緊急にキャリブレーションコマンドを発行したとき、メモリ制御回路はそのキャリブレーションコマンドの発行によって中断した期間をメモリアクセスのウェイトサイクルとして制御すればよい。
【００２８】
〔７〕＜キャリブレーションサイクルカウント値に応ずる通常キャリブレーション＞
項６の半導体装置において、前記メモリ制御回路は、前記キャリブレーションサイクルカウンタによる計数値が前記キャリブレーションサイクルレジスタで指定された値に到達し、且つ前記リフレッシュサイクルカウンタの値がキャリブレーション閾値に達していない場合には、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了されている場合に前記キャリブレーションコマンドを発行する。
【００２９】
キャリブレーション動作の緊急度が低い場合には前記アクセス要求回路からのアクセス要求に対するＳＤＲＡＭアクセスの連続性が保証されてアクセス性能が低下しないようになる。
【００３０】
〔８〕＜キャリブレーションサイクルカウンタの制御＞
項７の半導体装置において、前記キャリブレーションサイクルカウンタは、リフレッシュコマンドの発行毎に計数動作を行い、計数値がキャリブレーションサイクルレジスタの設定値に達したとき初期値に戻される。
【００３１】
リフレッシュ動作を行うべき間隔に対してキャリブレーション動作を行うべき間隔が長いとき、キャリブレーションサイクルカウンタの計数動作の制御が容易になる。特に、前述の緊急にキャリブレーションコマンドを発行すべきかを前記リフレッシュサイクルカウンタの値がキャリブレーション閾値（ＣＡＬＴＨ０）に達しているか否かによって判別する動作との整合性に優れる。
【００３２】
〔９〕＜リフレッシュコマンドとキャリブレーションコマンドの連続発行を抑制＞
本発明の別の実施の形態に係るデータ処理システムは、ＤＤＲ型のＳＤＲＡＭ（２（２＿ａ，２＿ｂ））と、前記ＳＤＲＡＭに接続されるマイクロコンピュータ（１）とを有する。前記マイクロコンピュータは、前記ＳＤＲＡＭを制御するメモリ制御回路（２０）と、前記メモリ制御回路に前記ＳＤＲＡＭのアクセスを要求するアクセス要求回路（１０〜１４）とを有する。前記メモリ制御回路は、前記アクセス要求回路からのアクセス要求に応答するためのアクセスコマンドと、設定されたリフレッシュサイクルを基準に前記ＳＤＲＡＭの記憶情報を再生するリフレッシュ動作を要求するためのリフレッシュコマンドと、設定されたキャリブレーションサイクルを基準に前記ＳＤＲＡＭの内部状態を補正するためのキャリブレーション動作を要求するためのキャリブレーションコマンドとを発行し、前記リフレッシュコマンドの発行後、所定時間だけ前記キャリブレーションコマンドの発行を抑制し、前記キャリブレーションコマンドの発行後、所定時間だけ前記リフレッシュコマンドの発行を抑制する。
【００３３】
これにより、リフレッシュコマンドの発行とキャリブレーションコマンドの発行を連続させないようにすることができ、双方のコマンドが連続することによるＳＤＲＡＭに対するアクセス速度の低下を防止することができる。
【００３４】
〔１０〕＜オンチップＣＰＵ＞
項９のデータ処理システムは前記アクセス要求回路の一つとしてＣＰＵ（中央処理装置）を有する。
【００３５】
〔１１〕＜ｒｚｃｎｔ、ｚｒｃｎｔ＞
項９のデータ処理システムにおいて、前記メモリ制御回路は、前記ＣＰＵによって指定された第１抑制期間を計数する第１抑制期間カウンタと、前記ＣＰＵによって指定された第２抑制期間を計数する第２抑制期間カウンタと、を備える。このとき、メモリ制御回路は、前記キャリブレーションコマンドの発行後に第１抑制期間カウンタの計数値が第１抑制期間を超えるまでリフレッシュコマンドの発行を抑止し、前記リフレッシュコマンドの発行後に第２抑制期間カウンタの計数値が第２抑制期間を超えるまでキャリブレーションコマンドの発行を抑止する。
【００３６】
ＣＰＵを用いて抑止期間をプログラマブルに指定することが可能である。
【００３７】
〔１２〕＜リフレッシュサイクルカウント値に応ずる緊急リフレッシュ＞
項１１のデータ処理システムにおいて、前記メモリ制御回路は、前記ＣＰＵによって指定されたリフレッシュサイクルの期間を計数するリフレッシュサイクルカウンタを有する。このときメモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が第１閾値に到達した以降は前記アクセス要求回路からのアクセス要求に応答するアクセスが完了していなくても前記リフレッシュコマンドを発行する。
【００３８】
リフレッシュ休止期間が長くなった緊急時に対処することができる。緊急にリフレッシュコマンドを発行したとき、メモリ制御回路はそのリフレッシュコマンドの発行によって中断した期間をメモリアクセスのウェイトサイクルとして制御すればよい。
【００３９】
〔１３〕＜リフレッシュサイクルカウント値に応ずる強制リフレッシュ＞
項１２のデータ処理システムにおいて、前記メモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が前記第１閾値の手前の第２閾値に到達した以降は、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了しているとき前記リフレッシュコマンドを発行する。
【００４０】
リフレッシュ動作の緊急度が低い場合には、前記アクセス要求回路からのアクセス要求に対するＳＤＲＡＭアクセスの連続性が保証されてアクセス性能が低下しないようになる。
【００４１】
〔１４〕＜余剰回数カウント値に応ずる先行リフレッシュの有無＞
項１３のデータ処理システムにおいて、前記メモリ制御回路は、リフレッシュコマンド余剰発行回数が設定される最大余剰回数レジスタと、前記リフレッシュコマンドの発行毎に１をインクリメントし、前記リフレッシュサイクルカウンタによるリフレッシュサイクル期間のカウント満了毎に１をデクリメントする余剰回数カウンタを有する。このとき、前記メモリ制御回路は、前記リフレッシュサイクルカウンタによる計数値が前記第２閾値に到達するまでは、前記余剰回数カウンタによる計数値が前記最大余剰回数レジスタの設定値に達していないことを条件に、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了しているときに前記リフレッシュコマンドを発行する。
【００４２】
ＳＤＲＡＭに対するアクセスがないときいつでもリフレッシュ動作を行えば、動作に無駄を生ずるだけでなくアクセス要求回路によるＳＤＲＡＭへのアクセスの機会を減ずる結果にもなる。余剰回数カウント値を考慮することによってそのような欠点を顕在化させずに済む。要するに、リフレッシュ動作の緊急度が更に低い場合にはＳＤＲＡＭに対する前記アクセス要求回路からのアクセスをリフレッシュ動作に対して最優先とすることができる。
【００４３】
〔１５〕＜キャリブレーションサイクルカウント値に応ずる緊急キャリブレーション＞
項１２のデータ処理システムにおいて、前記メモリ制御回路は、前記ＣＰＵによって指定されたキャリブレーションサイクルの期間を計数するキャリブレーションサイクルカウンタを有する。このとき前記メモリ制御回路は、前記キャリブレーションサイクルカウンタによる計数値が前記キャリブレーションサイクルの期間に到達し、且つ前記リフレッシュサイクルカウンタの値がキャリブレーション閾値に達している場合には、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了されていなくても前記キャリブレーションコマンドを発行する。
【００４４】
これによって、キャリブレーション休止期間が長くなった緊急時に対処することができる。緊急にキャリブレーションコマンドを発行したとき、メモリ制御回路はそのキャリブレーションコマンドの発行によって中断した期間をメモリアクセスのウェイトサイクルとして制御すればよい。
【００４５】
〔１６〕＜キャリブレーションサイクルカウント値に応ずる通常キャリブレーション＞
項１５のデータ処理システムにおいて、前記メモリ制御回路は、前記キャリブレーションサイクルカウンタによる計数値が前記キャリブレーションサイクルの期間に到達し、且つ前記リフレッシュサイクルカウンタの値がキャリブレーション閾値に達していない場合には、前記アクセス要求回路からのアクセス要求に応答するアクセスが完了している場合に前記キャリブレーションコマンドを発行する。
【００４６】
キャリブレーション動作の緊急度が低い場合には前記アクセス要求回路からのアクセス要求に対するＳＤＲＡＭアクセスの連続性が保証されてアクセス性能が低下しないようになる。
【００４７】
〔１７〕＜キャリブレーションサイクルカウンタの制御＞
項１６のデータ処理システムにおいて、無前記キャリブレーションサイクルカウンタは、リフレッシュコマンドの発行毎に計数動作を行い、計数値がキャリブレーションサイクルの期間に達したとき初期値に戻される。
【００４８】
リフレッシュ動作を行うべき間隔に対してキャリブレーション動作を行うべき間隔が長いとき、キャリブレーションサイクルカウンタの計数動作の制御が容易になる。特に、前述の緊急にキャリブレーションコマンドを発行すべきかを前記リフレッシュサイクルカウンタの値がキャリブレーション閾値（ＣＡＬＴＨ０）に達しているか否かによって判別する動作との整合性に優れる。
【００４９】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５０】
《データ処理システム》
図１には本発明の一実施の形態に係るデータ処理システムが示される。データ処理システムはマイクロコンピュータ（ＭＣＵ）１に１個のＤＤＲ３形態のＳＤＲＡＭ２が接続されて構成される。ＭＣＵ１及びＳＤＲＡＭ２は夫々別々の半導体装置とされ、特に制限されないが、単結晶シリコンのような１個の半導体基板にＣＭＯＳ集積回路製造技術によって形成される。
【００５１】
マイクロコンピュータ１は、特に制限されないが、ＣＰＵ１０、ＤＭＡＣ１１、描画コントローラ（ＤＲＷＣ）１２、表示コントローラ（ＤＩＳＰＣ）１３、ネットワークコントローラ（ＮＥＴＣ）１４、クロックパルスジェネレータ（ＣＰＧ）１５、画像コーデック（ＶＣＯＤＥＣ）１６、音声コーデック（ＳＣＯＤＥＣ）１７、タイマ（ＴＭＲ）１８、シリアルインタフェース（ＳＲＬＩＦ）１９、メモリ制御回路としてのＳＤＲＡＭコントローラ（ＳＤＲＡＭＣ）２０を有し、それら回路モジュールは内部バス（ＩＢＵＳ）２１を介してデータなどの入出力を行う。
【００５２】
ＣＰＵ１０はＳＤＲＡＭ２のプログラム領域に格納されているプログラムを実行する。ＤＭＡＣ１１はＣＰＵによって設定されたデータ転送条件にしたがってＳＤＲＡＭ２などとの間のデータ転送制御を行う。描画コントローラ１２はＳＤＲＡＭ２のフレームバッファ領域に画像データの描画制御を行う。表示コントローラ１３はＳＤＲＡＭ２のフレームバッファ領域に描画された画像データに表示制御を行う。ネットワークコントローラ１４は、ＣＰＵ１０によって指定されたネットワークプロトコルに従ってＳＤＲＡＭ２の通信バッファ領域の送信データの送信し又は受信データを通信バッファ領域に格納する通信制御を行う。ＳＤＲＡＭコントローラ２０はアクセス要求回路としてのＣＰＵ１０，ＤＭＡＣ１１，描画コントローラ１２、表示コントローラ１３、及びネットワークコントローラ１４からのアクセス要求に応答してＳＤＲＡＭ２に対するインタフェース制御を行う。
【００５３】
内部バス２１は、特に制限されないが、スプリットトランザクションバスで構成され、アクセスを要求するＣＰＵ１０などの回路モジュール（イニシエータ）はリクエストパケットを出力することによってアクセスを要求し、アクセスされるＳＤＲＡＭ２に接続されたＳＤＲＡＭコントローラ２０などの回路モジュール（ターゲット）はアクセス要求に対する応答結果をレスポンスパケットによってイニシエータに返す。イニシエータとターゲットとの間のリクエストパケットとレスポンスパケットに対するルーティングと競合するパケット間の調停は図示を省略するルータが行う。
【００５４】
ＳＤＲＡＭ２は相補クロック信号ＣＫ，ＣＫ＃（記号＃は位相反転信号又はローイネーブル信号であることを意味する）の立ち上がりと立下りの双方に同期して書き込みデータの入力と読み出しデータの出力を行う。前記クロック信号ＣＫ，ＣＫ＃はクロックイネーブル信号ＣＫＥが活性化されていることを条件に有効とされる。複数ビットの入出力データはＤＱで代表され、読み出し及び書き込みのデータＤＱの確定はデータストローブ信号ＤＱＳ，ＤＱＳ＃が示し、書き込み、読み出し、リフレッシュ、ダイナミックオンダイターミネーションなどの動作はチップ選択信号ＣＳ＃、ロウアドレスストローブ信号ＲＡＳ＃、カラムアドレスストローブ信号ＣＡＳ＃、及びライトイネーブル信号ＷＥ＃などのレベル信号の組み合わせによって決まるコマンドによって指示される。ＢＡ０−ＢＡ２は多数のダイナミック型メモリセルがマトリクス配置されたメモリアレイを構成するメモリバンクのバンク選択信号、Ａ０−Ａ１５はバンク内のアドレス信号を意味する。ＤＭは並列データの一部をマスクするためのデータマスク信号、ＲＥＳＥＴ＃はＳＤＲＡＭ２に対するリセット信号、ＯＤＴはオンダイターミネーションによる終端抵抗をデータ系回路に接続するか否かを指示する指示信号である。データ系回路は、特に制限されないが、データＤＱ及びデータストローブ信号ＤＱＳ、ＤＱＳ＃の入出力インタフェース回路を意味する。グランドＧＮＤとの間に接続されたＺＱはダイナミックオンダイターミネーションによる終端抵抗の抵抗値を補正する補正回路による補正の基準として用いられる抵抗素子である。
【００５５】
ＳＤＲＡＭ２との間の前記信号ＣＫ，ＣＫ＃，ＣＫＥ，ＣＳ＃，ＲＡＳ＃，ＣＡＳ＃，ＷＥ＃，ＤＭ，ＢＡ０−ＢＡ２，Ａ０−Ａ１５，ＲＥＳＥＴ＃，ＤＱ，ＤＱＳ，ＤＱＳ＃，ＯＤＴの入出力はＳＤＲＡＭコントローラ２０が行う。
【００５６】
ＳＤＲＡＭ２の詳細な構成については本発明に直接関係ないのでここでは詳細な説明は省略する。本発明はＳＤＲＡＭ２におけるリフレッシュ動作とダイナミックオンダイターミネーションによる終端抵抗の抵抗値を補正するキャリブレーション動作に関係するので、双方の動作を指示するコマンドについて具体的に説明する。
【００５７】
キャリブレーションコマンド（ＺＱＣＳコマンド）は図２に例示されるように、ＣＳ＃＝Ｌ（ローレベル）、ＲＡＳ＃＝Ｈ、ＣＡＳ＃＝Ｈ（ハイレベル）、ＷＥ＃＝Ｌ、Ａ１０＝Ｌによって指示され、その他の信号値は任意でよい。ＳＤＲＡＭコントローラ２０からＳＤＲＡＭ２にキャリブレーションコマンドが発行されると、ＳＤＲＡＭ２は外部抵抗ＺＱの抵抗値を基準に温度及び電源電圧に対してデータ出力系の終端抵抗値を補正する。
【００５８】
所謂オートリフレッシュとしてのリフレッシュコマンド（ＲＥＦコマンド）は図３に例示されるように、ＣＳ＃＝Ｌ、ＲＡＳ＃＝Ｌ、ＣＡＳ＃＝Ｌ、ＷＥ＃＝Ｈによって指示される。ＳＤＲＡＭコントローラ２０からＳＤＲＡＭ２にリフレッシュコマンドが発行されると、ＳＤＲＡＭ２は、ワード線選択動作とそれによって相補ビット線に読み出された電荷情報のセンス増幅動作を行ってダイナミック型のメモリセルが保持する記憶情報の再生を行う。
【００５９】
ＳＤＲＡＭコントローラ２０とＳＤＲＡＭ２との接続形態は図１の１個のＳＤＲＡＭ２を用いる構成に限定されず、図４に例示されるように例えば２個のＳＤＲＡＭ２＿ａ，２＿ｂのデータ入出力端子をＳＤＲＡＭコントローラ２０の対応するデータ入出力端子に共通接続し、別々のチップ選択信号ＣＳ０＃，ＣＳ１＃、別々のクロックイネーブル信号ＣＫＥ＃０，ＣＫＥ＃１と、別々のオンダイターミネーション信号ＯＤＴ＃０，ＯＤＴ＃１で２個のＳＤＲＡＭ２＿ａ，２＿ｂを個別に動作を選択するような接続形態を採用してもよい。この場合にはその他の信号ＣＫ，ＣＫ＃，ＲＡＳ＃，ＣＡＳ＃，ＷＥ＃，ＤＭ，ＲＥＳＥＴ＃，ＤＱＳ，ＤＱＳ＃は双方のＳＤＲＡＭ２＿ａ，２＿ｂに共通に用いればよい。また、図５に例示されるように、例えば２個のＳＤＲＡＭ２＿ａ，２＿ｂのデータ入出力端子をＳＤＲＡＭコントローラ２０の上位側データ入出力端子と下位側データ入出力端子に分け、同じくデータストローブ信号についても２個のＳＤＲＡＭ２＿ａ，２＿ｂに対して上位側と下位側で個別に接続して２個のＳＤＲＡＭ２＿ａ，２＿ｂを並列動作させるような接続形態を採用してもよい。この場合にはその他の信号ＣＳ＃，クロックイネーブル信号ＣＫＥ＃、ＯＤＴ＃、ＣＫ，ＣＫ＃，ＲＡＳ＃，ＣＡＳ＃，ＷＥ＃，ＤＭ，ＲＥＳＥＴ＃は双方のＳＤＲＡＭ２＿ａ，２＿ｂに共通に用いられる。
【００６０】
ＳＤＲＡＭコントローラ２０に対するＳＤＲＡＭ２の接続形態が図１、図４又は図５の何れであってもＳＤＲＡＭコントローラ２０が発行する上記フレッシュコマンド及びキャリブレーションコマンドに相違はない。ＳＤＲＡＭコントローラ２０はこれに接続される全てのＳＤＲＡＭに対して所定のインターバル毎にリフレッシュを完了させなければならず、また、所定のインターバル毎にダイナミックオンダイターミネーションによる終端抵抗に対する温度や電源電圧の変動による影響を補正しなければならないからである。
【００６１】
図６にはＳＤＲＡＭコントローラ２０の具体例が示される。ＳＤＲＡＭコントローラ２０はＤＤＲインタフェース制御部（ＤＤＲＣ）３０とＤＤＲインタフェース部（ＤＤＲＩＦ）３１から成る。ＤＤＲインタフェース制御部３０はリクエスト制御部３２、レスポンス制御部３３、レジスタ部３４、及びデバイス制御部３５から成る。リクエスト制御部３２は内部バス２１から与えられるリクエストパケットを分解して、メモリリード、メモリライト、レジスタリード、及びレジスタライトなどのインストラクションとライトデータなどを得る。レジスタ３４にはＳＤＲＡＭの制御に必要な後述する制御データがＣＰＵ１０によって初期設定される複数のレジスタを有する。デバイス制御回路３５は、詳細を後述するカウンタなどの演算回路や制御ロジック３６を有し、リクエスト制御部３２から与えたれたインストラクションにしたがった制御コマンドを生成し、制御コマンドの生成には必要に応じてレジスタ部３４が保有する制御データなどを参照する。レジスタアクセスのための制御コマンドはレジスタ部３４に与えられ、メモリアクセスのための制御コマンドはＤＤＲインタフェース部３１に与えられる。
【００６２】
ＤＤＲインタフェース部３１は与えられた制御コマンドに従ってＳＤＲＡＭ２を制御するためＲＡＳ＃，ＣＡＳ＃，ＷＥ＃，ＤＱＳ，ＤＱＳ＃、ＣＫＥ＃などの制御信号をクロック信号ＣＫ，ＣＫ＃に同期するタイミングで生成し、リード動作の場合にはＳＤＲＡＭ２から出力されたリードデータＤＱを受け取ってデバイス制御回路３５に返す。ライト動作の場合にはＳＤＲＡＭ２にライトデータを供給する。リフレッシュ動作の場合にはリフレッシュコマンドをＳＤＲＡＭ２に与え、キャリブレーション動作の場合にはキャリブレーションコマンドをＳＤＲＡＭ２に与える。
【００６３】
レスポンス制御部３３はレジスタアクセス及びメモリアクセスのアクセス結果からレスポンスパケットを生成し、アクセス要求元（ＣＰＵ等が含まれるアクセス要求回路の何れか）のイニシエータを指定してレスポンスパケットを内部バス２１に出力する。リード動作に応答するレスポンスパケットにはリードデータが含まれ、ライト動作に応答するレスポンスパケットにはライト完了通知が含まれる。
【００６４】
デバイス制御部３５はリクエストパケットに含まれるインストラクション単位で制御コマンドを発行する。例えば、デバイス制御部３５はＳＤＲＡＭ２に対する６４バイトの連続データのアクセスを要求するリクエストパケットを受け取ったとき、６４バイトのバーストアクセスのための制御コマンドを生成する。この制御コマンドに応答するＳＤＲＡＭアクセスの途中で優先度の高いＳＤＲＡＭ動作が介在される場合には、中断されるＳＤＲＡＭアクセスのアクセス経過をデバイス制御部３５が管理し、優先度の高いＳＤＲＡＭ動作が終了した後に中断されたＳＤＲＡＭアクセス動作を再開させることが可能になっている。このようなウェイト制御は従来から既に行われていたことであるから更なる詳細な説明は省略する。
【００６５】
《リフレッシュ及びキャリブレーション制御機能》
以下においては、ＳＤＲＡＭコントローラ２０によるＳＤＲＡＭに対するリフレッシュコマンド発行制御機能とキャリブレーションコマンド発行制御機能について詳述する。
【００６６】
レジスタ部３４はリフレッシュコマンド及びキャリブレーションコマンドの発行制御のための制御データが設定されるレジスタとして、リフレッシュサイクルレジスタＲＥＦＩＮＴ、最大余剰回数レジスタＲＥＦＰＭＡＸ、キャリブレーションサイクルレジスタＣＡＬＩＮＴ、第１抑制期間レジスタＴＣＡＬＲＺ、第２抑制期間レジスタＴＣＡＬＺＲ、第２閾値としての強制閾値レジスタＲＥＦＴＨを有し、それらレジスタはＣＰＵ１０によって所要の値がプログラマブルに設定可能にされる。
【００６７】
デバイス制御部３５はリフレッシュコマンド及びキャリブレーションコマンドの発行制御のための演算回路として、リフレッシュサイクルカウンタｉｎｔｃｎｔ、余剰回数カウンタｐｃｎｔ、キャリブレーションサイクルカウンタｃａｌｃｎｔ、第１抑制期間カウンタｒｚｃｎｔ、第２抑制期間カウンタｚｒｃｎｔ、第１閾値としての緊急閾値レジスタＲＥＦＴＨ０、キャリブレーション閾値レジスタＣＡＬＴＨ０を有する。
【００６８】
リフレッシュサイクルレジスタＲＥＦＩＮＴはリフレッシュ動作の平均間隔であるリフレッシュサイクルが設定される。リフレッシュサイクルカウンタｉｎｔｃｎｔは前記リフレッシュサイクルレジスタＲＥＦＩＮＴに設定されたリフレッシュサイクルの期間を計数する。すなわち、このリフレッシュサイクルカウンタｉｎｔｃｎｔは毎クロック毎にダウンカウントを実行し、計数値が０になるとリフレッシュサイクルレジスタＲＥＦＩＮＴの値をリロードしてダウンカウントを継続する。
【００６９】
最大余剰回数レジスタＲＥＦＰＭＡＸは、先行リフレッシュ数としてのリフレッシュコマンド余剰発行回数が設定される。余剰回数カウンタｐｃｎｔは、前記リフレッシュコマンドの発行毎に１をインクリメントし、前記リフレッシュサイクルカウンタｉｎｔｃｎｔによるリフレッシュサイクル期間のカウント満了毎に１をデクリメントする。すなわち、余剰回数カウンタｐｃｎｔは、リフレッシュコマンドの発行で１をインクリメントし、リフレッシュサイクルカウンタｉｎｔｃｎｔが０になると１をデクリメントする。リフレッシュサイクルカウンタｉｎｔｃｎｔを下位側カウンタとして位置付けると、余剰回数カウンタｐｃｎｔはその上位側カウンタとして位置付けることができる。リフレッシュ動作は基本的にメモリアクセスが要求されていない空き次時間を利用して行うため、ＳＤＲＡＭ２の全てのメモリセルに対するリフレッシュ動作を完了させなければならない時間を細分化してリフレッシュサイクルカウンタのカウント値で管理し、その全体の時間を上側の余剰回数カウンタｐｃｎｔで管理しようとするものである。動作詳細については後述する。
【００７０】
キャリブレーションサイクルレジスタＣＡＬＩＮＴはキャリブレーション間隔としてのキャリブレーションサイクルが設定される。キャリブレーションサイクルカウンタｃａｌｃｎｔは前記キャリブレーションサイクルレジスタＣＡＬＩＮＴに設定されたキャリブレーションサイクルの期間を計数する。すなわち、キャリブレーションサイクルカウンタｃａｌｃｎｔはリフレッシュコマンドが発行される毎に１をインクリメントし、その計数値がキャリブレーションサイクルレジスタＣＡＬＩＮＴの設定値に達したとき０にクリアされる。キャリブレーションサイクルはリフレッシュサイクルよりも長くされる。
【００７１】
第１抑制期間レジスタＴＣＡＬＲＺは、前記リフレッシュコマンドの発行後に前記キャリブレーションコマンドの発行を抑制する期間を指定する。第１抑制期間カウンタｒｚｃｎｔは前記第１抑制期間レジスタＴＣＡＬＲＺに設定された期間を計数する。すなわち、リフレッシュコマンドが発行されたとき、第１抑制期間レジスタＴＣＡＬＲＺの設定値がロードされてクロック単位でデクリメント動作を開始し、計数値が０になるとカウント動作を停止する。
【００７２】
第２抑制期間レジスタＴＣＡＬＺＲは前記キャリブレーションコマンドの発行後、前記リフレッシュコマンドの発行を抑制する期間を指定する。第２抑制期間カウンタｚｒｃｎｔは前記第２抑制期間レジスタＴＣＡＬＺＲに設定された期間を計数する。すなわち、キャリブレーションコマンドが発行されたとき、第２抑制期間レジスタＴＣＡＬＺＲの設定値がロードされてクロック単位でデクリメント動作を開始し、計数値が０になるとカウント動作を停止する。
【００７３】
強制閾値レジスタＲＥＦＴＨは前記リフレッシュサイクルカウンタｉｎｔｃｎｔによる計数値と比較されることによってリフレッシュコマンドを強制発行すべきか否かの判別に用いられる第２閾値としての強制閾値が設定される。
【００７４】
リフレッシュコマンドの強制発行よりも更に優先度の高い緊急発行すべきか否かの判別に用いられる第１閾値としての緊急閾値を、制御ロジック３６がレジスタＲＥＦＩＮＴ，ＲＥＦＰＭＡＸ，ＴＣＡＬＺＲの設定値に応じて内部演算によって生成してレジスタＲＥＦＴＨ０にセットする。キャリブレーションコマンドの発行に関しても前記キャリブレーションサイクルカウンタｃａｌｃｎｔによる計数値に対して緊急にキャリブレーションコマンドを発行すべきか否かの判別の用いられるキャリブレーション閾値を、制御ロジック３６がレジスタＣＡＬＩＮＴ，ＴＣＡＬＺＲの設定値に応じて内部演算によって生成してレジスタＣＡＬＴＨ０にセットする。
【００７５】
図７にはＳＤＲＡＭコントローラ２０によるリフレッシュコマンド及びキャリブレーションコマンドの発行タイミングが例示される。リフレッシュコマンド（ＲＥＦ）を発行したときはその後、第１抑制期間カウンタｒｚｃｎｔによって前記第１抑制期間レジスタＴＣＡＬＲＺの設定値で指定される第１抑制期間ｔＩＺＱＣＳの間、キャリブレーションコマンドの発行を抑止し、リフレッシュ動作の次にＳＤＲＡＭ２に対するメモリアクセスが保証される。同様に、キャリブレーションコマンド（ＺＱＣＳ）を発行したときはその後、第２抑制期間カウンタｚｒｃｎｔによって前記第２抑制期間レジスタＴＣＡＬＺＲの設定値で指定される第２抑制期間ｔＩＲＥＦの間、リフレッシュコマンドの発行を抑止し、キャリブレーション動作の次にＳＤＲＡＭ２に対するメモリアクセスが保証される。これに対し上記抑止期間の制御を行わない場合には図８に例示されるように、リフレッシュコマンド（ＦＲＥ）に続けてキャリブレーションコマンド（ＺＱＣＳ）が発行されると、リフレッシュ動作期間ｔＲＥＦとキャリブレーション動作期間ｔＺＱＣＳとを合わせた期間においてＳＤＲＡＭアクセスを行うことができなくなる。
【００７６】
《オートリフレッシュ制御フロー》
図９にはリフレッシュコマンドを用いるオートリフレッシュの制御フローが例示される。オートリフレッシュがイネーブルにされてオートリフレッシュ動作モードが選択されているとき（Ｓ１）、第２抑制期間カウンタｚｒｃｎｔの値が０になっていなければ図７の禁止期間ｔＩＲＥＦであるからその期間の経過を待つ（Ｓ２）。禁止期間ｔＩＲＥＦが経過したときは余剰回数カウンタｐｃｎｔがゼロになっている否かを判別し（Ｓ３）、ゼロでなければ先行リフレッシュ動作Ｓ６に進む。余剰回数カウンタｐｃｎｔがゼロになっている場合にも、リフレッシュサイクルカウンタｉｎｔｃｎｔの値が強制閾値レジスタＲＥＦＴＨの強制閾値の値よりも小さくなっていなければ相当余裕があるので同じく先行リフレッシュ動作Ｓ６に進む（Ｓ４）。リフレッシュサイクルカウンタｉｎｔｃｎｔの値が強制閾値レジスタＲＥＦＴＨの強制閾値よりも小さくなっている場合には（Ｓ４）、更にリフレッシュサイクルカウンタｉｎｔｃｎｔの値が緊急閾値レジスタＲＥＦＴＨ０の緊急閾値よりも小さくなっているか否かを判別し、小さくなければまだ余裕があるので強制リフレッシュ動作Ｓ７に進み、小さければもう余裕がないので緊急リフレッシュ動作Ｓ８に進む。
【００７７】
図１０には先行リフレッシュ動作の制御フローが例示される。先行リフレッシュ動作では最初に余剰回数カウンタｐｃｎｔの値が最大余剰回数レジスタＲＥＦＰＭＡＸの値よりも小さいか否かを判別し（Ｓ１０）、大きければ現時点において必要なリフレッシュ動作は足りているので処理を終了する。余剰回数カウンタｐｃｎｔの値が最大余剰回数レジスタＲＥＦＰＭＡＸの値よりも小さい場合には、内部バス２１からのリクエストパケットによるアクセス要求に対するＳＤＲＡＭアクセスが完了しているかを判別し（Ｓ１１）、完了されていなければ処理を終了する。完了されていなければリフレッシュコマンドを発行し（Ｓ１２）、次いで、余剰回数カウンタｐｃｎｔの値を１インクリメントして（Ｓ１３）処理を終了する。
【００７８】
図１１には強制リフレッシュ動作の制御フローが例示される。強制リフレッシュ動作では最初に、内部バス２１からのリクエストパケットによるアクセス要求に対するＳＤＲＡＭアクセスが完了しているかを判別し（Ｓ２０）、完了していなければ処理を終了し、完了していればリフレッシュコマンドを発行し（Ｓ２１）、次いで、余剰回数カウンタｐｃｎｔの値を１インクリメントして（Ｓ２２）処理を終了する。
【００７９】
図１２には緊急リフレッシュ動作の制御フローが例示される。緊急リフレッシュ動作では、内部バス２１からのリクエストパケットによるアクセス要求に対するＳＤＲＡＭアクセスが完了していなくてもリフレッシュコマンドを発行し（Ｓ３０）、次いで、余剰回数カウンタｐｃｎｔの値を１インクリメントして（Ｓ３１）処理を終了する。ＳＤＲＡＭアクセスの途中でこれを中断してリフレッシュコマンドを強制的に発行したとき、前述のごとくＳＤＲＡＭコントローラ２０はリフレッシュ完了後に中断したＳＤＲＡＭアクセスを再開する制御を行う。
【００８０】
《オートキャリブレーション制御フロー》
図１３にはキャリブレーションコマンドを用いるオートキャリブレーションの制御フローが例示される。オートキャリブレーションがイネーブルにされてオートキャリブレーション動作モードが選択されているとき（Ｓ４０）、第１抑制期間カウンタｒｚｃｎｔの値が０になっていなければ図７の禁止期間ｔＩＺＱＣＳであるからその期間の経過を待つ（Ｓ４１）。禁止期間ｔＩＺＱＣＳが経過したときは、キャリブレーションサイクルカウンタｃａｌｃｎｔがキャリブレーションサイクルレジスタＣＡＬＩＮＴの設定値に達したか否かを判別し（Ｓ４２）、達していなければ達するまで待ち、達していれば、リフレッシュサイクルカウンタｉｎｔｃｎｔの値がキャリブレーション閾値ＣＡＬＴＨ０以下か否かが判別される（Ｓ４３）。ダウンカウントされるリフレッシュサイクルカウンタｉｎｔｃｎｔの値がキャリブレーション閾値ＣＡＬＴＨ０以下になっていなければまだ余裕があるので通常キャリブレーション動作に進む（Ｓ４４）。Ｓ４３の判別でリフレッシュサイクルカウンタｉｎｔｃｎｔの値がキャリブレーション閾値ＣＡＬＴＨ０以下になっている場合には、もう余裕がないので緊急キャリブレーション動作Ｓ４５に進む。
【００８１】
図１４には通常キャリブレーション動作の制御フローが例示される。通常キャリブレーション動作では、最初に、内部バス２１からのリクエストパケットによるアクセス要求に対するＳＤＲＡＭアクセスが完了しているかを判別し（Ｓ５０）、完了していなければ処理を終了し、完了していればキャリブレーションコマンドを発行して（Ｓ５１）、処理を終了する。
【００８２】
図１５には緊急キャリブレーション動作の制御フローが例示される。緊急リフレッシュ動作では、内部バス２１からのリクエストパケットによるアクセス要求に対するＳＤＲＡＭアクセスが完了していなくてもキャリブレーションコマンドを発行して（Ｓ６０）、処理を終了する。ＳＤＲＡＭアクセスの途中でこれを中断してキャリブレーションコマンドを強制的に発行したとき、前述のごとくＳＤＲＡＭコントローラ２０はキャリブレーション動作の完了後に中断したＳＤＲＡＭアクセスを再開する制御を行う。
【００８３】
《動作タイミング》
図１６には通常キャリブレーションを行う場合の動作タイミングが例示される。時刻ｔ１においてリフレッシュサイクルカウンタｉｎｔｃｎｔの値がＮのときリフレッシュコマンドＲＥＦが発行されると、これに同期して、余剰回数カウンタｐｃｎｔの値がＭからＭ＋１にインクリメントされ、キャリブレーションサイクルカウンタｃａｌｃｎｔの値が０に初期化される。また、第１抑制期間カウンタｒｚｃｎｔに第１抑制期間レジスタＴＣＡＬＲＺの値がロードされてクロックの計数を開始する。第１抑制期間カウンタｒｚｃｎｔの値が初期値から０になるまでの、時刻ｔ１（リフレッシュコマンド発行後）からｔ２までの期間が新たなキャリブレーションコマンドの発行抑制期間ｔＩＺＱＣＳになる。この期間においては、例えばローアドレス系のアクティブコマンドＡＣＴやリードコマンドＲＥＡＤが発行される。時刻ｔ２以降はキャリブレーションコマンドの発行が可能にされ、例えば時刻ｔ３でキャリブレーションコマンドＺＱＣＳが発行される。キャリブレーションコマンドＺＱＣＳが発行されると、第２抑制期間カウンタｚｒｃｎｔに第２抑制期間レジスタＴＣＡＬＺＲの値がロードされてクロックの計数を開始する。第２抑制期間カウンタｚｒｃｎｔの値が初期値から０になるまでの、時刻ｔ３（キャリブレーションコマンド発行後）からｔ４までの期間が新たなリフレッシュコマンドＲＥＦの発行抑制期間ｔＩＲＥＦになる。この期間においては、例えばローアドレス系のアクティブコマンドＡＣＴやリードコマンドＲＥＡＤが発行される。
【００８４】
図１７には緊急キャリブレーションを行う場合の動作タイミングが例示される。時刻ｔ１においてリフレッシュサイクルカウンタｉｎｔｃｎｔの値が１のときリフレッシュコマンドＲＥＦが発行されると、これに同期して、余剰回数カウンタｐｃｎｔの値が０から１にインクリメントされ、キャリブレーションサイクルカウンタｃａｌｃｎｔの値が０に初期化される。また、第１抑制期間カウンタｒｚｃｎｔに第１抑制期間レジスタＴＣＡＬＲＺの値がロードされてクロックの計数を開始する。第１抑制期間カウンタｒｚｃｎｔの値が初期値から０になるまでの、時刻ｔ１からｔ２までの期間が新たなキャリブレーションコマンドの発行抑制期間ｔＩＺＱＣＳになる。この期間においては、例えばローアドレス系のアクティブコマンドＡＣＴやリードコマンドＲＥＡＤが発行される。ここでは時刻ｔ２において、キャリブレーションサイクルカウンタｃａｌｃｎｔの値がレジスタＣＡＬＩＮＴの初期値までインクリメントされリフレッシュサイクルカウンタｉｎｔｃｎｔの値が閾値ＣＡＬＴＨ０よりも小さくなっているので、緊急キャリブレーション動作が選択される。これによってプリチャージオールコマンド（すなわち全バンクを対象としてプリチャージ動作を指示するコマンド）ＰＲＥＡの発行を経て時刻ｔ４にキャリブレーションコマンドＺＱＣＳを発行する。キャリブレーションコマンドＺＱＣＳが発行されると、第２抑制期間カウンタｚｒｃｎｔに第２抑制期間レジスタＴＣＡＬＺＲの値がロードされてクロックの計数を開始する。第２抑制期間カウンタｚｒｃｎｔの値が初期値から０になるまでの、時刻ｔ３からｔ４までの期間が新たなリフレッシュコマンドＲＥＦの発行抑制期間ｔＩＲＥＦになる。この期間においては、例えばローアドレス系のアクティブコマンドＡＣＴやリードコマンドＲＥＡＤが発行される。ここでは時刻ｔ４において、余剰回数カウンタｐｃｎｔの値が０までデクリメントされていて、しかも、リフレッシュサイクルカウンタｉｎｔｃｎｔの値が閾値ＲＥＦＴＨ０よりも小さくなっているので、緊急リフレッシュ動作が選択される。これによってプリチャージオールコマンド（すなわち全バンクを対象としてプリチャージ動作を指示するコマンド）ＰＲＥＡの発行を経て時刻ｔ５にリフレッシュコマンドＲＥＦを発行する。
【００８５】
図１７の場合には時刻ｔ３やｔ５のタイミングでＳＤＲＡＭコントローラ２０にバスアクセスが要求されていてもＳＤＲＡＭコントローラ２０は図示のごとく強制的にキャリブレーションコマンドＺＱＣＳやリフレッシュコマンドＲＥＦを発行する。これに対して図１６の場合には時刻ｔ３やｔ５のタイミングでＳＤＲＡＭコントローラ２０にバスアクセスが要求されていれば、図示のタイミングとは相違され、ＳＤＲＡＭコントローラ２０はキャリブレーションコマンドＺＱＣＳやリフレッシュコマンドＲＥＦを発行せず、バスアクセスに応答するＳＤＲＡＭアクセスが終わるのを待つことになる。
【００８６】
図１８乃至図２０にはＳＤＲＡＭコントローラ２０が選択的にチップ選択を行う複数個のＳＤＲＡＭを制御する場合におけるキャリブレーション動作の実行形態が例示される。図１８は複数個のＳＤＲＡＭに対して並列にキャリブレーション動作を行う場合の動作タイミングを示し、図１９は順次連続実行、図２０はラウンドロビンアルゴリズムによる逐次的な事項を示す。
【００８７】
図１８の並列実行の場合には全実行時間は短くなるが最大消費電力が大きくなりすぎる場合がある。図１９の場合には最大消費電力は小さいが全実行時間は長くなる。図２０の場合には図１９の場合と同様であるが複数回のキャリブレーション動作の直列的な連続によってメモリアクセスが連続して長くなり過ぎるこが解消される。
【００８８】
上記実施の形態によれば以下の作用効果を得る。
【００８９】
〔１〕リフレッシュコマンドの発行とキャリブレーションコマンドの発行を連続させないようにすることができ、双方のコマンドが連続することによるアクセス速度の低下を防止することができる。
【００９０】
〔２〕リフレッシュコマンドの発行後前記キャリブレーションコマンドの発行を抑制する期間、キャリブレーションコマンドの発行後の前記リフレッシュコマンドの発行を抑制する期間の夫々をレジスタにプログラマブルに設定することが可能である。
【００９１】
〔３〕緊急リフレッシュ動作を採用することにより、リフレッシュ休止期間が長くなった緊急時に対処することができる。
【００９２】
〔４〕強制リフレッシュ動作を採用することにより、リフレッシュ動作の緊急度が低い場合には前記アクセス要求回路からのアクセス要求に対するＳＤＲＡＭアクセスの連続性を保証してアクセス性能が低下しないようにすることができる。
【００９３】
〔５〕ＳＤＲＡＭに対するアクセスがないときいつでもリフレッシュ動作を行えば、動作に無駄を生ずるだけでなくアクセス要求回路によるＳＤＲＡＭへのアクセスの機会を減ずる結果にもなる。余剰回数カウント値を考慮することによってそのような欠点を顕在化させずに済む。要するに、リフレッシュ動作の緊急度が更に低い場合にはＳＤＲＡＭに対する前記アクセス要求回路からのアクセスをリフレッシュ動作に対して最優先とすることができる。
【００９４】
〔６〕緊急キャリブレーション動作を採用することにより、キャリブレーション休止期間が長くなった緊急時に対処することができる。
【００９５】
〔７〕通常キャリブレーション動作を採用することにより、キャリブレーション動作の緊急度が低い場合には前記アクセス要求回路からのアクセス要求に対するＳＤＲＡＭアクセスの連続性を保証してアクセス性能が低下しないようにすることができる。
【００９６】
〔８〕キャリブレーションサイクルカウンタは、リフレッシュコマンドの発行毎に計数動作を行い、計数値がキャリブレーションサイクルレジスタの設定値に達したとき初期値に戻す制御を採用することにより、リフレッシュ動作を行うべき間隔に対してキャリブレーション動作を行うべき間隔が長いとき、キャリブレーションサイクルカウンタの計数動作の制御が容易になる。特に、その様な制御は、前述の緊急にキャリブレーションコマンドを発行すべきかを前記リフレッシュサイクルカウンタの値がキャリブレーション閾値（ＣＡＬＴＨ０）に達しているか否かによって判別する動作との整合性に優れる。
【００９７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９８】
例えば、ＳＤＲＡＭがＤＤＲ３に限定されない。ＳＤＲＡＭコントローラに接続されるＳＤＲＡＭの数は限定されない。レジスタ設定はＣＰＵによる設定に限定されない。また、レジスタに代えて別の回路を用いてもよい。マイクロコンピュータのオンチップ回路モジュールは上記説明に限定されないな、内部バスは上記に限定されず、複数階層バスであってもよいし、また、スプリットトランザクションバスに限定されない。また、ＳＤＲＡＭに対するアクセスコマンドはアクティブコマンドＡＣＴ、リードコマンドＲＥＡＤ、ライトコマンドなどに限定されず、その他のコマンドを含んだり、別のコマンドであってもよい。
【産業上の利用可能性】
【００９９】
本発明は、ＤＤＲ−ＳＤＲＡＭを制御するメモリ制御技術、特にリフレッシュコマンドとキャリブレーションコマンドの発行制御技術に広く適用することができる。
【符号の説明】
【０１００】
１  マイクロコンピュータ（ＭＣＵ）
２  ＳＤＲＡＭ
１０  ＣＰＵ
１１  ＤＭＡＣ
１２  描画コントローラ（ＤＲＷＣ）
１３  表示コントローラ（ＤＩＳＰＣ）
１４  ネットワークコントローラ（ＮＥＴＣ）
１５  クロックパルスジェネレータ（ＣＰＧ）
１６  画像コーデック（ＶＣＯＤＥＣ）
１７音声コーデック（ＳＣＯＤＥＣ）
１８  タイマ（ＴＭＲ）
１９  シリアルインタフェース（ＳＲＬＩＦ）
２０メモリ制御回路としてのＳＤＲＡＭコントローラ（ＳＤＲＡＭＣ）
２１  内部バス（ＩＢＵＳ）
ＣＫ，ＣＫ＃  相補クロック信号
ＣＫＥ  クロックイネーブル信号
ＤＱ  入出力データ
ＤＱＳ，ＤＱＳ＃  データストローブ信号
ＣＳ＃  チップ選択信号
ＲＡＳ＃  ロウアドレスストローブ信号
ＣＡＳ＃  カラムアドレスストローブ信号
ＷＥ＃  ライトイネーブル信号
３０  ＤＤＲインタフェース制御部（ＤＤＲＣ）
３１  ＤＤＲインタフェース部（ＤＤＲＩＦ）
３２  リクエスト制御部
３３  レスポンス制御部
３４  レジスタ部
３５  デバイス制御部
ＲＥＦＩＮＴ  リフレッシュサイクルレジスタ
ＲＥＦＰＭＡＸ  最大余剰回数レジスタ
ＣＡＬＩＮＴ  キャリブレーションサイクルレジスタ
ＴＣＡＬＲＺ  第１抑制期間レジスタ
ＴＣＡＬＺＲ  第２抑制期間レジスタ
ＲＥＦＴＨ  第２閾値としての強制閾値レジスタ
ｉｎｔｃｎｔ  リフレッシュサイクルカウンタ
ｐｃｎｔ  余剰回数カウンタ
ｃａｌｃｎｔ  キャリブレーションサイクルカウンタ
ｒｚｃｎｔ  第１抑制期間カウンタ
ｚｒｃｎｔ  第２抑制期間カウンタ
レジスタＲＥＦＴＨ０  第１閾値としての緊急閾値
ＣＡＬＴＨ０  キャリブレーション閾値レジスタ
【図１】
2014135067.tif 000003
【図２】
2014135067.tif 000004
【図３】
2014135067.tif 000005
【図４】
2014135067.tif 000006
【図５】
2014135067.tif 000007
【図６】
2014135067.tif 000008
【図７】
2014135067.tif 000009
【図８】
2014135067.tif 000010
【図９】
2014135067.tif 000011
【図１０】
2014135067.tif 000012
【図１１】
2014135067.tif 000013
【図１２】
2014135067.tif 000014
【図１３】
2014135067.tif 000015
【図１４】
2014135067.tif 000016
【図１５】
2014135067.tif 000017
【図１６】
2014135067.tif 000018
【図１７】
2014135067.tif 000019
【図１８】
2014135067.tif 000020
【図１９】
2014135067.tif 000021
【図２０】
2014135067.tif 000022