(57)【要約】【課題】リフレッシュに必要な回数を逃す事無く、かつクリティカルな処理を行う場面でＳＤＲＡＭへの読み書きを保証することができるメモリコントローラ、半導体集積回路装置、マイクロコンピュータ及び電子機器の提供。【解決手段】本メモリコントローラ１１０のオートリフレッシュ制御回路１２０は、所定間隔でオートリフレッシュリクエストを発生させるオートリフレッシュリクエスト発生回路１２０と、オートリフレッシュリクエスト発生のタイミングで、アイドル状態でない場合にはダイナミックランダムアクセスメモリに対するオートリフレッシュ要求をホールドしてホールド回数をカウントするホールド回数カウント回路１３０と、アイドル状態を検出した時に、ホールドされた回数に達するまでダイナミックランダムアクセスメモリに対しホールドされたオートリフレッシュ要求を行う回路１６０とを含む。ホールドされたオートリフレッシュ要求が実行されると、実行した回数に基づき前記ホールド回数を更新する。【選択図】      図４
2005310245.tif 000002
【特許請求の範囲】
【請求項１】
ダイナミックランダムアクセスメモリに対するオートリフレッシュ制御を行うオートリフレッシュ制御回路を含むメモリコントローラであって、
前記オートリフレッシュ制御回路は、
所定間隔でオートリフレッシュリクエストを発生させるオートリフレッシュリクエスト発生回路と、
オートリフレッシュリクエスト発生のタイミングで、オートリフレッシュ対象とするメモリに対してアクセスできない状態の場合にはダイナミックランダムアクセスメモリに対するオートリフレッシュ要求をホールドしてホールド回数をカウントするホールド回数カウント回路と、
アイドル状態になった時に、ホールドされた回数に達するまでダイナミックランダムアクセスメモリに対しホールドされたオートリフレッシュ要求を行う回路とを含み、
前記ホールド回数カウント回路は、
ホールドされたオートリフレッシュ要求が実行されると、実行した回数に基づき前記ホールド回数を更新することを特徴とするメモリコントローラ。
【請求項２】
請求項１において、
前記オートリフレッシュ制御回路は、
前記ホールド回数と強制リフレッシュ用に設定された所定のしきい値とを比較して強制リフレッシュ実行タイミングを検出する強制リフレッシュ実行タイミング検出回路と、
強制リフレッシュ実行タイミングが発生すると、ダイナミックランダムアクセスメモリに対してアクセスできない状態を中断し、ホールドされているオートリフレッシュ要求を行う強制オートリフレッシュ実行回路を
を含むことを特徴とするメモリコントローラ。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記オートリフレッシュ制御回路は、
２つ以上のホールドされているオートリフレッシュ要求を実行中にアクセス要求が発生すると、連続したオートリフレッシュ要求を中断することを特徴とするメモリコントローラ。
【請求項４】
請求項３において、
前記オートリフレッシュ制御回路は、
発生したアクセス要求に対応したアクセスが終了してアイドル状態になった場合に、連続したオートリフレッシュ要求の中断による未実行分のホールドされているオートリフレッシュ要求を行うことを特徴とするメモリコントローラ。
【請求項５】
請求項１乃至４のいずれかに記載のメモリコントローラを含むことを特徴とする半導体集積回路装置。
【請求項６】
請求項１乃至４のいずれかに記載のメモリコントローラを含むことを特徴とするマイクロコンピュータ。
【請求項７】
請求項６に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するためのＬＣＤ出力手段とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、半導体集積回路装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
ＳＤＲＡＭに対してリフレッシュを行うときは、ＳＤＲＡＭに対する読み書きのアクセスがない、いわゆるアイドル状態まで待つか、読み書きのアクセスを中断するかの方法がとられていた。
【特許文献１】特開２０００−３１１４８４号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
アイドル状態を待つ方式では、ＳＤＲＡＭへのリフレッシュの実行待ちの状態で新たにリフレッシュ要求が生じた場合は、前のリフレッシュ要求が消滅してしまい、リフレッシュがＳＤＲＡＭの規定回数分だけ行われないという問題点があった。
【０００４】
一方ＳＤＲＡＭへの読み書きを中断する方式では、ＳＤＲＡＭに対してクリティカルな処理を行う場面でＳＤＲＡＭへの連続アクセスを保証できないという問題点がある。
【０００５】
本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、リフレッシュに必要な回数を逃す事無く、かつクリティカルな処理を行う場面でＳＤＲＡＭへの読み書きを保証することができるメモリコントローラ、半導体集積回路装置、マイクロコンピュータ及び電子機器の提供を目的とする。
【課題を解決するための手段】
【０００６】
（１）本発明は、ダイナミックランダムアクセスメモリに対するオートリフレッシュ制御を行うオートリフレッシュ制御回路を含むメモリコントローラであって、
前記オートリフレッシュ制御回路は、
所定間隔でオートリフレッシュリクエストを発生させるオートリフレッシュリクエスト発生回路と、
オートリフレッシュリクエスト発生のタイミングで、オートリフレッシュ対象とするメモリに対してアクセスできない状態の場合にはダイナミックランダムアクセスメモリに対するオートリフレッシュ要求をホールドしてホールド回数をカウントするホールド回数カウント回路と、
アイドル状態になった時に、ホールドされた回数に達するまでダイナミックランダムアクセスメモリに対しホールドされたオートリフレッシュ要求を行う回路とを含み、
前記ホールド回数カウント回路は、
ホールドされたオートリフレッシュ要求が実行されると、実行した回数に基づき前記ホールド回数を更新することを特徴とする。
【０００７】
ダイナミックランダムアクセスメモリとはＤＲＡＭやシンクロナスＤＲＡＭ（以下ＳＤＲＡＭと呼ぶ）を含む。
【０００８】
ＳＤＲＡＭは、ＳＤＲＡＭは、クロックに同期して読み書きが行われる事を特徴としたＤＲＡＭである。ＤＲＡＭやＳＤＲＡＭにおける読み出し、書き込み動作は、コマンドを入力することで行われる。
【０００９】
ＤＲＡＭやＳＤＲＡＭには、主な状態として、ホストからのコマンド入力待ち状態であるアイドル状態（ＩＤＬＥ）、コマンドとアドレスが入力されて入力アドレス以降のデータをホストに出力する読み出し状態や入力されるデータを入力アドレス以降に書き込む書き込み状態等のメモリ読み書き状態、所定の間隔でリフレッシュを実行するオートリフレッシュ状態等がある。
【００１０】
ここにおいて所定の間隔とは、例えば１６マイクロセックである。
【００１１】
オートリフレッシュリクエスト発生回路は、カウンタ（オートリフレッシュ間隔計測カウンタ）等で所定の間隔を計測し、所定の間隔でオートリフレッシュリクエスト用のパルス等を発生させるようにしてもよい。
【００１２】
オートリフレッシュリクエストの発生のタイミングで、アイドル状態であればダイナミックランダムアクセスメモリに対しオートリフレッシュ要求を行うことができる。
【００１３】
本発明では、メモリ読み書き中は発生したオートリフレッシュ要求をホールドし、例えばオートリフレッシュホールド回数カウンタにホールドしたオートリフレッシュ要求数を記録する。そしてメモリ読み書き要求が完了し、アイドル状態となった時点で、ホールドされたオートリフレッシュ要求が１回以上あるかどうかをチェックし、１回以上のオートリフレッシュ要求がホールドされている場合、ホールド回数分のリフレッシュを実行する。
【００１４】
ＤＲＡＭ（ダイナミックアクセスメモリ）はその特性として、一定期間内に指定回数分のリフレッシュをおこなう必要があり、このオートリフレッシュが行われない場合、メモリに保存されているデータは保証されず、喪失する場合がある。
【００１５】
従来アイドル状態を待ってオートリフレッシュ要求を行う方式では、リフレッシュの実行待ちの状態で新たにリフレッシュ要求が生じた場合は、前のリフレッシュ要求が消滅してしまい、リフレッシュがダイナミックランダムアクセスメモリの規定回数分だけ行われないという問題点があったが、本発明によれば、必要なリフレッシュの回数を、リフレッシュが実行されるまで保持することができる。
【００１６】
そして必要なリフレッシュ回数をアイドル時に実行する事で、リフレッシュに必要な回数を逃す事が無く、かつクリティカルな処理を行う場面でＤＲＡＭへの読み書きを保証することができる。
【００１７】
（２）本発明のメモリコントローラは、
前記オートリフレッシュ制御回路が、
前記ホールド回数と強制リフレッシュ用に設定された所定のしきい値とを比較して強制リフレッシュ実行タイミングを検出する強制リフレッシュ実行タイミング検出回路と、
強制リフレッシュ実行タイミングが発生すると、ダイナミックランダムアクセスメモリに対してアクセスできない状態を中断し、ホールドされているオートリフレッシュ要求を行う強制オートリフレッシュ実行回路を
を含むことを特徴とする。
【００１８】
強制フレッシュ実行タイミングは例えばオートリフレッシュ要求のホールド回数をカウントするオートリフレッシュ要求ホールド回数カウンタの値が前記しきい値を超えた場合、又はしきい値以上になった場合である。
【００１９】
強制リフレッシュ実行タイミング検出回路は、強制リフレッシュ実行タイミングを検出すると、例えば強制リフレッシュ要求信号を出力する（例えば強制リフレッシュ要求信号をＨレベルにする）ようにしてもよい。
【００２０】
ダイナミックランダムアクセスメモリに対してアクセスできない状態とは、例えば読み書き等のメモリアクセスによりダイナミックランダムアクセスメモリに対してアクセスできない場合には、読み書き等のメモリアクセスの中断である。
【００２１】
そして強制オートリフレッシュ実行回路は、強制リフレッシュ実行タイミングが発生すると、オートリフレッシュ要求の阻害要因となる現在実行中のアクセス要求等を中断して、強制的にオートリフレッシュ要求を行う。
【００２２】
例えば多数のマスターが交互にメモリコントローラにアクセスするケースなどでは、アイドルに戻ることなく連続的にメモリ読み書きが発生する場合も想定される。
【００２３】
しかし本発明によれば、メモリ読み書き中でも前記ホールド回数が強制リフレッシュ用に設定された所定のしきい値を以上または超えた場合にはオートリフレッシュを優先する（強制的にリフレッシュを行う）。すなわちオートリフレッシュがどうしても必要な場面では強制的にリフレッシュをかけるので、メモリ上に保存されているデータの喪失を回避する事ができる。
【００２４】
（３）本発明のメモリコントローラは、
前記オートリフレッシュ制御回路が、
２つ以上のホールドされているオートリフレッシュ要求を実行中にアクセス要求が発生すると、連続したオートリフレッシュ要求を中断することを特徴とする。
【００２５】
本発明では２つ以上の連続したオートリフレッシュ実行期間に、アクセス要求発生した場合は、オートリフレッシュを即座に中止し、アクセス要求を優先させることができる。
【００２６】
従ってホールドされている複数のオートリフレッシュ実行中にアクセス要求が発生した場合のアクセスの遅延を防止することができる。
【００２７】
（４）本発明のメモリコントローラは、
前記オートリフレッシュ制御回路が、
発生したアクセス要求に対応したアクセスが終了してアイドル状態になった場合に、連続したオートリフレッシュ要求の中断による未実行分のホールドされているオートリフレッシュ要求を行うことを特徴とする。
【００２８】
本発明によれば中断により実行されなかった（ホールドされている）オートリフレッシュは、メモリ読み書きが完了し、メモリコントローラが再度アイドルとなった時点で実行される。
【００２９】
（５）本発明は、上記のいずれかに記載のメモリコントローラを含むことを特徴とする半導体集積回路装置である。
【００３０】
（６）本発明は、上記のいずれかに記載のメモリコントローラを含むことを特徴とするマイクロコンピュータである。
【００３１】
（７）本発明は、上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するためのＬＣＤ出力手段とを含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００３２】
１．メモリコントローラ、半導体集積回路装置
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００３３】
図１は本実施の形態のメモリコントローラ、半導体集積回路装置について説明するための図である。
【００３４】
本実施の形態のメモリコントローラ１１０は、ホスト（ＣＰＵやＤＭＡ）からのアクセス要求１６０，１６２に基づき、ＳＤＲＡＭ２００に対するアクセス制御信号１７０，１７２，１７４，１７６，１７８を出力するメモリーコントローラ１１０を含む。
【００３５】
また本実施の形態の半導体集積回路装置１００は本実施の形態のメモリコントローラ１１０を含む。
【００３６】
前記メモリコントローラ１１０は、ホスト（ＣＰＵやＤＭＡ）１０、ＳＤＲＡＭ２００に接続され、オートリフレッシュ制御回路１９０、アクセス要求生成回路１８０を含む。
【００３７】
オートリフレッシュ制御回路１９０は、オートリフレッシュリクエスト発生回路１２０、ホールド回数カウント回路１３０、強制リフレッシュ実行タイミング検出回路１４０、強制リフレッシュ実行回路１５０、連続リフレッシュ実行回路１６０、ステートマシン１７０を含む。
【００３８】
オートリフレッシュリクエスト発生回路１２０は、オートリフレッシュ間隔計測カウンタ１２２を含み、オートリフレッシュ間隔計測カウンタ１２２で所定間隔を計測し、所定間隔毎にオートリフレッシュリクエストを発生させる。
【００３９】
ホールド回数カウント回路１３０は、オートリフレッシュホールド回数カウンタ１３２を含み、オートリフレッシュリクエスト発生のタイミングで、アイドル状態でない場合にはダイナミックランダムアクセスメモリに対するオートリフレッシュ要求をホールドして、オートリフレッシュホールド回数カウンタ１３２がホールド回数をカウントして保持する。そしてホールドされたオートリフレッシュ要求が実行されると、実行した回数に基づき前記ホールド回数を更新する。
【００４０】
連続リフレッシュ実行回路１６０は、アイドル状態を検出した時に、ホールドされた回数に達するまでダイナミックランダムアクセスメモリに対しホールドされたオートリフレッシュ要求を行う。
【００４１】
強制リフレッシュ実行タイミング検出回路１４０は、前記ホールド回数と強制リフレッシュ用に設定された所定のしきい値とを比較して強制リフレッシュ実行タイミングを検出する。
【００４２】
強制リフレッシュ実行回路１５０は、強制リフレッシュ実行タイミングが発生すると、ダイナミックランダムアクセスメモリに対してアクセスできない状態を中断し、ホールドされているオートリフレッシュ要求を行う。
【００４３】
ステートマシン１７０は，ホストからのアクセス要求及びＳＤＲＡＭ２００の状態に応じてステートを遷移させるハードウエアである。
【００４４】
連続リフレッシュ実行回路１６０や強制リフレッシュ実行回路１５０は、２つ以上のホールドされているオートリフレッシュ要求を実行中にアクセス要求が発生すると、連続したオートリフレッシュ要求を中断するようにしてもよい。
【００４５】
また連続リフレッシュ実行回路１６０は、発生したアクセス要求に対応したアクセスが終了してアイドル状態になった場合に、連続したオートリフレッシュ要求の中断による未実行分のホールドされているオートリフレッシュ要求を行うようにしてもよい。
【００４６】
アクセス要求生成回路１８０は、ホスト（ＣＰＵやＤＭＡ）１０からのアクセス要求１６０，１６２やステートマシン１７０のステートの遷移に基づき、ＳＤＲＡＭ２００に対するアクセス制御信号１７０，１７２，１７４，１７６，１７８を生成して出力する。
【００４７】
ＳＤＲＡＭ２００は、例えば記憶セルが縦及び横方向に多数個配置され、横（ロー）方向ラインと縦（カラム）方向ラインの交点位置に記憶素子が設けられている。ここで、横（ロー）方向ラインはワード線であり、上記ＲＡＳ（ロウアドレスストローブ）１７４によって選択される。また、縦（カラム）方向ラインはデータ線であり、ＣＡＳ（カラムアドレスストローブ）１７６によって指定される。また、書き込み信号（ＷＥ信号）１７８は、メモリコントローラ１１０から出力されるデータ（ＳＤＡＴＡ）１７２をＳＤＲＡＭ２００に書き込む際の指示信号であり、上記ＲＡＳ（ロウアドレスストローブ）１７４とＣＡＳ（カラムアドレスストローブ）１７６によって選択されたアドレスにデータが書き込まれる。尚、ＳＤＲＡＭ２００は例えば複数のメモリで構成され、チップセレクト信号（ＣＳ信号）１８０によってメモリが選択される。
【００４８】
メモリコントローラ１１０は、ホスト（ＣＰＵやＤＭＡ）１０から供給されるアドレス信号（Address）１６０に従って上記ＲＡＳ（ロウアドレスストローブ）１７４及びＣＡＳ（カラムアドレスストローブ）１７６を作成する。また、メモリコントローラ１１０はホスト（ＣＰＵやＤＭＡ）１０から出力されるデータ（Data）１６２を上記ＲＡＳ／ＣＡＳによって指定するアドレスに書き込む。
【００４９】
例えばホスト（ＣＰＵやＤＭＡ）１０からリードアクセス要求（が出力されると、アドレス信号（Address）１６０に従ってメモリコントローラ１１０はデータ読み出し処理（リード処理）の準備を行う。そして、メモリコントローラ１１０からチップセレクト信号（ＣＳ信号）１７６に同期してＲＡＳ（ロウアドレスストローブ）１７４を出力し（ＲＡＳ（カラムアドレスストローブ）をアクティブとし）、次にＣＡＳ（カラムアドレスストローブ）１７６を出力し、ＳＤＲＡＭ２００の対応するアドレスからデータを読み出す。その後、ＲＡＳ（ロウアドレスストローブ）１７４、書き込み信号（ＷＥ信号）１７８を出力し、プリチャージ処理を行う。
【００５０】
またホスト（ＣＰＵやＤＭＡ）１０からライトアクセス要求が出力されると、上記と同様メモリコントローラ１１０はデータ書き込み処理（ライト処理）の準備を行い、チップセレクト信号（ＣＳ信号）１８０に同期してＲＡＳ（ロウアドレスストローブ）１７４を出力し（ＲＡＳ（ロウアドレスストローブ）をアクティブとし）、次にＣＡＳ（カラムアドレスストローブ）１７６、及び書き込み信号（ＷＥ信号）１７８を出力し、ＳＤＲＡＭ２００の対応するアドレスからデータを読み出す。その後、前述と同様ＲＡＳ（ロウアドレスストローブ）、書き込み信号（ＷＥ信号１７８）を出力し、プリチャージ処理を行う。
【００５１】
図２は本実施の形態の特徴について説明するためのタイミング図である。
【００５２】
オートリフレッシュ要求を複数回ホールドしてその後強制的にオートリフレッシュを行うケースについて説明する。
【００５３】
２１０はオートリフレッシュ要求タイミングであり、所定間隔毎にオートリフレッシュ要求２１２，２１４，２１６が発生する。
【００５４】
２２０はオートリフレッシュホールド回数カウンタが保持しているオートリフレッシュホールド回数であり、発生したオートリフレッシュ要求がホールドされるたびにインクリメントされ、ホールドされているオートリフレッシュ要求が実行されるたびにデクリメントされる。
【００５５】
２３０は強制リフレッシュの設定値（強制リフレッシュ用に設定された所定のしきい値で、ここでは６に設定されている）以上になったことをしめす強制リフレッシュ信号であり、オートリフレッシュホールド回数カウンタが保持しているオートリフレッシュホールド回数２２０が、強制リフレッシュの設定値以上になった場合に第１のレベル（例えばＬレベル）から第２のレベル（例えばＨレベル）に変化する。
【００５６】
２４０はメモリインターフェースの状態（ステート）を表している。
【００５７】
２１２のタイミングでオートリフレッシュ要求が発生すると、このときメモリコントローラはＲ／Ｗ状態（２４１）であるため、オートリフレッシュ要求はホールドされ、オートリフレッシュホールド回数２２０は５から６にカウントアップする（２２２参照）。
【００５８】
するとオートリフレッシュホールド回数２２０が強制リフレッシュの設定値である６以上となるので、強制リフレッシュ信号が第１のレベル（例えばＬレベル）から第２のレベル（例えばＨレベル）に変化する（２３２参照）。
【００５９】
強制リフレッシュ信号が第２のレベル（例えばＨレベル）に変化することで、Ｒ／Ｗ要求（２４１）は中断され、一旦ＩＤＬＥ状態（２４２）になった後、オートリフレッシュ（２４３）が開始される。
【００６０】
ここで、ホールドされていた６回分のオートリフレッシュが実行され、オートリフレッシュホールドカウンタの値はオートリフレッシュが１回完了するたびに、順次デクリメントされる（２２４参照）。
【００６１】
一旦第２のレベル（例えばＨレベル）になった強制リフレッシュ信号は、ホールドされていたオートリフレッシュの終了により第１のレベル（例えばＬレベル）に変化する（１３４参照）。
【００６２】
例えば２つ以上のホールドされているオートリフレッシュ要求を実行中にアクセス要求が発生すると、連続したオートリフレッシュ要求を中断して、発生したアクセス要求に対応したアクセス要求を行うようにする場合には、強制リフレッシュ信号は、第２のレベル（Ｈレベル）のままにしておいてもよい。このようにすると発生したアクセス要求に対応したアクセスが終了してアイドル状態になった場合に、強制リフレッシュ信号を参照して、強制リフレッシュ信号が第２のレベル（Ｈレベル）であった場合には再びホールドされているオートリフレッシュ要求を行うことで、連続したオートリフレッシュ要求の中断による未実行分のホールドされているオートリフレッシュ要求を行うことができる。
【００６３】
２１４のタイミングでオートリフレッシュ要求が発生すると、このときメモリコントローラはＲ／Ｗ状態（２４４）であるため、オートリフレッシュ要求はホールドされ、オートリフレッシュホールド回数２２０は０から１にカウントアップする（２２７参照）。
【００６４】
Ｒ／Ｗ（４４４）完了後ＩＤＬＥ状態（２４５）状態に戻ると、ホールドされた回数に達するまでダイナミックランダムアクセスメモリに対しホールドされたオートリフレッシュ要求（２４６）を行い、前記ホールド回数をデクリメントする（２２８参照）。
【００６５】
図３は、本実施の形態の第１のオートリフレッシュ制御について説明するための図である。
【００６６】
第１のオートリフレッシュ制御ではメモリアクセスがアイドル状態になるまでリフレッシュ要求をホールドする。
【００６７】
メモリコントローラがＳＤＲＡＭを初期化した後、ＳＤＲＡＭは、アイドル状態、オートリフレッシュ状態、読み書き状態の３つのステートを取りうる。
【００６８】
本実施の形態ではメモリコントローラのステートマシンが、ＳＤＲＡＭの上記状態をアイドル（ＳＴ１）、オートリフレッシュ（ＳＴ３）、メモリ読み書き（ＳＴ２）の３つのステートとして記憶している。
【００６９】
オートリフレッシュのタイミングはオートリフレッシュ間隔計測カウンタによりカウントされ、特定の周期でオートリフレッシュのリクエストが発生する。メモリコントローラは、メモリ読み書き中はオートリフレッシュをホールドし、オートリフレッシュホールド回数カウンタ１３２にホールドしたオートリフレッシュ数を記録する。
【００７０】
ステートマシンのステートがアイドル（ＳＴ１）である場合、ＣＰＵからのメモリの読み書き要求（ａ１）が発生すると、ＳＤＲＡＭに対して読み書き要求が行われ、ステートマシンのステートがメモリ読み書き（ＳＴ２）に遷移する。
【００７１】
そしてメモリの読み書き要求の完了（ａ２）を検出すると、ステートマシンのステートがアイドル（ＳＴ１）に遷移する。
【００７２】
ステートマシンのステートがアイドル（ＳＴ１）である場合、１回以上のオートリフレッシュ要求がある（例えばオートリフレッシュホールド回数カウンタの値が１以上）（ａ３）と、ステートマシンのステートがオートリフレッシュ（ＳＴ３）に遷移し、オートリフレッシュホールド回数カウンタにホールドされたオートリフレッシュホールド回数分のオートリフレッシュを実行する。
【００７３】
そしてＳＤＲＡＭのオートリフレッシュ要求の完了（ａ４）を検出すると、ステートマシンのステートがアイドル（ＳＴ１）に遷移する。
【００７４】
このように本実施の形態では、メモリ読み書き要求が完了しアイドル状態（ＳＴ１）なるまで発生したオートリフレッシュ要求をホールドし、アイドル状態（ＳＴ１）になった時点で、オートリフレッシュ要求が１回以上あるかどうかをチェックし、１回以上のオートリフレッシュ要求があった場合、オートリフレッシュステート（ＳＴ３）に移動する。オートリフレッシュホールド回数カウンタにホールドされたオートリフレッシュホールド回数分のリフレッシュを実行した後、アイドル（ＳＴ１）に戻る。
【００７５】
従って本実施の形態によれば、連続アクセス中はリフレッシュによる中断がない。また、必要なリフレッシュの回数をリフレッシュが実行されるまで保持することができる。
【００７６】
図４は、本実施の形態の第２のオートリフレッシュ制御について説明するための図である。
【００７７】
第２のオートリフレッシュ制御ではメモリアクセスがアイドル状態になるまでリフレッシュ要求をホールドし、オートリフレッシュ実行中にメモリの読み書きが発生した場合には、オートリフレッシュを即座に中断し、メモリの読み書きを優先する。
【００７８】
メモリコントローラがＳＤＲＡＭを初期化した後、ＳＤＲＡＭは、アイドル状態、オートリフレッシュ状態、読み書き状態の３つのステートのを取りうる。
【００７９】
本実施の形態ではメモリコントローラのステートマシンが、ＳＤＲＡＭの上記状態をアイドル（ＳＴ１）、オートリフレッシュ（ＳＴ３）、メモリ読み書き（ＳＴ２）の３つのステートとして記憶している。
【００８０】
オートリフレッシュのタイミングはオートリフレッシュ間隔計測カウンタによりカウントされ、特定の周期でオートリフレッシュのリクエストが発生する。メモリコントローラは、メモリ読み書き中はオートリフレッシュをホールドし、オートリフレッシュホールド回数カウンタ１３２にホールドしたオートリフレッシュ数を記録する。
【００８１】
ステートマシンのステートがアイドル（ＳＴ１）である場合、ＣＰＵからのメモリの読み書き要求（ｂ１）が発生すると、ＳＤＲＡＭに対して読み書き要求が行われ、ステートマシンのステートがメモリ読み書き（ＳＴ２）に遷移する。
【００８２】
そしてメモリの読み書き要求の完了（ｂ２）を検出すると、ステートマシンのステートがアイドル（ＳＴ１）に遷移する。
【００８３】
ステートマシンのステートがアイドル（ＳＴ１）である場合、１回以上のオートリフレッシュ要求がある（例えばオートリフレッシュホールド回数カウンタの値が１以上）（ｂ３）と、ステートマシンのステートがオートリフレッシュ（ＳＴ３）に遷移し、オートリフレッシュホールド回数カウンタにホールドされたオートリフレッシュホールド回数分のオートリフレッシュを実行する。
【００８４】
オートリフレッシュ中にＣＰＵからのメモリの読み書き要求（ｂ５）が発生すると、オートリフレッシュを即座に中断し、メモリの読み書きを優先するためにステートマシンのステートがアイドル（ＳＴ１）に遷移し、ＳＤＲＡＭに対して読み書き要求が行われ、ステートマシンのステートがメモリ読み書き（ＳＴ２）に遷移する。
【００８５】
またオートリフレッシュ中にＣＰＵからのメモリの読み書き要求（ｂ５）が発生することなしにＳＤＲＡＭのオートリフレッシュ要求の完了（ｂ４）を検出すると、ステートマシンのステートがアイドル（ＳＴ１）に遷移する。
【００８６】
このように本実施の形態では、メモリ読み書き要求が完了しアイドル状態（ＳＴ１）なるまで発生したオートリフレッシュ要求をホールドし、アイドル状態（ＳＴ１）になった時点で、オートリフレッシュ要求が１回以上あるかどうかをチェックし、１回以上のオートリフレッシュ要求があった場合、オートリフレッシュステート（ＳＴ３）に移行し、オートリフレッシュホールド回数カウンタにホールドされたオートリフレッシュホールド回数分のリフレッシュを実行する。
【００８７】
しかしこの期間に、メモリ読み書きが発生した場合は、オートリフレッシュを即座に中止し、メモリ読み書きを優先する。
【００８８】
このため、複数回のオートリフレッシュ実行中にＣＰＵからのアクセス要求が発生した場合の処理の遅延を防止することができる。
【００８９】
図５は、本実施の形態の第３のオートリフレッシュ制御について説明するための図である。
【００９０】
第３のオートリフレッシュ制御ではメモリアクセスがアイドル状態になるまでリフレッシュ要求をホールドし、オートリフレッシュ実行中にメモリの読み書きが発生した場合には、オートリフレッシュを即座に中断し、メモリの読み書きを優先する。しかしメモリの読み書き中でもオートリフレッシュホールド回数が設定した値を超えると強制的にオートリフレッシュを実行する。
【００９１】
メモリコントローラがＳＤＲＡＭを初期化した後、ＳＤＲＡＭは、アイドル状態、オートリフレッシュ状態、読み書き状態の３つのステートのを取りうる。
【００９２】
本実施の形態ではメモリコントローラのステートマシンが、ＳＤＲＡＭの上記状態をアイドル（ＳＴ１）、オートリフレッシュ（ＳＴ３）、メモリ読み書き（ＳＴ２）の３つのステートとして記憶している。
【００９３】
オートリフレッシュのタイミングはオートリフレッシュ間隔計測カウンタによりカウントされ、特定の周期でオートリフレッシュのリクエストが発生する。メモリコントローラは、メモリ読み書き中はオートリフレッシュをホールドし、オートリフレッシュホールド回数カウンタ１３２にホールドしたオートリフレッシュ数を記録する。
【００９４】
ステートマシンのステートがアイドル（ＳＴ１）である場合、ＣＰＵからのメモリの読み書き要求（ｃ１）が発生すると、ＳＤＲＡＭに対して読み書き要求が行われ、ステートマシンのステートがメモリ読み書き（ＳＴ２）に遷移する。
【００９５】
そしてメモリの読み書き要求の完了（ｃ３）を検出すると、ステートマシンのステートがアイドル（ＳＴ１）に遷移する。
【００９６】
またメモリの読み書き中にオートリフレッシュホールド回数カウンタのしきい値（所定の設定値）オーバー（ｃ２）を検出すると、アイドル状態（ＳＴ１）にステートが遷移し、その後ステートがオートリフレッシュ状態（ＳＴ３）に遷移する。
【００９７】
ステートマシンのステートがアイドル（ＳＴ１）である場合、１回以上のオートリフレッシュ要求がある（例えばオートリフレッシュホールド回数カウンタの値が１以上）（ｃ４）と、ステートマシンのステートがオートリフレッシュ（ＳＴ３）に遷移し、オートリフレッシュホールド回数カウンタにホールドされたオートリフレッシュホールド回数分のオートリフレッシュを実行する。
【００９８】
オートリフレッシュ中にＣＰＵからのメモリの読み書き要求（ｃ５）が発生すると、オートリフレッシュを即座に中断し、メモリの読み書きを優先するためにステートマシンのステートがアイドル（ＳＴ１）に遷移し、ＳＤＲＡＭに対して読み書き要求が行われ、ステートマシンのステートがメモリ読み書き（ＳＴ２）に遷移する。
【００９９】
またオートリフレッシュ中にＣＰＵからのメモリの読み書き要求（ｃ５）が発生することなしにＳＤＲＡＭのオートリフレッシュ要求の完了（ｃ６）を検出すると、ステートマシンのステートがアイドル（ＳＴ１）に遷移する。
【０１００】
このように本実施の形態では、メモリ読み書き要求が完了しアイドル状態（ＳＴ１）なるまで発生したオートリフレッシュ要求をホールドし、アイドル状態（ＳＴ１）になった時点で、オートリフレッシュ要求が１回以上あるかどうかをチェックし、１回以上のオートリフレッシュ要求があった場合、オートリフレッシュステート（ＳＴ３）に移行し、オートリフレッシュホールド回数カウンタにホールドされたオートリフレッシュホールド回数分のリフレッシュを実行する。
【０１０１】
しかしこの期間に、メモリ読み書きが発生した場合は、オートリフレッシュを即座に中止し、メモリ読み書きを優先する。
【０１０２】
このため、複数回のオートリフレッシュ実行中にＣＰＵからアクセス要求が発生した場合の処理の遅延を防止することができる。
【０１０３】
またメモリの読み書き中であっても、オートリフレッシュホールド回数が設定した値を超えると強制的にオートリフレッシュを実行する。
【０１０４】
ダイナミックメモリはその特性として、「一定期間」内に指定回数分のリフレッシュをおこなう必要がある。このオートリフレッシュが行われない場合、メモリに保存されているデータは保証されず、喪失する場合がある。例えば多数のマスターが交互にメモリコントローラにアクセスするケースなどでは、アイドルに戻ることなく連続的にメモリ読み書きが発生する場合も想定される。
【０１０５】
本実施の形態では、このような場合でもオートリフレッシュホールド回数が設定した値を超えると強制的にオートリフレッシュを実行するので、メモリ上に保存されているデータを保証することができる。
【０１０６】
２．マイクロコンピュータ
図６は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【０１０７】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、シリアルインターフェース５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置５６０、プリスケーラ５７０、ＭＭＵ７３０，画像処理回路７４０及びそれらを接続する汎用バス６８０、専用バス７３０等、各種ピン６９０等を含む。
【０１０８】
ＲＡＭ７２０は、セルフリフレッシュ機能を有するダイナミックランダムアクセスメモリ（ＤＲＡＭ／ＳＤＲＡＭ）及び本発明のメモリコントローラ７２２を含む。
【０１０９】
メモリコントローラ７２２は、例えば図１で説明した構成を有する。
【０１１０】
３．電子機器
図７に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【０１１１】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。
【０１１２】
音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【０１１３】
図８（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【０１１４】
図８（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【０１１５】
図８（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【０１１６】
本実施の形態のマイクロコンピュータを図８（Ａ）〜図８（Ｃ）の電子機器に組みこむことにより、メモリ容量が少なくて低コストの電子機器を提供することができる。
【０１１７】
なお、本実施形態を利用できる電子機器としては、図８（Ａ）（Ｂ）（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【０１１８】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【０１１９】
【図１】本実施の形態の半導体集積回路装置について説明するための図である。
【図２】本実施の形態の特徴について説明するためのタイミング図である。
【図３】本実施の形態の第１のオートリフレッシュ制御について説明するための図である。
【図４】本実施の形態の第２のオートリフレッシュ制御について説明するための図である。
【図５】本実施の形態の第３のオートリフレッシュ制御について説明するための図である。
【図６】本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【図７】本実施の形態の電子機器のブロック図の一例を示す。
【図８】図８（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【０１２０】
１０  ホスト、１００  半導体集積回路装置、１１０  メモリコントローラ、１２０  オートリフレッシュリクエスト発生回路、１２２  オートリフレッシュ間隔計測カウンタ、１３０  ホールド回数カウント回路、１３２  オートリフレッシュホールド回数カウンタ、１４０  強制リフレッシュ実行タイミング検出回路、１５０  強制リフレッシュ実行回路、１６０  連続リフレッシュ実行回路、１７０  ステートマシン、１８０  アクセス要求生成回路、５１０  ＣＰＵ、５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  ＤＲＡＭコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  シリアルインターフェース、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７２２  メモリコントローラ、７３０  ＭＭＵ、８００  電子機器、８５０  ＬＣＤ、８００  電子機器
【図１】
2005310245.tif 000003
【図２】
2005310245.tif 000004
【図３】
2005310245.tif 000005
【図４】
2005310245.tif 000006
【図５】
2005310245.tif 000007
【図６】
2005310245.tif 000008
【図７】
2005310245.tif 000009
【図８】
2005310245.tif 000010