上記した《1》の構成の本発明の不揮発性記憶システムは、次のような実施の形態においてさらに有利に展開することが可能である。
《2》上記《1》の構成において、前記フラッシュメモリコントローラに、フラッシュメモリ内部状態管理部をもたせる。各フラッシュメモリは、それぞれの内部状態情報を生成し保持している。フラッシュメモリ内部状態管理部は、フラッシュメモリコントローラが各フラッシュメモリとの連絡で取得した各フラッシュメモリの内部状態情報を取り込んで記録しておく。その記録は状況の推移に応じて更新される。
複数のフラッシュメモリのそれぞれは、その動作状態の変化に応じて内部状態をフラッシュメモリコントローラに出力し、フラッシュメモリコントローラは受け取った内部状態をフラッシュメモリ内部状態管理部に更新的に登録する。
フラッシュメモリコントローラは、外部にあるホストなどからの動作指令に応じて、メモリブロックにアクセスし、フラッシュメモリ内部状態管理部を参照して、複数のフラッシュメモリのうち該当するフラッシュメモリについての内部状態情報を取得する。フラッシュメモリコントローラは、取得したフラッシュメモリ内部状態に従って、フラッシュメモリ電源回路における複数の処理実行用電源回路のうち動作指令に応じた処理実行用電源回路を動作状態にするよう制御する。
《3》上記《2》の構成において、前記フラッシュメモリの内部状態情報としては、スタンバイ状態か動作状態かの識別情報や処理の実行種類の情報を含むものとする。スタンバイ状態とは、該当のフラッシュメモリが処理の実行を実行していない停止(休止)状態にあることをいう。動作状態とは、読み出し動作、書き込み動作、消去動作、書き込みベリファイ動作、消去ベリファイ動作などなんらかの処理の実行を行っている状態をいう。処理の実行種類は、読み出し、書き込み、消去、書き込みベリファイ、消去ベリファイなどである。実行処理の種類に応じて駆動させるべき各種処理実行用電源回路の種類も変わる。また、他のフラッシュメモリがすでに動作状態にあるときと動作状態にないときとで、フラッシュメモリコントローラによるフラッシュメモリ、フラッシュメモリ電源回路に対して制御の態様が変化する。これらの情報をフラッシュメモリの内部情報としてフラッシュメモリコントローラが恒常的に管理し、その情報に基づいてフラッシュメモリ、フラッシュメモリ電源回路を制御することにより、きめの細かい制御を実現することが可能となる。ひいては、消費電力削減を効果的なものにする。
《4》上記《3》の構成の1態様として、前記処理種類の情報は、読み出し動作、書き込み/消去動作の各情報とする。この場合に、各フラッシュメモリは、その処理の種類として読み出し動作、書き込み/消去動作を行うように構成されているとする。またフラッシュメモリ電源回路は、その処理実行用電源回路として読み出し用電源回路、書き込み/消去用電源回路を有しているものとする。
《5》上記《3》の構成の別の1態様として、前記処理種類の情報は、読み出し動作、書き込み/消去動作、書き込み/消去ベリファイ動作の各情報とする。この場合に、各フラッシュメモリは、その処理種類として読み出し動作、書き込み/消去動作、書き込み/消去ベリファイ動作を行うように構成されているとする。またフラッシュメモリ電源回路は、その処理実行用電源回路として読み出し用電源回路、書き込み/消去用電源回路、ベリファイ用電源回路を有しているものとする。
上記した《1》〜《5》の構成の本発明の不揮発性記憶システムは、次のような実施の形態においてさらに有利に展開することが可能である。
《6》前記フラッシュメモリ内部状態については、これをフラッシュメモリ割り込み通知信号によるものとすることが可能である。そのフラッシュメモリ割り込み通知信号は、フラッシュメモリの内部の動作状態が変化するときに生成され、フラッシュメモリコントローラに通知されるものである。
例えば、フラッシュメモリの内部状態がスタンバイ状態、読み出し動作状態、書き込み/消去動作状態、書き込み/消去ベリファイ動作状態のいずれか1つであり、それが他の状態に変化したときに、フラッシュメモリはその変化を示す割り込み通知信号を生成し、バスライン等を介してフラッシュメモリコントローラに伝える。内部状態の変化の態様は様々である。
読み出し動作と書き込み/消去動作を有するフラッシュメモリの場合は、
・スタンバイ状態→読み出し動作状態
・スタンバイ状態→書き込み動作状態
・スタンバイ状態→消去動作状態
・読み出し動作状態→スタンバイ状態
・書き込み動作状態→スタンバイ状態
・消去動作状態→スタンバイ状態
などの内部状態の変化がある。
さらに、ベリファイ動作を有するフラッシュメモリの場合は、上記の変化に加えて、
・書き込み動作状態→書き込みベリファイ状態
・消去動作状態→消去ベリファイ状態
の変化がある。
フラッシュメモリ割り込み通知信号によってフラッシュメモリ内部状態を生成することは、処理実行用電源回路の制御において、フラッシュメモリの内部状態のきめの細かい変化に応じた微調整的制御を実現することとなり、消費電力の削減効果をさらに有効なものとすることが可能になる。
《7》上記《2》ではフラッシュメモリ内部状態管理部について言及したが、本項は、このフラッシュメモリ内部状態管理部で更新的に記録される各フラッシュメモリの内部状態情報を利用する。本項は、上記の《2》〜《6》に適用可能である。
フラッシュメモリコントローラは、外部のホストから動作指令を受けた場合に、次の一連の動作を実行するように構成されているものとする。
[1]動作指令における指令対象に該当する指令対象フラッシュメモリの動作を一時的に停止させる。これは、指令対象フラッシュメモリを動作状態にしたまま動作指令における指令対象に該当する指令対象処理実行用電源回路を起動するとなると、本来必要な電源電圧を与える前に動作を始めてしまって正しい書き込みや読み出し等ができなくなる不具合や起動時の電流突入が発生することになるが、これを避けるためである。
[2]次いで、フラッシュメモリ内部状態管理部におけるフラッシュメモリ内部状態をチェックし、前記動作指令における指令対象に該当する指令対象処理実行用電源回路の状況を判断する。
[3-1]上記の[2]の判断が、指令対象処理実行用電源回路が停止状態にあることを示すときは、指令対象処理実行用電源回路を起動する。この起動に際しては、上記[1]であらかじめ指令対象フラッシュメモリの動作を停止させてあるので、指令対象フラッシュメモリに突入電流が流入する心配はない。
[4]次いで、その給電状態が安定するのを待ち、[5]へ進む。
[3-2]一方、上記の[2]の判断で、指令対象処理実行用電源回路が他のフラッシュメモリの動作のためにすでに動作状態にあるときは、[3-1]の起動と[4]をスキップし、[5]へ進む。
[5]次いで、指令対象フラッシュメモリの動作を再開するとともに、フラッシュメモリ内部状態管理部において指令対象フラッシュメモリの内部状態を更新する。
指令対象処理実行用電源回路が停止状態にあるときに限り、指令対象処理実行用電源回路を起動する。既に動作状態にあるときは起動の必要はなく、スキップし、再起動の過程を省略することになる。起動する場合は、起動の動作が安定するまでに一定の時間がかかるが、スキップすればその時間が節約され、高速動作(電力消費削減)に寄与することになる。
《8》本項も、フラッシュメモリ内部状態管理部で更新的に記録される各フラッシュメモリの内部状態情報を利用する。本項は、上記《7》の構成に適用可能である。本項では、フラッシュメモリコントローラは、指令対象フラッシュメモリから動作完了の連絡を受け取った場合に、次の一連の動作を実行するように構成されているものとする。
[1]動作を完了した指令対象フラッシュメモリの動作を一時的に停止させる。これは、動作を完了した指令対象フラッシュメモリを動作状態にしたままで給電中の指令対象処理実行用電源回路を停止すると、停止時の電流変動による悪影響が発生することになるが、これを避けるためである。
[2]次いで、フラッシュメモリ内部状態管理部におけるフラッシュメモリ内部状態をチェックし、動作を完了した指令対象フラッシュメモリに給電している給電中の指令対象処理実行用電源回路の使用状況を判断する。
[3-1]上記の[2]の判断が、給電中の指令対象処理実行用電源回路が、他のフラッシュメモリによって非使用状態にあることを示す場合は、給電中の指令対象処理実行用電源回路を停止し、[4]へ進む。この停止に際しては、上記[1]であらかじめ動作を完了した指令対象フラッシュメモリの動作を停止させてあるので、このフラッシュメモリに停止時の電流変動による悪影響が発生する心配はない。
[3-2]一方、上記の[2]の判断が、給電中の指令対象処理実行用電源回路が、他のフラッシュメモリによって使用状態にあることを示す場合は、[3-1]の停止をスキップし、[4]へ進む。
[4]その後に動作を完了した指令対象フラッシュメモリの動作を再開するとともに、フラッシュメモリ内部状態管理部においてフラッシュメモリ内部状態を更新する。
給電中の指令対象処理実行用電源回路が他のフラッシュメモリに使用されていないときに限り、給電中の指令対象処理実行用電源回路を停止する。他のフラッシュメモリに使用されているときは停止の必要はなくスキップし、停止の過程を省略することになる。停止の場合も、停止による影響がなくなるまでに一定の時間がかかるが、スキップすればその時間が節約され、高速動作(電力消費削減)に寄与することになる。
《9》本項は、処理の種類としてベリファイ動作を含む場合である。前記フラッシュメモリコントローラは、書き込み/消去動作に引き続くベリファイ動作状態に移行した場合に、フラッシュメモリ内部状態管理部におけるフラッシュメモリ内部状態に従って指令対象処理実行用電源回路の使用状況を判断する。指令対象処理実行用電源回路が停止状態にあるときは指令対象処理実行用電源回路を起動し、その給電状態が安定した後に指令対象フラッシュメモリの動作を再開するとともに、フラッシュメモリ内部状態管理部においてフラッシュメモリ内部状態を更新する。一方、指令対象処理実行用電源回路がすでに動作状態にあるときは起動スキップして指令対象フラッシュメモリの動作を再開するとともに、フラッシュメモリ内部状態を更新する。
《10》本項は、上記の《9》に関連するものである。前記フラッシュメモリコントローラは、ベリファイ中のフラッシュメモリから動作完了の連絡を受け取ると、ベリファイ動作完了フラッシュメモリの動作を一時的に停止させる。フラッシュメモリ内部状態管理部におけるフラッシュメモリ内部状態に従って、ベリファイ動作完了フラッシュメモリに給電しているベリファイ給電中処理実行用電源回路の使用状況を判断し、ベリファイ給電中処理実行用電源回路が他のフラッシュメモリによって非使用状態にあるときは、ベリファイ給電中処理実行用電源回路を停止する。一方、ベリファイ給電中処理実行用電源回路が他のフラッシュメモリによって使用状態にあるときは停止をスキップする。
上記の《1》〜《10》の構成の具体例を実施例1として以下に説明する。
<実施例1>
図1は本発明の実施例1の不揮発性記憶システムの構成を示すブロック図である。本実施例の不揮発性記憶システムは、複数のフラッシュメモリ2012の集合としてのメモリブロック2010と、フラッシュメモリ電源回路2020と、フラッシュメモリコントローラ2030を有して構成されている。なお、フラッシュメモリ電源回路2020とフラッシュメモリコントローラ2030は、それぞれ別の半導体装置でもよいし、同じチップ上に集積された半導体装置でもかまわない。
フラッシュメモリコントローラ2030は、フラッシュメモリ2012に対してアドレス/コントロールバス2041とデータバス2042とで接続されている。また、フラッシュメモリコントローラ2030は、フラッシュメモリ電源回路2020に対してコントロールバス2043を介して接続されている。また、フラッシュメモリ電源回路2020は、フラッシュメモリ2012のそれぞれに対して電源線2044を介して接続されている。
フラッシュメモリ2012は、従来のフラッシュメモリが内蔵していた書き込み/消去用、読み出し用、ベリファイ用の各電源回路は内蔵せず、新たに書き込み/消去用電源端子T1と読み出し用電源端子T2とベリファイ用電源端子T3を備えていて、フラッシュメモリ2012(メモリブロック2010)の外部に置かれたフラッシュメモリ電源回路2020よりそれぞれの電圧電源が供給されるようになっている。
なお、ベリファイ用電源端子T3は書き込み/消去用電源端子T1と共有してもよい。この場合、ベリファイ用電圧(例えば10V)は、フラッシュメモリ2012の内部で書き込み/消去用電圧(例えば20V)から降圧して生成するものとする。また、読み出し用電源端子T2とベリファイ用電源端子T3を書き込み/消去用電源端子T1と共用し、読み出し用電圧およびベリファイ用電圧はフラッシュメモリ内部で書き込み/消去用電圧から降圧して生成する構成でもよい。電源端子をまとめた場合は、構成が単純になる。例えば読み出しのフラッシュメモリと書き込みのフラッシュメモリが同時に存在する場合、読み出しのフラッシュメモリに対しても、より高い書き込み電圧を与えることになる。そのため、きめ細かい電力制御の結果の省電力の効果は小さくなる。
フラッシュメモリ2012は、その内部コントローラ(図示せず)が実行している動作状態を示すインフォメーションレジスタ(IR)2014を備えており、さらにこの動作状態の情報を外部に通知するためのフラッシュメモリ内部状態通知信号A3を出力する端子T4を備えている。フラッシュメモリ内部状態通知信号A3はフラッシュメモリコントローラ2030に出力される。
フラッシュメモリ内部状態通知信号A3の形態については、次のA〜Eがある。
A)通知の方式は、フラッシュメモリ2012からの割り込み通知であってもよいし、フラッシュメモリコントローラ2030からのポーリング(定期的または不定期的な問い合わせに応じた通知)でもよい。
B)割り込み通知では、フラッシュメモリ2012の内部の動作状態が変化した際に割り込みを発生して、フラッシュメモリコントローラ2030に対して動作状態に変化があったことを通知する。
C)ポーリングでは、フラッシュメモリコントローラ2030がフラッシュメモリ内部状態通知信号A3を所定の間隔でモニタし、その状態が変化したかどうかをチェックする。
D)データの出力方法は、パラレルでもシリアルでもよい。内部状態を表すデータは複数ビットの情報をもったデータであり、パラレル出力ではビット分の本数をもつバス形態である。シリアル出力では、シリアルデータを送るデータ線1本または転送用クロックを合わせた2本の信号である。
E)データの出力自体は、フラッシュメモリ2012のデータバス2042を使ってもよい。
フラッシュメモリ内部状態通知信号A3は状態変化のみを通知することだけを担い、状態を示すデータ自体は、フラッシュメモリ2012が従来からもつアドレス/コントロールバス2041を使って、フラッシュメモリコントローラ2030から内部状態を読み出すコマンド等を発行して読み出す。
実施例1では、そのフラッシュメモリ内部状態通知信号A3を、内部状態が変化したことを割り込みによって通知する信号(フラッシュメモリ割り込み通知信号A31)とする。フラッシュメモリ2012の内部状態の読み出しには、フラッシュメモリコントローラ2030が内部状態読み出しコマンドを発行し、フラッシュメモリ2012のデータバス2042からインフォメーションレジスタ2014を読み出す例で説明する。
実施例1の変形に相当する図2の不揮発性記憶システムでは、フラッシュメモリ2012は、内部コントローラ(図示せず)の動作を一時停止・再開するフラッシュメモリ内部動作制御信号A4を入力する端子T5を備えており、フラッシュメモリコントローラ2030と接続されて、フラッシュメモリコントローラ2030がフラッシュメモリ2012の内部コントローラの動作を直接制御できるようになっている。
フラッシュメモリ内部動作制御信号A4の使用法については、主に次の2通りが挙げられる。
[1]フラッシュメモリ2012はフラッシュメモリ内部状態通知信号A3(割り込み通知信号)を出力し、それを受けたフラッシュメモリコントローラ2030がフラッシュメモリ内部動作制御信号A4によって内部のコントローラの動作を一時停止させ、所望の操作後に再開させる。
[2]フラッシュメモリ2012は、フラッシュメモリ内部状態通知信号A3(割り込み通知信号)を出力すると同時に内部のコントローラを一時停止し、フラッシュメモリ内部動作制御信号A4による動作再開を待つ。
本実施例のフラッシュメモリ内部動作制御信号A4においては、[1]を例に説明する。フラッシュメモリコントローラ2030は、各フラッシュメモリ2012に対してアドレス/コントロールバス2041を介して書き込み、消去、読み出し等のコマンドとそのアドレス情報を出力し、データバス2042を介してデータの書き込み、読み出し、消去を実行する。
またフラッシュメモリコントローラ2030は、フラッシュメモリ2012から出力されるフラッシュメモリ内部状態通知信号A3を受け取る。本実施例のフラッシュメモリ内部状態通知信号A3は、フラッシュメモリ2012の内部状態が変化したことを示す割り込み通知信号で、この信号の割り込みを受けることで、フラッシュメモリコントローラ2030は、どのフラッシュメモリ2012の内部状態が変化したのかを知ることができる。
またフラッシュメモリコントローラ2030は、接続されているそれぞれのフラッシュメモリ2012の内部状態を管理するフラッシュメモリ内部状態管理テーブル2032を備えている。フラッシュメモリ内部状態管理テーブル2032は、現在の各フラッシュメモリ2012の内部状態を保持している。フラッシュメモリ内部状態管理テーブル2032の具体的な内部状態とそのときの電源状態を図3A、図3Bに示す。またフラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部コントローラの動作を一時停止・再開するフラッシュメモリ内部動作制御信号A4をフラッシュメモリ2012に出力する。
またフラッシュメモリコントローラ2030は、フラッシュメモリ電源回路2020へコントロールバス2043を介してフラッシュメモリ電源制御信号A1を出力する。
フラッシュメモリ電源制御信号A1は、フラッシュメモリ電源回路2020に搭載されている各電源回路2021,2022,2023の動作を個別に制御するための信号で、各電源回路の動作・停止、発生電圧、給電能力を制御することができる。フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によってフラッシュメモリ電源回路2020に搭載されている各電源回路2021,2022,2023を所望の電圧、給電能力で動作させる。各電源回路2021,2022,2023が起動して供給準備が完了した際、フラッシュメモリ電源回路2020から各電源回路2021,2022,2023の電源準備完了信号A2が出力され、それをコントロールバス2043を介してフラッシュメモリコントローラ2030が受け取る。
フラッシュメモリ電源回路2020は、システム全体に供給される単一電源VCCから、フラッシュメモリ2012の書き込み/消去用電圧、読み出し用電圧およびベリファイ用電圧を発生させるための昇圧回路、および給電能力を変更可能な出力回路からなる書き込み/消去用電源回路2021、読み出し用電源回路2022およびベリファイ用電源回路2023を備えている。各電源回路2021,2022,2023が供給する電圧電源は、電源ラインを通じて複数のフラッシュメモリ2012の各電源端子T1,T2,T3に接続されている。
またフラッシュメモリ電源回路2020は、フラッシュメモリコントローラ2030からのフラッシュメモリ電源制御信号A1によって、書き込み/消去用電源回路2021、読み出し用電源回路2022およびベリファイ用電源回路2023の動作・停止、各電源の昇圧回路の発生電圧、各電源の出力回路の給電能力の切り替えを行う。
昇圧回路の発生電圧の制御については、例えばある一定の電圧範囲内で複数段階の電圧を設定できるような昇圧回路を用いて、与えられた複数ビットの設定電圧情報からそれに対応する電圧を発生させる方法がある。
出力回路の給電能力の切り替えについては、例えばあらかじめ出力回路の最終段のトランジスタの大きさを複数用意しておき、与えられた複数ビットの設定電力情報からそれに対応する最終段のトランジスタを選択する方法がある。
またフラッシュメモリ電源回路2020は、フラッシュメモリコントローラ2030からのフラッシュメモリ電源制御信号A1によって各電源回路2021,2022,2023を制御し、それらの準備が完了した際にフラッシュメモリコントローラ2030に対して電源準備完了信号A2を出力する。
なお、フラッシュメモリ2012がベリファイ用電源端子T3と書き込み/消去用電源端子T1を共有する構成の場合は、ベリファイ用電源回路2023を備えなくてもよい。また、フラッシュメモリ2012が読み出し用電源端子T2およびベリファイ用電源端子T3と書き込み/消去用電源端子を共有する構成の場合は、読み出し用電源回路2022およびベリファイ用電源回路2023を備えていなくてもよい。
<読み出し用電源シーケンス>
システムに電源が投入された直後は、システム全体に供給される単一電源VCCは、フラッシュメモリコントローラ2030とフラッシュメモリ電源回路2020とフラッシュメモリ2012のVCC電源端子に供給される。フラッシュメモリ2012のVCC電源端子は、主にフラッシュメモリ2012のIO(入出力端子)とロジック回路(図示せず)に電力を供給しており、フラッシュメモリコントローラ2030からのコマンドを受けることができる状態にある。またフラッシュメモリ電源回路2020においては、搭載する各電源回路2021,2022,2023は停止しており、フラッシュメモリ2012の書き込み/消去用電源端子T1と読み出し用電源端子T2とベリファイ用電源端子T3には電力が供給されていない。
図4のフローチャートに従って読み出し用電源シーケンスの動作を説明する。
ステップS1において、外部のホストからの指示により、フラッシュメモリコントローラ2030はフラッシュメモリ2012に対してアクセスを開始する。フラッシュメモリコントローラ2030から発行されたコマンドが読み出し系のコマンドであった場合、フラッシュメモリ2012は読み出しのアドレスをラッチした後、該当するメモリセルアレイに対するデータ読み出し動作に入り、フラッシュメモリコントローラ2030に対してデータの読み出し動作に入ったことを通知するためフラッシュメモリ割り込み通知信号A31を出力する。
次いでステップS2において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012からフラッシュメモリ割り込み通知信号A31を受け取ると、フラッシュメモリ内部動作制御信号A4によってフラッシュメモリ2012を一時停止させる。
次いでステップS2、S3において、フラッシュメモリ内部状態管理テーブル2032を参照して、その情報からフラッシュメモリ電源回路2020の読み出し用電源回路2022が停止しているか、あるいはすでに動作しているかを確認する。
読み出し用電源回路2022が停止している場合は、ステップS4に進んで、フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によって、フラッシュメモリ電源回路2020に搭載されている読み出し用電源回路2022を起動させる。フラッシュメモリ電源回路2020は読み出し用電源回路2022を起動し、ステップS5において、電源供給の準備が完了するまで待機する。
やがて電源電圧の昇圧が完了し供給準備が整ったら、ステップS6において、フラッシュメモリ電源回路2020はフラッシュメモリコントローラ2030に対して読み出し用電源回路2022の電源準備完了信号A2を出力する。
次いでステップS7において、フラッシュメモリコントローラ2030は、読み出し用の電源準備完了信号A2を受け、フラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「スタンバイ」から「読み出し」へ更新する。
一方、ステップS3の判断で読み出し用電源回路2022がすでに動作している場合、ステップS7に進み、フラッシュメモリコントローラ2030は、直ちにフラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「スタンバイ」から「読み出し」へ更新する。
フラッシュメモリ2012はすでに読み出し用電源が供給された状態になっているため、フラッシュメモリ内部動作制御信号A4を受けた後、ステップS8において、メモリセルアレイに対するデータ読み出し動作が実行される。
フラッシュメモリ2012は、メモリセルアレイに対するデータ読み出し動作が終了すると、ステップS9において、フラッシュメモリコントローラ2030に対してデータ読み出し動作が終了したことを通知するためフラッシュメモリ割り込み通知信号A31を出力する。
フラッシュメモリコントローラ2030は、フラッシュメモリ2012からフラッシュメモリ割り込み通知信号A31を受け取ると、ステップS10において、フラッシュメモリ内部動作制御信号A4によってフラッシュメモリ2012を一時停止させ、フラッシュメモリ内部状態管理テーブル2032を参照して、ステップS11において、その情報から他に読み出し動作中のフラッシュメモリ2012がないかどうか確認する。
他に読み出し動作中のフラッシュメモリ2012がなく、読み出し用電源回路2022を停止できると判断した場合、ステップS12に進んで、フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によって、フラッシュメモリ電源回路2020に搭載される読み出し用電源回路2022を停止させる。
次いでステップS13において、フラッシュメモリコントローラ2030は、フラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032における、現在アクセスしているフラッシュメモリ2012の状態を「読み出し」から「スタンバイ」へ更新する。
一方、ステップS11の判断で他に読み出し動作中のフラッシュメモリ2012があって読み出し用電源回路2022を停止できない場合は、ステップS12をスキップしてステップS13に進み、フラッシュメモリコントローラ2030は直ちにフラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「読み出し」から「スタンバイ」へ更新する。
<書き込み/消去用電源シーケンス>
図5のフローチャートに従って書き込み/消去用電源シーケンスの動作を説明する。ステップS21において、フラッシュメモリコントローラ2030から発行されたコマンドが書き込み/消去系のコマンドであった場合、フラッシュメモリ2012は書き込み/消去アドレスおよび書き込みデータをラッチした後、該当するメモリセルアレイに対するデータ書き込みあるいは消去動作に入り、フラッシュメモリコントローラ2030に対してデータの書き込みあるいは消去動作に入ったことを通知するためフラッシュメモリ割り込み通知信号A31を出力する。
次いでステップS22において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012からフラッシュメモリ割り込み通知信号A31を受け取ると、フラッシュメモリ内部動作制御信号A4によってフラッシュメモリ2012を一時停止させ、フラッシュメモリ内部状態管理テーブル2032を参照して、ステップS23において、その情報からフラッシュメモリ電源回路2020の書き込み/消去用電源回路2021が停止しているかすでに動作しているかを確認する。
書き込み/消去用電源回路2021が停止している場合、ステップS24に進んで、フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によって、フラッシュメモリ電源回路2020に搭載される書き込み/消去用電源回路2021を起動させる。フラッシュメモリ電源回路2020は書き込み/消去用電源回路2021を起動し、電源供給の準備が完了するまで待機する。
ステップS25において、電源電圧の昇圧が完了し供給準備が整ったことを確認したら、ステップS26に進んで、フラッシュメモリ電源回路2020はフラッシュメモリコントローラ2030に対して書き込み/消去用電源回路2021の電源準備完了信号A2を出力する。
次いでステップS27において、フラッシュメモリコントローラ2030は、書き込み/消去用の電源準備完了信号A2を受け、フラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「スタンバイ」から「書き込み」または「消去」へ更新する。
ステップS23の判断で書き込み/消去用電源回路2021がすでに動作している場合、ステップS27にスキップし、フラッシュメモリコントローラ2030は、直ちにフラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「スタンバイ」から「書き込み」または「消去」へ更新する。
フラッシュメモリ2012はすでに書き込み/消去用電源回路2021が供給された状態になっているため、フラッシュメモリ内部動作制御信号A4を受けた後、ステップS28において、メモリセルアレイに対するデータ書き込み/消去動作が実行される。
フラッシュメモリ2012は、メモリセルアレイに対するデータ書き込み/消去動作が終了すると、ステップS29において、フラッシュメモリコントローラ2030に対してデータ書き込み/消去動作が終了したことを通知するためフラッシュメモリ割り込み通知信号A31を出力する。
次いでステップS30において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012からフラッシュメモリ割り込み通知信号A31を受け取ると、フラッシュメモリ内部動作制御信号A4によってフラッシュメモリ2012を一時停止させ、フラッシュメモリコントローラ2030はフラッシュメモリ内部状態管理テーブル2032を参照して、ステップS31において、その情報から他に書き込み/消去動作中のフラッシュメモリ2012がないかどうか確認する。
他に書き込み/消去動作中のフラッシュメモリ2012がなく、書き込み/消去用電源回路2021を停止できると判断した場合、ステップS32に進んで、フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によって、フラッシュメモリ電源回路2020に搭載される書き込み/消去用電源回路2021を停止させ、次いでステップS33において、ベリファイ用電源シーケンスに移行する。
ステップS31の判断で他に書き込み/消去動作中のフラッシュメモリ2012があって書き込み/消去用電源回路2021を停止できない場合は、ステップS32をスキップし、ステップS33で直ちにベリファイ用電源シーケンスに移行する。
ベリファイ用電源シーケンス終了後、ステップS34において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込み(ベリファイ終了時)のあったフラッシュメモリ2012の内部状態を確認する。ステップS35の判断において内部状態が書き込み/消去であれば、ステップS22に戻り、再度書き込み/消去用電源シーケンスを実行する。
ステップS35の判断において内部状態がスタンバイであれば、ステップS36に進んで、フラッシュメモリコントローラ2030は、フラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「書き込みベリファイ」または「消去ベリファイ」から「スタンバイ」へ更新する。
<ベリファイ用電源シーケンス>
図6のフローチャートに従ってベリファイ用電源シーケンスの動作を説明する。図6は図5のステップS33からの続きである。ステップS41において、書き込み/消去動作終了後、フラッシュメモリコントローラ2030はフラッシュメモリ内部状態管理テーブル2032を参照して、ステップS42において、その情報からフラッシュメモリ電源回路2020のベリファイ用電源回路2023が停止しているかすでに動作しているかを確認する。
ステップS42の判断でベリファイ用電源回路2023が停止している場合、ステップS43に進んで、フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によって、フラッシュメモリ電源回路2020に搭載されるベリファイ用電源回路2023を起動させる。フラッシュメモリ電源回路2020はベリファイ用電源回路2023を起動し、ステップS44において、電源供給の準備が完了するまで待機する。
やがて電源電圧の昇圧が完了し供給準備が整ったら、ステップS45において、フラッシュメモリ電源回路2020はフラッシュメモリコントローラ2030にベリファイ用電源回路2023の電源準備完了信号A2を出力する。
次いでステップS46において、フラッシュメモリコントローラ2030は、ベリファイ用の電源準備完了信号A2を受け、フラッシュメモリ内部動作制御信号A4によりフラッシュメモリ2012の内部動作を再開させ、また同時にフラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「書き込み」または「消去」から「書き込みベリファイ」または「消去ベリファイ」へ更新する。
ここでは、ステップS42の判断においてフラッシュメモリ2012はすでにベリファイ用電源回路2023が供給された状態になっているため、直ちにステップS46でフラッシュメモリ内部動作制御信号A4を受けた後、ステップS47において、メモリセルアレイに対するデータ書き込み/消去ベリファイ動作が実行される。
フラッシュメモリ2012は、メモリセルアレイに対するデータ書き込み/消去ベリファイ動作が終了すると、ステップS48において、フラッシュメモリコントローラ2030に対してデータ書き込み/消去ベリファイ動作が終了したことを通知するためフラッシュメモリ割り込み通知信号A31を出力する。
次いでステップS49において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012からフラッシュメモリ割り込み通知信号A31を受け取ると、フラッシュメモリ内部動作制御信号A4によってフラッシュメモリ2012を一時停止させ、フラッシュメモリコントローラ2030はフラッシュメモリ内部状態管理テーブル2032を参照して、ステップS50において、その情報から他に書き込み/消去ベリファイ中のフラッシュメモリ2012がないかどうか確認する。
他に書き込み/消去ベリファイ動作中のフラッシュメモリ2012がなく、ベリファイ用電源回路2023を停止できると判断した場合、ステップS51において、フラッシュメモリコントローラ2030は、フラッシュメモリ電源制御信号A1によって、フラッシュメモリ電源回路2020に搭載されるベリファイ用電源回路2023を停止させ、ステップS52でベリファイ用電源シーケンスを終了して、図5の書き込み/消去用電源シーケンスのステップS34に戻る。
ステップS50の判断で他に書き込み/消去ベリファイ動作中のフラッシュメモリ2012があってベリファイ用電源回路2023を停止できない場合は、ステップS51をスキップし、ステップS52で直ちにベリファイ用電源シーケンスを終了して、図5の書き込み/消去用電源シーケンスのステップS34に戻る。
本実施例によれば、フラッシュメモリ内部状態通知信号A3によってフラッシュメモリ2012の内部の動作をフラッシュメモリコントローラ2030が把握でき、内部の動作に従って外部電源の動作を制御することができるので、フラッシュメモリ2012が必要とする電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
《11》[印加電圧通知(電源制御)]
本項は、上記の《1》〜《10》に関連するものである。本項のフラッシュメモリコントローラは、次のような機能を有する印加電圧制御回路を備えている。その印加電圧制御回路は、フラッシュメモリ内部状態として、各フラッシュメモリに固有の、複数種類の処理実行用電源回路についての印加電圧情報を各フラッシュメモリからの通知により取得する。そして、取得した印加電圧情報に従って該当の処理実行用電源回路の動作を制御する。
複数のフラッシュメモリの相互間には製造公差等に起因する個体差がある。個々のフラッシュメモリは、その複数種類の処理実行用電源回路のそれぞれにつき固有の印加電圧があり、各フラッシュメモリはその印加電圧情報を保有しているものとする。フラッシュメモリコントローラは、該当のフラッシュメモリへのアクセス時にそのフラッシュメモリから印加電圧情報を読み出して取得する。その印加電圧情報は該当の処理種類の処理実行用電源回路についてのものであり、また該当のフラッシュメモリに固有のものである。印加電圧制御回路は、取得した印加電圧情報に従って該当の処理実行用電源回路を制御するので、個体差のために必要とする最適な印加電圧が標準より低いフラッシュメモリに対しては、それに相応しい印加電圧となるように該当の処理実行用電源回路を制御し、また、個体差のために必要とする最適な印加電圧が標準より高いフラッシュメモリに対しては、それに相応しい印加電圧となるように該当の処理実行用電源回路を制御する。
最適な印加電圧に個体差を伴う複数のフラッシュメモリに対して、同じ処理実行用電源回路を共用する形態であるにもかかわらず、個々のフラッシュメモリの特性に応じたきめの細かい電圧制御を行うので、消費電力の削減を一層シビアに向上させることが可能になる。
《12》本項は、上記の《11》に関連する。
本項での印加電圧制御回路は、同一の前記処理実行用電源回路の印加電圧情報を、複数の前記フラッシュメモリから取得したときは、それら印加電圧情報が示す複数の印加電圧のうちで最も高い印加電圧となるように、前記同一の処理実行用電源回路の動作を制御するように構成されている。
フラッシュメモリ電源回路における複数種類の処理実行用電源回路のそれぞれは、メモリブロックにおける複数のフラッシュメモリに共用される。さらに、各処理実行用電源回路は、処理種類が同じであれば同時に2以上のフラッシュメモリに給電を行うことがある。そして、あるフラッシュメモリの最適な印加電圧と別のフラッシュメモリに最適な印加電圧とが相違することがある。
このような場合に、共用の処理実行用電源回路に対していずれのレベルの印加電圧を供給すべきかが問題となる。本項は、2以上のフラッシュメモリから送られてくる印加電圧情報が示す複数の印加電圧のうち最も高い印加電圧を採用する。こうすることで、同時動作の複数のフラッシュメモリへの供給電圧がいずれも不足するということがなくなる。これは、印加電圧が不足することに起因する動作不良に比べて、印加電圧を高めとするときの影響の方がよりましであるという考え方に立脚している。これを別の角度から見ると、各処理実行用電源回路は、給電対象のフラッシュメモリが複数でなく単一の場合には、そのフラッシュメモリに最適な印加電圧を採用するもので、それは処理実行用電源回路が採り得る複数レベルの印加電圧のうち、該当のフラッシュメモリに最も相応しいもので、過剰に高い印加電圧ではないということになる。このような制御方式も、消費電力の削減を一層シビアに向上させる上で有効に作用する。
上記の《11》,《12》の構成の具体例を実施例2として以下に説明する。
<実施例2>
図7は本発明の実施例2の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリ2012のインフォメーションレジスタ2014が示す情報は、フラッシュメモリ2012の内部コントローラ(図示せず)が実行している動作状態(処処理種類)に加えて、さらに読み出し用電源電圧、書き込み/消去用電源電圧、ベリファイ用電源電圧の印加電圧情報を含む。これらの情報は、そのフラッシュメモリ2012が動作するために必要な各電源電圧を示している。個々のフラッシュメモリ2012ごとに最適な電源電圧情報がある。複数のフラッシュメモリの相互間には製造公差等に起因する個体差がある。
印加電圧情報を通知する手段として印加電圧通知信号A32があり、これは直接フラッシュメモリコントローラ2030に接続されていてもよい。T6はフラッシュメモリ2012における印加電圧通知信号A32の出力端子である。
本実施例のフラッシュメモリコントローラ2030は、さらに印加電圧制御回路2034を備えている。印加電圧制御回路2034は、フラッシュメモリ2012の印加電圧情報と現在の印加電圧とを比較し、どちらか高い方の値をフラッシュメモリ電源回路2020の各電源回路2021,2022,2023の印加電圧とする。
図8のフローチャートに従って印加電圧制御シーケンスの動作を説明する。ステップS61〜S63は、実施例1の場合の図5のステップS21〜S23に相当する。書き込みシーケンスにおいて、書き込み/消去用電源回路2021が停止している場合、ステップS64において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込み(ベリファイ終了時)のあったフラッシュメモリ2012の書き込み電源の印加電圧情報をフラッシュメモリ2012のインフォメーションレジスタ2014から読み出し、印加電圧制御回路2034に渡す。
次いでステップS65において、印加電圧制御回路2034は、その印加電圧情報に従って書き込み/消去用電源回路2021を起動する。ステップS70〜S73は、実施例1の場合の図5のステップS25〜S28に相当する。ステップS63の判断で書き込み/消去用電源回路2021が動作している場合、ステップS66において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込み(ベリファイ終了時)のあったフラッシュメモリ2012の書き込み電源の印加電圧情報をフラッシュメモリ2012のインフォメーションレジスタ2014から読み出し、印加電圧制御回路2034に渡す。
次いでステップS67において、印加電圧制御回路2034は、読み出した印加電圧情報と現在の書き込み/消去用電源回路2021の電圧とを比較する。次いでステップS68の判断で、読み出した印加電圧情報の方が高い場合、ステップS69において、その印加電圧情報に従って書き込み/消去用電源回路2021の電源電圧を変更し、次いでステップS70に進む。
ステップS68で印加電圧制御回路2034は読み出した印加電圧情報と現在の書き込み/消去用電源回路2021の電圧とを比較し、読み出した印加電圧情報の方が低い場合、現在の書き込み/消去用電源回路2021の電源電圧を維持し、ステップS72に進む。
本実施例によれば、必要とする電源電圧が異なる複数のフラッシュメモリ2012を同時に動作させる場合に、それぞれのフラッシュメモリ2012の電源電圧をフラッシュメモリコントローラ2030が把握でき、外部電源の電圧を制御することができるので、余分な昇圧を行うことなく電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
《13》[印加電圧通知(メモリ選択)]
本項は、上記の《11》に関連する。前記したフラッシュメモリコントローラは、さらに、複数のフラッシュメモリから受け取った印加電圧情報を記憶しておくための印加電圧情報記憶部を有している。さらに、フラッシュメモリコントローラは、印加電圧情報記憶部に記憶されている印加電圧情報を参照して、選択対象のフラッシュメモリを決定するように構成されている。
印加電圧情報記憶部は、すべてのフラッシュメモリについての印加電圧情報を保持しておくことが可能である。すなわち、現在アクセス対象のフラッシュメモリについてだけでなく、他のフラッシュメモリについても、また現在スタンバイ状態にあるフラッシュメモリの過去(直前)の印加電圧情報も保持しておくことが可能である。これらの印加電圧情報は、複数種類の処理実行用電源回路のそれぞれについての印加電圧情報を含むことが可能である。
フラッシュメモリコントローラにホストなどからの動作指令があったときに、複数のフラッシュメモリのうちどのフラッシュメモリをアクセス対象に選択するかが問題となる。このアクセス対象のフラッシュメモリの選択において、印加電圧情報記憶部におけるすべてのフラッシュメモリのすべての処理種類の処理実行用電源回路にかかわる印加電圧情報を参照して、1つのアクセス対象のフラッシュメモリを決定することにすれば、消費電力の削減を図る上で大いに寄与することが可能になる。
《14》本項は、上記の《13》に関連する。
前記したフラッシュメモリコントローラは、複数のフラッシュメモリのうち空き状態にあってアクセス対象候補のフラッシュメモリが複数ある場合に、印加電圧情報記憶部に記憶されている印加電圧情報を参照して、選択対象のフラッシュメモリとして印加電圧が最も低いフラッシュメモリに決定するように構成されている。
空き状態にある複数のアクセス対象候補のフラッシュメモリの中から印加電圧が最も低いフラッシュメモリを選択対象のフラッシュメモリに決定すれば、同じ処理種類の処理を実行するのに、より少ない電力で実行することが可能になる。このように複数の印加電圧を相互比較できるのも、印加電圧情報記憶部にすべてのフラッシュメモリから受け取ったすべての処理種類の処理実行用電源回路の印加電圧情報を記憶しておくことができるからである。印加電圧が最も低いフラッシュメモリを採用するので、消費電力削減の一層シビアな向上が可能となる。
上記の《13》,《14》の構成の具体例を実施例3として以下に説明する。
<実施例3>
図9は本発明の実施例3の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリコントローラ2030のフラッシュメモリ内部状態管理テーブル2032に、フラッシュメモリ2012ごとの印加電圧情報を記憶する印加電圧情報記憶部2033をさらに備える。印加電圧情報の収集は、システム起動時にすべてのフラッシュメモリ2012に対して内部状態読み出しコマンドを発行して、フラッシュメモリ内部状態管理テーブル2032に登録してもよいし、一度アクセスしたフラッシュメモリ2012の印加電圧情報を、その都度フラッシュメモリ内部状態管理テーブル2032の印加電圧情報記憶部2033に記憶してもよい。
本実施例では、システム起動時に一度に印加電圧情報を読み出す場合の例で説明する。図10のフローチャートに従ってフラッシュメモリ選択の動作を説明する。
ステップS81において、不揮発性記憶システムの電源が入ってフラッシュメモリコントローラ2030が起動する。次いでステップS82において、フラッシュメモリコントローラ2030は、接続されているすべてあるいは一部のフラッシュメモリ2012に対して内部状態読み出しコマンドを発行して、フラッシュメモリ2012のインフォメーションレジスタ2014から印加電圧情報を読み出す。
次いでステップS83において、読み出された印加電圧情報は、フラッシュメモリ内部状態管理テーブル2032の印加電圧情報記憶部2033に記憶される。
次いでステップS84でホストから書き込み要求があった場合、ステップS85において、フラッシュメモリコントローラ2030は、データ書き込みが可能な空き領域をもつフラッシュメモリ2012を選択することになる。
選択対象のフラッシュメモリ2012が複数ある場合、ステップS86のように、フラッシュメモリコントローラ2030は、それらのフラッシュメモリ2012の印加電圧情報記憶部2033を参照して、フラッシュメモリ2012の印加電圧情報を読み出す。
次いでステップS87において、フラッシュメモリコントローラ2030はそれらの印加電圧情報を比較し、選択対象のフラッシュメモリ2012の中で最も印加電圧が低いフラッシュメモリ2012を選択する。
次いでステップS88において、フラッシュメモリコントローラ2030は選択したフラッシュメモリ2012に処理の実行の命令を発行する。
本実施例によれば、フラッシュメモリ2012が求める印加電圧情報をあらかじめ印加電圧情報記憶部2033に記憶しておき、記憶した複数のフラッシュメモリ2012の印加電圧情報の比較を通じて印加電圧の低いフラッシュメモリ2012を優先的に選択するので、フラッシュメモリ電源回路2020の昇圧動作を抑え、システム全体の電力消費を下げることができる。
《15》[印加電圧通知(複数メモリ選択)]本項は、上記の《14》に関連する。
複数のフラッシュメモリに対して同時並行的にアクセスすることになる場合を想定する。複数のフラッシュメモリは、同じ処理実行用電源回路から給電されるものとする。このような場合に、前記フラッシュメモリコントローラは、印加電圧情報記憶部に記憶されている印加電圧情報を参照して、選択対象のフラッシュメモリとして互いに印加電圧の差がより少ないフラッシュメモリどうしを優先して決定するように構成されている。
理解を容易にするため、一例を挙げて説明する。いま、2つのフラッシュメモリに対して同時にアクセスしようとするときに、アクセス対象候補のフラッシュメモリが3つあるとする。第1のフラッシュメモリと第2のフラッシュメモリの印加電圧の差がΔE12、第2のフラッシュメモリと第3のフラッシュメモリの印加電圧の差がΔE23、第3のフラッシュメモリと第1のフラッシュメモリの印加電圧の差がΔE31とする。この3つの印加電圧の差ΔE12,ΔE23,ΔE31のうち、ΔE12が最も小さいときは第1のフラッシュメモリと第2のフラッシュメモリとの組み合わせで決定し、ΔE23が最も小さいときは第2のフラッシュメモリと第3のフラッシュメモリとの組み合わせで決定し、ΔE31が最も小さいときは第3のフラッシュメモリと第1のフラッシュメモリとの組み合わせで決定する。
印加電圧の差が少ないフラッシュメモリどうしを優先的に組み合わせて選択することで、余分な昇圧を極力避けたかたちで制御し、電源を効率良く供給して、システム全体の電力消費を下げることが可能となる。
上記の《15》の構成の具体例を実施例4として以下に説明する。
<実施例4>
図11は本発明の実施例4の不揮発性記憶システムのフラッシュメモリ選択(複数選択)のシーケンスを示すフローチャートである。ステップS91〜S96およびステップS98は、図10におけるステップS81〜S86およびステップS88と同じである。ステップS97だけが相違している。
実施例3と同様の構成で、ホストからの書き込み要求によってフラッシュメモリコントローラ2030が空き領域をもつフラッシュメモリ2012を選択することを前提とする。速度要求などでシステム構成上、複数のフラッシュメモリ2012に対して並行的に書き込みや消去を実行しなければならない場合、実施例3と同様にフラッシュメモリコントローラ2030は、選択対象のフラッシュメモリ2012の印加電圧情報記憶部2033を参照してフラッシュメモリ2012の印加電圧情報を読み出す。
ステップS97において、フラッシュメモリコントローラ2030は印加電圧情報を比較し、選択対象のフラッシュメモリ2012の中で印加電圧の差が少ないフラッシュメモリ2012どうしを優先的に組み合わせて選択する。
本実施例によれば、あらかじめフラッシュメモリ2012への印加電圧情報を記憶しておき、印加電圧の差が少ないフラッシュメモリ2012どうしを優先的に組み合わせて選択することで、余分な昇圧を極力避けたかたちで制御でき、電源を効率良く供給して、システム全体の電力消費を下げることができる。
《16》[印加電圧通知]*[ベリファイ回数通知(電源制御)]
本項は、上記の《11》のフラッシュメモリコントローラに印加電圧制御回路を備えた不揮発性記憶システムに関連する。
前記印加電圧制御回路は、フラッシュメモリ内部状態として各フラッシュメモリでのベリファイ回数情報を各フラッシュメモリからの通知により取得し、取得したベリファイ回数情報を加味して該当の処理実行用電源回路の動作を制御するように構成されている。ここでのベリファイ回数情報にかかわるベリファイは、書き込みベリファイと消去ベリファイの少なくともいずれか一方を含むものとする。ベリファイ回数情報は、フラッシュメモリ内部で書き込み/消去動作が完全に完了するまでに繰り返された書き込み/消去の回数を示すものである。
ベリファイ回数が多いほど、そのフラッシュメモリには書き込み/消去が行いにくい劣化したまたは特性の良くないセルがより多く含まれている。このような劣化セル・不良特性セルを含むフラッシュメモリについては、その書き込み/消去に際して印加電圧を基準値よりもレベルアップすれば書き込み/消去の成功率が高くなる。そこで、ベリファイ回数情報を加味して印加電圧を調整する等してベリファイ回数を減らす。これにより、結果的に電源供給している時間を短縮し、消費電力削減の一層シビアな向上が可能となる。
《17》本項は、上記の《16》に関連する。
フラッシュメモリコントローラにおける印加電圧制御回路は、取得した印加電圧情報に従って該当の処理実行用電源回路の動作を制御するに際して、取得した印加電圧を基準電圧として、[基準電圧]と[取得したベリファイ回数]と[あらかじめ設定した補正電圧]の演算で得られる補正された印加電圧で該当の処理実行用電源回路を制御するように構成されている。
これによれば、ベリファイ回数の多さに応じて印加電圧の調整増加分を増やす等により、書き込み/消去の成功率も高いものとなる。その結果として、消費電力削減の一層シビアな向上が可能となる。
なお、好ましい演算式の代表例に、[基準電圧]+[取得したベリファイ回数]×[あらかじめ設定した補正電圧]の演算がある。これは一例であって、広義にはベリファイ回数の関数で表すことのできる電圧発生方法となる。
上記の《16》,《17》の構成の具体例を実施例5として以下に説明する。
<実施例5>
図12は本発明の実施例5の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリ2012のインフォメーションレジスタ2014が示す情報は、フラッシュメモリ2012の内部コントローラ(図示せず)が実行している動作状態と、読み出し用電源電圧、書き込み/消去用電源電圧、ベリファイ用電源電圧の印加電圧情報に加えて、さらにベリファイ回数情報を含んでいる。ベリファイ回数情報は、そのフラッシュメモリ2012が書き込み/消去動作をした際に正しく書き込み/消去できたかを確認するための読み出し動作が行われた回数を示している。ベリファイ回数情報は、書き込みベリファイ情報であれば書き込み単位毎、消去ベリファイ情報であれば消去単位ごとに情報をもち、フラッシュメモリ2012側で前回書き込み/消去が実施された際に記録として残している。ベリファイ回数情報はインフォメーションレジスタ2014ではなく、フラッシュメモリ2012の冗長領域などに書き込まれていてもよい。
ベリファイ回数情報を通知する手段としては、ベリファイ回数通知信号A33として直接フラッシュメモリコントローラ2030と接続されていてもよい。T7はフラッシュメモリ2012におけるベリファイ回数通知信号A33の出力端子である。
図13のフローチャートに従って印加電圧制御シーケンスの動作を説明する。ステップS101〜S103は、実施例2の場合の図8のステップS61〜S63に相当する。ステップS109,S111,S112,S113,S114は、それぞれ図8のステップS68,S70,S71,S72,S73に相当する。
ステップS103の判断で書き込み/消去用電源回路2021が停止している場合、ステップS104において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込みのあったフラッシュメモリ2012の書き込み電源の印加電圧情報と、書き込み単位でのベリファイ回数情報を読み出す。
次いでステップS105において、印加電圧制御回路2034はその印加電圧情報を基準電圧として、発生電圧としては、[基準電圧]+[ベリファイ回数]×[補正電圧]を設定して、書き込み/消去用電源回路2021を起動する。ここで補正電圧はあらかじめフラッシュメモリコントローラ2030側で設定した固定値である。
なお、補正電圧については、あらかじめ仕様で決めている値をフラッシュメモリコントローラ2030がもっていてもよいし、フラッシュメモリ2012側がそのようなデータをもっていて、システム起動時にフラッシュメモリコントローラ2030側から読み出して使用するものでもよい。本例の発生電圧の計算方法は一例であって、広義にはベリファイ回数の関数で表すことのできる電圧発生方法となる。
書き込みシーケンスにおいて書き込み/消去用電源回路2021が動作している場合、ステップS106において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込みのあったフラッシュメモリ2012の書き込み電源の印加電圧情報と、書き込み単位でのベリファイ回数情報を読み出す。
次いでステップS107において、印加電圧制御回路2034は、印加電圧情報を基準電圧として、発生電圧としては、[基準電圧]+[ベリファイ回数]×[補正電圧]を設定する。
次いでステップS108において、その設定電圧と現在の書き込み/消去用電源回路2021の電圧とを比較し、ステップS109で設定電圧の方が高い場合、ステップS110において、その設定電圧に従って書き込み/消去用電源回路2021の電源電圧を変更する。
一方、印加電圧制御回路2034は、設定電圧と現在の書き込み/消去用電源回路2021の電圧とを比較し、設定電圧の方が低い場合、ステップS113において、現在の書き込み/消去用電源回路2021の電源電圧を維持する。
本実施例によれば、ベリファイ回数が多いほど書き込み/消去しにくい劣化または特性の良くないセルが含まれており、あらかじめそのようなセルへの書き込み/消去に対して、書き込み/消去用電圧を[ベリファイ回数]×[補正電圧]分高く設定することで書き込みやすくし、ベリファイ回数を減らすことで、結果的に電源供給している時間を短縮することができるため、システム全体の電力消費を下げることができる。
《18》[印加電圧通知]*[ベリファイ回数通知]*[パルス幅/間隔通知(メモリ選択)]
上記の《16》の構成において、前記フラッシュメモリコントローラは、さらに、印加時間情報を記憶しておく印加時間情報記憶部を備えている。印加時間情報は、次のようにして求められる。複数のフラッシュメモリからベリファイ回数情報を受け取るとともに、書き込み/消去動作の電圧印加のパルス幅およびパルス間隔の情報を受け取る。そして、ベリファイ回数情報と電圧印加のパルス幅およびパルス間隔の情報との演算に基づいて印加時間情報を得る。この印加時間情報を印加時間情報記憶部に記憶させておく。フラッシュメモリコントローラは、印加時間情報記憶部に記憶されている印加時間情報を参照して選択対象のフラッシュメモリを決定する。
この構成によれば、電圧印加のパルス幅およびパルス間隔の情報はフラッシュメモリ側で管理され、ベリファイ回数情報とともにフラッシュメモリコントローラ側に送られる。フラッシュメモリコントローラでは、受け取った電圧印加のパルス幅およびパルス間隔とベリファイ回数とから印加時間を算出する。書き込み/消去動作の電圧印加のパルス幅およびパルス間隔は、ベリファイ動作を含めて書き込み/消去動作の1サイクルに相当する。この1サイクルとベリファイ回数とから、実際に書き込み/消去動作に要した実質の印加時間が得られる。得られた印加時間情報はベリファイ回数・パルス幅・間隔とともに印加時間情報記憶部に記憶される。印加時間情報記憶部は、すべてのフラッシュメモリについてのこれらの情報を保持しておくことが可能である。
フラッシュメモリコントローラにホストなどからの動作指令があったときに、複数のフラッシュメモリのうちどのフラッシュメモリをアクセス対象に選択するかが問題となる。このアクセス対象のフラッシュメモリの選択において、印加時間情報記憶部におけるすべてのフラッシュメモリの印加時間情報を参照して、1つのアクセス対象のフラッシュメモリを決定することにすれば、消費電力の削減を図る上で大いに寄与することが可能になる。
《19》上記の《18》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリのうち空き状態にあってアクセス対象候補のフラッシュメモリが複数ある場合には、前記印加時間情報記憶部に記憶されている前記印加時間情報を参照して、印加時間が最も短いフラッシュメモリを選択するように構成されている。
空き状態にある複数のアクセス対象候補のフラッシュメモリの中から印加時間が最も短いフラッシュメモリを選択対象のフラッシュメモリに決定すれば、同じ処理種類の処理を実行するのに、より少ない電力で実行することが可能になる。このように複数の印加時間を相互比較できるのも、印加時間情報記憶部にすべてのフラッシュメモリの印加時間情報を記憶しておくことができるからである。印加時間が最も短いフラッシュメモリを採用し、処理実行用電源回路の動作時間を極力抑えるので、消費電力削減の一層シビアな向上が可能となる。
上記の《18》,《19》の構成の具体例を実施例6として以下に説明する。
<実施例6>
図14は本発明の実施例6の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリ2012のインフォメーションレジスタ2014が示す情報は、フラッシュメモリ2012の内部コントローラ(図示せず)が実行している動作状態と、読み出し用電源電圧、書き込み/消去用電源電圧、ベリファイ用電源電圧の印加電圧情報、ベリファイ回数情報に加えて、さらにパルス幅/間隔情報を含む。パルス幅情報とは、書き込みまたは消去を実行する際に、実際に書き込み用電源が印加されている区間の長さの情報であり、パルス間隔情報とは、次の書き込みが実行されるまでの間隔、すなわち書き込みベリファイまたは消去ベリファイ区間の長さの情報である。
パルス幅/間隔情報を通知する手段であるパルス幅/パルス間隔通知信号A34は、直接フラッシュメモリコントローラ2030に接続されていてもよい。T8はフラッシュメモリ2012におけるパルス幅/間隔通知信号の出力端子である。フラッシュメモリコントローラ2030のフラッシュメモリ内部状態管理テーブル2032は、フラッシュメモリ2012ごとのベリファイ回数情報とパルス幅/間隔情報とを記憶する印加時間情報記憶部2035をさらに備える。印加時間は、[パルス幅+パルス間隔]×[ベリファイ回数]で算出される。印加時間情報は、書き込み情報であれば書き込み単位毎、消去情報であれば消去単位ごとに情報をもち、フラッシュメモリ2012側で前回書き込み/消去が実施された際に記録として残している。
印加時間情報の収集は、システム起動時にフラッシュメモリ2012に対して内部状態読み出しコマンドを発行して、フラッシュメモリ内部状態管理テーブル2032に登録してもよいし、一度アクセスしたフラッシュメモリ2012の印加時間情報を、その都度フラッシュメモリ内部状態管理テーブル2032に記憶してもよい。
実施例6ではシステム起動時に一度に印加時間情報を読み出す場合の例で説明する。図15のフローチャートに従ってフラッシュメモリ選択の動作を説明する。ステップS121でフラッシュ不揮発性記憶システムの電源が入ってフラッシュメモリコントローラ2030が起動すると、ステップS122において、フラッシュメモリコントローラ2030は接続されているすべてあるいは一部のフラッシュメモリ2012に対して内部状態読み出しコマンドを発行して、フラッシュメモリ2012のインフォメーションレジスタ2014から印加電圧情報とベリファイ回数情報とパルス幅/間隔情報を読み出す。
次いでステップS123において、読み出された情報は、フラッシュメモリ内部状態管理テーブル2032の印加電圧情報記憶部2033および印加時間情報記憶部2035に記憶される。次にステップS124でホストから書き込み要求があった場合、ステップS125において、フラッシュメモリコントローラ2030はデータ書き込みが可能な空き領域をもつフラッシュメモリ2012を選択することになる。
選択対象のフラッシュメモリ2012が複数ある場合、ステップS126のように、フラッシュメモリコントローラ2030は、それらのフラッシュメモリ2012の印加電圧情報記憶部2033と印加時間情報記憶部2035とを参照して、フラッシュメモリ2012の印加電圧情報と印加時間情報を読み出す。
次いでステップS127において、フラッシュメモリコントローラ2030はそれらの印加時間情報を比較し、選択対象のフラッシュメモリ2012の中で印加時間が最も短いフラッシュメモリ2012を選択する。次いでステップS128において、印加電圧情報に従ってフラッシュメモリ電源回路2020を制御する。
本実施例によれば、あらかじめベリファイ回数とパルス幅/間隔を読み出して印加時間情報を記憶しておき、印加時間の短いフラッシュメモリ2012を優先的に選択し、フラッシュメモリ電源回路2020の動作時間を抑えることで、システム全体の電力消費を下げることができる。
《20》[印加電圧通知]*[ベリファイ回数通知]*[パルス幅/間隔通知(複数メモリ選択)]
上記《19》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリに同時並行状態でアクセスすることになる場合には、印加時間情報記憶部に記憶されている印加時間情報を参照して、同一の処理実行用電源回路から電源の供給を受けるフラッシュメモリとして、互いに印加時間の差がより少ないフラッシュメモリどうしを優先して選択するように構成されている。
理解を容易にするため、一例を挙げて説明する。いま、2つのフラッシュメモリに対して同時にアクセスしようとするときに、アクセス対象候補のフラッシュメモリが3つあるとする。第1のフラッシュメモリと第2のフラッシュメモリの印加時間の差がΔT12、第2のフラッシュメモリと第3のフラッシュメモリの印加時間の差がΔT23、第3のフラッシュメモリと第1のフラッシュメモリの印加時間の差がΔT31とする。この3つの印加時間の差ΔT12,ΔT23,ΔT31のうち、ΔT12が最も小さいときは第1のフラッシュメモリと第2のフラッシュメモリとの組み合わせを選択し、ΔT23が最も小さいときは第2のフラッシュメモリと第3のフラッシュメモリとの組み合わせを選択し、ΔT31が最も小さいときは第3のフラッシュメモリと第1のフラッシュメモリとの組み合わせを選択する。
印加時間の差が少ないフラッシュメモリどうしを優先的に組み合わせて選択することで、余分な印加時間を費やすことなく、電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
上記の《20》の構成の具体例を実施例7として以下に説明する。
<実施例7>
図16は本発明の実施例7の不揮発性記憶システムのフラッシュメモリ選択(複数選択)のシーケンスを示すフローチャートである。ステップS131〜S136およびS138は、図15におけるステップS121〜S126およびS128と同じである。ステップS136だけが相違している。
実施例6と同様の構成で、ホストからの書き込み要求によってフラッシュメモリコントローラ2030が空き領域をもつフラッシュメモリ2012を選択することを前提とする。速度要求などでシステム構成上、複数のフラッシュメモリ2012に対して並行的に書き込みや消去を実行しなければならない場合、実施例6と同様に、フラッシュメモリコントローラ2030は、選択対象のフラッシュメモリ2012の印加電圧情報記憶部2033と印加時間情報記憶部2035を参照してフラッシュメモリ2012の印加電圧情報と印加時間情報を読み出す。
ステップS137において、フラッシュメモリコントローラ2030は印加時間情報を比較し、選択対象のフラッシュメモリ2012の中で印加時間の差が少ないフラッシュメモリ2012どうしを優先的に組み合わせて選択する。
本実施例によれば、あらかじめフラッシュメモリ2012への印加時間情報を記憶しておき、印加時間の差が少ないフラッシュメモリ2012どうしを優先的に組み合わせて選択することで、余分な電圧印加時間を費やすことなく電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
《21》[印加電圧通知]*[ベリファイ回数通知]*[パルス幅/間隔通知(パルス重なり回避)]
上記の《18》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリに同時並行状態でアクセスすることになる場合には、印加時間情報記憶部に記憶されている印加時間情報を参照して、複数のフラッシュメモリの動作実行において互いにタイミングが重ならない状態で制御するように構成されている。
フラッシュメモリコントローラが複数のフラッシュメモリに同時並行状態でアクセスする場合に、互いにタイミングが重ならない状態で複数のフラッシュメモリを制御する。これによれば、フラッシュメモリの消費電力ピークが過剰に高くなることを抑えることが可能で、その効率良い給電により、システム全体の電力消費を下げることが可能となる。
上記の《21》の構成の具体例を実施例8として以下に説明する。
<実施例8>
図17は本発明の実施例8の不揮発性記憶システムの機能説明図(書き込み/消去電圧特性図)である。実施例6と同様の構成で、ホストからの書き込み要求によってフラッシュメモリコントローラ2030が空き領域をもつフラッシュメモリ2012を選択することを前提とする。速度要求などでシステム構成上、複数のフラッシュメモリ2012に対して並行的に書き込みや消去を実行しなければならない場合、実施例6と同様に、フラッシュメモリコントローラ2030は、選択対象のフラッシュメモリ2012の印加電圧情報記憶部2033と印加時間情報記憶部2035を参照してフラッシュメモリ2012の印加電圧情報と印加時間情報を読み出す。
フラッシュメモリコントローラ2030は、印加時間情報のパルス幅、パルス間隔、ベリファイ回数を比較する。ここで、図17のように、選択したフラッシュメモリ2012の互いのパルス幅がパルス間隔より狭くなるようにして、ベリファイ回数繰り返す間にパルスが重ならない組み合わせの複数のフラッシュメモリ2012を選択し、書き込み/消去および書き込み/消去ベリファイ動作を互いにずらして実行させる。
本実施例によれば、複数のフラッシュメモリ2012を動作させる場合に、それぞれの書き込み/消去パルスを重ねないように制御することで、フラッシュメモリ2012の消費電力ピークを抑えて電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
《22》[負荷電力通知(電源制御)]
上記の《1》の構成において、互いに異なる電圧レベルの複数種類の処理実行用電源回路のそれぞれは、出力電力量が可変制御可能に構成されているものとする。前記複数のフラッシュメモリのそれぞれは、各フラッシュメモリに固有の複数種類の処理実行用電源回路が必要とする電力量である負荷電力情報をフラッシュメモリコントローラに通知するように構成されている。さらに、フラッシュメモリコントローラは、新たな構成要素として供給電力制御回路を有している。この供給電力制御回路は、受け取った負荷電力情報に基づいて該当の処理実行用電源回路における出力電力量を制御する。
負荷電力情報に関係する処理実行用電源回路については、読み出し用電源回路と、書き込み/消去用電源回路と、ベリファイ用電源回路とのうちのいずれでもよいし、これらのうちから任意の2つ以上を選択して組み合わせたものでもよい。
供給電力制御回路は、通知された負荷電力に従って該当の処理実行用電源回路の出力電力量を制御する。これにより、該当のフラッシュメモリには、そのフラッシュメモリが要求した最適な電力量の電源が正しく供給されることになる。その結果として、消費電力削減の一層シビアな向上が可能となる。
《23》上記《22》の構成において、前記供給電力制御回路は、複数の前記フラッシュメモリから同一の処理実行用電源回路の負荷電力情報を取得したときには、取得した負荷電力情報が示す複数の負荷電力の総和以上の電力が前記同一の処理実行用電源回路に供給されるよう前記同一の処理実行用電源回路の動作を制御するように構成されている。
複数のフラッシュメモリを同時並行状態で動作させるに当たり、その同時並行動作を賄うに足りる電力が、複数のフラッシュメモリを駆動する同一の処理実行用電源回路に供給されることになる。これは結果として、消費電力削減に寄与することになる。
上記の《22》,《23》の構成の具体例を実施例9として以下に説明する。
<実施例9>
図18は本発明の実施例9の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリ2012のインフォメーションレジスタ2014が示す情報は、フラッシュメモリ2012の内部コントローラ(図示せず)が実行している動作状態に加えて、さらに読み出し用電源電圧、書き込み/消去用電源電圧、ベリファイ用電源電圧の負荷電力情報を含む。これらの情報は、そのフラッシュメモリ2012が動作するのに必要な電力量を示している。個々のフラッシュメモリ2012ごとに最適な電源電圧情報がある。複数のフラッシュメモリの相互間には製造公差等に起因する個体差がある。
負荷電力情報を通知する手段として負荷電力通知信号A35があり、これは直接フラッシュメモリコントローラ2030と接続されていてもよい。T9はフラッシュメモリ2012における負荷電力通知信号A35の出力端子である。
フラッシュメモリコントローラ2030は、さらに供給電力制御回路2036を備えている。供給電力制御回路2036は、フラッシュメモリ2012の負荷電力情報と現在の供給電力とを比較し、供給電力が負荷電力を上回るように、フラッシュメモリ電源回路2020の各電源回路2021,2022,2023の供給電力を制御する。
図19は本発明の実施例9の不揮発性記憶システムの負荷電力制御シーケンスを示すフローチャートである。ステップS141〜S143は、実施例5の場合の図13のステップS101〜S103に相当する。ステップS150〜S153は、図13のステップS111〜S114に相当する。
ステップS143の判断で書き込み/消去用電源回路2021が停止している場合、ステップS144において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込み(ベリファイ終了時)のあったフラッシュメモリ2012の書き込み電源の負荷電力情報を読み出す。
次いでステップS145において、供給電力制御回路2036はその負荷電力情報よりも供給電力を大きく設定して、書き込み/消去用電源回路2021を起動する。
一方、ステップS143の判断で書き込み/消去用電源回路2021が動作している場合、ステップS146において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012の内部状態読み出しコマンドを発行して、割り込み(ベリファイ終了時)のあったフラッシュメモリ2012の書き込み電源の負荷電力情報を読み出す。
次いでステップS147において、供給電力制御回路2036は、読み出した負荷電力情報と現在の負荷電力情報とを合計し、現在の書き込み/消去用電源回路2021の供給電力とを比較する。
次いでステップS148の判断で、負荷電力情報の合計の方が大きい場合、ステップS149において、その負荷電力情報よりも供給電力を大きくするように書き込み/消去用電源回路2021の供給電力を変更する。
一方、供給電力制御回路2036は、読み出した負荷電力情報と現在の負荷電力情報とを合計し、現在の書き込み/消去用電源回路2021の供給電力とを比較し、負荷電力情報の合計の方が小さい場合、ステップS152において、現在の書き込み/消去用電源回路2021の供給電力を維持する。
本実施例によれば、フラッシュメモリ2012が消費する負荷電力情報を通知することで、必要な電力だけを外部電源から供給することができるので、電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
《24》[負荷電力通知(メモリ選択)]
上記の《22》の構成において、前記フラッシュメモリコントローラは、さらに、複数のフラッシュメモリから受け取った負荷電力情報を記憶しておくための負荷電力情報記憶部を有している。フラッシュメモリコントローラは、負荷電力情報記憶部に記憶されている負荷電力情報を参照して選択対象のフラッシュメモリを決定する。
負荷電力情報はフラッシュメモリ側で管理され、フラッシュメモリコントローラ側に送られる。フラッシュメモリコントローラでは、受け取った負荷電力情報は負荷電力情報記憶部に記憶される。負荷電力情報記憶部は、すべてのフラッシュメモリについての負荷電力情報を保持しておくことが可能である。
フラッシュメモリコントローラにホストなどからの動作指令があったときに、複数のフラッシュメモリのうちどのフラッシュメモリをアクセス対象に選択するかが問題となる。このアクセス対象のフラッシュメモリの選択において、負荷電力情報記憶部におけるすべてのフラッシュメモリの負荷電力情報を参照して、1つのアクセス対象のフラッシュメモリを決定することにすれば、消費電力の削減を図る上で大いに寄与することが可能になる。
《25》上記の《24》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリのうち空き状態にあってアクセス対象候補のフラッシュメモリが複数ある場合には、負荷電力情報記憶部に記憶されている負荷電力情報を参照して、選択対象のフラッシュメモリとして負荷電力が最も低いフラッシュメモリに決定するように構成されている。
空き状態にある複数のアクセス対象候補のフラッシュメモリの中から負荷電力が最も低いフラッシュメモリを選択対象のフラッシュメモリに決定すれば、同じ種類の処理を実行するのに、より少ない電力で実行することが可能になる。このように複数の負荷電力を相互比較できるのも、負荷電力情報記憶部にすべてのフラッシュメモリの負荷電力情報を記憶しておくことができるからである。負荷電力が最も低いフラッシュメモリを採用するので、消費電力削減の一層シビアな向上が可能となる。
上記の《24》,《25》の構成の具体例を実施例10として以下に説明する。
<実施例10>
図20は本発明の実施例10の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリコントローラ2030のフラッシュメモリ内部状態管理テーブル2032に、フラッシュメモリ2012ごとの負荷電力情報を記憶する負荷電力情報記憶部2037をさらに備える。負荷電力情報の収集は、システム起動時にすべてのフラッシュメモリ2012に対して内部状態読み出しコマンドを発行して、負荷電力情報記憶部2037に登録してもよいし、一度アクセスしたフラッシュメモリ2012の負荷電力情報を、その都度負荷電力情報記憶部2037に記憶してもよい。ここでは、システム起動時に一度に負荷電力情報を読み出す場合の例で説明する。
図21のフローチャートに従ってフラッシュメモリ選択の動作を説明する。ステップS161において、不揮発性記憶システムの電源が入ってフラッシュメモリコントローラ2030が起動する。次いでステップS162において、フラッシュメモリコントローラ2030は接続されているすべてあるいは一部のフラッシュメモリ2012に対して内部状態読み出しコマンドを発行して、フラッシュメモリ2012のインフォメーションレジスタ2014から負荷電力情報を読み出す。
次いでステップS163において、読み出された負荷電力情報は、フラッシュメモリ内部状態管理テーブル2032の負荷電力情報記憶部2037に記憶される。次いでステップS164でホストから書き込み要求/消去があった場合、ステップS165において、フラッシュメモリコントローラ2030は、データ書き込みが可能な空き領域をもつフラッシュメモリ2012を選択することになる。
選択対象のフラッシュメモリ2012が複数ある場合、ステップS166のように、フラッシュメモリコントローラ2030は、それらのフラッシュメモリ2012の負荷電力情報記憶部2037を参照して、フラッシュメモリ2012の負荷電力情報を読み出す。次いでステップS167において、フラッシュメモリコントローラ2030はそれらの負荷電力情報を比較し、選択対象のフラッシュメモリ2012の中で最も負荷電力が小さいフラッシュメモリ2012を選択する。次いでステップS168において、フラッシュメモリコントローラ2030は選択したフラッシュメモリ2012に処理の実行の命令を発行する。
本実施例によれば、フラッシュメモリ2012の負荷電力情報をあらかじめ負荷電力情報記憶部2037に記憶しておき、負荷電力の小さいフラッシュメモリ2012を優先的に選択するので、フラッシュメモリ電源回路の電力供給を抑え、システム全体の電力消費を下げることができる。
《26》[負荷電力通知(複数メモリ選択)]
上記の《25》の構成において、フラッシュメモリコントローラは、複数のフラッシュメモリに対して同時並行状態でアクセスすることになる場合には、負荷電力情報記憶部2037に記憶されている負荷電力情報を参照して、同一の前記処理実行用電源回路から電源の供給を受けるフラッシュメモリとして、互いに負荷電力の和がより少ないフラッシュメモリどうしを優先して選択するように構成されている。
理解を容易にするため、一例を挙げて説明する。いま、2つのフラッシュメモリに対して同時にアクセスしようとするときに、アクセス対象候補のフラッシュメモリが3つあるとする。第1のフラッシュメモリと第2のフラッシュメモリの負荷電力の和がP12、第2のフラッシュメモリと第3のフラッシュメモリの負荷電力の和がP23、第3のフラッシュメモリと第1のフラッシュメモリの負荷電力の和がP31とする。この3つの負荷電力の和P12,P23,P31のうち、P12が最も小さいときは第1のフラッシュメモリと第2のフラッシュメモリとの組み合わせを選択し、P23が最も小さいときは第2のフラッシュメモリと第3のフラッシュメモリとの組み合わせを選択し、P31が最も小さいときは第3のフラッシュメモリと第1のフラッシュメモリとの組み合わせを選択する。
負荷電力の和が少ないフラッシュメモリどうしを優先的に組み合わせて選択することで、余分な負荷電力を費やすことなく電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
上記の《26》の構成の具体例を実施例11として以下に説明する。
<実施例11>
図22は本発明の実施例11の不揮発性記憶システムの動作を示すフローチャートである。ステップS171〜S176およびS178は、図21におけるステップS161〜S166およびS168と同じである。ステップS176だけが相違している。
実施例10と同様の構成で、ホストからの書き込み要求によってフラッシュメモリコントローラ2030が空き領域をもつフラッシュメモリ2012を選択することを前提とする。速度要求などでシステム構成上、複数のフラッシュメモリ2012に対して並行的に書き込みや消去を実行しなければならない場合、実施例10と同様に、フラッシュメモリコントローラ2030は、選択対象のフラッシュメモリ2012の負荷電力情報記憶部2037を参照してフラッシュメモリ2012の負荷電力情報を読み出す。
ステップS177において、フラッシュメモリコントローラ2030は負荷電力情報を比較し、選択対象のフラッシュメモリ2012の中で負荷電力の合計が最も小さいフラッシュメモリ2012どうしを優先的に組み合わせて選択する。
本実施例によれば、あらかじめフラッシュメモリ2012への負荷電力情報を記憶しておき、負荷電力の合計が少ないフラッシュメモリ2012どうしを優先的に組み合わせて選択することで、電源を効率良く供給することができ、システム全体の電力消費を下げることができる。
《27》[負荷電力通知(タイミングずらし)]
上記の《25》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリに同時並行状態でアクセスし、かつ複数の前記フラッシュメモリでの負荷電力の総和が処理実行用電源回路の給電能力を超える場合は、前記負荷電力情報記憶部に記憶されている前記負荷電力情報を参照して、複数の前記フラッシュメモリの動作実行において互いにタイミングが重ならない状態で制御するように構成されている。
フラッシュメモリコントローラが複数のフラッシュメモリに同時並行的にアクセスする状態において、複数のフラッシュメモリでの負荷電力の総和が処理実行用電源回路の給電能力を超える場合には、互いにタイミングが重ならない状態で複数のフラッシュメモリを制御する。これによれば、フラッシュメモリの消費電力ピークが過剰に高くなることを抑えることが可能で、その効率良い給電により、システム全体の電力消費を下げることができる。
上記の《27》の構成の具体例を実施例12として以下に説明する。
<実施例12>
図23は本発明の実施例12の不揮発性記憶システムの動作を示すフローチャートである。ステップS181〜S186は、図22におけるステップS171〜S176と同じである。ステップS187〜S189が相違している。
実施例10と同様の構成で、ホストからの書き込み要求によってフラッシュメモリコントローラ2030が空き領域をもつフラッシュメモリ2012を選択することを前提とする。速度要求などでシステム構成上、複数のフラッシュメモリ2012に同時並行状態で書き込みや消去を実行しなければならない場合、フラッシュメモリコントローラ2030は、選択対象のフラッシュメモリ2012の負荷電力情報記憶部2037を参照してフラッシュメモリ2012の負荷電力情報を読み出す。
ステップS187において、フラッシュメモリコントローラ2030は負荷電力情報を比較する。すなわち、選択対象のフラッシュメモリ2012の負荷電力の合計が書き込み/消去用電源回路2021の最大供給電力を超えてしまう場合、ステップS188において、選択した複数のフラッシュメモリ2012の動作が重ならないように、順番に書き込み/消去を実行させる。また選択対象のフラッシュメモリ2012の負荷電力の合計が書き込み/消去用電源回路2021の最大供給電力を超えない場合、ステップS189において、選択した複数のフラッシュメモリ2012を同時に書き込み/消去する。
本実施例によれば、あらかじめフラッシュメモリ2012からの負荷電力情報を記憶しておき、負荷電力が供給電力を超える場合、フラッシュメモリ2012を順番に動作させることで、システム全体の電力消費を下げることができる。
《28》[不良ビット数通知]
上記の《1》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリからベリファイ時の不良ビット数情報を受け取り、受け取った不良ビット数情報に従ってフラッシュメモリの処理の実行を制御するように構成されている。
《29》上記の《28》の構成において、前記フラッシュメモリコントローラは、通知された不良ビット数が規定値以下になった場合に、直ちにフラッシュメモリの動作を停止させるように構成されている。
一般的に不揮発性記憶システムは読み出しデータに対するエラー訂正機能をもっている。フラッシュメモリコントローラがその機能を果たすことが多い。したがって、書き込み時のエラーについては、必ずしもこれを常に完全にゼロとなるまで対応する必要はない。そこで、不良が発生し、ベリファイによって不良が矯正され、不良ビット数が減少して規定値以下になったときは、それ以上のベリファイ動作を処理しても、別の手立てで対応することができる。この考え方に基づいたもので、通知された不良ビット数が規定値以下になった場合に、直ちにフラッシュメモリの動作を停止させる。結果として、不必要な再書き込みの回数が低減し、消費電力削減の一層シビアな向上が可能となる。
上記の《28》,《29》の構成の具体例を実施例13として以下に説明する。
<実施例13>
図24は本発明の実施例13の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリ2012のインフォメーションレジスタ2014が示す情報は、フラッシュメモリ2012の内部コントローラ(図示せず)が実行している動作状態に加えて、不良ビット数情報を含む。不良ビット数情報とは、書き込みベリファイまたは消去ベリファイ時に正しく書き込みまたは消去できなかったビット数を示している。不良ビット情報を通知する手段としては、不良ビット数通知信号A36として直接フラッシュメモリコントローラ2030と接続されていてもよい。T10はフラッシュメモリ2012における不良ビット数通知信号A36の出力端子である。
図25は本発明の実施例13の不揮発性記憶システムの動作を示すフローチャートである。ステップS191の書き込み/消去用電源回路2021のシーケンスにおいて、ベリファイ用電源シーケンスが終了し、次いでステップS192において、フラッシュメモリコントローラ2030が内部状態読み出しコマンドを発行して、割り込みのあったフラッシュメモリ2012の内部状態を確認する際、ステップS193で不良ビット数情報を参照する。
不良ビット数がある規定数Nより多ければ、ステップS197を経て、ステップS198の通常の書き込み/消去用電源シーケンスを継続する。もし不良ビット数がある規定数N以下であれば、ステップS194において、フラッシュメモリコントローラ2030はフラッシュメモリ2012の内部動作を再開させると同時に、リセットコマンドを発行し、フラッシュメモリ2012の内部動作を強制的にスタンバイ状態に移行させる。
フラッシュメモリ2012はスタンバイ状態になると、ステップS195において、フラッシュメモリ割り込み通知信号A31をフラッシュメモリコントローラ2030へ出力する。
次いでステップS196において、フラッシュメモリコントローラ2030は、フラッシュメモリ2012からフラッシュメモリ割り込み通知信号A31を受けて、フラッシュメモリ内部状態管理テーブル2032の現在アクセスしているフラッシュメモリ2012の状態を「書き込みベリファイ」または「消去ベリファイ」から「スタンバイ」へ更新する。
不良ビット数の規定数Nの意味するところは、フラッシュメモリコントローラ2030側では読み出し時にエラー訂正機能をもっており、読み出し時のエラーを考慮した上で書き込み時のエラーがある程度許容できる範囲内であれば、書き込みを完了しても、読み出し時のエラーを回避できると判断できるため、不必要な再書き込みの回数を削減できる。
不良ビット数の規定数Nは、あらかじめフラッシュメモリコントローラ2030のプログラムなどで定義したものを使用してもよいし、フラッシュメモリ2012ごとの冗長領域などに規定しておき、それをフラッシュメモリコントローラ2030側から都度読み出して使用してもよい。
本実施例によれば、フラッシュメモリ2012の書き込み/消去ベリファイ時の不良ビット数をコントローラ側に通知することで、不必要な再書き込み/消去の回数を減らすことができるため、システム全体の電力消費を下げることができる。
《30》[複数の電源ブロック]
上記の《1》〜《29》の構成において、前記フラッシュメモリ電源回路は、これを複数のグループに分割してもよい。この場合に、複数のフラッシュメモリも複数のグループに分割しておく。分割数はフラッシュメモリ電源回路とフラッシュメモリとで同じとする。第i番目のグループのフラッシュメモリ群は第i番目のグループのフラッシュメモリ電源回路に関連付ける。すなわち、各グループのフラッシュメモリは、互いに独立して各グループ単位のフラッシュメモリ電源回路に関連付けられている。フラッシュメモリの規模が一定以上に大きくなるときに、本項の技術は有用となる。
《31》上記の《30》の構成において、前記フラッシュメモリコントローラは、複数のフラッシュメモリにアクセスする場合に、同じ電源を共有するグループのフラッシュメモリを優先して選択するように構成されている。
同じ電源グループのフラッシュメモリを優先的に選択することで、使用していない電源グループのフラッシュメモリ電源回路を停止することができるため、システム全体の電力消費を下げることができる。
上記の《30》,《31》の構成の具体例を実施例14として以下に説明する。
<実施例14>
図26は本発明の実施例14の不揮発性記憶システムの構成を示すブロック図である。フラッシュメモリ電源回路2020を複数備え、フラッシュメモリ2012は複数のフラッシュメモリ電源回路2020ごとにグループ分けされた電源グループに接続されている。
実施例1と同様にフラッシュメモリコントローラ2030は、フラッシュメモリ2012からのフラッシュメモリ内部状態通知信号A3によって複数のフラッシュメモリ電源回路2020を制御する。またフラッシュメモリコントローラ2030は、システム構成としてどのフラッシュメモリ2012がどの電源グループに属しているかは知っていることとする。
フラッシュメモリコントローラ2030が書き込み/消去を行う場合で、すでに他のフラッシュメモリ2012が動作中である場合、フラッシュメモリコントローラ2030はすでに動作しているフラッシュメモリ2012が属している電源グループの中から優先的に次に書き込み/消去対象となるフラッシュメモリ2012を選択する。
またはフラッシュメモリコントローラ2030が書き込み/消去を行う場合で、速度要求などから複数のフラッシュメモリ2012に同時に書き込み/消去を行わなければならない場合、同じ電源グループの中の複数のフラッシュメモリ2012を選択する。
本実施例によれば、複数のフラッシュメモリ電源回路2020によって電源グループを形成し、同じ電源グループのフラッシュメモリ2012を優先的に選択することで、使用していない電源グループのフラッシュメモリ電源回路2020を停止することができるため、システム全体の電力消費を下げることができる。
<実施例15>
フラッシュメモリを用いたストレージシステムのように、フラッシュメモリチップを多数使用するシステムにおいは、ストレージシステム動作の消費電力が課題となる。特に、プログラム性能を向上させるために、複数のフラッシュメモリチップに対して、同時にプログラム動作を実行させる場合に、その消費電流により、システムの電源や、放熱に対するコストが増大することになる。このため、フラッシュメモリ動作時の消費電流の削減が望まれる。
例えば、20V以上の高電圧を発生する昇圧回路は、電力効率が悪く、プログラム動作および消去動作において、メモリセルのしきい値を変更するのに要する電力の何倍もの電力を消費することになり、フラッシュメモリを用いたストレージシステムのように、フラッシュメモリチップを多数使用するシステムにおいは、昇圧回路をフラッシュメモリチップ毎に備えているため、複数チップに対して同時にプログラム動作および消去動を実行する時は、消費電力が膨大となり、システムにおける電源設計に支障をきたすことになる。
このため、高電圧を発生する電源回路をフラッシュメモリチップの外部に設けることが、前述の先行例に開示されているが、フラッシュメモリに対するプログラムや消去動作は、コマンド入力により実行され、動作が完了したことを示す信号や、ステータスレジスタにより外部に通知するのみであった。したがって、プログラムや消去動作においては、動作開始から完了までの間、電源回路は常時最大電圧となる20Vを発生する必要があった。
これに対して、本実施例の不揮発性半導体記憶装置は、動作実行コマンドを受けて、内部のコントローラの動作シーケンスに応じて、外部電源回路の動作を制御することができるので、低消費動作が可能となり、ストレージシステムなど、不揮発性半導体記憶装置を多数用いるシステムに適用すると、システムの低消費電力化および、性能向上に極めて有用である。
本実施例は、図27に示すように、本発明の不揮発性半導体記憶装置の第1の構成例を示す。データを記憶するためのメモリセルアレイ1102は、メモリセルがアレイ状に配置されており、メモリセルのしきい値を変化させることにより情報を記憶している。プログラム動作によりメモリセルのしきい値を高く設定し、消去動作によりメモリセルのしきい値を低く設定することができる。メモリセルアレイ1102に対する読み出しおよび、プログラム動作においてはページ単位で、消去動作においてはブロック単位でアクセスがおこなわれる。
ページは、ローデコーダ1104により選択される特定ワード線により指定され、読み出し動作においては、指定されるページのメモリセル記憶データが、センスアンプ1108により判定され、データレジスタ1109へ転送され、データレジスタ1109に転送されたデータは、カラムデコーダ1106により指定されるスタートポイントから順次入出力回路1112へと読み出され、入出力端子IOへ出力される。
データ書き込みにおいては、シリアルデータ入力モードを用いて、入出力端子IOから入力されるデータを、カラムデコーダ1106により指定されるスタートポイントから順次データレジスタ1109へ取込み、オートプログラムモードにおいて、指定されるページに転送される。
メモリセルアレイ1102に対する消去動作は、ローデコーダ1104により選択される複数のワード線により指定されるブロックに対して消去電圧が与えられ、ブロック内のメモリセルが消去状態に設定される。
プログラム、消去などのフラッシュメモリ1100に対する動作は、IO端子より入力される動作コマンドにより設定される。動作コマンドの一覧は図32に示す。フラッシュメモリ1100は、論理回路やセンスアンプ1108などに供給される3VなどのVCC電圧端子に加え、VCCよりも高い電圧を受け取るVPP1、VPP2、VPP3の高電圧電源端子を有している。このVPP1、VPP2、VPP3電源端子は、例えばプログラム/消去用電圧、ベリファイ用電圧、読み出し用電圧を受け取る。
フラッシュメモリ1100内部の回路ブロックは、VPP1、VPP2、VPP3高電圧電源端子に与えられる電圧を用いるか、VPP1、VPP2、VPP3高電圧電源端端子に与えられる電圧を受け、電圧発生回路1130により生成される電圧を用いて動作する。
インフォメーションレジスタ1132は、フラッシュメモリ1100がオートプログラムや、オートブロック消去のコマンドを受けて、コントローラ1116がプログラムや消去動作のシーケンスを実行するに際して、そのシーケンス実行状況を保持するためのものである。
インフォメーションレジスタ1132へは、例えば図28に示すように、実行中の動作モード、オートプログラムまたはオートブロック消去シーケンス実行時の電圧印加繰り返し回数(ベリファイ回数)、印加電圧値、印加パルス幅、印加パルス間隔、ベリファイ実行時のエラービット数等を情報としてセットする。
この構成により、動作実行コマンドを受けて、内部のコントローラにより動作シーケンスを実行するフラッシュメモリにおいて、コントローラが生成する、内部の動作状態(インフォメーションレジスタの値)を外部へ知らせることが可能となるので、フラッシュメモリコントローラおよび、高電圧発生回路を備えたストレージシステムにおいて、フラッシュメモリ内部の動作状況に応じて、高電圧発生回路を制御することができ、フラッシュメモリ内部の動作に必要となる電圧発生回路のみを動作させ、内部動作に不要な電源回路を動作させることなく、不要な電流消費を抑制することができるので、システムの低消費動作化を実現することができる。また、フラッシュメモリ外部での高電圧発生回路に対して、フラッシュメモリの動作モードに応じた電圧発生制御が可能となり、ストレージシステムの低消費電力化が可能となる。
図29にオートプログラム実行時のシーケンス例を示している。オートプログラムコマンドを受けて、オートプログラムシーケンスが開始されると(1302)、プログラムのための動作としては、まずプログラムベリファイを実行する(1314)が、プログラムベリファイの実行をおこなうまでに、必要な設定をおこなう。
まず、ステップ(1304)において、インフォメーションレジスタ1132に対して必要な情報をセットすると同時に、インフォメーションレジスタ1132の内容が変更されたことを外部へ示すために、インフォメーションレジスタ変更通知信号CHIを"H"に設定する。その後、フラッシュメモリが動作を実行中であることを示すレディー/ビジー信号RY/BY信号を"L"に設定する(1306)と同時に、ステータスレジスタ1122の内容を動作実行中であることを示す値にセットする(1308)。
図30にプログラムシーケンスにおけるインフォメーションレジスタ1132へセットされる内容を示している。プログラムシーケンスステップ(1304)においては、実行予定の動作がプログラムベリファイであり、繰り返し回数が0回目、ワード線への印加電圧が6V、であることを示す値がセットされている。
ストレージシステムにおけるフラッシュメモリ1100を制御するフラッシュメモリコントローラ(図27には図示せず)は、フラッシュメモリ1100が備えるインフォメーションレジスタ1132の内容が変更されたことを示すインフォメーションレジスタ変更通知信号CHIの変化を受けて、インフォメーションレジスタ1132の内容を読み出し、プログラムベリファイ動作に必要となる電圧を設定するよう制御する。
これにより、フラッシュメモリ外部のフラッシュメモリコントローラに対して、内部の動作状態(インフォメーションレジスタの値)を読み出すべきタイミングを知らせることができ、フラッシュメモリコントローラに対するインターラプト信号として用いることができるので、フラッシュメモリコントローラの制御が容易となる。
プログラムベリファイ実行に必要となる電圧が発生され、高電圧電源端子VPP2へ与えられると、フラッシュメモリコントローラから、フラッシュメモリ内部動作制御信号A4として、電圧が設定されたことを示す信号SETが"H"に設定される。この時、他の高電圧電源端子VPP1およびVPP3へ与えられ電源電圧は、フラッシュメモリ1100内部で用いられることはないので、高電圧である必要はなく、例えばVCCと同電位で良い。このため、フラッシュメモリ1100外部でVPP1およびVPP3へ与えるための高電圧発生回路を動作させる必要はない。これにより、フラッシュメモリにおける動作シーケンスに応じたフラッシュメモリ外部での高電圧発生制御が可能となり、ストレージシステムにおいて、さらなる低消費電力化が可能となる。
プログラムシーケンスステップ(1310)において、SET端子へ入力される信号が"H"に設定されることを確認している。"H"に設定されていなければ、ウェイト(1312)を介するループを回っており、SET信号が"H"に設定された時点で、プログラムベリファイ(1314)を実行し、その後のステップ(1316)において、インフォメーションレジスタ変更通知信号CHIを"L"に設定する。これにより、フラッシュメモリに内蔵するコントローラによる動作シーケンス制御のタイミングを判断することができるので、その制御が容易となる。
ステップ(1318)では、プログラムベリファイにおいて、しきい値が目標に到達していないメモリセルのエラービット数を確認し、エラービット数がゼロであるか否かによってプログラムベリファイがパスしたかどうかを判定する。エラービットが存在し、プログラムベリファイがフェイルした場合には、プログラム動作をおこなうために、ステップ(1320)でインフォメーションレジスタ1132に対して、実行予定の動作がプログラムであり、繰り返し回数が1回目、ワード線への印加電圧が10V、パルス幅が20us、パルス間隔が40us、以前のプログラムベリファイでのエラービット数が8192ビットであることを示す値をセットすると同時に、インフォメーションレジスタ変更通知信号CHIを"H"に設定する。
インフォメーションレジスタ変更通知信号CHIの変化を受けて、フラッシュメモリコントローラは、インフォメーションレジスタ1132の内容を読み出し、プログラム動作に必要となる電圧を設定するよう制御する。プログラム動作に必要となる電圧が発生され、高電圧電源端子VPP1へ与えられると、フラッシュメモリコントローラから、フラッシュメモリ内部動作制御信号A4として、電圧が設定されたことを示す信号SETが"H"に設定される。この時、他の高電圧電源端子VPP2およびVPP3へ与えられ電源電圧は、フラッシュメモリ1100内部で用いられることはないので、高電圧である必要はなく、例えばVCCと同電位で良い。このため、フラッシュメモリ100外部でVPP2およびVPP3へ与えるための高電圧発生回路を動作させる必要はない。
プログラムシーケンスステップ(1322、1324)において、SET端子へ入力される信号が"H"に設定されることを確認し、"H"に設定された後にプログラム動作(1326)を実行した後に、ステップ(1328)において、インフォメーションレジスタ変更通知信号CHIを"L"に設定する。
プログラム動作(1326)実行後には、プログラムベリファイを実行する必要があり、このため、ステップ(1330)において、インフォメーションレジスタ1132に対して、図30(1330−1)に示すように、実行予定の動作がプログラムベリファイであり、繰り返し回数が1回目、ワード線への印加電圧が6V、であることを示す値をセットすると同時に、インフォメーションレジスタ変更通知信号CHIを"H"に設定する。
フラッシュメモリコントローラが、インフォメーションレジスタ1132の内容が変更されたことを示すインフォメーションレジスタ変更通知信号CHIの変化を受けて、インフォメーションレジスタ1132の内容を読み出し、プログラムベリファイ動作に必要となる電圧を設定するよう制御し、高電圧電源端子VPP2へ与える電圧を発生する回路のみを動作させる。
以降、ステップ(1310)において、プログラムベリファイ実行に必要となる電圧が設定され、電圧が設定されたことを示す信号SETが"H"に設定されることを確認して、プログラムベリファイ(1314)を実行し、ステップ(1318)におけるプログラムベリファイ結果の確認において、ベリファイがパスするまで、ステップ(1310)〜(1330)を繰り返す。
図30に示すインフォメーションレジスタの内容(1320−1)〜(1330−26)は、ベリファイがパスするまで、プログラムとプログラムベリファイの繰り返し回数が26回であったことを示している。これにより、フラッシュメモリにおける動作シーケンスでの使用電圧に応じたフラッシュメモリ外部での高電圧発生制御が可能となり、ストレージシステムにおいて、さらなる低消費電力化が可能となる。
ステップ(1318)におけるプログラムベリファイ結果の確認において、ベリファイエラービットがゼロとなり、ベリファイがパスすると、ステップ(1332)において、インフォメーションレジスタ1132に対して、図29(1332)に示すように、次の動作が読み出しスタンバイであることを示す値をセットすると同時に、インフォメーションレジスタ1132の内容が変更されたことを示すために、インフォメーションレジスタ変更通知信号CHIを"H"に設定する。その後、ステータスレジスタ1122の内容を動作が完了し、コマンドを受け付ける状態であることを示す値にセットし(1334)、同様に、フラッシュメモリがコマンドを受け付ける状態であることを示すレディー/ビジー信号RY/BY信号を"H"に設定する(1336)。
次に、ステップ(1338)において、インフォメーションレジスタ変更通知信号CHIを"L"に設定して、オートプログラム動作を完了する(1340)。インフォメーションレジスタ1132内容として、ベリファイエラービット数を含んでいるのは、フラッシュメモリコントローラが、プログラムベリファイがフェイルであっても、ベリファイエラービット数が特定ビット数値以下となった時点で、オートプログラムの終了を判断することを可能とするためである。
これにより、フラッシュメモリにおける動作シーケンスでの動作状態に応じたフラッシュメモリ外部での高電圧発生制御が可能となり、ストレージシステムにおいて、さらなる低消費電力化が可能となる。
図29に示したシーケンスを実行するための、コントローラ1116の具体回路構成例を図31に示している。コマンドインターフェイス1502は、コマンドレジスタ1118からのコマンド信号と、コントロールロジック1114からの制御信号を受け取り、各ブロックの動作モードを制御する。マイクロコントローラ1504は、コマンドインターフェイス1502からの信号を受けて、動作モードに応じて、RAM1512に書き込まれている動作命令を実行し、周辺回路インターフェイス1506を介して、メモリ内部の各ブロックを制御する内部制御信号、電圧印加制御信号などを出力する。
図29に示す動作シーケンスを実行するための命令はすべてRAM1512に記憶されており、マイクロコントローラ1504は、このような動作モードに応じて内部ブロックの制御信号を出力すると同時に、動作シーケンスでのインフォメーションレジスタ設定ステップで、図30に示すような情報をインフォメーションレジスタ1132にセットするとともにインフォメーションレジスタ1132のセット内容が変更になったことを外部へ知らせる信号CHIを出力する。また、外部のフラッシュメモリコントローラから与えられるSET信号をマイクロコントローラ1504の制御信号として与えており、図29に示す動作シーケンスにおける、ステップ実行制御に用いている。
図31における1508はクロック発生回路であり、マイクロコントローラ1504を動作させるためのクロック信号を発生するとともに、このクロック信号を用いてタイマ1510はコントローラ1116の動作に必要なタイミング信号を発生する。
このように、高電圧発生回路をメモリ外部に備え、動作実行コマンドを受けて、内部のコントローラにより動作シーケンスを実行するフラッシュメモリを用いるシステムにおいて、コントローラが生成する、内部の動作状態(インフォメーションレジスタの値)を出力する端子を備え、外部に出力する構成とすることにより、フラッシュメモリコントローラが、内部の動作に必要となる電圧発生回路のみを動作させ、フラッシュメモリへ与えることにより、必要な動作を実現できるので、内部動作に不要な電源回路を動作させることなく、不要な電流消費を抑制することができるので、システムの低消費動作にきわめて有用である。
本実施例においては、高電圧電源端子を、プログラム/消去用電圧、ベリファイ用電圧、読み出し用電圧を受け取るVPP1、VPP2およびVPP3の3種類としているが、プログラム/消去用電圧とベリファイ用電圧を同一の電源端子とし、2種類の高電圧電源端子とすることも可能であるが、外部電源の制御が複雑となるとともに、低消費電力化の効果が削減される。これにより、フラッシュメモリの動作に必要となる高電圧をフラッシュメモリ外部で発生する構成が可能となり、フラッシュメモリを多数用いるストレージシステムにおいて、低消費電力化の制御が容易となる。
また、フラッシュメモリでのプログラムや消去動作時に、内部回路で必要となる他の電圧種をも外部での発生とし、高電圧電源端子数を増やすことも可能であるが、この場合、きめ細かな電源回路の制御により、より低消費電力化が可能である半面、フラッシュメモリの端子数が増加することとなる。これにより、フラッシュメモリ外部で複数種類の高電圧発生回路から高電圧を供給する構成を可能とし、フラッシュメモリの動作状態に応じて、複数の高電圧発生回路の動作を細かく制御することができるので、より低消費電力化が可能となる。
図27に示す本実施例のフラッシュメモリブロック構成例においては、インフォメーションレジスタの内容を、フラッシュメモリ1100に対する、コマンドやアドレスの入力およびデータ入出をおこなうIO端子を用いて読み出す構成としている。これにより、端子数を増加することなしに、内部の動作状態(インフォメーションレジスタの値)を外部へ出力することができ、多数のフラッシュメモリを用いるストレージシステムにおいて、フラッシュメモリコントローラとフラッシュメモリ間の配線を増やすことなしに、低消費電力化を実現することができる。このため、図32に示すように、インフォメーションレジスタ読み出コマンドを用意して、その内容の読み出しをおこなうようにしている。
<実施例16>
本実施例は、図33に示すように、本発明の不揮発性半導体記憶装置の第2の構成例を示すフラッシュメモリブロック構成例である。図33においては、インフォメーションレジスタ1132の内容を、IO端子の使用状況にかかわらず、自由に読み出すことができるよう、専用の読み出し端子Infoを備えている。これにより、外部からインフォメーションレジスタ1132に対しては、メモリ内部の動作に関係なく読み出すことができるようになり、フラッシュメモリ外部から内部の動作状態(インフォメーションレジスタの値)を読み出すタイミング制約が緩和される。したがって、フラッシュメモリ外部のフラッシュメモリコントローラからは、インフォメーションレジスタ1132の内容が変更されたことを示すインフォメーションレジスタ変更通知信号CHIが変化した場合のみならず、ラッシュメモリコントローラが必要とする時に内容を読み出すことができ、電源回路の待機状態の制御などをおこなうことができるので、より低消費電力化の動作をおこなうことが可能となる。
これにより、フラッシュメモリコントローラからのフラッシュメモリ内部の動作状態(インフォメーションレジスタの値)の読み出しに関するタイミング制約をなくすことができ、高電圧発生回路制御の自由度を増すことができる。
図27および図33において、フラッシュメモリのコントローラが生成する、内部の動作状態(インフォメーションレジスタの値)を出力する構成とすることにより、フラッシュメモリコントローラは、フラッシュメモリの内部動作に応じて、電圧発生回路を制御することにより、フラッシュメモリを用いたストレージシステムにおける低消費電力化を実現する、フラッシュメモリ構成例を示してきた。
フラッシュメモリを用いたストレージシステムにおいて、使用するフラッシュメモリの電力消費特性に応じて、外部電圧発生回路の制御をおこなうことができれば、さらなる低消費電力化を実現することが可能となる。
また、使用するフラッシュメモリの電力消費特性に応じて、同時プログラムをおこなうフラッシュメモリの数を制御することにより、プログラム性能を向上することが可能となる。
<実施例17>
本実施例は、図34に示すように、フラッシュメモリの電力消費特性を外部に出力することを可能とする、本発明の不揮発性半導体記憶装置における第3の構成例を示すフラッシュメモリの構成例である。
図34において、フラッシュメモリ1800は、不揮発性記憶領域として、メモリセルアレイ1102と、チップ固有の情報としての電力情報記憶領域1802を備えている。この電力情報記憶領域1802には、図35に示すように、フラッシュメモリ1800の各動作モードでの消費電流が記憶されている。消費電流の値としては、電流値そのものであっても、電流値をランク分けした値であっても良い。この消費電流の値は、フラッシュメモリの製造工程における製品検査の過程で、その値を測定して書き込む。フラッシュメモリを用いたストレージシステムにおいて、システムへの電源投入時に、使用するフラッシュメモリの電力情報記憶領域1802から、各フラッシュメモリにおける電源消費特性を読み込み、フラッシュメモリコントローラに保持することができる。これにより、フラッシュメモリのチップ固有電流消費特性等を外部に出力することができるので、フラッシュメモリコントローラおよび、高電圧発生回路を備えたストレージシステムにおいて、高電圧発生回路を使用するフラッシュメモリの消費電流特性に応じて最適に制御することができ、より電流消費電力化が可能となる。
電力情報記憶領域1802からの読み出しにおいては、メモリセルアレイ1102と同様に、IO端子を用いて読み出すか、電力情報記憶領域1802の記憶内容を、フラッシュメモリの電源投入時にインフォメーションレジスタ1132へ転送し、インフォメーションレジスタ1132から読み出してもよい。これにより、不揮発性記憶領域の記憶情報からの読み出しに関する制約を緩和することができ、フラッシュメモリコントローラから不揮発性記憶領域の記憶情報を読み出す場合での自由度が向上する。
フラッシュメモリコントローラは、使用するフラッシュメモリに応じて、各動作モードにおける電圧発生回路の制御をおこなうことができ、より低消費電力化なシステムを実現することが可能となる。また、使用するフラッシュメモリの電力消費特性に応じて、同時プログラムをおこなうフラッシュメモリの数を制御することにより、プログラム特性を向上することが可能となる。
図34においては、IO端子を用いて電力情報記憶領域1802からの読み出しをおこなう構成例を示しているが、電力情報記憶領域1802の記憶内容を、インフォメーションレジスタ1132へ転送し、図33に示した実施例16と同様に、専用の読み出し端子(図33の例ではInfo端子)を設けることにより、電力情報記憶領域1802の記憶情報を、メモリ内部の動作に関係なく読み出しことができるようになるのは言うまでもない。
これにより、端子数を増加することなしに、内部の動作状態(インフォメーションレジスタの値)を外部へ出力することができ、多数のフラッシュメモリを用いるストレージシステムにおいて、フラッシュメモリコントローラとフラッシュメモリ間の配線を増やすことなしに、使用するフラッシュメモリの電流消費特性に応じた低消費電力化を実現することができる。
また、フラッシュメモリコントローラからのフラッシュメモリ内部の動作状態(インフォメーションレジスタの値)の読み出しに関するタイミング制約をなくすことができ、使用するフラッシュメモリの電流消費特性に応じた高電圧発生回路制御の自由度を増すことができる。
また、高電圧電源端子を、プログラム/消去用電圧、ベリファイ用電圧、読み出し用電圧を受け取るVPP1、VPP2およびVPP3の3種類としているが、図27での説明と同様に、プログラム/消去用電圧とベリファイ用電圧を同一の電源端子とし、2種類の高電圧電源端子とすることも可能である。これにより、フラッシュメモリの動作に必要となる高電圧をフラッシュメモリ外部で発生する構成が可能となり、かつ、使用するフラッシュメモリの電流消費特性に応じて高電圧の発生を制御することができ、フラッシュメモリを多数用いるストレージシステムにおいて、低消費電力化の最適制御が容易となる。
また、フラッシュメモリでのプログラムや消去動作時に、内部回路で必要となる他の電圧種をも外部での発生とし、高電圧電源端子数を増やすことも可能であるが、この場合、きめ細かな電源回路の制御により、より低消費電力化が可能である。
これによりフラッシュメモリ外部で複数種類の高電圧発生回路から高電圧を供給する構成が可能となり、フラッシュメモリの動作状態に応じて、複数の高電圧発生回路の動作を細かく制御するとともに、フラッシュメモリの電流消費特性に応じた低消費電力化を実現することができる。
《50》[電源状態情報]
本項の不揮発性記憶システムは、メモリシステム用の電源回路から受け取った電源状態情報に基づいてアクセス対象のフラッシュメモリの処理の実行を開始するか否かを制御するものである。これは、以下に説明するような様々な実施の形態においてさらに有利に展開することが可能である。
<実施例18>
図36は本発明の実施例18における不揮発性記憶システムの構成を示すブロック図である。不揮発性記憶システム(ストレージデバイス)100の構成要素は、フラッシュメモリコントローラ(外部のコントローラに相当する)10と、電源回路(メモリシステム用の電源回路に相当する)20と、複数のフラッシュメモリ26からなるメモリブロック25とである。200はホストである。ホスト200については、パーソナルコンピュータ、PDA(Personal Digital Assistant)、携帯電話、デジタルカメラ、オーディオプレーヤ、カーナビゲーション装置など任意である。ホスト200とフラッシュメモリコントローラ10はデバイス制御バス41を介して接続されている。フラッシュメモリコントローラ10は電源回路20に対して電源制御信号Q1と電源状態通知信号Q2とが乗るコントロールバス42を介して接続されている。フラッシュメモリコントローラ10は複数のフラッシュメモリ26のそれぞれに対してデータバス・コントロールバス43を介して接続されている。Q3はコントロールバスに乗るフラッシュメモリ制御信号である。電源回路20は各フラッシュメモリ26に対して電源線44を介して接続されている。
メモリブロック25は、複数のフラッシュメモリ26の集合体である。フラッシュメモリコントローラ10は、電源回路20を制御する機能と複数のフラッシュメモリ26の動作を個別的に制御する機能とを有している。電源回路20は、複数のフラッシュメモリ26のそれぞれに動作用の電源を個別的に供給するようになっている。各フラッシュメモリ26は、あらかじめ動作電流値が定まっている通常のフラッシュメモリでもよいし、あるいは自己の動作電流値を示す情報を有するフラッシュメモリでもよい。
電源回路20は、その内部の電源状態の情報(電源状態情報)をフラッシュメモリコントローラ10に通知する機能を有している。電源状態情報は、電源状態通知信号Q2に乗せられる。電源状態情報には、例えば駆動率が用いられる。
フラッシュメモリコントローラ10は、電源制御信号Q1によって電源回路20を制御するようになっている。その制御には、電源回路20における発生電圧(給電能力)の調整、電源回路20に対するポーリングで電源状態通知信号Q2を出力させる制御などが含まれる。
フラッシュメモリコントローラ10は、ホスト200から動作指令(コマンド)を受け取り、その動作指令に従って1つまたは複数のフラッシュメモリ26にアクセスする。そのアクセスにおいてフラッシュメモリ制御信号Q3がフラッシュメモリコントローラ10からフラッシュメモリ26に出力されるようになっている。動作指令が読み出し動作のときは、フラッシュメモリ26からデータを読み出し、読み出したデータをホスト200に転送する。動作指令が書き込み動作のときは、ホスト200から書き込みデータも送られてきて、そのデータをフラッシュメモリ26に書き込む。この書き込み動作においては、通常、書き込みベリファイ動作も実行される。動作指令が消去動作のときは、フラッシュメモリ26においてブロック単位でデータ消去が行われる。この消去動作においては、通常、消去ベリファイ動作も実行される。読み出し動作に必要な電源電圧は最大で5V、書き込み/消去動作に必要な電源電圧は最大で20V、ベリファイ動作に必要な電源電圧は最大で10Vである(一例)。
前記のフラッシュメモリ26のいずれかの処理の実行中またはスタンバイ状態で、フラッシュメモリコントローラ10は、電源回路20から電源状態通知信号Q2を受け取り、受け取った電源状態情報に基づいて電源回路20の電源状態(駆動率)を確認するようになっている。また、フラッシュメモリコントローラ10は、アクセス対象のフラッシュメモリ26群が電源回路20の給電能力の規定の範囲内で適切な処理が実行不可能に陥ることがないかどうかを判断する。その判断において動作不可能と判断したときは、電源回路20の給電能力の規定の範囲内で処理が適切に実行可能となるようにアクセス対象の一部のフラッシュメモリ26を制御する。その制御の形態には、一時停止(ポーズ)のほか低電力モードがある。
図36の不揮発性記憶システム100はSSD(ソリッドステートドライブ)として構成されている。12のフラッシュメモリ動作管理テーブルについては、後述する実施例19以下で説明する。
上記のように構成された不揮発性記憶システム100の動作を図37に示すフローチャートに従って説明する。外部のホスト200からのコマンドによる指示により、フラッシュメモリコントローラ10はフラッシュメモリ26の制御を開始する。
まずステップS301において、フラッシュメモリコントローラ10はホスト200からのコマンドを受信する。コマンドの種類は任意であり、読み出しコマンド、書き込みコマンド、消去コマンド、書き込みベリファイコマンド、消去ベリファイコマンドなどがある。
次いでステップS302において、フラッシュメモリコントローラ10は電源状態を確認する。この電源状態の確認においては、電源回路20から電源状態通知信号Q2を受け取り、その電源状態情報から電源回路20における電源状態(現在の駆動率)を認識する。
次いでステップS303において、フラッシュメモリコントローラ10は、該当の処理によってアクセス対象候補のフラッシュメモリ26に実行させる読み出し/書き込みなどの動作種類における動作電力を見積もる。見積もりの具体的処理は次のとおりである。
ホスト200からフラッシュメモリ26に対し次に実施する動作として例えばデータ書き込みコマンドが発行された場合、該当するフラッシュメモリ26のメモリアレイに対するデータ書き込みを決定する。その際、実際にどのフラッシュメモリ26に対して書き込みを実施するかにより、あらかじめ決められた動作電流値もしくはフラッシュメモリ26から読み出した動作電流値についての情報を基にフラッシュメモリ26に対してどの程度の動作電流が発生するかを判断する。一例として、フラッシュメモリ26の動作電流が50mAである場合に、2枚のフラッシュメモリ26に対して書き込みを実施する場合は100mAの電流が必要となると見積もることになる。
ステップS303に続くステップS304において、フラッシュメモリコントローラ10は、見積もった動作電力と電源状態情報から得られる電源回路20の現在の駆動率とを比較して、電源回路20の現在の駆動率で、見積もった動作電力を賄えるかを判断する。この比較・判断においては、前記動作電流値と駆動率とは、大小比較が適正なものとなるようにそれぞれの換算によって物理的次元とスケールが調整される。
新規アクセス対象のフラッシュメモリ26における処理を直ちに実行するとなれば賄えなくなると判断したときは、ステップS305に進むことなくステップS302に戻って、以降、ステップS303、ステップS304を繰り返す。ステップS302〜S304のループを繰り返しているうちは、ステップS305の新規アクセス対象のフラッシュメモリ26に対する処理の開始は行われない。上記の動作例では、電源状態が十分になるまでは書き込みを実施しない。一方、バックグラウンドでは、他のフラッシュメモリ26に対する処理が進行し、時間経過に伴って一部が完了する。したがって、このループを繰り返すうちに、見積もった動作電力が現在の駆動率で賄えるようになる。そうなれば、ステップS305に進む。ステップS305に進むと、処理のルーチンに移行し、処理を開始する。上記の動作例ではフラッシュメモリ26への書き込みを実行する。この動作例は、オーバーロード時の制御形態が、新規アクセス対象のフラッシュメモリ26に対するウェイト(一時停止)制御となっている。
本実施例によれば、電源回路20の給電能力をチェックし、その給電能力の規定の範囲内でフラッシュメモリ26を動作させることが不可能であると判断したときは、フラッシュメモリ26に対して待機の制御を行い、待機中での時間経過に伴って使用電力が減少して給電能力の規定の範囲内で処理が適切に実行可能となるのを待って、フラッシュメモリ26に処理の開始を制御している。したがって、フラッシュメモリ26の処理途中において電源回路20のオーバーロード等の不具合に起因する不安定動作やシステムダウンのために、データが破壊される、データ化けを起こす、といった異常状態を回避し、ストレージデバイスとして高いデータ信頼性を確保することが可能となる。
なお、上記実施例では、電源回路20の電源状態の確認のために、電源状態通知信号Q2の信号ラインのための専用の端子を電源回路20が有しているが、これに代えて、電源制御信号Q1のバスを介して電源回路20内のレジスタ(電源状態情報)をモニタすることにより、電源回路20の電源状態を確認するように構成してもかまわない。
以下、上記の《50》を前提にした、各種の実施の形態について説明する。各実施の形態は《50》の[電源状態情報]を前提とするが、それぞれの表題では[電源状態情報]は省略する。
《51》[処理実行中]*[ポーリング]*[一時停止]
上記《50》の不揮発性記憶システムにおいて、アクセス対象のフラッシュメモリでの処理実行中においてメモリブロックの使用電力がメモリシステム用の電源回路の給電能力に対してオーバーロード(過剰)となったときの制御の態様として、フラッシュメモリコントローラを次のように構成することは好ましい。ここで、フラッシュメモリコントローラが電源回路の電源状態をポーリングして電源回路から電源状態情報を受け取ることを積極的に進めることとする。
フラッシュメモリコントローラは、電源回路から受け取った電源状態情報に基づいて電源回路の電源状態(駆動率)が特定のレベルを超えているか否かを判断する。そして超えたと判断した場合は、メモリブロックにおける特定のフラッシュメモリにおいてコマンドに基づいて実行される処理を一時停止する。さらに、フラッシュメモリコントローラは引き続いて電源状態情報(駆動率)を監視し、電源回路に電力余裕が生じたか否かを判断する。先にフラッシュメモリの処理の実行を一時停止させたので、時間経過とともに他のフラッシュメモリに対する処理が進行し、一部が完了すると電力余裕が生じるようになる。そして、電力余裕が生じるに至ったとフラッシュメモリコントローラが判断したときに、フラッシュメモリコントローラは先に動作を一時停止していたフラッシュメモリの動作を再開する。
以上を要するに、本項の不揮発性記憶システムは、上記《50》の構成において、前記フラッシュメモリコントローラは、ポーリングにより電源回路から電源状態情報を受け取った電源状態情報が特定のレベル以上であると判断する場合には、前記メモリブロックにおける特定のフラッシュメモリの処理の実行を一時停止し、次いで前記電源状態情報に基づいて前記電源回路に電力余裕が生じるようになったと判断したときは実行を一時停止していたフラッシュメモリの処理を再開する制御を行うように構成されている。
本構成によれば、フラッシュメモリで実行中の処理において、電源回路の電源状態をポーリングにより事前に検知し、ダイナミックにフラッシュメモリの処理の実行を一時停止することで、オーバーロード等の不具合に起因する不安定動作やシステムダウンを回避し、メモリアクセスのデータ信頼性を向上することが可能となる。
上記《51》の構成の具体例を実施例19として以下に説明する。
<実施例19>
本発明の実施例19における不揮発性記憶システムの構成は図36と同様である。図38は実施例19の不揮発性記憶システムの動作を示すフローチャートである。本実施例では、フラッシュメモリ26は、処理実行中に外部からの指示によりその動作が一時停止可能(ポーズ可能)に構成されているものとする。
また、フラッシュメモリコントローラ10は、アクセス対象のフラッシュメモリ26群の動作状況を管理するフラッシュメモリ動作管理テーブル12を有する。フラッシュメモリ動作管理テーブル12の一例を図39に示す。フラッシュメモリ動作管理テーブル12は、フラッシュメモリ26毎に、動作の優先順位、フラッシュメモリの状態、消費電流、処理開始順の情報を有する。フラッシュメモリの状態には、書き込み、消去、読み出し、ベリファイ、停止などがある。フラッシュメモリ動作管理テーブル12へのデータについては、ホスト200からの送信データ、各フラッシュメモリ26からの受信データが格納される。
ここで、動作の優先順位は処理開始順によって決定される。処理開始順が早いほど優先順位は低くなる。処理開始順と優先順位は逆の関係である。また、消費電流については、あらかじめ決定された電流値もしくは個々で設定された電流値を使用する。
このフラッシュメモリ動作管理テーブル12における管理データについては、アクセス対象のフラッシュメモリ26群での処理の実行の経過に伴って順次に更新されていく。書き込みであれ、消去であれ、処理の実行が完了すると、状態は「停止」に切り替わる。
フラッシュメモリコントローラ10は、同時に複数のフラッシュメモリ26の処理の実行を制御する。その関係で、複数のフラッシュメモリ26それぞれの動作状況を管理するフラッシュメモリ動作管理テーブル12を有している。その他の構成は、実施例18と同様である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。いま、いくつかのフラッシュメモリ26において処理を実行している最中であるとする。すなわち、ステップS311において、フラッシュメモリコントローラ10は、フラッシュメモリ26に対して処理の実行を制御している。
次いでステップS312において、フラッシュメモリコントローラ10は、電源回路20の電源状態を確認する。すなわち、フラッシュメモリコントローラ10は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報として駆動率を受け取り、その駆動率を確認する。ここで、ポーリングは電源制御信号Q1によって行われ、電源状態情報の通知は電源状態通知信号Q2によって行われる。
次いでステップS313において、フラッシュメモリコントローラ10は、現在の駆動率が上限の特定レベルLH 以上かを判断する。上限の特定レベルLH 以上であればステップS314に進み、そうでなければステップS318にスキップする。現在の駆動率が上限の特定レベルLH 以上であるか否かの判断は、換言すれば、電源回路20に電力余裕がなくなってオーバーロードを起こすおそれがあるのかを見ていることになる。アクセス対象のフラッシュメモリ26群におけるピーク電流が過剰になり、オーバーロードの状態がある程度継続するとシステムダウンし、データ化け、データ消失を起こすおそれがある。このような事態の発生を事前に検知し、予防するのである。
現在の駆動率が上限の特定レベルLH 以上でステップS314に進むと、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を参照して現在アクセス対象となっている特定のフラッシュメモリ26における処理を一時的に停止する。この一時停止によりオーバーロード状態を回避している。
次いでステップS315において、フラッシュメモリコントローラ10は再び電源回路20の電源状態を確認する。すなわち、フラッシュメモリコントローラ10は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報を受け取り、その電源状態情報から電源回路20における現在の駆動率を認識する。
次いでステップS316において、フラッシュメモリコントローラ10は、先にステップS314で一時停止させたフラッシュメモリ26の動作を再開させるとした場合に、現在の駆動率がその再開の分だけ増加したときの駆動率が下限の特定レベルLL 以下であるか否かを判断する。この下限の特定レベルLL は、ステップS313の場合の上限の特定レベルLH よりも低く設定されている。下限の特定レベルLL は、電力余裕が生じたかの判断基準である。下限の特定レベルLL 以下でなければステップS315に戻り、そうでなければステップS317に進む。
先にステップS314でフラッシュメモリ26における処理を一時停止してあるので、電源回路20の駆動率は時間経過とともに次第に低下してくる。駆動率の低下に伴ってステップS316の判断が肯定的となり、ステップS317に進んだときは、先にステップS314で一時停止していたフラッシュメモリ26での処理の実行を再開する。次いでステップS318において、フラッシュメモリ26における処理が完了したかの判断を行い、未完了であればステップS311に戻って処理を続行し、処理が完了したときは、図38のルーチンから抜ける。
上記の動作を具体例で説明する。ここで、一例として、上限の特定レベルLH を90%、下限の特定レベルLL を80%とする。なお、これらの数値は任意に設定可能である。
駆動率が90%以上であれば、オーバーロードで動作が不安定になる可能性があるとする。いま、90%以上の駆動率となっていた場合、フラッシュメモリコントローラ10は処理実行中のフラッシュメモリ26を一時停止する(ステップS313〜S314)。
例えば電源回路20の駆動能力が500mAであり、見積もりが90%の450mA以上の駆動状態になった場合に、1つのフラッシュメモリ26を一時停止する。この場合に、最も早く処理を開始した優先順位が最後のフラッシュメモリ26を一時停止する。図39の状態の場合には、優先順位「8」のフラッシュメモリAを一時停止する。
その後、電源状態を確認し、一時停止していたフラッシュメモリ26の処理を再開しても駆動能力が特定のレベル(例えば80%)以下になって電力余裕が生じると判断した段階で、フラッシュメモリコントローラ10は、一時停止させていたフラッシュメモリ26に対して処理を再開する。
電源回路20の駆動能力500mAの80%は400mAである。いま、電源回路20の電源状態が349mAまで下がったとする。フラッシュメモリAの消費電流は50mAである。フラッシュメモリAの動作を再開するとなると、電源回路20の電源状態は、349+50=399mAとなる。これは、80%の400mA以下の駆動状態である。よって、電源回路20の電源状態が350mA未満になることを確認すれば、それまで一時停止させていたフラッシュメモリAの動作を再開してよいことになる。
本実施例によれば、処理実行中においてポーリングにより電源回路20のオーバーロード状態を、それが実際に生じる前に検知するようにしている。検知すれば、フラッシュメモリ26の動作を一時停止(ポーズ)するので、フラッシュメモリ26が消費する動作電力を抑えることが可能となる。オーバーロード等の不具合に起因する不安定動作やシステムダウンによるフラッシュメモリ26の不安定動作、異常状態を未然に回避し、データ信頼性を向上することができる。フラッシュメモリ26を一時停止することは、フラッシュメモリ26を低電力モードで動作継続させる場合に比べて、通常モードでの処理の再開までの待ち時間が短くて済む。
《52》[処理実行中]*[割り込み]*[一時停止]
上記《50》の不揮発性記憶システムにおいて、メモリブロックの使用電力が電源回路の給電能力に対してオーバーロードとなったときの制御の態様として、上記ポーリング方式の《51》に代えて、割り込み方式を採用し、フラッシュメモリコントローラおよび電源回路を次のように構成することは好ましい。すなわち、電源回路からの電源状態情報のフラッシュメモリコントローラへの通知を、上記《51》の場合のフラッシュメモリコントローラからのポーリングに代えて、電源回路からの割り込みによって制御するように構成する。ここでは、割り込み信号が電源状態情報である。本項は、アクセス対象のフラッシュメモリでの処理実行中における制御とする。
電源回路は常時的に自己の内部状態を監視しており、アクセス対象のフラッシュメモリの使用電力が電源回路の現在の駆動率に対してオーバーロード気味になったときに、電源回路は電源状態通知信号として割り込み信号を生成し、フラッシュメモリコントローラに出力するように構成されている。すなわち、電源回路の電源状態の遷移に応じて直ちに生成される割り込み信号を利用する。
フラッシュメモリコントローラは、電源回路から割り込み信号を受け取ったとき、メモリブロックにおける特定のフラッシュメモリの処理の実行を一時停止するものとして構成されている。フラッシュメモリの一時停止以降のフラッシュメモリコントローラの動作については、上記《51》と同様でよい。
すなわち、フラッシュメモリコントローラは引き続いて電源状態情報(駆動率)を監視し、電源回路に電力余裕が生じたか否かを判断する。先にフラッシュメモリの処理の実行を一時停止させたので、時間経過とともに他のフラッシュメモリに対する処理が進行し、一部が完了すると電力余裕が生じるようになる。そして、電力余裕が生じるに至ったとフラッシュメモリコントローラが判断したときに、フラッシュメモリコントローラは先に動作を一時停止していたフラッシュメモリの動作を再開する。
以上を要するに、本項の不揮発性記憶システムは、上記《50》の構成において、電源回路は、電源状態を監視して電源状態が特定のレベル以上となったときに割り込み信号を生成して前記フラッシュメモリコントローラに通知するように構成され、前記フラッシュメモリコントローラは、前記電源回路から割り込み信号を受け取ったときは、前記メモリブロックにおける特定のフラッシュメモリの処理の実行を一時停止し、次いでポーリングにより電源回路から電源状態情報を受け取り、その受け取った電源状態情報に基づいて電源回路に電力余裕が生じるようになったと判断したときは処理の実行を一時停止していたフラッシュメモリの処理の実行を再開する制御を行うように構成されている。
本構成によれば、フラッシュメモリコントローラが電源回路のオーバーロード状態を認識するきっかけとして、電源回路での電源状態遷移に伴う割り込み信号を利用するので、フラッシュメモリコントローラはポーリングによる電源回路のモニタリングが不要となり、処理負荷の軽減が可能となる。また、割り込み信号の受信が即オーバーロード検知になるので、タイムラグがなく、高速な対応が可能である。
上記《52》の構成の具体例を実施例20として以下に説明する。
<実施例20>
図40は本発明の実施例20における不揮発性記憶システムの構成を示すブロック図である。図36との相違は、図36の電源状態通知信号Q2が割り込み信号Q2となっている点である。電源回路20は、フラッシュメモリ26における処理中に、常時的に自己の内部状態を監視し、アクセス対象のフラッシュメモリ26の使用電力が電源回路20の現在の電源状態(駆動率)に対してオーバーロード気味になって駆動率が規定値を超えたときに電源状態遷移を意味する割り込み信号Q2を生成し、フラッシュメモリコントローラ10に対して通知するように構成されている。フラッシュメモリコントローラ10は、電源回路20から割り込み信号Q2を受け取ったときは、処理中の特定のフラッシュメモリ26の動作を一時停止するように構成されている。その他の構成については、図36、図39の構成と同様である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。フラッシュメモリコントローラ10は、アクセス対象候補のフラッシュメモリ26について、その処理の開始前に、そのフラッシュメモリ26での処理を中断する必要がある電源状態条件(例えば駆動率90%)を、割り込みの条件として電源回路20に設定する。なお、この条件は固定的なものでもよい。電源回路20は、電源状態が割り込み条件(駆動率90%)に達した段階で電源回路20の状態遷移を意味する割り込み信号Q2を、フラッシュメモリコントローラ10に発信する。
以下は、実施例20の不揮発性記憶システムの動作を示す図41のフローチャートに従って説明する。いくつかのフラッシュメモリ26において処理を実行している最中であるとする。ステップS321において、フラッシュメモリコントローラ10は、電源回路20からフラッシュメモリコントローラ10に対して電源回路20の状態遷移を意味する割り込み信号Q2が発信されたことを認識する。
次いでステップS322において、フラッシュメモリコントローラ10はフラッシュメモリ動作管理テーブル12を参照して処理実行中のフラッシュメモリ26を一時停止する。つまり、優先順位が最も低いフラッシュメモリ26を一時停止する。続くステップS323,S324,S325の処理は図38のステップS315,S316,S317と同様である。すなわち、次いでステップS323において、フラッシュメモリコントローラ10は再び電源回路20の電源状態を確認する。すなわち、フラッシュメモリコントローラ10は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態通知信号Q2によって電源状態情報を受け取り、その電源状態情報から電源回路20における現在の駆動率を認識する。
次いでステップS324において、フラッシュメモリコントローラ10は、先にステップS322で一時停止させたフラッシュメモリ26の動作を再開させるとした場合に、現在の駆動率がその再開の分だけ増加したときに下限の特定レベルLL 以下かを判断する。下限の特定レベルLL 以下でなければステップS323に戻り、そうでなければステップS325に進む。先にステップS322でフラッシュメモリ26における処理を一時停止してあるので、電源回路20の駆動率は時間経過とともに次第に低下してくる。
駆動率の低下に伴ってステップS324の判断が肯定的となり、ステップS325に進んだときは、先にステップS322で一時停止していたフラッシュメモリ26での処理の実行を再開する。本実施例は割り込み処理であるので、ステップS325の次は、図41のルーチンから抜ける。
本実施例の場合、図38の実施例19におけるステップS312、ステップS313に相当する処理、つまりフラッシュメモリコントローラ10からのポーリングにより電源回路20の駆動率が90%以上かどうかを確認する処理は不要となる。すなわち、本実施冷の処理では、実施例19の処理において、フラッシュメモリコントローラ10からの電圧レベルの確認が不要となるため、フラッシュメモリコントローラ10の処理負荷を低減することができる。また、割り込み信号Q2の受信と一時停止との間のタイムラグが十分に小さく、高速に対応することができる。
《53》[処理実行中]*[データ制御部と電源制御部]
上記《50》の不揮発性記憶システムにおいて、フラッシュメモリコントローラを次のように2つの部分に分けて構成することが考えられる。それは、データ制御部と電源制御部とに分けて構成することである。データ制御部は、フラッシュメモリのデータ処理に関する制御を司る部分であり、複数のフラッシュメモリの処理の実行を個別的に制御する。電源制御部は、電源回路の電源制御を司る部分であり、電源回路から受け取る電源状態情報に基づく判断においてアクセス対象のフラッシュメモリが電源回路の給電能力の規定の範囲内で適切な処理が実行不可能と判断するときは、使用電力が減少して給電能力の規定の範囲内で処理が適切に実行可能となるようにアクセス対象の一部のフラッシュメモリを制御する機能を有するものとして構成されている。電源回路は、その電源状態の情報を電源制御部に通知する機能を有するものとして構成されている。電源状態情報の通知の仕方については、電源制御部からのポーリングによるのでもよいし、電源回路での割り込みによるのでもよい。
以上を要するに、本項の不揮発性記憶システムは、上記《50》の構成において、フラッシュメモリコントローラは、複数のフラッシュメモリの処理の実行を個別的に制御するデータ制御部に加えて、前記電源回路の電源制御を司る電源制御部が追加された構成とされ、前記電源制御部は、前記電源回路から受け取る前記電源状態情報に基づく判断においてアクセス対象のフラッシュメモリが電源回路の給電能力の規定の範囲内で適切な処理が実行不可能と判断するときは、使用電力が減少して給電能力の規定の範囲内で処理が適切に実行可能となるようにアクセス対象のフラッシュメモリを制御するものとして構成されている。
本構成によれば、フラッシュメモリコントローラの構成について、電源制御を行わずにフラッシュメモリのデータ制御のみを実施する従来方式のシステムに対して、上記構成の電源制御部を追加することで対応でき、構成要素の流用(構成の踏襲)をもって、全体構成を簡素化しつつ電源制御の効果を容易に実現することが可能となる。データ制御については従来の処理機能を活用し、電源処理だけを付け加えることが可能となるため、従来のシステムからの継続展開性が容易となる。
上記《53》の構成の具体例を実施例21として以下に説明する。
<実施例21>
図42は本発明の実施例21における不揮発性記憶システムの構成を示すブロック図である。本実施例においては、図36のフラッシュメモリコントローラ10の部分がデータ制御部14と電源制御部16とに分けて構成されている。フラッシュメモリコントローラにおけるデータ制御部14は、電源制御を行わなずにフラッシュメモリのデータ制御のみを実施する従来方式のシステムにおけるフラッシュメモリコントローラに相当するものとなっている。
フラッシュメモリコントローラにおけるデータ制御部14はホスト200に対しデバイス制御バス41を介して接続されている。データ制御部14は、複数のフラッシュメモリ26のそれぞれに対してデータバス・コントロールバス43を介して接続されている。Q3はコントロールバスに乗るフラッシュメモリ制御信号である。
フラッシュメモリコントローラにおける電源制御部16は、電源制御信号Q1と電源状態通知信号Q2が乗るコントロールバス42を介して電源回路20に接続されている。また、電源制御部16は、複数のフラッシュメモリ26のそれぞれに対して個別的にフラッシュメモリ停止信号Q4の信号ライン45を介して接続されている。各フラッシュメモリ26は、フラッシュメモリ停止信号Q4の入力端子を有している。データ制御部14と電源制御部16を合わせたものが、図36のフラッシュメモリコントローラ10に相当する。その他の構成については、図36の場合と同様であるので、説明を省略する。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図43はフラッシュメモリコントローラにおける電源制御部16の動作を示すフローチャートである。いまいくつかのフラッシュメモリ26において処理を実行しているとする。この制御は、データ制御部14とフラッシュメモリ26との間で行われるもので、図43には現れていない。
ステップS331において、電源制御部16は電源回路20の電源状態を確認する。すなわち、電源制御部16は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報(駆動率)を受け取り、その情報から電源回路20における現在の駆動率を認識する。
次いでステップS332において、電源制御部16は、現在の駆動率が上限の特定レベルLH 以上かを判断する。上限の特定レベルLH 以上であればステップS333に進み、そうでなければステップS336にスキップする。現在の駆動率が上限の特定レベルLH 以上かの判断は、電源回路20に電力余裕がなくなってオーバーロードを起こすおそれがあるのかを見ていることになる。
現在の駆動率が上限の特定レベルLH 以上でステップS333に進むと、電源制御部16は、現在アクセス対象となっている1つのフラッシュメモリ26における処理を一時的に停止する。この一時停止によりオーバーロード状態を回避している。
次いでステップS334において、電源制御部16は再び電源回路20の電源状態を確認する。すなわち、電源制御部16は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報を受け取り、その電源状態情報から電源回路20における現在の駆動率を認識する。
次いでステップS335において、電源制御部16は、先にステップS333で一時停止させたフラッシュメモリ26の動作を再開させるとした場合に、現在の駆動率がその再開の分だけ増加したときの駆動率が下限の特定レベルLL 以下であるか否かを判断する。下限の特定レベルLL 以下でなければステップS334に戻り、そうでなければステップS336に進む。先にステップS333でフラッシュメモリ26における処理を一時停止してあるので、電源回路20の駆動率は時間経過とともに次第に低下してくる。
駆動率の低下に伴ってステップS335の判断が肯定的となり、ステップS336に進んだときは、先にステップS333で一時停止していたフラッシュメモリ26での処理の実行を再開し、次いでステップS331に戻る。電源制御部16は、データ制御部14とは独立した動作を行うもので、ステップS331からステップS336のループ処理をサイクリックに行うようになっている。
上記の動作を具体例で説明する。駆動率が90%以上であれば、動作が不安定になる可能性があるとする。いま、90%以上の駆動率となっていた場合、電源制御部16はフラッシュメモリ停止信号Q4をアサート(有効)して処理実行中のフラッシュメモリ26を一時停止する(ステップS332〜S333)。
その後、電源状態を確認し、停止したフラッシュメモリ26の処理を再開しても駆動能力が特定のレベル(例えば80%)以下になると判断した段階で、電源制御部16は、一時停止させていたフラッシュメモリ26に対してフラッシュメモリ停止信号Q4をクリアすることで処理を再開する。
ここで上記の制御はフラッシュメモリコントローラにおける電源制御部16のみで処理されることとなり、データ制御部14は本実施例の処理に影響しない。従来の不揮発性記憶システムを基準にすると、電源制御部16の追加と、電源制御部16と電源回路20および各フラッシュメモリ26との接続の追加のみで対応できるということである。その他の構成要素については従来システムのものがそのまま流用(転用)可能である。
本実施例によれば、フラッシュメモリコントローラにおけるデータ制御部14に対して影響を与えずに、電源制御を実施することが可能となることで、電源制御を実施せずにデータ制御のみを実施していた従来のシステムに対して、容易に電源制御の効果を実現することが可能となる。結果として、導入コストの低減を図ることができる。なお、ポーリングにかかわる電源状態通知信号に代えて割り込み信号を用いる方式に本実施例を適用してもよい。
《54》[処理開始前]*[低電力変更]
これまで説明してきたところでは、アクセス対象のフラッシュメモリでの処理実行中における制御となっている。また、アクセス対象のフラッシュメモリの使用電力とメモリシステム用の電源回路の給電能力との関係でオーバーロード等の不具合が昂進しシステムダウンを起こしそうになった場合に、該当のフラッシュメモリにおける処理の実行を一時停止(ポーズ)することとしている。
本項は、そのような方式に代えて、新規アクセス対象のフラッシュメモリでの処理開始前における制御とする。また、システムダウンを起こしそうになった場合に、特定のフラッシュメモリの使用電力(動作電流)を下げつつ、そのフラッシュメモリにおける処理は継続するとの考えに立つものである。これが低電力変更である。
すなわち、上記《50》の不揮発性記憶システムにおいて、フラッシュメモリは低電力モードを有しているものとする。つまり、動的に動作電流を変更することが可能なフラッシュメモリを用いることとする。フラッシュメモリは低電力モードではその動作速度が通常モードより遅くなる。
また、フラッシュメモリコントローラは、メモリシステム用の電源回路に電力余裕がなくなった場合に、処理実行中のフラッシュメモリ群において特定のフラッシュメモリを低電力動作に移行させる制御を行うものとして構成されている。1つのフラッシュメモリを低電力変更してもまだ電力余裕がない状態が続くのであれば、引き続きもう1つのフラッシュメモリを低電力変更する。電力余裕が生じるようになるまで、順次次のフラッシュメモリを低電力変更する。このように考えると、電力余裕がなくなった初期においては、処理実行中のフラッシュメモリ群において特定のフラッシュメモリにつき処理の実行を一時停止させるようにしてもよい。
以上を要するに、本項の不揮発性記憶システムは、上記《50》の構成において、フラッシュメモリは、動的に動作電流を変更することが可能に構成されており、フラッシュメモリコントローラは、新規アクセス対象のフラッシュメモリが電源回路の給電能力の規定の範囲内で適切な処理が実行不可能と判断するときは、処理実行中のフラッシュメモリ群において特定のフラッシュメモリにつき、その使用電力を下げた上で処理の実行を継続しまたは処理の実行を一時停止し、その低電力変更状態で使用電力が減少して前記給電能力の規定の範囲内で処理が適切に実行可能となったときに新規アクセス対象のフラッシュメモリの処理を開始する制御を行うように構成されている。
本構成によれば、システムにおける電源回路の給電能力に即してフラッシュメモリの使用電力を制御することで、電源回路のオーバーロード等の不具合に起因する不安定動作やシステムダウンを防止し、データ信頼性の向上を図ることが可能となる。さらに、すでに処理実行中にあるフラッシュメモリの処理の実行につき、原則として、低速ではあっても処理の実行を継続するものであるため、システム処理能力が必要以上に低下してしまうことを抑制することが可能となる。換言すれば、よりきめの細かい制御が可能となっている。
上記《54》の構成の具体例を実施例22として以下に説明する。
<実施例22>
本実施例の不揮発性記憶システムの構成を示すブロック図としては、図36、図40、図42のいずれかが援用される。併せて、本実施例においては、フラッシュメモリ26は、その動的に動作電流を変更すること等により電力レベルを変更可能とする。また、フラッシュメモリコントローラ10は、各フラッシュメモリ26の動作状況を管理するフラッシュメモリ動作管理テーブル12を有しているものとする。
図44はフラッシュメモリ動作管理テーブル12の一例を示す。フラッシュメモリ動作管理テーブル12は、フラッシュメモリ26毎に、動作の優先順位、フラッシュメモリの状態、電力レベル、処理開始順の情報を有する。図39での消費電流に代えて電力レベルが用いられている。図39では、その消費電流がすべてのフラッシュメモリ26で同一であったのに対して、図44ではフラッシュメモリごとに、また動作種類ごとに、消費電流が異なり、結果として電力レベルが相違している。電力レベルは「0」,「1」の2値ではなく、3値以上をもつものである。つまり、個々のフラッシュメモリ26は、その駆動レベルが可変に構成され、状況に応じて最適な駆動レベルで動作するように制御される。
フラッシュメモリの状態としては、書き込み処理実行中、消去処理実行中、停止中などがある。読み出し処理実行中、ベリファイ処理実行中もある。フラッシュメモリの状態と電力レベルにより、フラッシュメモリの動作電流値を計算することが可能である。
同じ書き込み動作でも、また同じ消去動作でも、その電力レベルは処理の内容ごと(それを担当するフラッシュメモリごと)に様々に変化し得る。フラッシュメモリの動作電流値は時々刻々に変動する。処理開始順は、各々のフラッシュメモリ26の処理を開始した順番で記載され、「0」は停止中を示す。
フラッシュメモリ動作管理テーブル12は、フラッシュメモリ26の動作開始、動作停止および電力レベルの変更等の動作モードの実行時において更新される。
また、フラッシュメモリ26は電源回路20からの電源状態通知信号Q2を前記電力レベルに換算する機能を持つ。具体的には、例えば電力レベル「1」当たり20mAの動作電力とする場合、600mAの電流能力をもつ電源回路20では、その電力レベルは最大で「30」と換算可能である(600÷20=30)。つまり、電力レベルとして「0」〜「30」のきめ細かい設定が可能である。その他の構成は、実施例1の不揮発性記憶システムの構成と同様である。
図38、図39を用いて説明した実施例19の場合には、複数のフラッシュメモリ26のすべてが50mAの同じ消費電流となっている。これでは、使用電力の細かい調整はできない。オーバーロード時の対応としては、アクセス対象のフラッシュメモリを停止するしかない。これに対して本実施例では、図44に示すように、「0」,「1」,「2」,「3」の4段階の電力レベルをもっているので、アクセス対象のフラッシュメモリを必ずしも停止しなければならないということはなく、電力レベルの段階的低減で対処することが可能となっている。つまり、処理の実行を停止するのではなく、電力レベルを下げることで、オーバーロード状態を解消することが可能である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図45はフラッシュメモリコントローラ10の動作を示すフローチャートである。このフローチャートは、処理内容としては複数のフラッシュメモリ26に共通であるが、適用は個々のフラッシュメモリ26に対して個別の適用となる。ステップS341からステップS346を経てステップS347に至ると、当該フラッシュメモリ26は初めて処理を開始することになるが、その開始前にあって、すでに他のフラッシュメモリ26が処理を実行している。
外部のホスト200からのコマンドによる指示により、フラッシュメモリコントローラ10はアクセス対象のフラッシュメモリ26の制御を開始する。すなわち、まず、ステップS341において、フラッシュメモリコントローラ10はホスト200からのコマンドを受信する。コマンドの種類は任意である。
次いでステップS342において、フラッシュメモリコントローラ10は電源回路20からの電源状態通知信号Q2を受け取って、電源回路20の電源状態を確認する。ここで、電源状態は、電力レベルに換算して例えば「25」の能力があり、現在、電力レベルで合計「19」の処理をしているとする。
次いでステップS343において、フラッシュメモリコントローラ10は、該当のコマンドで指示された処理によってアクセス対象候補のフラッシュメモリ26で実行する動作で消費される動作電力を、その動作の種類に基づいて見積もる。例えば、ホストからの指示受信時にフラッシュメモリコントローラ10内のフラッシュメモリ動作管理テーブル12が図44のようであるとする。この状態において、フラッシュメモリAは電力レベル「1」、フラッシュメモリB,C,Dは電力レベル「2」、フラッシュメモリE,F,G,Hは電力レベル「3」、フラッシュメモリI,Jは停止中である。この状態の場合、処理実行中のフラッシュメモリ26の電力レベルの合計値は「19」である。なお、電力レベルを単純に足すのではなく、動作状態や個々のフラッシュメモリ26の特性を基に処理電力を見積もることで、より精度の高い電力見積りが可能となる。また、処理開始順は若い番号ほど新しく処理を実施したことを示しており、本実施例では、処理開始順番が新しいほど優先順位が低いと判断する。
ステップS343に続くステップS344において、フラッシュメモリコントローラ10は、見積もった動作電力と電源状態情報から得られる電源回路20の現在の駆動率とを比較して、電源回路20の現在の駆動率で見積もった動作電力を賄えるかを判断する。賄えないと判断したときは、ステップS345に進み、賄えると判断したときはステップS346に進む。
ここで、ホスト200からのフラッシュメモリIに書き込みの指示があった場合の動作例を挙げる。フラッシュメモリIに対する処理を電力レベル「3」で実施しようとする場合、電力レベルの合計は「22」(=19+3)となり、電源回路20の安定動作レベルであるレベル「20」(レベル「25」の80%)を超える。図44の状況でフラッシュメモリ26の動作を開始すると、データ信頼性が低下することにつながる可能性があるため、フラッシュメモリ26の電力レベルを変更する必要がある。
そこで、ステップS345において、フラッシュメモリ26の電力レベルを下げる。上記の動作例では、優先順位が最も低い(開始対象となるので優先順位は「9」に設定される)フラッシュメモリIの電力レベルを「3」から「1」に変更する。その結果、電力レベルの合計は「20」(=19+1)となり、電源回路20の安定レベル内で処理することが可能となる。つまり、ステップS344の判断が肯定的となり、ステップS346へ進む。
次いでステップS346において、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を更新する。次いでステップS347において、対応するフラッシュメモリ26における処理を開始する。
本実施例によれば、電源回路20のオーバーロードのおそれがあるときに、原則として、低速ではあっても処理の実行を継続するため、きめの細かい制御形態で、システム処理能力の必要以上の低下を回避することができる。
《55》[処理開始前]*[低電力変更]*[優先順位]
本項は、上述した低電力変更に言及した《54》の構成において、さらにフラッシュメモリを低電力モードに変更する態様の改良を検討するものである。いうまでもなく、フラッシュメモリは、動的に動作電流を変更することが可能に構成されている。
ここで、フラッシュメモリコントローラは、フラッシュメモリ動作管理テーブルにおいて複数のフラッシュメモリの動作状況を監視するが、その監視の項目として複数のフラッシュメモリの相互間で優先順位を定めて管理するように構成されている。この優先順位は、複数のフラッシュメモリにおける処理の実行に伴って変遷し、フラッシュメモリコントローラはその変遷の都度、フラッシュメモリ動作管理テーブルにおいて優先順位を更新するようになっている。
そして、新規アクセス対象となるフラッシュメモリの処理を開始するに際して、処理実行中のフラッシュメモリの使用電力とメモリシステム用の電源回路の給電能力との関係でオーバーロード等の不具合が昂進しシステムダウンを起こしそうになった場合、つまり、アクセス対象のフラッシュメモリがメモリシステム用の電源回路の給電能力の規定の範囲内で適切な処理を実行することは不可能であると、フラッシュメモリコントローラが判断する場合には、フラッシュメモリコントローラは、フラッシュメモリ動作管理テーブルを参照して、優先順位が最も低いフラッシュメモリから優先的にその使用電力を下げるように制御を行う。この低電力変更においては、使用電力を下げた上で処理の実行を継続するのでもよいし、あるいは処理の実行を一時停止するのでもよい。
以上を要するに、本項の不揮発性記憶システムは、上述した低電力変更に言及した《54》の構成において、複数のフラッシュメモリの相互間で優先順位を定めて管理するように構成されているとともに、使用電力を下げた上で処理の実行を継続しまたは処理の実行を一時停止する制御は、処理実行中のフラッシュメモリ群において優先順位が最も低いフラッシュメモリから優先的に対象とするように構成されている。
本構成によれば、上記した《54》の構成と同様の作用効果のほか、メモリシステム用の電源回路の電力余裕が足りなくなってオーバーロード等の不具合が生じた場合に、その使用電力を下げた状態で処理の実行を継続させるフラッシュメモリを選択するに当たって、優先順位が最も低いフラッシュメモリから優先するので、処理速度の低下に起因する影響を極力抑制することが可能となる。
上記《55》の構成の具体例を実施例23として以下に説明する。
<実施例23>
本実施例の不揮発性記憶システムの構成を示すブロック図としては、図36、図40、図42のいずれかが援用される。併せて、本実施例においては、フラッシュメモリ26は、その動的に動作電流を変更すること等により電力レベルを変更可能とする。また、フラッシュメモリコントローラ10は、各フラッシュメモリ26の動作状況を管理するフラッシュメモリ動作管理テーブル12を有する。フラッシュメモリ動作管理テーブル12の一例を図46に示す。
図46は本発明の実施例23におけるフラッシュメモリコントローラ10のフラッシュメモリ動作管理テーブル12を示す。このフラッシュメモリ動作管理テーブル12には、フラッシュメモリ26毎に、動作の優先順位、動作の優先レベル、フラッシュメモリの状態、電力レベル、処理開始順の情報が格納されている。
動作の優先レベルは、例えば「0」〜「3」の4段階で示され、「0」は未動作、「3」が最優先の処理となる。フラッシュメモリコントローラ10は、優先レベルの付け方に関して、処理速度の低下に起因する影響が大きいものから順に大きい優先レベルを付ける。換言すれば、処理速度の低下に起因する影響が小さいものを優先的に選択して低電力モードに切り替える。影響が大きいものはできるだけ通常モードで動作させる。つまり、低電力モードに切り替えるべきフラッシュメモリの選択の優先度は、フラッシュメモリ動作管理テーブル12における優先レベルとは逆の関係になっている。低電力モードに切り替えるべきフラッシュメモリの選択の優先度が優先順位である。図46の場合は、図の上位のものほど優先的に低電力モード切り替えの対象とする。なお、結果として、処理開始順はランダムな並びとなっている。
優先レベル「3」の処理は、例えばホスト200から直接指示されたデータの読み出し/書き込みに関する処理であって、この処理はホスト200から見た処理速度に直接影響を与える処理に対応する。
優先レベル「2」の処理は、例えばホスト200から指示された処理の後処理など、ホスト200から見た処理速度に直接は影響を与えないが、処理の高速化が望ましい処理に対応する。
優先レベル「1」の処理としては、例えば不良セクタを別のセクタに移動させるなど、ホスト200から見た処理速度に影響を与えない処理が割り当てられる。
フラッシュメモリの状態は書き込み処理実行中、消去処理実行中などを示し、フラッシュメモリの状態と電力レベルによりフラッシュメモリ26の動作電流値を計算することが可能となる。
処理開始順は、各々のフラッシュメモリ26の処理を開始した順番で記載され、「0」は停止中を示す。図46では、処理開始順には並んでいない。並んでいるのは、優先順位の順である。優先レベルについては、同じレベルのものが複数あり得るが、優先順位は連続番号であり、同一順位の重複はない。
このフラッシュメモリ動作管理テーブル12は、フラッシュメモリ26の動作開始、動作停止および電力レベルの変更等の動作モードの実行時に更新される。その他の構成は、実施例5の不揮発性記憶システムの構成と同様である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図47はフラッシュメモリコントローラ10の動作を示すフローチャートである。
ステップS351〜S357のうち、ステップS355が図45のステップS345と相違し、その他のステップは図45と同じとなっている。ステップS351からステップS356を経てステップS357に至ると、当該のフラッシュメモリ26は初めて処理を開始することになるが、その開始前にあって、すでに他のフラッシュメモリ26が処理の実行を行っている。
外部のホスト200からのコマンドによる指示により、フラッシュメモリコントローラ10はアクセス対象のフラッシュメモリ26の制御を開始する。ステップS351において、ホスト200からの指示により、フラッシュメモリコントローラ10はフラッシュメモリ26を制御する。次いでステップS352において、フラッシュメモリコントローラ10は電源回路20から受け取る電源状態通知信号Q2に基づいて電源回路20の電源状態を確認する。
ここで、電源状態は、例えば電力レベルに換算して「30」の能力があり、現在電力レベルで「22」の処理をしている状態であるとする。さらには、電源回路20の安定動作レベルであるレベルは、レベル「30」の80%の「24」と設定されているとする。
次いでステップS353において、フラッシュメモリコントローラ10は、フラッシュメモリ26に対し次に実施する動作とその動作電力を見積もる。例えば、ホストからの指示受信時にフラッシュメモリコントローラ10内のフラッシュメモリ動作管理テーブル12が図46であったとする。この状態では、フラッシュメモリA〜Jは処理実行中となり、フラッシュメモリIは停止中となる。
また、フラッシュメモリD,H,Jが優先レベル最高の「3」、フラッシュメモリC,Gが優先レベル中の「2」、フラッシュメモリA,B,E,Fが優先レベル低の「1」となっている。また、フラッシュメモリAは電力レベル「1」で動作され、フラッシュメモリB,E,Fは電力レベル「2」で動作され、フラッシュメモリC,G,D,H,Jは電力レベル「3」で動作される。
以上の状態の場合、処理実行中のフラッシュメモリ26の電力レベルの合計値は「22」である。なお、電力レベルを単純に足すのではなく、動作状態や個々のフラッシュメモリ26の特性を基に処理電力を見積もれば、より精度の高い電力見積りを行うことが可能となる。
また、フラッシュメモリ26の電力レベルを、優先レベル未満の電力レベルに設定しないことで、システムの処理性能の低減を抑えることが可能である。例えば、優先レベル「1」の処理では、電力レベルは「1」,「2」,「3」を選べるが、優先レベル「3」の処理では、電力レベルは「1」,「2」は選べず、選択される電力レベルは「3」となる。
また、処理開始順は若い番号ほど新しく処理を実施したことを示しており、本実施例では、処理開始順番が新しいほど、処理としては同一の優先レベルの中で優先順位が低いと判断する。図46では、優先レベルとして同順位のものが複数あるが、これを、処理開始順を参考にして連続順として優先順位を定めている。優先順位には同順位はない。
次に、ステップS355とステップS356に関連して、ホスト200からの指示により、フラッシュメモリIに優先レベル「3」の書き込みが必要であった場合におけるフラッシュメモリ動作管理テーブル12の更新方法について説明する。
図48はフラッシュメモリIの動作を加えたときのテーブルである。ここでフラッシュメモリIは優先レベル「3」のため、優先レベル「3」の処理の中で優先順位が最も低い優先順位4に割り当てられる。図46で最下段にあるフラッシュメモリIは図48では下から4段目に移行している。このときの処理開始順は「0」であり、これはフラッシュメモリ動作管理テーブル12への仮の登録を意味している。また、フラッシュメモリIの電力レベルは「3」となる。
ここで電力レベルの合計は「25」(22+3)となり、電源回路20の安定動作レベルであるレベル「24」(レベル「30」の80%)を超える。この状態でフラッシュメモリ26の動作を開始すると、データ信頼性が低下する可能性があり、これを避けるためにはフラッシュメモリ26の電力レベルを変更する必要がある。これを具体的にいうと、ステップS354の判断が否定的となり、ステップS355へ進むことになる。
この場合、優先順位が「10」で最も低いフラッシュメモリAは、電力レベルが「1」であるために、電力レベルを下げることができない。もし、これを下げるとなれば、電力レベル「0」となり、これではフラッシュメモリの処理が停止してしまい、これでは本実施例の主旨に反する。そこで次に優先順位が低い優先順位「9」のフラッシュメモリBに着目する。フラッシュメモリBは、優先レベル「1」に対して電力レベル「2」であるため、電力レベルを下げることができる。
フラッシュメモリBの電力レベルを「2」から「1」に変更した場合、電力レベルの合計は「24」(=25−1)となり、電源回路20の安定レベル(レベル「30」の80%の「24」)内で処理することが可能となる。変更後の結果は図49に記載している。図48で電力レベル「2」であったフラッシュメモリBの電力レベルが「1」に低電力変更されている。以上で、チェックと修正が終わり、電力レベルが確定する。その後、フラッシュメモリ動作管理テーブル12を更新し、対応するフラッシュメモリ26の処理を開始する。
図44、図45を用いて説明した実施例5の動作例の場合、新規参入させたフラッシュメモリIの電力レベルを「3」から「1」に低電力変更したが、本実施例では新規参入させたフラッシュメモリIの電力レベルは所望の「3」のままとし、すでに処理の実行が進んでいたフラッシュメモリBについて、低電力変更を施している。
本実施例によれば、フラッシュメモリ26に低電力変更についての優先順位を持たせて処理を実施することで、システムの処理に対する影響を最小限とすることが可能となる。
《56》[処理実行中]*[ポーリング]*[低電力変更]
本項の構成と上記《54》の構成とは、処理を行うタイミングが、[処理開始前]であるか[処理実行中]であるかで相違する。また、本項の構成と《51》の構成とは処理方法が、[一時停止]であるか[低電力変更]であるかで相違する。上記《54》の構成では、ホストからフラッシュメモリコントローラにコマンドが送信され、そのコマンドをフラッシュメモリコントローラが受信したときからの制御、つまり新規アクセス対象のフラッシュメモリでの処理開始前における制御についてであった。本項では、現に複数のフラッシュメモリにおいて処理の実行がなされている最中に、フラッシュメモリ群における動作電流が規定水準を超え、メモリシステム用の電源回路の電力余裕が足りなくなってオーバーロード等の不具合のおそれが生じた場合の制御に関する。
本項の不揮発性記憶システムにおいては、上記《50》の不揮発性記憶システムにおいて、フラッシュメモリは消費電力モードとして低電力モードを有していて、動的に動作電流を変更することが可能であるとする。また、フラッシュメモリコントローラは、複数のフラッシュメモリそれぞれの動作状況を管理するフラッシュメモリ動作管理テーブルを有しているものとする。
フラッシュメモリコントローラは、ポーリングによりメモリシステム用の電源回路から電源状態情報を受け取ったうえで、受け取った電源状態情報をフラッシュメモリ動作管理テーブルで参照して特定のレベルと比較する。そして、電源状態情報が特定のレベル以上でメモリシステム用の電源回路に電力余裕がなくなっていると判断した場合、フラッシュメモリコントローラは、特定のフラッシュメモリの電力レベルを下げ、次いで電源状態情報に基づいてメモリシステム用の電源回路に電力余裕が生じるようになったと判断したときは、フラッシュメモリ動作管理テーブルを更新する制御を行う。
以上を要するに、本項は、上記《50》の構成において、フラッシュメモリは、動的に動作電流を変更することが可能に構成されており、フラッシュメモリコントローラは、ポーリングによりメモリシステム用の電源回路から電源状態情報を受け取り、受け取った電源状態情報が特定のレベル以上であると判断した場合は特定のフラッシュメモリの電力レベルを下げ、メモリシステム用の電源回路に電力余裕を生じさせて処理の実行を継続するように構成されている。
本項によれば、フラッシュメモリにおける処理の実行中にメモリシステム用の電源回路に電力余裕がなくなってオーバーロード等の不具合のおそれが生じた場合であっても、ポーリングによりその不具合発生を事前に検知し、処理実行中の特定のフラッシュメモリの電力レベルを下げる。これにより、メモリシステム用の電源回路のオーバーロード等の不具合に起因する不安定動作やシステムダウンを防止しながら、システムの全体的な処理能力の低下を最小限に抑さえることが可能になる。また、安定動作を確保するためにあえて過剰な電源能力をもたせるといったようなことをしなくて済む。
上記《56》の構成の具体例を実施24として以下に説明する。
<実施例24>
本実施例の不揮発性記憶システムの構成を示すブロック図としては、図36、図42のいずれかが援用される。次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図50はフラッシュメモリコントローラ10の動作を示すフローチャートである。
いま、いくつかのフラッシュメモリ26において処理を実行している最中であるとする。すなわち、ステップS361において、フラッシュメモリコントローラ10がフラッシュメモリ26の処理を制御しているとする。この状態で次にステップS362において、フラッシュメモリコントローラ10が、電源回路20の電源状態を確認する。すなわち、フラッシュメモリコントローラ10は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報として駆動率を受け取って、その駆動率を確認する。
次いでステップS363において、フラッシュメモリコントローラ10は、現在の駆動率が上限の特定レベルLH 以上であるか否かを判断する。上限の特定レベルLH 以上であればステップS364に進み、そうでなければステップS365に進む。現在の駆動率が上限の特定レベルLH 以上であるか否かを判断することは、電源回路20に電力余裕がなくなってオーバーロードを起こすおそれがあるか否かを見ていることになる。
ステップS363において、現在の駆動率が上限の特定レベルLH 以上で、オーバーロードを起こす危険性があると判断してステップS364に進むと、フラッシュメモリコントローラ10は、現在処理実行中のフラッシュメモリ26の電力レベルを下げる(低電力変更)、つまりフラッシュメモリ26の電力モードを低電力モードに移行させる。電力レベルを下げるフラッシュメモリは、処理開始順に沿って順次設定する。つまり、現在アクセス対象となっている複数のフラッシュメモリ26のうち、ホスト200からのコマンドで処理開始したのが早い時期のフラッシュメモリから優先して電力レベルを下げる対象とする。
ステップS364の次はステップS362に戻る。ステップS362→S363→S364→S362のループを繰り返すうちに、順次にフラッシュメモリの電力レベルが下がっていき、オーバーロードの危険性を判断するための現在の駆動率が上限の特定レベルLH を下回るようになる。こうなると、すべてのアクセス対象のフラッシュメモリ26における処理で必要となる電力は、現在の駆動率の供給電力で安全に電源回路20によって賄えるようになる。つまり、電源回路20に電力余裕が生じたことになる。この状態になれば、ステップS365に進む。
ステップS365に進むと、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を更新する。ステップS364を経てきたときは、レベルを下げた後の電力レベルを設定する。この電力レベルを下げる処理により、オーバーロード状態を回避している。なお、ステップS304では、フラッシュメモリ動作管理テーブル12には仮のデータ登録が行われているだけであり、ステップS365においてそのデータが本登録される。
次いでステップS366において、フラッシュメモリ26における処理が完了したかの判断を行い、未完了であればステップS361に戻って処理を続行する。この処理の続行の過程でも、ステップS362、S363、S364、S365の処理を繰り返す。処理が完了したときは、図50のルーチンから抜ける。なお、一部のフラッシュメモリ26を一時停止することも、電力レベルを下げる処理に含まれるものとする。
本実施例によれば、アクセス対象のフラッシュメモリでの処理実行中において、電源回路20の電源状態(駆動率)を監視しながら、フラッシュメモリ26の使用電力をリアルにダイナミックに制御するので、電源回路20のオーバーロード等の不具合に起因する不安定動作やシステムダウンを防止しながら、システムの全体的な処理能力の低下を最小限に抑さえることができる。また、安定動作を確保するためにあえて過剰な電源能力をもたせるといったようなことをしなくて済む。
《57》[処理実行中]*[割り込み]*[低電力変更]
本項は、上述した《56》の構成が果たす機能を、ポーリングではなくメモリシステム用の電源回路からの割り込みによって実現しようとするものである。本項の不揮発性記憶システムは、上述した《50》の構成において、電源回路の電源状態を常時監視し、電源状態が特定のレベル以上となったときに割り込み信号を生成し、フラッシュメモリコントローラに通知するものとして構成されている。また、フラッシュメモリコントローラは、メモリシステム用の電源回路から割り込み信号を受け取った場合は、処理実行中の特定のフラッシュメモリの電力レベルを下げ、そのことを通じてメモリシステム用の電源回路に電力余裕を生じさせながら、処理の実行を継続するものとして構成されている。
本項によれば、フラッシュメモリコントローラがメモリシステム用の電源回路のオーバーロード等の不具合状態を認識するきっかけとして、メモリシステム用の電源回路での電源状態遷移に伴う割り込み信号を利用するので、フラッシュメモリコントローラはポーリングによるメモリシステム用の電源回路のモニタリングが不要となり、処理負荷の軽減が可能となる。また、割り込み信号の受信が即不具合検知になるので、タイムラグがなく、高速な対応が可能である。
上記《57》の構成の具体例を実施例25として以下に説明する。
<実施例25>
本実施例の不揮発性記憶システムの構成を示すブロック図としては、図40、図42のいずれかが援用される。本実施例においては、電源回路20は、フラッシュメモリ26における処理中に、常時的に自己の内部状態を監視し、アクセス対象のフラッシュメモリ26の使用電力が電源回路20の現在の駆動率に対してオーバーロード気味になって駆動率が規定値を超えたときに電源状態遷移を意味する割り込み信号Q2を生成し、フラッシュメモリコントローラ10に対して通知するように構成されている。フラッシュメモリコントローラ10は、電源回路20から割り込み信号Q2を受け取ったときは、処理中の特定のフラッシュメモリ26の電力レベルを下げるように構成されている。その他の構成は、実施例22の不揮発性記憶システムの構成と同様である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図51はフラッシュメモリコントローラ10の動作を示すフローチャートである。ステップS371において、フラッシュメモリコントローラ10は、電源回路20から電源回路20の状態遷移を意味する割り込み信号Q2を受信したことを認識する。次いでステップS372において、フラッシュメモリコントローラ10は、現在処理実行中のフラッシュメモリ26の電力レベルを下げる、つまり、フラッシュメモリ26を低電力モードに移行させる。本実施例では、電力レベルを下げるフラッシュメモリは、処理開始順に基づいて設定される。つまり、フラッシュメモリコントローラ10は、現在アクセス対象となっている複数のフラッシュメモリ26のうちで、ホスト200からのコマンドで処理開始したのが早い時期のフラッシュメモリから優先して電力レベルを下げる対象とする。
次いでステップS373において、フラッシュメモリコントローラ10は再び電源回路20の電源状態を確認する。すなわち、フラッシュメモリコントローラ10は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態通知信号Q2を受け取り、受け取った電源状態通知信号Q2から電源状態情報を取り出し、取り出した電源状態情報から電源回路20における現在の駆動率を認識する。
次いでステップS374において、フラッシュメモリコントローラ10は、現在の駆動率が上限の特定レベルLH 以上であるか否かを判断する。上限の特定レベルLH 以上であればステップS372に戻り、そうでなければステップS375に進む。現在の駆動率が上限の特定レベルLH 以上であるか否かの判断は、換言すれば、電源回路20に電力余裕がなくなってオーバーロードを起こすおそれがあるのかを見ていることになる。
現在の駆動率が上限の特定レベルLH 以上で、オーバーロードを起こす危険性があると判断してステップS372に戻ると、フラッシュメモリコントローラ10は、さらにフラッシュメモリ26の電力レベルを下げる、あるいは別のフラッシュメモリ26を低電力モードに移行させる。
ステップS372→S373→S374→S372のループを繰り返すうちに、オーバーロードの危険性を判断する目安となる現在の駆動率が上限の特定レベルLH を下回るようになる。こうなるのは、順次にフラッシュメモリの電力レベルを下げて行くからである。駆動率が上限の特定レベルLH を下回ると、すべてのアクセス対象フラッシュメモリ26の処理で必要となる電力を、現在の駆動率の供給電力で安全に電源回路20によって賄うことが可能となる。そうなれば、ステップS375に進む。
ステップS375に進むと、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を更新する。上述したループを経た状態では、レベルを下げた後の電力レベルが設定される。この電力レベルを下げる処理により、オーバーロード状態が回避される。本実施例は割り込み処理であるので、ステップS375の次は、図51のルーチンから抜ける。
本実施例の場合、図50の実施例7におけるステップS362、ステップS363に相当する処理、つまり、フラッシュメモリコントローラ10からのポーリングにより電源回路20の駆動率が90%超えたかどうかを確認することは不要である。すなわち、実施例7に対して、フラッシュメモリコントローラ10からの電圧レベルの確認が不要となるため、フラッシュメモリコントローラ10の処理負荷を低減することが可能となる。
《58》[処理実行中]*[ポーリング]*[低電力変更]*[優先順位]
本項は、上記の低電力変更に言及した《56》の構成においてさらに、フラッシュメモリを低電力モードに変更する態様の改良を検討するものである。いうまでもなく、フラッシュメモリは、動的に動作電流を変更することが可能に構成されている。電源回路20の電源状態の確認は、フラッシュメモリコントローラ10からのポーリングによるように構成されている。本項と上記《55》とは、処理を行うタイミングが、[処理開始前]と[処理実行中]とで相違する。
ここで、フラッシュメモリコントローラは、フラッシュメモリ動作管理テーブルにおいて複数のフラッシュメモリの動作状況を監視するが、その監視の項目として複数のフラッシュメモリの相互間で優先順位を定めて管理するように構成されている。この優先順位は、複数のフラッシュメモリにおける処理の実行に伴って変遷し、フラッシュメモリコントローラはその変遷の都度、フラッシュメモリ動作管理テーブルにおいて優先順位を更新するようになっている。
そして、フラッシュメモリコントローラは、処理実行中のフラッシュメモリの使用電力とメモリシステム用の電源回路の給電能力との関係でオーバーロード等の不具合が昂進しシステムダウンを起こしそうになった場合、つまり、アクセス対象のフラッシュメモリがメモリシステム用の電源回路の給電能力の規定の範囲内で適切な処理を実行することが不可能であると判断する場合には、フラッシュメモリコントローラは、フラッシュメモリ動作管理テーブルを参照して、優先順位が最も低いフラッシュメモリから優先的にその使用電力を下げるように制御を行う。この低電力変更においては、使用電力を下げた上で処理の実行を継続する。
以上を要するに、本項の不揮発性記憶システムは、上述した低電力変更に言及した《56》の構成において、フラッシュメモリコントローラは、複数のフラッシュメモリの相互間で優先順位を定めて管理するように構成されているとともに、使用電力を下げた上で処理の実行を継続する制御は、処理実行中のフラッシュメモリ群において優先順位が最も低いフラッシュメモリから優先的に対象とするように構成されている。
本構成によれば、上記《56》の構成による作用効果に加えて、メモリシステム用の電源回路の電力余裕が足りなくなってオーバーロード等の不具合のおそれが生じた場合であっても、その使用電力を下げた状態で処理の実行を継続させるフラッシュメモリを選択するに当たって、優先順位が最も低いフラッシュメモリから優先するので、処理速度の低下を極力抑制することが可能となる。
上記《58》の構成の具体例を実施例26として以下に説明する。
<実施例26>
本実施例の不揮発性記憶システムの構成を示すブロック図としては、図36、図42のいずれかが援用される。本実施例の不揮発性記憶システムの動作を説明する。図52はフラッシュメモリコントローラ10の動作を示すフローチャートである。ステップS381〜S386のうち、ステップS384が図50のステップS364と相違し、その他のステップは図50と同じとなっている。
いま、いくつかのフラッシュメモリ26において処理を実行している最中であるとする。すなわち、ステップS381において、フラッシュメモリコントローラ10はフラッシュメモリ26の処理を制御しているとする。この状態で次にステップS382において、フラッシュメモリコントローラ10は、ポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報を受け取り、受け取った電源状態情報に基づいて電源回路20の駆動率を確認する。
次いでステップS383において、フラッシュメモリコントローラ10は、現在の駆動率が上限の特定レベルLH 以上であるか否かを判断する。上限の特定レベルLH 以上であればステップS384に進み、そうでなければステップS385に進む。現在の駆動率が上限の特定レベルLH 以上であるか否かの判断は、電源回路20に電力余裕がなくなってオーバーロードを起こすおそれがあるのか否かを見ていることになる。
ステップS383において、現在の駆動率が上限の特定レベルLH 以上で、オーバーロードを起こす危険性があると判断してステップS384に進むと、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を参照して優先順位が低いフラッシュメモリを優先して選択し、選択した現在処理実行中のフラッシュメモリ26の電力レベルを下げる、つまり、フラッシュメモリ26の消費電力モードを低電力モードに移行させる。
ステップS384の次はステップS382に戻る。ステップS382→S383→S384→S382のループを繰り返すうちに、順次にフラッシュメモリの電力レベルが下がっていき、オーバーロードの危険性を判断するための現在の駆動率が上限の特定レベルLH を下回るようになる。こうなると、すべてのアクセス対象のフラッシュメモリ26の処理で必要となる電力を、現在の駆動率の供給電力で安全に電源回路20によって賄うことが可能になる。そうなれば、ステップS385に進む。
ステップS385に進むと、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を更新する。ステップS384を経てきたときは、レベルを下げた後の電力レベルを設定する。この電力レベルを下げる処理により、オーバーロード状態を回避している。
次いでステップS386において、フラッシュメモリ26における処理が完了したかの判断を行い、未完了であればステップS381に戻って処理を続行する。この処理の続行の過程でも、ステップS382,S383,S384,S385の処理を繰り返す。処理が完了したときは、図52のルーチンから抜ける。なお、フラッシュメモリ26を一時停止することも、電力レベルを下げる処理に含まれるものとする。
本実施例によれば、実施例24の効果に加えて、フラッシュメモリ26に優先度を持たせ処理を実施することで、システムの処理に対する影響を最小限にすることが可能となる。
《59》[処理実行中]*[割り込み]*[低電力変更]*[優先順位]
本項は、上記《58》が果たす機能を、ポーリングではなくメモリシステム用の電源回路からの割り込みによって実現しようとするものである。
本項の不揮発性記憶システムは、低電力変更に言及した上述の《56》の構成において、電源回路は、電源状態を常時的に監視し、電源状態が特定のレベル以上となったときに割り込み信号を生成してフラッシュメモリコントローラに通知するものとして構成されている。また、フラッシュメモリコントローラは、電源回路から割り込み信号を受け取った場合、処理実行中の特定のフラッシュメモリの電力レベルを下げ、そのことを通じてメモリシステム用の電源回路に電力余裕を生じさせながら、処理の実行を継続するものとして構成されている。
本項によれば、フラッシュメモリコントローラがメモリシステム用の電源回路のオーバーロード等の不具合状態を認識する切掛けとして、メモリシステム用の電源回路での電源状態遷移に伴う割り込み信号を利用するので、フラッシュメモリコントローラはポーリングによるメモリシステム用の電源回路のモニタリングが不要となり、処理負荷の軽減が可能となる。また、割り込み信号の受信が即不具合検知になるので、タイムラグがなく、高速な対応が可能である。
上記《59》の構成の具体例を実施例27として以下に説明する。
<実施例27>
本実施例の不揮発性記憶システムの構成を示すブロック図としては、図40、図42のいずれかが援用される。本実施例の不揮発性記憶システムにおいては、フラッシュメモリコントローラ10は、図46と同様の優先レベルを管理するフラッシュメモリ動作管理テーブル12を有している。
本実施例においては、電源回路20は、フラッシュメモリ26における処理中に、常時的に自己の内部状態を監視する。具体的には、アクセス対象のフラッシュメモリ26の使用電力が当該電源回路20の現在の駆動率に対してオーバーロード気味になって駆動率が規定値を超えると、電源回路20は、電源状態遷移を意味する割り込み信号Q2を生成して、フラッシュメモリコントローラ10に通知するように構成されている。フラッシュメモリコントローラ10は、電源回路20から割り込み信号Q2を受け取ると、処理中の特定のフラッシュメモリ26の電力レベルを下げるように構成されている。その他の構成は、実施例22の不揮発性記憶システムの構成と同様である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図53はフラッシュメモリコントローラ10の動作を示すフローチャートである。ステップS391において、フラッシュメモリコントローラ10は、電源回路20から電源回路20の状態遷移を意味する割り込み信号Q2を受信したことを認識する。
次いでステップS392において、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を参照して優先順位が低いフラッシュメモリを優先して選択し、選択した現在処理実行中のフラッシュメモリ26の電力レベルを下げる。つまり、低電力モードに移行させる。
次いでステップS393において、フラッシュメモリコントローラ10は再びポーリングによって電源回路20に問い合わせを行って電源回路20から電源状態情報(具体的には電源状態通知信号Q2)を受け取り、受け取った電源状態情報に基づいて、電源回路20の現在の駆動率を認識する。
次いでステップS394において、フラッシュメモリコントローラ10は、現在の駆動率が上限の特定レベルLH 以上であるか否かを判断する。上限の特定レベルLH 以上であればステップS392に戻り、そうでなければステップS395に進む。現在の駆動率が上限の特定レベルLH 以上であるか否かの判断は、電源回路20に電力余裕がなくなってオーバーロードを起こすおそれがあるか否かを見ていることになる。
現在の駆動率が上限の特定レベルLH 以上でであって、オーバーロードを起こす危険性があると判断してステップS392に戻ると、フラッシュメモリコントローラ10は、さらにフラッシュメモリ26の電力レベルを下げる。あるいは、別のフラッシュメモリ26を低電力モードに移行させる。
ステップS392→S393→S394→S392のループを繰り返すうちに、順次にフラッシュメモリの電力レベルが下がっていき、オーバーロードの危険性を判断するための現在の駆動率が上限の特定レベルLH を下回るようになる。こうなると、すべてのアクセス対象のフラッシュメモリ26における処理に必要な電力を現在の駆動率の供給電力で安全に電源回路20によって賄うことが可能になる。そうなれば、ステップS395に進む。
ステップS395に進むと、フラッシュメモリコントローラ10は、フラッシュメモリ動作管理テーブル12を更新する。上記のループを経てきたときは、レベルを下げた後の電力レベルを設定する。この電力レベルを下げる処理により、オーバーロード状態を回避している。本実施例は割り込み処理であるので、ステップS395の次は、図53のルーチンから抜ける。
本実施例の場合、図52の実施例26におけるステップS382、ステップS383に相当する処理、つまり、フラッシュメモリコントローラ10からのポーリングにより電源回路20の駆動率が90%超えたか否かを確認することは不要である。すなわち、本実施例では、実施例26においてフラッシュメモリコントローラ10が実施していた電源回路20の電圧レベルの確認処理が不要となるため、フラッシュメモリコントローラ10の処理負荷を低減することが可能となる。
《60》[オーバーロード等の不具合発生に対するチェック]
本項は、フラッシュメモリに対する処理の実行が完了したときに、データ異常のチェックを行い、その結果をホストへ通知するものである。
本項の不揮発性記憶システムは、上記《50》〜《59》のいずれか構成において、フラッシュメモリコントローラは、フラッシュメモリの処理が完了した後に、メモリシステム用の電源回路でオーバーロードが発生したか否かを確認し、オーバーロード発生ありのときはフラッシュメモリのベリファイ動作を実行する。そしてベリファイ後に、フラッシュメモリのデータ異常を判定し、ホストに対して判定結果を通知する。
本項によれば、オーバーロードが発生したことをシステムで確認し、オーバーロード発生時の処理実行の結果の良否を確認し、ホストに通知することで、データ信頼性を向上することが可能となる。
上記《60》の構成の具体例を実施例28として以下に説明する。
<実施例28>
図54は本発明の実施例28における不揮発性記憶システムの構成を示すブロック図である。電源回路20には、電源回路20がオーバーロードを生じたか否かを示すオーバーロードフラグをセットしておくためのオーバーロードレジスタ24が備えられている。フラッシュメモリコントローラ10は、電源回路20のオーバーロードレジスタ24をポーリングし、ポーリング結果が電源回路20のオーバーロードを示す場合には、フラッシュメモリ26への動作を継続してベリファイ動作を実施するように構成されている。その他の構成は、実施例20(図40の不揮発性記憶システム)の構成と同様である。
次に、上記のように構成された本実施例の不揮発性記憶システムの動作を説明する。図55はフラッシュメモリコントローラ10の動作を示すフローチャートである。ステップS401において、フラッシュメモリコントローラ10は、フラッシュメモリ26における処理の実行の完了を認識する。次いでステップS402において、フラッシュメモリコントローラ10は、電源回路20のオーバーロードフラグを確認する。ここでは、電源回路20に設けられたオーバーロードレジスタ24をポーリングすることでオーバーロードフラグを確認する。次いでステップS403において、電源回路20のオーバーロードレジスタ24をクリアする。
次いでステップS404において、ステップS402での確認結果に従ってオーバーロード発生の有無を判定する。オーバーロードが発生していたときはステップS405に進み、発生していない場合はステップS407へ進む。
ステップS405に進むと、フラッシュメモリコントローラ10はフラッシュメモリ26で実施した処理のベリファイ動作を行う。具体的には、書き込み動作または消去動作を実施したフラッシュメモリ26の領域のデータ(処理をしたデータ)を一度読み出してそのデータが正常であるか否かを確認する。次いでステップS406において、フラッシュメモリ26のデータが果たして正常であるか否か(フラッシュメモリ全体のデータが正常であるか否か)を判断する。正常のときはステップS407に進み、異常のときはステップS408に進む。
電源回路20にオーバーロードが発生していなかったと判断される場合、あるいはフラッシュメモリ26の処理結果が正常であったと判断される場合は、ステップS407に進み、フラッシュメモリコントローラ10はホスト200に「正常終了」を通知する。一方、フラッシュメモリ26の処理結果が異常であったと判断される場合は、ステップS408に進み、フラッシュメモリコントローラ10はホスト200に「異常終了」を通知する。
本実施例によれば、オーバーロードが発生したことをシステムで確認し、オーバーロード発生時の処理の実行の結果の良否を確認し、ホスト200に通知することで、データ信頼性を向上することができる。
<61> 上述した<50>の構成においては、前記フラッシュメモリコントローラは、入出力回路等与えられる第1の電源電圧が印加される第1の電源端子および、信号処理回路等与えられ、前記第1の電源電圧よりも低い第2の電源電圧が印加される第2の電源端子を備え、
前記電源回路が、前記フラッシュメモリコントローラの前記第2の電源端子へ印加する第2の電源電圧を生成する回路を備えるよう構成されている、のが好ましい。
《62》[基本的構成:電圧発生部と電圧状態モニタ部]
本項のメモリシステム用の電源回路は、生成すべき電源電圧に関してフラッシュメモリコントローラから制御を受け、その制御に従って自己の内部状態を監視し、監視結果(電源状態(駆動率)等)をフラッシュメモリコントローラに返す。フラッシュメモリコントローラは返ってきた監視結果(電源状態(駆動率)等)を電源電圧の制御に利用する。この構成によれば、制御形態が絶えざるフィードバック・フィードフォワードであることから、リアルでダイナミックなきめの細かい制御を実現することができる。これは、以下に説明するような様々な実施例においてさらに有利に展開することが可能である。
<実施例29>
図56は本発明の実施例29における不揮発性記憶システム(メモリシステム用の電源回路)の構成を示すブロック図である。図56において、10はフラッシュメモリコントローラ、20はメモリシステム用の電源回路、25は複数のフラッシュメモリ26の集合からなるメモリブロックである。フラッシュメモリコントローラ10は、1つあるいは複数のフラッシュメモリ26それぞれに、読み出し状態、書き込み/消去状態等を設定するとともに、フラッシュメモリ26の各状態によって必要とされる電圧/電流能力に応じて電源制御信号Q1を生成して電源回路20に与える。
電源回路20は、構成要素として、パラメータ設定部40、電圧発生部50および電圧状態モニタ部60を備えている。1はシステム電源であり、このシステム電源1は、フラッシュメモリコントローラ10や電源回路20やフラッシュメモリ26に、基本電源となる電源電圧VDDを供給するようになっている。フラッシュメモリコントローラ10は電源回路20に、コントロールバス42を介して接続されている。コントロールバス42には電源制御信号Q1と電源状態通知信号Q2とが伝送される。フラッシュメモリコントローラ10はバス43を介して複数のフラッシュメモリ26それぞれに接続されている。Q3はコントロールバス42に乗るフラッシュメモリ制御信号である。電源回路20は電源線44を介して各フラッシュメモリ26に接続されている。
電源回路20は、フラッシュメモリコントローラ10から送られてくる電源制御信号Q1を入力するための電源制御端子T1と、電圧状態モニタ部60から電源状態通知信号Q2をフラッシュメモリコントローラ10に向けて出力するための電源状態通知端子T2と、電圧発生部50から電源電圧をフラッシュメモリ26に出力するための電源出力端子T3とを備えている。
パラメータ設定部40は電源制御信号Q1に基づいて、電流能力、昇圧並列数、昇圧段数、発振周波数など各種の制御パラメータを設定する機能を有している。電源制御信号Q1は、フラッシュメモリコントローラ10から電源制御端子T1を介してパラメータ設定部40に入力される。パラメータ設定部40の出力側は電圧発生部50につながっている。
電圧発生部50は、パラメータ設定部40によって各種パラメータが設定される。電圧発生部50は、設定されたパラメータに応じてフラッシュメモリ動作用の電源電圧を生成出力する機能を有している。電圧発生部50において生成された電源電圧は電源出力端子T3を介してフラッシュメモリ26群へ供給されるようになっている。電圧発生部50はさらに、生成した電源電圧の変化を示す電源電圧変化信号N10を生成して電圧状態モニタ部60に送出するようになっている。
電圧状態モニタ部60は、電圧発生部50が送出する電源電圧変化信号N10を受け取り、その電源電圧変化信号N10に基づいて電圧発生部50の駆動率を示す電源状態通知信号Q2を生成し、生成した電源状態通知信号Q2を電源状態通知端子T2からフラッシュメモリコントローラ10へ出力するようになっている。図57は電源回路20の動作を示すフローチャートである。
本実施例によれば、次の効果がある。電源回路20は、生成すべき電源電圧を外部のフラッシュメモリコントローラ10によって制御され、また自己の内部状態を常時的に監視し、その監視結果である電源状態通知信号Q2(駆動率を示す)をフラッシュメモリコントローラ10に返す。フラッシュメモリコントローラ10は受け取った電源状態通知信号Q2(駆動率)に基づいて電源回路20を制御する。このような絶え間のないフィードバック・フィードフォワード制御を行うので、リアルでダイナミックなきめの細かい制御が実現化される。その結果、あえて過剰な電源能力をもたせるといったようなことをしなくて済み、無駄な電力消費の抑制を図ることができる。
《63》[複数種類の処理実行用電源回路]
上述した《62》のメモリシステム用の電源回路においては、電圧発生部および電圧状態モニタ部の組(対)を複数設けることが一般的である。メモリシステム用の電源回路については、一般的に、読み出し用電源回路と書き込み/消去用電源回路とを有している。さらに典型的には、読み出し用電源回路、書き込み/消去用電源回路、およびベリファイ用電源回路を有している。これら複数種類の電源回路をまとめて複数種類の処理実行用電源回路と呼ぶことにする。
読み出し用の電圧発生部には読み出し用の電圧状態モニタ部が関連付けられ、書き込み/消去用の電圧発生部には書き込み/消去用の電圧状態モニタ部が関連付けられ、ベリファイ用の電圧発生部にはベリファイ用の電圧状態モニタ部が関連付けられる。これら各種の電圧発生部の標準電圧は互いに相違している。複数種類の処理実行用電源回路は、フラッシュメモリコントローラとの関連において互いに独立した制御および動作の形態をとる。
読み出し用電源回路の読み出し用の電圧発生部は、フラッシュメモリコントローラによって電源制御されたうえで、読み出し用の電圧発生部の電源状態は読み出し用の電圧状態モニタ部で監視される。読み出し用の電圧状態モニタ部は、監視結果として、読み出し用の電源状態通知信号をフラッシュメモリコントローラへ返す。フラッシュメモリコントローラは、受信した電源状態通知信号に従って読み出し用の電圧発生部を再設定する。
また、書き込み/消去用電源回路の書き込み/消去用の電圧発生部は、フラッシュメモリコントローラによって電源制御されたうえで、書き込み/消去用の電圧発生部の電源状態は、書き込み/消去用の電圧状態モニタ部で監視される。書き込み/消去用の電圧状態モニタ部は、監視結果として、書き込み/消去用の電源状態通知信号をフラッシュメモリコントローラへ返す。フラッシュメモリコントローラは、受信した電源状態通知信号に従って書き込み/消去用の電圧発生部を再設定する。
また、ベリファイ用電源回路のベリファイ用の電圧発生部は、フラッシュメモリコントローラによって電源制御されたうえで、ベリファイ用の電圧発生部の電源状態は、ベリファイ用の電圧状態モニタ部で監視される。ベリファイ用の電圧状態モニタ部は、監視結果を、ベリファイ用の電源状態通知信号としてフラッシュメモリコントローラへ返す。フラッシュメモリコントローラは、受信した電源状態通知信号に従ってベリファイ用の電圧発生部を再設定する。
以上を要するに、本項のメモリシステム用の電源回路は、上述した《61》の構成において、電圧発生部および電圧状態モニタ部は、それぞれ、複数種類の処理実行用電源回路として複数設けられ、複数種類の処理実行用電源回路は互いに独立して制御され動作するように構成されている。
本項によれば、複数のフラッシュメモリが、互いに異なる処理(読み出しや書き込み)を実施するために異なる電圧を必要とした場合であっても、それぞれの処理に応じた適切な電源電圧を生成して供給することが可能となる。さらには、それぞれの電源状態(駆動率または余裕度)の監視結果を出力することで、システムにおいて最適な状態で電圧発生部を駆動することが可能となり、その結果、無駄な消費電流を削減することが可能となる。
上記の《63》の構成の具体例を実施例30として以下に説明する。
<実施例30>
図58は本発明の実施例30における不揮発性記憶システム用のメモリシステム用の電源回路20の構成を示すブロック図である。電源回路20において、処理実行用電源回路として3種類のものが設けられている。1つはロジック用の電源回路である。これは、ロジック用の電圧発生部51とロジック用の電圧状態モニタ部61との組と、読み出し用の電圧発生部52と読み出し用の電圧状態モニタ部62との組と、書き込み/消去用の電圧発生部53と書き込み/消去用の電圧状態モニタ部63との組とを備えている。なお、ロジック動作に必要な電源電圧は、一例として、最大で1.8V、読み出し動作に必要な電源電圧は最大で5V、書き込み/消去動作に必要な電源電圧は最大で20Vとなっている。
パラメータ設定部40は3つの電圧発生部51〜53に共通となっている。T21,T22,T23はそれぞれ電源状態通知端子であり、3つの電圧状態モニタ部61,62,63ごとに個別となっている。T31,T32,T33はフラッシュメモリ26群への電源出力端子であり、3つの電圧状態モニタ部61,62,63ごとに個別となっている。その他の構成については、実施例12の場合の図56と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された本実施例のメモリシステム用の電源回路の動作を説明する。読み出し用電源回路においては、フラッシュメモリコントローラ10から読み出し用の電圧発生部52に対して電源制御がなされる。読み出し用の電圧発生部52の駆動状態を読み出し用の電圧状態モニタ部62で監視し、読み出し用の電源状態通知信号Q2がフラッシュメモリコントローラ10へ返される。フラッシュメモリコントローラ10は、その電源状態通知信号Q2に従って読み出し用の電圧発生部52を再設定する。
また、書き込み/消去用電源回路の書き込み/消去用の電圧発生部53は、フラッシュメモリコントローラ10によって電源制御されたうえで、書き込み/消去用の電圧発生部53の駆動状態は、書き込み/消去用の電圧状態モニタ部63で監視される。書き込み/消去用の電圧状態モニタ部63は、監視結果として、書き込み/消去用の電源状態通知信号Q2をフラッシュメモリコントローラ10へ返す。フラッシュメモリコントローラ10は、受信した電源状態通知信号Q2に従って書き込み/消去用の電圧発生部53を再設定する。
また、ロジック用電源回路のロジック用の電圧発生部51は、フラッシュメモリコントローラ10によって電源制御がされたうえで。ロジック用の電圧発生部51の駆動状態は、ロジック用の電圧状態モニタ部61で監視される。ロジック用の電圧状態モニタ部61は、監視結果として、ロジック用の電源状態通知信号Q2をフラッシュメモリコントローラ10へ返す。フラッシュメモリコントローラ10は、受信した電源状態通知信号Q2に従ってロジック用の電圧発生部51を再設定する。
本実施例によれば、それぞれの電圧発生部51〜53および電圧状態モニタ部61〜63からなる処理実行用電源回路に対して実施例12(図56)と同様の効果が発揮される。
なお、T21,T22,T23の電源状態通知端子を削減するために、電源状態通知信号Q2をバスとして出力してもよい。例えば電源状態通知信号[1:0]とすれば、端子を1つ削減することができる。
<64>なお、<62>の構成においては、
前記電圧発生部は、入力電源電圧よりも高い電圧を発生する昇圧電圧発生部と、
前記入力電源電圧よりも低い電圧を発生する降圧電圧発生部と、
をさらに備えているのが好ましい。
《65》[積分回路、比較回路、ステータスレジスタ]
上記《62》,《63》のメモリシステム用の電源回路において、電圧状態モニタ部を次のように構成することが考えられる。
まず、電圧発生部は、電源状態をオンデューティで表すパルス信号の電源電圧変化信号を生成して電圧状態モニタ部に出力するものとして構成されている。
電圧状態モニタ部は、積分回路と比較回路とステータスレジスタを備えて構成されている。積分回路は、電圧発生部からの電源電圧変化信号をそれのインアクティブ期間にわたって積分するものである。比較回路は、積分回路による積分信号を参照電圧と比較し、比較結果を電源状態情報信号として出力するものである。ステータスレジスタは、比較回路からの電源状態情報信号をラッチするものである。そのラッチのタイミングは電源電圧変化信号のアクティブへの変化タイミングとなっている。
電圧発生部における電源状態はオンデューティで駆動率を表すパルス信号として積分回路に入力される。積分回路は電源電圧変化信号をそれのインアクティブ期間にわたって積分する。積分値は電源電圧変化信号のインアクティブ期間が長いほど大きくなる。比較回路は積分信号を参照電圧と比較する。参照電圧を上回るときは比較回路の出力は論理反転する。比較回路の出力はアクセス期間の終了に伴ってステータスレジスタにラッチされる。
電圧発生部における電源状態(駆動率または余裕度)が規定値をオーバーしてオーバーロード気味になるときは、結果として、ステータスレジスタがアサート状態にセットされる。一方、電源状態が規定値に達しなければ、結果として、ステータスレジスタがネゲート状態にセットされる。
このようにしてステータスレジスタに電源状態通知信号の情報(駆動率)をセットしておくことにより、フラッシュメモリコントローラは、ポーリング(定期的または不定期的な問い合わせに応じた通知)によりメモリシステム用の電源回路の電源状態情報を適宜に取得することが可能になる。
なお、電圧発生部における電源状態として、当業者としては当然考えうる範囲であるため図示はしないがノードN10にインバータ回路を追加することで、電圧発生部の駆動率ではなく余裕度をオンデューティで表すパルス信号を出力することが可能となる。これにより、余裕度を表すパルス信号を積分することで、電圧発生回路の動作余裕状態を監視することも可能である。その際、ノードN10の信号を積分した値が高いほど余裕度があり、積分値が低いほど電圧発生部は動作しており余裕度が低くなることは言うまでもない。したがって、オーバーロードも余裕度が低くなると発生しやすくなる。以降、詳細には電源回路の説明として駆動率を例示するが、余裕度としても取り扱うことも可能である。
上記の《65》の構成の具体例を実施例31として以下に説明する。
<実施例31>
図59は電源回路20の詳細を示すブロック回路図である。パラメータ設定部40は、フラッシュメモリコントローラ10から受け取った電源制御信号Q1に基づいて、電圧発生部50に必要となる各種パラメータが設定されるよう関連付けられている。パラメータ設定部40では4つの設定項目が例示されている。例えば、電源制御信号Q1が「1」のときは、電流能力は「0.5」に、昇圧並列数は「4」に、昇圧段数は「8」に、発振周波数が「25」は設定される。また、電源制御信号Q1が「3」のときは、電流能力は「1」に、昇圧並列数は「8」に、昇圧段数は「8」に、発振周波数は「25」に設定される。
電圧発生部50は、発振回路54、複数の昇圧回路55、電圧検出部56および差動アンプによる比較回路57を備えている。発振回路54の出力端子は昇圧回路55の入力端子に接続され、昇圧回路55の出力端子は電源出力端子T3に接続され、また電圧検出部56の入力端子に接続されている。電圧検出部56の出力端子は比較回路57における反転入力端子(−)に接続され、比較回路57の出力端子は発振回路54の周波数制御端子に接続され、さらに電圧状態モニタ部60の入力端子に接続されている。
パラメータ設定部40において設定されたパラメータに基づいて、発振回路54の周波数および昇圧回路55の並列数/段数が設定される。発振回路54の出力で昇圧回路55を駆動し、基準の電源電圧VDDをより高い設定レベルまで昇圧して昇圧電圧VHHを発生し、電源出力端子T3からフラッシュメモリ26群へ電源を供給する。昇圧電圧VHHは、昇圧回路55の出力端子に接続される負荷に応じて変動する。
生成された電源電圧は、抵抗分割を備えた電圧検出部56で検知され、検知結果は、電圧検出部56から比較回路57に渡される。比較回路57に入力される検知結果は電圧信号であって、その電圧信号は脈流である。比較回路57は、予め設定しておいた参照電圧VREF_Vと検知結果(電圧信号)とを比較し、その比較結果を、電源電圧変化信号N10として出力する。電源電圧変化信号N10はオン・オフのデューティ比をもつパルス信号となる。
さらに詳細に説明する。昇圧電圧VHHが目標電圧未満になると、電圧検出部56における抵抗Rによって分圧された電圧が比較回路57の参照電圧VREF_Vより低くなって、比較回路57は電源電圧変化信号N10として"H"レベルを出力する。比較回路57は、生成した電源電圧変化信号N10を、後段の電圧状態モニタ部60へ出力する。さらに比較回路57は、電源電圧変化信号N10を内部の発振回路54へフィードバックさせることで、電源電圧変化信号N10のオン・オフ制御に基づいて発振出力を脈流化させる。電圧発生部50における昇圧回路55が生成出力する電圧は、パラメータ設定部40に設定されたパラメータによって制御される。
比較回路57が"H"レベルを出力する状態では、発振回路54は動作状態に設定され、昇圧動作を実行する。一方、昇圧電圧VHHが目標電圧を上回ると、電圧検出部56の抵抗Rによって分圧された電圧が参照電圧VREF_Vより高くなって、比較回路57は"L"レベルを出力する。比較回路57が"L"レベルを出力する状態では、発振回路54は停止状態となり、昇圧動作が停止される。つまり、比較回路57から出力される電源電圧変化信号N10の"H"レベル区間は、昇圧回路55の駆動率として換算可能である。電源電圧変化信号N10の"L"レベル区間は、動作余剰率として定義することも可能である。
電圧状態モニタ部60は、トランスファゲート64、インバータ65、遅延回路66、積分回路67、比較回路68、およびステータスレジスタ69(フリップフロップからなる)を備えている。電圧発生部50において電源電圧変化信号N10を出力する比較回路57の出力端子がトランスファゲート64を介して積分回路67の入力端子に接続されている。比較回路57の出力端子はトランスファゲート64の制御端子およびインバータ65の入力端子に接続されている。インバータ65の出力端子は遅延回路66の入力端子に接続されている。遅延回路66の出力端子は積分回路67の制御端子に接続されている。積分回路67の出力端子は比較回路68の非反転入力端子(+)に接続されている。比較回路68の出力端子はステータスレジスタ69のデータ入力端子に接続され、そのクロック入力端子にはインバータ65の出力端子が接続されている。ステータスレジスタ69のデータ出力端子は電源状態通知端子T2に接続されている。
電圧状態モニタ部60の動作を図60のタイミングチャートに従って説明する。電圧発生部50の駆動率を表す電源電圧変化信号N10がトランスファゲート64の入力端子と制御端子とに入力される。トランスファゲート64は、制御入力が"H"レベルのときは開動作し、"L"レベルのとき閉動作する。トランスファゲート64を通過した被積分信号N14は、ゲート開のとき"H"となり、ゲート閉のときハイインピーダンス(Hiz)となる。
インバータ65は、電源電圧変化信号N10を論理反転し、その反転信号N12を遅延回路66とステータスレジスタ69のクロック入力端子に供給する。遅延回路66から出力される積分制御信号N13は立ち上がりが遅延する。この積分制御信号N13で積分回路67を動作させる。積分制御信号N13が"L"レベルの期間において積分回路67はトランスファゲート64を通過した被積分信号N14の"H"レベル期間を時間経過とともに積分し、積分信号N15を生成する。積分信号N15はアナログの比較回路68に入力され、期間を定める参照電圧VREF_Dutyと比較され、電源状態情報信号N16として出力される。
積分信号N15のレベルが時間経過に伴って上昇し、参照電圧VREF_Dutyに達すると、比較回路68の出力の電源状態情報信号N16がそれまでの"L"レベルから反転して"H"レベルとなる。積分信号N15が上昇しても、積分制御信号N13が"L"レベルの期間に参照電圧VREF_Dutyに達しなかったときは、比較回路68から出力される電源状態情報信号N16の電圧レベルは"L"レベルのままである。このときは、電圧発生部50は所望の駆動率以下である。電源状態情報信号N16が"H"レベルであれば、所望の駆動率以上となっている。所望の駆動率は、比較回路68の参照電圧VREF_Dutyの調整を通じて調整可能である。
このようにして比較回路68から電源状態情報信号N16が出力される。電源状態情報信号N16はステータスレジスタ69のデータ入力端子に印加される。インバータ65からの反転信号N12によるクロックの立ち上がりのタイミングで電源状態情報信号N16の論理状態がフリップフロップからなるステータスレジスタ69に取り込まれ、電源状態通知信号Q2として電源状態通知端子T2からフラッシュメモリコントローラ10に向けて出力される。
この電圧状態モニタ部60での動作のポイントは積分と比較にある。電圧発生部50での駆動率が高いと、電源電圧変化信号N10の"H"レベル期間が長く、積分期間も長くなるから、比較回路68から出力される電源状態情報信号N16は論理反転してアクティブとなる傾向が高くなる。一方、電圧発生部50での駆動率が低いと、電源電圧変化信号N10の"H"レベル期間が短く、積分期間も短くなるから、比較回路68から出力される電源状態情報信号N16は論理反転せずインアクティブのままである傾向が高くなる。すなわち、電圧状態モニタ部60は電圧発生部50の駆動率が一定の閾値を超えるか否かをモニタリングしている。駆動率が閾値を超えるということは電源回路20の電圧発生部50がオーバーロードを起こす限界を超えたことを意味する。電圧状態モニタ部60で導出された電圧発生部50の駆動率は、電源状態通知端子T2を介して電源状態通知信号Q2として出力される。「オーバーロードを起こす限界を超えた」というのは、ステータスレジスタ69が1ビットとなっているためである。多ビットであれば、任意の閾値レベルとの比較となる。
電源電圧変化信号N10の"H"レベル期間の、発振回路54の1周期に対する割合が規定値を超えると、電源状態通知信号Q2が"H"レベルとなり、その規定値を越えなければ、電源状態通知信号Q2は"L"レベルを保つ。これは、電圧発生部50の駆動率が閾値を超えたかの判定に役立つ。なぜなら、電源電圧変化信号N10のオン・オフデューティ比は、電圧発生部50の駆動率とほぼ等価であるからである。
"H"レベルに判定した電源状態通知信号Q2を受け取ったフラッシュメモリコントローラ10は、電源制御信号Q1を更新して電源回路20のパラメータ設定部40に与える。これにより電源回路20の電流能力は低い方に設定し直される。その結果として、電源電圧変化信号N10のオンデューティが小さくなり、被積分信号N14の"H"レベル期間が短くなり、積分信号N15が論理反転しないで"L"レベルを保つ結果、電源状態情報信号N16は"L"レベルのままであり、反転信号N12の次の立ち上がりタイミングでは電源状態通知信号Q2は"L"レベルに反転する。
本実施例によれば、ステータスレジスタ69に電源状態通知信号N16の情報(駆動率)をセットしておくので、フラッシュメモリコントローラ10は、ポーリングで電源回路20の電源状態情報を適宜に取得することができる。
《66》[カウンタ回路]
積分回路や比較回路やステータスレジスタに言及した上記《65》のメモリシステム用の電源回路において、高い周波数に対する動作の安定性を図るための次のような技術がある。それは、電圧状態モニタ部において、電源電圧変化信号の入力部と積分回路との間にカウンタ回路を挿入する構成である。
積分信号のレベル上昇は時間経過とともにある。積分回路は電源電圧変化信号を積分する。電圧発生部における動作クロックの周波数が高くなれば、電源電圧変化信号の周期が短くなり、比較回路において積分信号が参照電圧に達するのには時間不足になりやすい。そこで、電源電圧変化信号をその1周期内で積分することに代えて、何倍かの周期分の電源電圧変化信号を積分することとする。その周期分をm周期分とすると、カウンタ回路はその周期mをカウントする。カウント値が0から始めて(m−1)に達すると、次のカウントアップでリセットされ、0に戻る。m周期分の期間にわたって電源電圧変化信号を積分するので、積分信号のレベルは参照電圧と比較する上で充分に精度の高いレベルとなる。
要するに本項のメモリシステム用の電源回路は、上述した積分回路や比較回路やステータスレジスタに言及した《65》の構成において、電圧状態モニタ部は、さらに、電圧発生部からの電源電圧変化信号の入力部と積分回路の入力部との間に、電源電圧変化信号の周期をカウントし、複数周期分のカウントアップでリセットされるカウンタ回路を備えている。
このように構成すれば、積分回路において電源電圧変化信号を積分する期間を、カウンタ回路のカウントアップ周期まで延長化するので、電圧発生部が高い周波数で動作する場合でも、電源状態情報(駆動率)を高精度に捕捉することが可能となる。なお、上記の現象は、電圧発生部の電源状態を時間的に平均化することに相当する。つまり、状態遷移に時間的ヒステリシスをもたせ、システム状態が不安定になることを抑制している。
上記の《66》の構成の具体例を実施例32として以下に説明する。
<実施例32>
図61は本発明の実施例32におけるメモリシステム用の電源回路の構成を示すブロック図である。本実施例においては、実施例31の場合の図59において、その電圧状態モニタ部60にカウンタ回路70とアンドゲート素子71とが追加されている。この構成は、発振回路54の発振周波数が高い場合に対応するためである。
カウンタ回路70は、その入力端子が電圧発生部50の比較回路57の出力端子に接続され、出力端子はインバータ65に接続されている。また、カウンタ回路70の入力端子と出力端子とはアンドゲート素子71の入力端子に接続され、アンドゲート素子71の出力端子はトランスファゲート64の制御端子に接続されている。カウンタ回路70は、0から始めて規定のカウント値までカウントすると、次のカウントアップによりリセットされて0に戻る形態となっている。その規定のカウント値は、トリミングによって変更可能となっている。その他の構成については、実施例14の場合の図59と同様であるので説明を省略する。
カウンタ回路70を設けた本実施例は、後述する実施例のような発振回路54の周波数が高い値となる構成(図75、図76参照)の場合に適している。その実施例では、昇圧回路55の昇圧容量が電源回路20(電源チップ)の内部に備えられる内蔵容量素子を使用している。
図62は上記のように構成された実施例32の電源回路20の動作を示すタイミングチャートである。以下、このタイミングチャートに従って動作を説明する。電圧状態モニタ部60におけるカウンタ回路70は、電源電圧変化信号N10の"L"レベルから"H"レベルへの遷移回数をカウントする。カウンタ回路70の出力であるカウント値信号N11はカウントアップするまで"H"レベルを保ち、カウントアップすると論理反転して"L"レベルへリセットされる。カウントアップのカウント数は「4」に設定されている。すなわち、カウント値が0から始めて(m−1)=3に達すると、次のカウントアップでリセットされ、0に戻る。カウント値信号N11は、3周期分の期間にわたって"H"レベルを保つ。このカウント値信号N11のリセットのタイミングは、ステータスレジスタ69において比較回路68からの電源状態情報信号N16の論理状態を取り込むタイミングとなる。
アンドゲート素子71は、電源電圧変化信号N10とカウント値信号N11との論理積をとり、その結果でトランスファゲート64を開き、電源電圧変化信号N10を被積分信号N14として積分回路67に入力する。積分回路67は、被積分信号N14の"H"レベル期間で積分動作を実行し、合計3周期分の累積が行われる。
このことは、積分の時間を3周期分まで延長していることになる。別の見方をすると、3周期分の期間での平均化を行っていることに相当する。平均化とは均す(ならす)ことであり、発振回路54の発振周波数が高いと、電源電圧変化信号N10が頻繁に論理遷移し、積分動作が乱れやすくなる。このことの影響を平均化によって緩和する。つまり、状態遷移に時間的ヒステリシスをもたせ、システム状態が不安定になることを抑制している。積分の時間の延長の度合いは、カウンタ回路70におけるカウントアップ値の設定変更で調整可能である。
ステータスレジスタ69は比較回路68からの電源状態情報信号N16の論理状態を、インバータ65の反転信号N12の立ち上がりのタイミングで更新する。このタイミングは、カウンタ回路70のカウント値が「0h」になるタイミングである。つまり、カウント値が「0h」となるたびに、電圧発生部50の電源状態(駆動率または余裕度)がステータスレジスタ69において更新されることになる。カウント値が「0h」となる周期は、上記の通り調整可能である。
本実施例によれば、カウンタ回路70の挿入により、積分回路67で電源電圧変化信号N10(被積分信号N14)を積分する期間を、カウンタ回路70のカウントアップ周期まで延長化する。その結果として、電圧発生部50が高い周波数で動作する場合でも、電圧発生部50の駆動率を高精度に捕捉することができる。ひいては、駆動率によるフィードバック制御により、システムの消費電力を最適化しやすくなる。
《67》[多ビット出力]
積分回路、比較回路、ステータスレジスタに言及した上述の《65》,《66》のメモリシステム用の電源回路において、電圧状態モニタ部を次のように構成することが考えられる。それは、比較回路およびステータスレジスタを複数段にして、電源状態通知信号を多ビットで出力することである。すなわち、積分回路からの積分信号を入力する比較回路として、参照電圧を異にする複数段の比較回路を備えることとする。併せて、ステータスレジスタとして、複数段の比較回路に対応した複数段のステータスレジスタを備えることとする。
本構成によれば、電圧発生部の電源状態(駆動率または余裕度)を電源状態通知信号として多ビットで出力するもので、電圧発生部の電源状態を段階的に、かつ詳細に把握することが可能となる。電源状態通知信号の分解能が高くなり、システムの電力最適化をさらに向上することが可能となる。
《68》[多ビット出力]*[テーブル変換]
複数段のステータスレジスタに言及した上述の《67》のメモリシステム用の電源回路において、電圧状態モニタ部を次のように構成することが考えられる。それは、電圧状態モニタ部は、複数段の比較回路の出力側または複数段のステータスレジスタの出力側に必要ビット数を減じるためのテーブル変換回路を備えているというものである。
積分結果は単純増加することになり、途中でビットが反転減少することはあり得ない。このことを利用すると、電源状態通知信号につきビット数を減らすことが可能となる。これを実現するのがテーブル変換回路である。
本構成によれば、テーブル変換回路によって必要ビット数が削減され、メモリシステム用の電源回路をとフラッシュメモリコントローラと結ぶバスおよび端子が簡素化される。
上記の《67》,《68》の構成の具体例を実施例33として以下に説明する。
<実施例33>
図63は本発明の実施例33におけるメモリシステム用の電源回路の構成を示すブロック図である。本実施例においては、積分回路67の出力側の比較回路68を複数段設けている。本実施例では3段の比較回路68を設けている。複数段の比較回路68における参照電圧は互いに相違しており、VREF_Duty2>VREF_Duty1>VREF_Duty0となっている。積分回路67から出力される積分信号N15は複数段の比較回路68に共通に入力されるように結線されている。すなわち、積分信号N15を多ビットで出力するようになっている。
複数段の比較回路68の出力側のステータスレジスタ69も複数段設けられている。本例では3段のステータスレジスタ69が設けられている。これら複数段のステータスレジスタ69の各データ入力端子に、前段の比較回路68から出力される電源状態情報信号N16,N17,N18が入力されるように結線されている。複数段のステータスレジスタ69のクロック入力端子にはインバータ65からの反転信号N12が共通に入力されるように結線されている。複数段のステータスレジスタ69のデータ出力端子はテーブル変換回路72に入力接続され、テーブル変換回路72の出力端子は電源状態通知端子T2に接続されている。テーブル変換回路72からは多ビットの電源状態通知信号Q2がフラッシュメモリコントローラ10に出力されることになる。
積分信号N15のレベルを、
・参照電圧VREF_Duty0以下、
・VREF_Duty0超〜VREF_Duty1以下、
・VREF_Duty1超〜VREF_Duty2以下、
・VREF_Duty2超、
の4つの段階に分けて捉えるようになっている。つまりは、電圧発生部50の駆動率を複数段階で細かく検出するものである。
複数段の比較回路68の出力である電源状態情報信号N16,N17,N18は、それぞれ「0」か「1」のどちらかである。その組み合わせは、[0,0,0]、[0,0,1]、[0,1,0]、[0,1,1]、[1,0,0]、[1,0,1]、[1,1,0]、[1,1,1]である。これらいずれかのデータ配列が複数段のステータスレジスタ69にセットされる。
ところで、上記した8つのデータ配列のうち、先行する配列からのビットの反転減少に相当する配列はあり得ないことが分かる。例えば[0,1,0]を主体にみるとき、1つ先行する配列は[0,0,1]である。[0,1,0]の最下位ビットが「0」であるのに対して[0,0,1]は最下位ビットが「1」と反転減少している。積分であるので、積分結果は単純増加することになり、途中で減少することはあり得ない。このように考えると、上記の8つのデータ配列のうち、[0,1,0]、[1,0,0]、[1,0,1]、[1,1,0]はあり得ないことが分かる。これらは10進表示で、「2」、「4」、「5」、「6」に相当する。8つのうち4つはあり得ず、結局4つが残る。残るのは[0,0,0]、[0,0,1]、[0,1,1]、[1,1,1](10進表示で「0」、「1」、「3」、「7」)に相当の4つである。これらは、システム側では使用しにくい飛び飛びの値となっている。したがって、出力のビット数は3ビットから2ビットへ減らすことができる。これに対応するのがテーブル変換回路72である。
[0,0,0]、[0,0,1]、[0,1,1]、[1,1,1](10進表示で「0」、「1」、「3」、「7」)をそれぞれ[0,0]、[0,1]、[1,0]、[1,1](10進表示で「0」、「1」、「2」、「3」)に変換する。これで、テーブル変換によって連続したビット値として出力することが可能になる。
電源状態通知信号Q2の「0」、「1」、「2」、「3」に駆動率の異なる数値を対応させる。その一例として、25%未満、25%以上50%未満、50%以上75%未満、75%以上100%未満が設定されている。
図63においては、テーブル変換回路72を複数段のステータスレジスタ69の出力側に設けているが、その機能を考慮すると、複数段のステータスレジスタ69の入力側にテーブル変換回路72を設けてもよい。また電圧発生部の駆動率として25%以下、50%以下、75%以下、100%以下と記載しているが、参照電圧VREF_Duty0 〜 VREF_Duty2の設定によってシステムにおいて必要となる駆動率に予め自由に合わせておくことが可能である。したがって、例えば50%以下、60%以下、80%以下、90%以下と設定してもよい。その他の構成については、実施例15の場合の図61と同様であるので説明を省略する。
図64は上記のように構成された実施例33の電源回路20の動作を示すタイミングチャートである。実施例32の場合の図62との比較で説明すると、参照電圧としてVREF_Duty2,VREF_Duty1,VREF_Duty0の3つが設定されている。電源状態情報信号としてN16,N17,N18の3つが取得されるようになっている。電源状態通知信号Q2は2ビットデータとなっている。
本実施例によれば、電圧発生部50の駆動率を多ビットで出力することで、電圧発生部50の電源状態を段階的に、かつ詳細に把握することが可能となり、システムの電力最適化をさらに向上することが可能となる。
また、テーブル変換回路72の存在により必要ビット数が削減されるので、電源回路20とフラッシュメモリコントローラ10とを結ぶバスおよび端子を簡素化することができる。
《69》[状態遷移検知部]
ステータスレジスタに言及した上述の《65》,《66》のメモリシステム用の電源回路において、電源状態通知信号を割り込み信号とすることが考えられる。ステータスレジスタに電源状態情報をセットする方式では、メモリシステム用の電源回路の電源状態の確認については、フラッシュメモリコントローラがポーリングにより定期的または不定期的に確認することを想定している。しかし、ポーリングによる電源状態の確認方式では、電源状態の遷移があったタイミングから遅れが生じるのが一般的である。この遅れを解消するのが、ここに示す割り込み方式である。
上述した《65》,《66》の構成において、電圧状態モニタ部は、ステータスレジスタの出力側に、ステータスレジスタの内容に変化があったときに割り込み信号を生成出力する状態遷移検知部を備えた構成とされている。
本項は、ステータスレジスタの個数が1つの態様のメモリシステム用の電源回路に適用することも可能であるし、ステータスレジスタの個数が2つ以上の態様のメモリシステム用の電源回路に適用することも可能である。
少なくとも1つのステータスレジスタの内容に変化があれば、それを状態遷移検知部が検知して割り込み信号をフラッシュメモリコントローラに出力する。フラッシュメモリコントローラは、割り込み処理を受け取ると、直ちにステータスレジスタにアクセスして、電源状態遷移のタイミングの電源状態情報を取得することになる。
本項によれば、電源状態情報の取得タイミングに遅れがないため、フラッシュメモリコントローラが電圧発生部を制御して電源状態を調整するときの応答性が速くなる。
電源状態遷移通知信号を割り込み信号として使用することで、システムは電源状態遷移通知信号が遷移した時のみ、電源状態通知信号を確認すればよくなり、システム構成を簡素化することが可能となる。フラッシュメモリコントローラは電源状態通知信号をポーリングにより常時的に繰り返し確認する必要がなく、システム構成の簡便化を図ることができる。
上述の《69》の構成の具体例を実施例34として以下に説明する。
<実施例34>
図65は本発明の実施例34におけるメモリシステム用の電源回路の構成を示すブロック図である。実施例33の場合の図63の構成において、本実施例では、さらに、ステータスレジスタ69の内容が変化したときに割り込み信号を生成してフラッシュメモリコントローラ10側に出力する状態遷移検知部73が設けられている。状態遷移検知部73は、複数段のレジスタ74と、複数段の排他的論理和ゲート75と、ORゲート76とを備えている。レジスタ74の段数と排他的論理和ゲート75の段数とは、ステータスレジスタ69の段数と同じである。レジスタ74のデータ入力端子はステータスレジスタ69のデータ出力端子に接続され、クロック入力端子はカウンタ回路70の出力端子に接続されている。レジスタ74のデータ出力端子およびステータスレジスタ69のデータ出力端子は排他的論理和ゲート75の入力端子に接続されている。排他的論理和ゲート75の出力端子はORゲート76の入力端子に接続され、ORゲート76の出力端子は電源状態遷移通知端子T4に接続されている。この電源状態遷移通知端子T4はフラッシュメモリコントローラ10に接続されている。
状態遷移検知部73は、ステータスレジスタ69のデータの前後比較を実施することで、状態遷移の有無を検知し、電源状態遷移通知信号Q2′として出力する。その他の構成については、実施例16の場合の図63と同様であるので説明を省略する。
図66は上記のように構成された実施例34の電源回路20の動作を示すタイミングチャートである。ステータスレジスタ69は3つあるが、このうち2つ目のステータスレジスタ69の系統で説明する。2段目の比較回路68の参照電圧はVREF_Duty1である。積分信号N15が参照電圧VREF_Duty1のレベルを超えると、電源状態情報信号N17がアクティブとなり、インバータ65の反転信号N12の立ち上がりタイミングで2段目のステータスレジスタ69に"H"レベルがセットされる。これにより、ステータスレジスタ69の出力のSiginfo[1]が"L"レベルから"H"レベルに切り替わる。この"H"レベルのSiginfo[1]が排他的論理和ゲート75に入力されるタイミングで、排他的論理和ゲート75へのもう1つの入力であるレジスタ74の出力信号N20のレベルを見る。このタイミングでは、カウンタ回路70からのカウント値信号N11が"L"レベルであるため、Siginfo[1]の"H"レベルはレジスタ74には取り込まれず、出力信号N20は"L"レベルのままである。排他的論理和ゲート75に入力する一方のレベルがSiginfo[1]の"H"レベルであり、他方のレベルが出力信号N20の"L"レベルであるため、排他的論理和ゲート75の出力信号Sc[1]は"L"レベルから"H"レベルに切り替わる。その結果、ORゲート76から出力される電源状態遷移通知信号(割り込み信号)Q2′が"L"レベルから"H"レベルへ切り替わる。
まとめると、積分信号N15が参照電圧VREF_Duty1を上回ると、カウント値信号N11の立ち下がりタイミングで直ちに電源状態遷移通知信号Q2′がアクティブとなるということである。アクティブとなった電源状態遷移通知信号Q2′は、カウント値信号N11の次の立ち上がりタイミングでリセットされて"L"レベルへ戻される。
以上は、2つ目のステータスレジスタ69の系統での説明であるが、1つ目のステータスレジスタ69の系統でも3つ目のステータスレジスタ69の系統でも同様である。すなわち、積分信号N15が参照電圧VREF_Duty0を上回ると、カウント値信号N11の立ち下がりタイミングで直ちに電源状態遷移通知信号Q2′がアクティブとなり、積分信号N15が参照電圧VREF_Duty2を上回ると、カウント値信号N11の立ち下がりタイミングで直ちに電源状態遷移通知信号Q2′がアクティブとなる。
本実施例によれば、1ビットまたは複数ビットからなる電源状態通知信号Q2の論理値が変化したとき、電源状態遷移通知信号(割り込み信号)Q2′を"H"レベルにしてシステムに通知するようになっており、割り込み信号をシステムに与えることで、常にシステムは電源状態通知信号Q2を確認する必要がなく、割り込み信号のみを確認するだけでよくなり、システム構成の簡素化を図ることができる。
《70》[オーバーロード検出部]
複数段のステータスレジスタに言及した上述の《67》のメモリシステム用の電源回路において、オーバーロード検出の機能をもたせる構成が考えられる。それは、電圧状態モニタ部において、電圧発生部でのオーバーロード状態を検出するオーバーロード検出部を追加したものである。オーバーロード検出部は、電圧発生部からの電源電圧変化信号を受け取り、その電源電圧変化信号に基づいて電圧発生部のオーバーロード状態を検出し、オーバーロード検出信号をフラッシュメモリコントローラに向けて出力するように構成されている。これは、電圧発生部の電源状態(駆動率)がオーバーロード気味にまで進行しているときは、事前に検知して対策を打とうとするものである。
本構成によれば、オーバーロード状態をシステムに通知することで、その間、フラッシュメモリへの印加電圧が所望の値でなかったことを通知することが可能となる。これにより電圧不安定によるシステムの不安定さを回避することが可能となる。オーバーロード等の不具合に起因する不安定動作やシステムダウンを未然に回避し、データ信頼性を向上することが可能となる。
上記の《70》の構成の具体例を実施例35として以下に説明する。
<実施例35>
図67は本発明の実施例35におけるメモリシステム用の電源回路の構成を示すブロック図である。実施例34の場合の図65の構成において、本実施例では、さらに、電圧状態モニタ部60において、積分回路67の出力側にオーバーロード検出部77が設けられている。オーバーロード検出部77は、積分回路67から出力される積分信号N15を参照電圧VREF_Overと比較するオーバーロード検知用の比較回路78と、オーバーロード検知用のステータスレジスタ79とを備えて構成されている。オーバーロード検知用の比較回路78の出力端子はオーバーロード検知用のステータスレジスタ79のデータ入力端子に接続され、オーバーロード検知用のステータスレジスタ79のクロック入力端子にはインバータ65の出力端子が接続されている。オーバーロード検知用のステータスレジスタ79のデータ出力端子はテーブル変換回路72の入力端子に接続されている。オーバーロード検知用の比較回路78の出力端子はカウンタ回路70のリセット端子に接続されている。
オーバーロード検知用の比較回路78における参照電圧VREF_Overのレベルは、図65での最も高いレベルのVREF_Duty2より高く設定されている(図68参照)。オーバーロード検知用の比較回路78から出力されるオーバーロード検出によるカウンタリセット信号N19はカウンタ回路70に供給され、カウンタ回路70をリセットするようになっている。オーバーロード検知用の比較回路78に対応するステータスレジスタ79の出力はSiginfo[3:0]の最上位ビット「Fh」として割り付けられている。
次に、上記のように構成された本実施例のメモリシステム用の電源回路の動作を説明する。図68は電源回路20の動作を示すタイミングチャートである。電圧発生部50が常時連続的な動作状態に入ると、電圧発生部50の比較回路57から出力される電源電圧変化信号N10は常に"H"レベルとなる。カウンタ回路70ではカウントアップ動作が進まず、同じ状態を保持し続ける。この電源電圧変化信号N10は、積分回路67によって積分され続ける。その結果、オーバーロード検知用の比較回路78において積分回路67による積分信号N15が参照電圧VREF_Overと比較され、カウンタリセット信号N19が"L"レベルから"H"レベルへ切り替えられる。この"H"レベルのカウンタリセット信号N19はカウンタ回路70をリセットする。カウンタ回路70の次段のインバータ65による反転信号N12が"L"レベルから"H"レベルへ切り替わるタイミングで、複数段の比較回路68およびオーバーロード検知用の比較回路78の出力信号がステータスレジスタ69およびオーバーロード検知用のステータスレジスタ79に格納される。そのタイミングで、オーバーロード検知用のステータスレジスタ79が出力するオーバーロード検出信号Q5が"L"レベルから"H"レベルへ切り替わる。
本実施例によれば、カウンタリセット信号N19を追加することで、電圧発生部50から出力されていた電圧が所望の電圧でないことを直ちに通知することができ、電圧不安定によるシステムの不安定さを早期に回避することが可能となる。
《71》,《72》[設定レジスタ、ロジック比較回路]
《67》の複数段のステータスレジスタを備えた上述のメモリシステム用の電源回路において、電圧状態モニタ部を次のように構成することが考えられる。すなわち、外部から設定入力される電圧発生部の電源状態(駆動率)の比較値(電源状態比較値)を保持する設定レジスタを追加したうえで、複数段のステータスレジスタの保持内容と設定レジスタの保持内容とを比較し、前者が後者以上となったときに電源状態通知信号をアクティブにしてフラッシュメモリコントローラ側に出力するロジック比較回路とをさらに備える構成である。
また、《68》の複数段のステータスレジスタとテーブル変換回路を備えた上述のメモリシステム用の電源回路において、電圧状態モニタ部を次のように構成することが考えられる。すなわち、外部から設定入力される電圧発生部の電源状態(駆動率)の比較値(電源状態比較値)を保持する設定レジスタを追加したうえで、さらに、テーブル変換回路による変換内容と設定レジスタの保持内容とを比較し前者が後者以上となったときに電源状態通知信号をアクティブにしてフラッシュメモリコントローラ側に出力するロジック比較回路を備える構成である。
上記2つのいずれも、設定レジスタには、使用者の操作により任意の電源状態比較値を設定する。あるいは、複数の電源状態比較値の候補のうちから任意のものを選択して設定する。
本構成によれば、電源回路外部より、電圧発生部の電源状態が所望の値以上あるいは以下であるかを知るために設定レジスタに電源状態比較値を設定しておくことにより、電圧発生回路の電源状態をシステムが所望する値であるか否かを知ることが可能となる。
上記の《71》,<72>の構成の具体例を実施例36として以下に説明する。
<実施例36>
図69は本発明の実施例36におけるメモリシステム用の電源回路の構成を示すブロック図である。本実施例においては、《68》の実施例33の場合の図63において、さらに、書き換え可能な設定レジスタ80とロジック比較回路81が追加されている。
設定レジスタ80は、ユーザが電圧発生部50の電源状態について希望する電源状態比較値(目標駆動率)を設定するもので、その内容をユーザが任意に変更することが可能となっている。T5は目標駆動率を駆動状態設定信号Q6のかたちでフラッシュメモリコントローラ10から設定レジスタ80に送り込むための駆動状態設定端子である。
ロジック比較回路81は、テーブル変換回路72の内容と設定レジスタ80の内容とを比較し、前者が後者以上となったときに電源状態通知信号Q2を生成して、電源状態通知端子T2から外部のフラッシュメモリコントローラ10に向けて出力するものとして構成されている。
複数段のステータスレジスタ69にセットされた電圧発生部50の駆動率はテーブル変換回路72によってビット数が削減されたデータ形式に変換されている。設定レジスタ80には、テーブル変換回路72のデータ形式に対応した電源状態比較値(目標駆動率)が設定される。その他の構成については、図63と同様であるので同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された本実施例のメモリシステム用の電源回路の動作を説明する。ロジック比較回路81において、複数段のステータスレジスタ69にセットされテーブル変換回路72でビット変換されたロジック値と設定レジスタ80に設定された電源状態比較値とが比較される。変換後のロジック値が電源状態比較値未満のときは、ロジック比較回路81は、"L"レベルの電源状態通知信号Q2を出力する。変換後のロジック値が電源状態比較値以上になると、ロジック比較回路81は、"H"レベルの電源状態通知信号Q2を出力する。このように、電源状態通知信号Q2は、現状の電圧発生部50の駆動率がシステムの所望状態以上であるか否かを2値(0/1)のかたちで示しており、ロジック比較回路81は、このような情報が重畳された電源状態通知信号Q2を、フラッシュメモリコントローラ10へ通知する。このようにして、システムの期待値(電源状態比較値)を設定することで、電圧発生部50の駆動率を詳細かつ少数ビットの電源状態通知信号Q2で確認することができる。
図70は電源回路20の動作を示すタイミングチャートである。あらかじめ設定レジスタ80において駆動状態設定「2h」を設定してあるとする。この設定値は駆動率75%に相当する。積分回路67から出力される積分信号N15が時間経過とともになめらかな階段状に上昇していく。積分信号N15のレベルがまず比較回路68の参照電圧VREF_Duty0以上となると、電源状態情報信号N18が論理反転して"H"レベルとなる。このとき、複数段の比較回路68の出力である電源状態情報信号N16,N17,N18は、[0,0,0]から[0,0,1]へ変化する。ただし、複数段のステータスレジスタ69の出力のSiginfo[2:0]は、カウント値信号N11の「3h」から「0h」へのリセットタイミングで切り替わるものであるので、このタイミングでではまだ切り替わらず、Siginfo[2:0]は「0h」のままである。テーブル変換回路72でも「0h」のままとなる。設定レジスタ80での駆動状態設定は「2h」であるから、ロジック比較回路81での判定は不一致となり、電源状態通知信号Q2は"L"レベルのままである。
同様に、積分信号N15のレベルが参照電圧VREF_Duty1以上となると、電源状態情報信号N17が論理反転して"H"レベルとなる。このとき、電源状態情報信号N16,N17,N18は、[0,0,1]から[0,1,1]へ変化する。ここでもカウント値信号N11によるリセットタイミングではないので、複数段のステータスレジスタ69の出力のSiginfo[2:0]に変化はない。
次いで、リセットタイミングになると、Siginfo[2:0]は「0h」から「3h」へ変化する(∵[N16,N17,N18]=[0,1,1])。この変化はテーブル変換回路72で「0h」から「2h」への変化となる(テーブル変換表参照)。設定レジスタ80での駆動状態設定は「2h」であるから、ロジック比較回路81での判定は一致となり、電源状態通知信号Q2が"L"レベルから"H"レベルへ変化する。電源状態通知信号Q2はフラッシュメモリコントローラ10へ送られており、このような電源状態通知信号Q2の変化を検知したフラッシュメモリコントローラ10は電源回路20の駆動率があらかじめ設定しておいた75%に達したことを認識することになる。
本実施例によれば、システムの電源状態比較値(期待値)に対しての電圧発生部50の状態を容易に把握することが可能となる。システム要求に対して電圧発生部50が所望の動作状態であるかどうかを2値化した値で通知する。また、システムが任意に設定レジスタ80を書き換えて電圧発生部50の状態を容易に検出でき、検出結果に応じて、電源制御信号Q1あるいは電圧発生部50の負荷を最適化することができる。
なお、本実施例に対して、実施例34の場合の図65に示した割り込み通知信号、実施例35の場合の図67に示したオーバーロード信号を組み合わせて構成することも可能である。もし、テーブル変換回路72を省略するのであれば、設定レジスタ80に設定するデータ形式は複数段のステータスレジスタ69のデータ形式に対応したものとする。
《73》[オーバーロード検出部]
上記の複数段のステータスレジスタに言及した《67》,《68》のメモリシステム用の電源回路において、オーバーロード検出の機能をもたせる構成が考えられる。それは、電圧状態モニタ部に、電圧発生部でのオーバーロード状態を検出するオーバーロード検出部を追加したものである。オーバーロード検出部は、電圧発生部からの電源電圧変化信号を受け取り、その電源電圧変化信号に基づいて電圧発生部のオーバーロード状態を検出し、オーバーロード検出信号をフラッシュメモリコントローラに向けて出力するように構成されている。これは、電源状態(駆動率または余裕度)がオーバーロード領域まで進行していたことが分かった場合に対策を打つようにしたものである。
本構成によれば、オーバーロード状態をシステムに通知することで、その間、フラッシュメモリへの印加電圧が所望の値でなかったことを通知することが可能となる。これによりオーバーロード等の不具合に起因する不安定動作やシステムダウンを未然に回避し、データ信頼性を向上することが可能となる。
上記の《73》の構成の具体例を実施例37として以下に説明する。
<実施例37>
図71は本発明の実施例37におけるメモリシステム用の電源回路の構成を示すブロック図である。本実施例は、実施例36の場合の図69の構成において、オーバーロード信号も組み合わせて構成するものである。
本実施例では、電圧状態モニタ部60において、積分回路67の出力側にオーバーロード検出部77が設けられている。オーバーロード検出部77は、積分回路67から出力される積分信号N15を参照電圧VREF_Overと比較するオーバーロード検知用の比較回路78と、ステータスレジスタ79とを備えている。オーバーロード検知用の比較回路78の出力端子はステータスレジスタ79のデータ入力端子に接続され、ステータスレジスタ79のクロック入力端子にはインバータ65の出力端子が接続されている。ステータスレジスタ79のデータ出力端子はテーブル変換回路72の入力端子に接続されている。オーバーロード検知用の比較回路78の出力端子はカウンタ回路70のリセット端子に接続されている。
オーバーロード検知用の比較回路78における参照電圧VREF_Overのレベルは、図69での最も高いレベルのVREF_Duty2より高く設定されている。オーバーロード検知用の比較回路78から出力されるカウンタリセット信号N19はカウンタ回路70に供給されてカウンタ回路70をリセットするようになっている。オーバーロード検知用の比較回路78に対応するステータスレジスタ79の出力は電源状態通知信号Q2の最上位ビットとして割り付けられている。
次に、上記のように構成された本実施例のメモリシステム用の電源回路の動作を説明する。図72は電源回路20の動作を示すタイミングチャートである。電圧発生部50が常時連続的な動作状態に入ると、電圧発生部50の比較回路57から出力される電源電圧変化信号N10は常に"H"レベルとなる。カウンタ回路70ではカウントアップ動作が進まず、同じ状態を保持し続ける。この電源電圧変化信号N10は、積分回路67によって積分され続ける。その結果、オーバーロード検知用の比較回路78において積分回路67による積分信号N15が参照電圧VREF_Overと比較され、カウンタリセット信号N19が"L"レベルから"H"レベルへ切り替えられる。この"H"レベルのカウンタリセット信号N19はカウンタ回路70をリセットする。カウンタ回路70の次段のインバータ65による反転信号N12が"L"レベルから"H"レベルへ切り替わるタイミングで、複数段の比較回路68およびオーバーロード検知用の比較回路78の出力信号がステータスレジスタ69およびオーバーロード検知用のステータスレジスタ79に格納される。このとき、4つのステータスレジスタ69,79の状態は[1,1,1,1]であり、「Fh」となる。すなわち、テーブル変換回路72からオーバーロード検知信号Q5が端子T6からフラッシュメモリコントローラ10に向けて出力される。
本実施例によれば、上述した実施例19の効果に加えて、オーバーロードの有無をシステムに通知することで、電圧発生部50の安定性を通知することができる。
《74》[電源状態(駆動率または余裕度)検出を多ビットで]
本項では、上述した《62》のメモリシステム用の電源回路の電圧状態モニタ部において、多ビットの信号を電源状態情報信号としてステータスレジスタに保持させる構成を、別の構成としている。すなわち、電圧状態モニタ部において積分回路と遅延回路と複数の比較回路とを用いる代わりに、電圧発生部において複数の比較回路を用いる。この構成では積分回路と遅延回路とは必要でなくなる。
また、本項では、電圧発生部の電源状態を知る手掛かりとして電圧発生部から電圧状態モニタ部に伝送される信号として、発振回路の発振周波数をフィードバック制御する電源電圧変化信号が用いられる。なお、電源電圧変化信号は、1ビット信号とすることが考えられるが、この他、多ビット信号とすることも考えられる。以下、多ビット信号の電源電圧変化信号を生成する構成について説明する。
電圧発生部で多ビットの電源電圧変化信号を生成するためには、複数の比較回路が設けられる。これら複数の比較回路には電圧発生部の出力電圧またはそれを検出した電圧が共通に入力される。一方、これら複数の比較回路には、互いに異なるレベルの参照電圧が印加される。複数の比較回路の出力は発振回路の発振周波数を制御する。さらにこれら出力は、電源電圧変化信号として後段の電圧状態モニタ部へ送られる。電圧状態モニタ部は電源電圧変化信号の変化を都度保持しておくための複数段のステータスレジスタを有している。電圧発生部の複数の比較回路の出力端子はそれぞれ複数段のステータスレジスタの入力端子に接続されている。
以上を要するに、本項のメモリシステム用の電源回路は、上記《62》の構成において、電圧発生部は、電源状態通知信号として多ビット信号を生成する複数の比較回路をさらに有し、電圧状態モニタ部は、多ビット信号の電源状態通知信号をラッチする複数段のステータスレジスタを有している。
本項によれば、多ビット信号の電源状態通知信号について、例えば発振回路の周波数を設定する多ビット信号を利用する。この場合、多ビット信号は電圧発生部の電源状態と同等の意味を持つ。したがって、多ビット信号の電源状態通知信号をステータスレジスタに格納したうえで、ステータスレジスタから読み出して電圧状態モニタ部を介して電源回路外部に出力するように構成すればよい。その結果として、既存の多ビット信号を用いることで、積分回路等が不要となり、面積および消費電流を削減することが可能となる。
上記の《74》の構成の具体例を実施例38として以下に説明する。
<実施例38>
図73は本発明の実施例38におけるメモリシステム用の電源回路の構成を示すブロック図である。電圧発生部50は、発振回路54、複数の昇圧回路55、電圧検出部56、および複数の差動アンプを有する比較回路57を備えている。比較回路57が複数段になっている点が、これまで説明した実施例とは異なっている。電圧検出部56の出力端子は複数の比較回路57それぞれにおける反転入力端子(−)に接続され、複数の比較回路57それぞれの非反転入力端子(+)には参照電圧VREF_Duty2,VREF_Duty1,VREF_Duty0,VREF_Overが印加されるようになっている。複数の参照電圧の順位は、VREF_Duty2<VREF_Duty1<VREF_Duty0<VREF_Overであり、これは図72との比較で分かるように、実施例20の場合とは逆の関係となっている。逆の関係とするのは、発振回路54の発振周波数の制御をネガティブフィードバック制御とするためである。すなわち、出力電圧が上昇するほど発振周波数を低くするためである。発振回路54における発振周波数を示す信号Foscがカウンタ回路70に入力されている。比較回路57の出力端子は発振回路54の周波数制御端子に接続され、さらに電圧状態モニタ部60の入力端子に接続されている。電圧発生部50における複数の比較回路57の出力端子は電圧状態モニタ部60における複数段のステータスレジスタ69のデータ入力端子に接続されている。
本実施例は、図71における積分回路67、遅延回路66、トランスファゲート64、およびアンドゲート素子71を用いていない。その他の構成については、実施例20の場合の図71と同様であるので同一部分に同一符号を付すにとどめ、説明を省略する。
図71の構成と異なるのは、電圧状態モニタ部60は、電圧発生部50がその内部に有する離散値(電圧発生部50の駆動率に相当する)を取り込んだうえで、取り込んだ離散値に基づいて電圧発生部50の駆動率を算出し、算出結果を電源状態通知信号Q2として出力する点である。
例えば、電圧発生部50の発振回路54の周波数Fosc等が離散的かつ段階的に変更される場合、この周波数Fosc等に対応する離散値が、電圧発生部50の駆動率に相当する離散値となる。すなわち、Trm[2:0]=7〜0hに応じて、発振回路54の周波数が5MHz〜20MHzと5MHzステップで変更される場合、Trm[2:0]が離散値に相当し、このTrm[2:0]を換算することで、電圧発生部50の駆動率を知ることができる。
次に、上記のように構成された本実施例のメモリシステム用の電源回路の動作を説明する。図74は電源回路20の動作を示すタイミングチャートである。以下の説明では、電圧発生部50における出力電圧が時間軸に対して低下しているとする。この場合、抵抗分圧された分圧電圧Vrも低下していく。分圧電圧Vrが低下していくことで、複数の比較回路57での比較結果として(Trm_over+Trm[2:0])が出力される。
発振回路54の周波数信号Foscが入力されているカウンタ回路70のカウント値が「0」になると、カウント値信号N11およびインバータ65による反転信号N12が論理反転し、そのタイミングで信号(Trm_over+Trm[2:0])が複数段のステータスレジスタ69のそれぞれに格納される。また、分圧電圧が一定以下になったときオーバーロード通知信号が出力される。その他の動作については、実施例20の場合と同様であるので説明を省略する。
本実施例によれば、電圧発生部50の内部に備えられた出力電圧の電流能力を単調増加あるいは単調減少させることができる離散値を電圧状態モニタ部に供給することで、電圧状態モニタ部の回路規模を削減できる。
なお、当然ながら、実施例31〜36のように、電源状態通知信号Q2を1ビット出力、多ビット出力することも可能であり、また、割込み信号として電源状態遷移通知信号Q2′を出力する事も可能である。なお、発振回路54の発振周波数が低い場合は、カウンタ回路70は必要でない。
電圧発生部の構成につき、これをDC−DCコンバータ回路で構成してもよい。以下、電圧発生部をDC−DCコンバータ回路で構成した実施例39を説明する。
<実施例39>
図75は本発明の実施例39におけるメモリシステム用の電源回路の電圧発生部の構成を示すブロック図である。この電圧発生部50はDC−DCコンバータで構成されている。比較回路57からのPWM(パルス幅変調)信号の電源電圧変化信号N10でスイッチング素子92がオン・オフ制御される。スイッチング素子92がオンの状態では、直流電源電圧VDDによる直流電流がチョークコイル91とスイッチング素子92とに流れ、その結果、チョークコイル91には電気エネルギーが蓄積される。スイッチング素子92がオフの状態では、チョークコイル91に蓄積されていた電気エネルギーが一気に放出され、放出された電気エネルギーは、逆流防止ダイオード93を介して平滑コンデンサ94に充電される。スイッチング素子92のオン・オフ制御により、平滑コンデンサ92の正極端子には昇圧した電源電圧が発生する。発生した電源電圧は端子T3からフラッシュメモリ26へ給電される。逆流防止ダイオード93は、スイッチング素子92のオン時に平滑コンデンサ94からの逆流を防止する。
電源電圧は一方で電圧検出部56で検出され、検出された電源電圧は、比較回路57において参照電圧VREF_Vと比較される。比較回路57の出力はPWM(パルス幅変調)波形となり、スイッチング素子92のオン・オフ制御に使われるとともに、電源電圧変化信号N10として次段の電圧状態モニタ部60へ送られる。
<実施例40>
電圧発生部は、図76のように多ビットのDC−DCコンバータ回路で構成してもよい。ここでは複数の比較回路57が設けられている。これは実施例38の場合の図73の構成に適用できる。
<実施例41>
また、電源発生部は図77のように構成してもよい。すなわち、オペアンプ95の出力でスイッチング素子96をオン・オフ制御する。電圧検出部56の信号がオペアンプ95の入力端子に印加され、オペアンプ95の出力は"H","L"に切り替わり、昇圧が行われる。
次に、本発明のフラッシュメモリの実施例を説明する。本発明の実施例のフラッシュメモリ26は、フラッシュメモリコントローラ10から問い合わせを受けたときにフラッシュメモリコントローラ10に送信すべきいくつかの情報を保有している。その情報には、電力レベル、電圧値、パルス幅、フェイルビット数、処理時間、処理時間などがあり、それらは原則としてチップ固有の情報である。
図78はフラッシュメモリ26における電力パラメータの格納についての説明図である。フラッシュメモリ26における電力パラメータの格納について説明する前に、現状のフラッシュメモリにおける課題を再度検証する。フラッシュメモリを用いたストレージシステムのように、フラッシュメモリチップを多数使用するシステムにおいては、ストレージシステム動作の消費電力が課題となる。特に、プログラム性能を向上させるために複数のフラッシュメモリチップに対して、同時にプログラム動作を実行させると、その消費電流により、システムの電源や、放熱に対するコストが増大することになる。このような理由から、フラッシュメモリ動作時の消費電流の削減が望まれる。
例えば、20V以上の高電圧を発生する昇圧回路は、電力効率が悪く、プログラム動作および消去動作においては、メモリセルのしきい値を変更するのに要する電力の何倍もの電力を消費することになる。フラッシュメモリを用いたストレージシステムのように、フラッシュメモリチップを多数使用するシステムにおいては、フラッシュメモリチップ毎に昇圧回路が備えられているために、複数のフラッシュメモリチップに対して同時にプログラム動作および消去動を実行する時は、消費電力が膨大となり、システムにおける電源設計に支障をきたすことになる。
従来から高電圧を発生する電源回路をフラッシュメモリチップの外部に設けることは行われているが、フラッシュメモリに対するプログラムの実行動作やデータの消去動作は、コマンド入力により実施され、それらの動作は、動作が完了したことを示す信号やステータスレジスタによって、外部に通知されるのみであった。したがって、プログラムの実行動作や消去動作においては、動作開始から完了までの全期間中、電源回路は最大電圧となる20Vを発生し続ける、または最大の電流駆動能力で待機する必要があった。
これに対して、フラッシュメモリ26は、各動作モード(フラッシュメモリに対するプログラムの実行動作やデータの消去動作等を示す動作モード)でフラッシュメモリ26が消費する電力レベルを示すレジスタ34を備えている。これによりレジスタ34が示す電力レベルに応じて、フラッシュメモリ26の外部電源回路(電源回路20)を制御できるので、フラッシュメモリ26を低消費動作させることが可能となる。したがって、ストレージシステムなど、フラッシュメモリを多数用いるシステムに、この構成を適用すると、システムの低消費電力化および性能向上に図るうえで極めて有用となる。さらには、フラッシュメモリコントローラ10は、フラッシュメモリ26から告知された電力レベルに基づいて、電源回路20の動作電力(電流)負荷を、所望のタイミングで調整することが可能になる。これにより、複数のフラッシュメモリ26の送電力を精度高く管理する(例えば、消費電流を低消費にチューニングする)ことができる。さらには、電源回路20は過剰な電力供給能力(高いピーク電流の対応等)を備える必要がなくなるうえ、メモリの読み出し書き換えのコマンド入力時あるいはその前に電力レベルを設定すれば、コマンドで指定される処理の実行で必要となる電源回路20による電力供給を事前に予約することが可能となる。
フラッシュメモリ26は、図78に示すように、内部コントローラ33とコマンドレジスタ34と不揮発性メモリ領域36とを有する。コマンドレジスタ34には、フラッシュメモリコントローラ10との間で授受されるコマンドがセットされる。具体的にはコマンドレジスタ34には、図85に示すように、動作モード設定ビットと、電力レベル設定ビットと、その他ビットからなる複数のフィールドとが設けられており、これらフィールドに各種のコマンドがセットされる。コマンドレジスタ34にセットされるコマンドは、動作モードP1、電力レベルP2などがセットされるフィールドを有している。これにより、電力管理の必要なコマンド(読み出し、プログラム、消去など)に電力レベルに関するフィールドを設けることが可能となる。その結果、これらコマンドを発行する時点で電力負荷を明確に設定することが可能となり、これにより、フラッシュメモリコントローラ10が電力情報を管理することがさらに容易となる。また、コマンドとして、電力レベルのみを変更するコマンドを設ければ、電力管理の必要なコマンドで電力レベルを予め指定することができるので、電力レベルを直接に指定する必要がなくなって、コマンド入力(NANDフラッシュの場合はIO端子やその制御信号)におけるデータ転送帯域幅の低減が抑制される。
また、不揮発性メモリ領域36(NV:Non−Volatile area)は第1、第2の記憶部であって、不揮発性メモリ領域36には各電力レベルについての消費電流などの電力情報(第1の情報)と実行時間情報(第2の情報であって、電力レベルそれぞれにおけるフラッシュメモリ26の処理速度を示す)とが格納されている。これら第1、第2の情報は、フラッシュメモリ26の個体差を反映したものとなっている。第1の情報を記憶することで、フラッシュメモリ26における動作電力や動作速度のばらつき(製品スペック、製造プロセスが主要因)を実電流値の伴わない単純なコマンドフォーマット(品種によらない共通規格)で扱うことができる。さらには、第2の情報を記憶することで処理速度の情報を電力管理に取り入れることが可能となり、これにより、外部電源の動作電力(電流負荷)の時間的予測が可能になってメモリシステムにおける電力管理がより精度が高く高品位なものとなる。
動作モードについては、読み出しモード、書き込みモード、書き込みベリファイモード、消去モード、消去ベリファイモード、動作停止モードなどがある。各モードには、それぞれに付随する消費電流などの電力情報、動作時間(処理時間)などのパラメータが対応している。これらのパラメータ等は、フラッシュメモリ26の専用端子から出力され、フラッシュメモリコントローラ10に転送される。
動作停止(ポーズ)モードを設けることで、最小の電力負荷を定義することが可能となる。その結果、電源回路20の動作電力(電流)負荷の調整範囲を大きく設定することができる。また、電源回路20による電源供給が安定しない場合、フラッシュメモリ26の動作を一時停止することが可能となって、誤動作を防ぐことができる。
また、動作停止モードを設定する構成では、フラッシュメモリ26に動作停止モードにおける電力レベルを指定するための制御端子をさらに設けている(フラッシュメモリ停止信号あるいは図83、図86のポーズ制御入力に対応する)。そうすれば、動作停止モードにおける電力レベルを指定するための制御端子が専用ピンとなって、コマンドアクセスと非同期に、指定される電力レベルによって高速にフラッシュメモリ26を停止させることが可能となる。この場合、フラッシュメモリ26を高速に復帰させることができるのは言うまでもない。さらには、動作停止モードを設定する構成において内部コントローラ33は、動作停止モードを実施中(ポーズ中)のフラッシュメモリ26であっても電力レジスタ1133や内部動作状態レジスタ1132へのアクセスを許容する。このようなアクセスを許容するために、動作停止モードを実施中(ポーズ中)であっても、コントロールロジック1114、内部コントローラ33、コマンドレジスタ34、ステータスレジスタ1122、アドレスレジスタ1120、入出力回路1112、およびデータレジスタ1109は、動作可能になっている。これにより、フラッシュメモリ26の停止処理時において、停止解除後の電力レベル(電力レジスタ1133等により設定する)のみならず停止解除後の任意のレジスタ状態を設定することが可能となる。その結果、停止中の時間を有効活用できて、設定に必要な処理時間を短縮する事ができる。
内部コントローラ33は、メモリ内の制御と、フラッシュメモリコントローラ10との間の各種信号の授受を司る制御部である。内部コントローラ33には、内部動作状態レジスタと電力レジスタ(本発明におけるレジスタ)とが設けられる。内部動作状態レジスタには、フラッシュメモリコントローラ10からのコマンドにかかわる書き込み動作や読み出し動作などの動作モードにおける動作状態が格納されるように構成され、電力レジスタには各動作モードにおいてフラッシュメモリ26が消費する電力レベルが格納されるように構成されている。内部コントローラ33は不揮発性メモリ領域36から読み出した各種のパラメータを内部動作状態レジスタと電力レベルレジスタとに転送格納する。また、実動作に関連して、内部動作状態レジスタには、現在の動作における電圧レベル、書き込み回数情報、パルス幅等が格納される。さらには、以降の動作における電圧レベル、書き込み回数情報、パルス幅の予測値も内部動作状態レジスタに格納される。またリトライ回数、フェイルビット数なども格納対象となる。
内部コントローラ33は、フラッシュメモリ26のバイアスに関する電圧レベルや印加時間の情報を外部のフラッシュメモリコントローラ10に告知することにより、電源回路20の必要電圧や電流等を制御する。付随する消費電流などの電力情報,動作時間などの情報は、フラッシュメモリ26における不揮発メモリ領域36から読み出され、内部動作状態レジスタに格納の上でフラッシュメモリコントローラ10に転送される。あるいは、IO端子から内部動作状態レジスタにアクセスし、内部動作状態や変化情報を取り出すようにしてもよい。
フラッシュメモリの動作には、ユーザコマンドで区別されるモード動作とこれらを構成するマイクロシーケンスという動作単位がある。マイクロシーケンスは階層的に定義される。フラッシュメモリは、書き込み/消去動作や書き込みまたは消去ベリファイ動作などの処理の実行において、内部コントローラ33の制御により動作クロックのもとマイクロシーケンス単位で一連の処理を実行してゆく。コマンド入力、内部電源セットアップ、プログラムベリファイ、プログラムパルス印加、消去ベリファイ、消去パルス印加のマイクロシーケンスに分解される。
図79はプログラムシーケンスに電力モード変更のマイクロシーケンスを挿入しプログラム動作の電力制御を実施した例である。電力モード更新のマイクロシーケンスは、プログラム(書き込み)、ベリファイ前(コマンド入力とプログラムベリファイの間、およびプログラムカウンタインクリメントとプログラムベリファイの間)、プログラムパルス印加前(プログラムカウンタリセットと書き込み動作のためのプログラムパルス印加の間)の3箇所に挿入されている。
プログラムベリファイは、プログラムベリファイの動作に必要な回路構成の変更や内部電位の準備等で構成されるセットアップPV(Program Verify)と、実際のプログラムベリファイ(Vtマージン読み出し)より下層のマイクロシーケンスとで構成される。プログラムパルス印加は、プログラムパルス印加の動作に必要な回路構成の変更や内部電位の準備等で構成されるセットアップPU(PUlse)と、実際のパルス印加のマイクロシーケンスとで構成される。
図79の各々のステップはマイクロシーケンス単位に相当する。このマイクロシーケンス単位で電力モード更新を実行することが、本項のポイントである。図80は電力モード更新シーケンスの詳細を示す。電力モード更新シーケンスが呼び出されると、電力レベル設定ビットが読み出される。読み出された電力レベル設定ビットに変更があった場合、電力制御を行うマイクロシーケンス毎に予め用意された電力パラメータは、変更後の電力レベル設定ビットに対応して設定変更される。図79では、・制御シーケンスクロック変更、・電源能力変更、・電源セットアップ時間変更、の3つの電力パラメータが変更調整されている。例えば電力の低減操作を考えてみる。制御シーケンスのクロックの周波数を落とすと単位時間あたりの動作が少なくなり消費電流は低減される。また電源がチャージポンプ等の昇圧回路とすれば昇圧回路の並列度、昇圧クロック周波数を下げることにより電流駆動能力が低下し、消費電力は低減される。電流駆動能力が低下することにより内部電源ノードの充電時間セットアップ時間を伸張する必要がある。一般的に回路を低電力で動作させると処理時間は伸びる性質が有る。
なお電力パラメータは、電力を変更できるものであれば限定されない。電力パラメータとしては、プログラムの同時ビット数、読み出しの同時ビット数、プログラムの並列、読み出しビットの並列などがある。 要するに本項では、電力レベル設定ビットに対応して、電力制御を行うマイクロシーケンス毎に予め電力パラメータを用意することが制御ポイントとなる。これらの電力パラメータは制御論理回路で設定することもできるが、不揮発性メモリ領域に電力パラメータを格納すれば、複雑な電力制御を、小ない回路面積で実現することができる。不揮発性メモリ領域の読み出し速度が不十分な場合は、電源投入時にRAMなどの揮発メモリに電力パラメータを格納することにより、電力モード更新シーケンスの挿入による処理速度低下を抑えることができる。
図81A−図81Cを用いてコマンドで指定される処理の実行時に電力レベルを設定する例を説明する。ここでは、電力レベルをVppの消費電流Ippのかたちで取り扱っている。図81A−図81Cはそれぞれ特定の電力レベルでプログラムコマンドを実行したときの消費電流Ippの時間的変化を模式的に示した消費電流プロファイルである(消去コマンドではプログラムパルスが消去パルス、プログラムベリファイが消去ベリファイとなり類似である)。Cmdはコマンド入力である。SetUpはプログラムモードに設定する電源のセットアップ動作である。Pulseはプログラムパルスの印加,VerifyRDはプログラムベリファイ、RDSTBYは読み出し待機状態である。図81A、図81B、図81Cの順に電力レベルの大きなプログラムコマンド実行中の消費電流プロファイルを示している。ここでは大きな電力レベル値が大消費電流側に対応している。無論、大きな電力レベル値を小消費電流側に対応させても、あるいは電流レベル値を単に消費電流範囲を示すインデックスとして扱ってもよい。消費電流の小さいコマンド程、メモリ内部の動作クロック周期は長くなり、コマンドの実行時間は長くなるが電源に必要な駆動能力は抑制することができる。
図82A、図82Bを用いてコマンドで指定される処理を実行中に電力レベルを変更する例を説明する。図中、上向き矢印のタイミングが電力パラメータが更新されたタイミングである。図82Aは処理速度優先の高消費電力の状態から消費電力優先の低消費電力の状態に変更された場合の消費電流プロファイルである。図82Bは消費電力優先の低消費電力の状態から消費電力優先高消費電力の状態に変更された場合の消費電流プロファイルである。
図81A−図81C、図82A−図82Bはいずれもマイクロシーケンス単位で電力レベルが変更されている。マイクロシーケンスを適切に細分化し、適切な電力制御を行うことにより、アクセス対象のフラッシュメモリの回路特性や特性ばらつきに適応した動的な省電力制御が実現される。
以下、フラッシュメモリ26のさらに具体的な構成を図83を参照して説明する。フラッシュメモリ26はデータを記憶するためのメモリセルアレイ1102を備える。メモリセルアレイ1102は、不揮発性メモリセルがアレイ状に配置されており、メモリセルのしきい値を変化させることにより情報を記憶している。プログラム動作によりメモリセルのしきい値を高く設定し、消去動作によりメモリセルのしきい値を低く設定することができる。メモリセルアレイ1102に対する読み出しおよびプログラム動作ではページ単位で、消去動作ではブロック単位で、それぞれアクセスが行われる。
ページは、ローデコーダ1104により選択される特定ワード線により指定され、読み出し動作においては、指定されるページのメモリセル記憶データが、センスアンプ1108により判定され、データレジスタ1109へ転送される。データレジスタ1109に転送されたデータは、カラムデコーダ1106により指定されるスタートポイントから順次入出力回路1112へと読み出され、入出力端子であるIO端子へ出力される。
データ書き込みにおいては、シリアルデータ入力モードを用いて、IO端子から入力されるデータは、カラムデコーダ1106により指定されるスタートポイントから順次データレジスタ1109へ取込まれたうえで、オートプログラムモードにおいて、指定されるページに転送される。
メモリセルアレイ1102に対する消去動作では、ローデコーダ1104により選択される複数のワード線により指定されるブロックに消去電圧が与えられることで、そのブロック内のメモリセルが消去状態に設定される。
プログラム、消去などのフラッシュメモリ26に対する動作は、IO端子より入力される動作コマンドによって設定される。フラッシュメモリ26は、論理回路やセンスアンプ1108などに供給される3VなどのVCC電圧端子を備え、さらには、VCCよりも高い電圧を受け取るVPP1、VPP2、VPP3の高電圧電源端子(VPP[1:3])を備えている。この高電圧電源端子VPP1、VPP2、VPP3には、例えばプログラム/消去用電圧、ベリファイ用電圧、読み出し用電圧が入力される。
フラッシュメモリ26内部の回路ブロックは、高電圧電源端子VPP1、VPP2、VPP3に与えられる電圧によって動作する、あるいは、高電圧電源端端子VPP1、VPP2、VPP3に与えられる電圧に基づいて電圧発生回路1130により生成される電圧によって動作する。
内部動作状態レジスタ1132は、フラッシュメモリコントローラ10からのコマンドにかかわる書き込み動作や読み出し動作などの動作モードにおける動作状態を保持するためのものである。ここでいう動作状態とは、フラッシュメモリ1100がオートプログラムや、オートブロック消去のコマンドを受けて、コントローラ1116がプログラムや消去動作のシーケンスを実行する際におけるシーケンスの実行状況を示している。
内部動作状態レジスタ1132へは、実行中の動作モード、オートプログラムまたはオートブロック消去シーケンス実行時の電圧印加繰り返し回数(ベリファイ回数)、印加電圧値、印加パルス幅、印加パルス間隔、ベリファイ実行時のエラービット数等が情報としてセットされる。
電力レジスタ1133は、図84に示すように、電力レベルを指定するデジタルビットから構成されている。ここでいう電力レベルとは、動作モードそれぞれでフラッシュメモリ26が消費する電力のレベルを示す。図84では、電力のレベルとして以下のものが例示されている。すなわち、図84では、電力レベル(0、1、2、3)それぞれに対応付けられた設定ビット(00,01、10、11)に、さらにmax消費電流(0mA、30mA、60mA、120mA)が対応付けられている。より詳細にはこれらは各マイクロシーケンスに対応するものである。実行中のマイクロシーケンスを内部動作状態レジスタ1132にセットすることもできる。
この構成により、動作実行コマンドを受けて、内部コントローラ33により動作シーケンスを実行するフラッシュメモリ26において、内部の動作状態や電力レベル(内部動作状態レジスタ1132や電力レジスタ1133の値)が、内部コントローラ33によって生成されるたうえで、生成された内部の動作状態や電力レベルを外部へ知らせることが可能となる。これにより、フラッシュメモリコントローラ10と電源回路(高電圧発生回路)20とを備えたストレージシステムにおいて、フラッシュメモリ内部の動作状況に応じて、電源回路(高電圧発生回路)を制御することが可能となる。これによりフラッシュメモリ内部の動作で必要となる電圧発生回路のみを動作させる(内部動作に不要な電源回路を動作させない)ことで、不要な電流消費を抑制してシステムの低消費動作化を実現することができる。また、フラッシュメモリ外部での高電圧発生回路を、フラッシュメモリ26の動作モードに応じて電圧発生制御することが可能となり、ストレージシステムの低消費電力化を図ることが可能となる。
図83に示すフラッシュメモリ26の構成例においては、内部動作状態レジスタ1132や電力レジスタ1133にIO端子を設け、このIO端子を介してフラッシュメモリ26にコマンドやアドレスを入力し、かつデータを入出力してもよい。そうすれば、端子数を増加させることなしに、内部の動作状態(インフォメーションレジスタの値)や電力レベルを外部へ出力することができ、多数のフラッシュメモリを用いるストレージシステムにおいて、フラッシュメモリコントローラとフラッシュメモリ間の配線を増やすことなしに、低消費電力化を実現することができる。
また、図86に示すように、内部動作状態レジスタ1132や電力レジスタ1133の内容を、IO端子の使用状況にかかわらず自由に読み出すことができるよう、専用の読み出し端子Infoをフラッシュメモリ26に備えてもよい。そうすれば、外部から内部動作状態レジスタ1132や電力レジスタ1133に対しては、メモリ内部の動作に関係なく読み出しことができるようになり、フラッシュメモリ外部から内部の動作状態(内部動作状態レジスタ1132や電力レジスタ1133の値)を読み出すタイミング制約が緩和される。したがって、フラッシュメモリ外部のフラッシュメモリコントローラからは、内部動作状態レジスタ1132や電力レジスタ1133の内容が変更されたことを示すインフォメーションレジスタ変更通知信号CHI(図83、図86の電源割り込み出力に対応)が変化した場合のみならず、フラッシュメモリコントローラ10が必要とする時に内容を読み出すことができ、電源回路の待機状態の制御などをおこなうことができるので、より低消費電力化の動作をおこなうことが可能となる。
これにより、内部動作状態レジスタ1132からのフラッシュメモリ内部の動作状態(インフォメーションレジスタの値)の読み出しや電力レジスタ1133からの電力レベルの読み出しに関するタイミング制約をなくすことができ、高電圧発生回路制御の自由度を増すことができる。
フラッシュメモリコントローラ10は、使用するフラッシュメモリ26に応じて、各動作モードにおける電圧発生回路の制御をおこなうことができ、より低消費電力化なシステムを実現することが可能となる。また、使用するフラッシュメモリ26の電力消費特性に応じて、同時プログラムを行うフラッシュメモリ26の数を制御することにより、プログラム特性を向上することが可能となる。
なお、上述した実施例では、内部コントローラ33は、電力レジスタ1133が示す電力レベルを参照していた。しかしながら、内部コントローラ33は、メモリ外部からフラッシュメモリ26に入力される信号を参照して電力レベルを把握してもよい。そうすれば、電力レベルを、コマンドアクセスと非同期に(例えばレベル指定により)変更することが可能となる。
これまで説明してきた本願発明の各実施例の構成によれば、フラッシュメモリコントローラが電源回路から受け取る電源状態情報に基づいて、フラッシュメモリの処理を適切に実行させることができるので、不揮発性記憶システムにおける不安定動作やシステムダウンを未然に回避し、データ信頼性を向上することが可能となるとともに、安定動作を確保するための過剰な電源能力を不要とするので、システムにおいて無駄な電力消費を抑制することができる。
微細化された半導体製造プロセス技術を用いて製造されるフラッシュメモリコントローラは、大規模なロジック集積回路が主体であり、ロジック回路を構成するトランジスタの信頼性を確保するために、その動作電圧が低電圧化されており、たとえば製造上の最小パターン寸法が45ナノメートルであるような場合には動作電圧は1.2Vに設定される。
一方、不揮発性メモリは広範囲なシステムに使用される部品であり、その入出力信号振幅は汎用性を生かすために、たとえば3Vや5Vのような比較的高い電圧を使用しており、システム電源としては3Vや5Vを生成する回路が用いられる。
したがって、フラッシュメモリコントローラは、外部と入出力する信号の振幅を3Vや5Vとするために、3Vや5Vのような比較的高いVDD電圧を用いて、入出力回路を構成するとともに、ロジック回路が主体となる信号処理ブロックへ与えられる1.2Vのような比較的低い内部動作電圧VDDIを発生する降圧電圧発生回路を備えている。
大規模ロジック集積回路と同一シリコン上に形成される降圧電圧発生回路としては、一般には製造の容易性からレギュレータ型が用いられており、このレギュレータは降圧する電圧をジュール熱として放出するため、高速動作することによって多くの動作電流を消費する信号処理ブロックは1.2Vのような比較的低い動作電圧で動作するにもかかわらず、フラッシュメモリコントローラ全体としては、大きな電力消費となっている。
図87は本発明の他の実施例における不揮発性記憶システム100の構成を示すブロック図である。不揮発性記憶システム(ストレージデバイス)100は、図1に示す実施例1と同様に、フラッシュメモリコントローラ10と、電源回路20と、複数のフラッシュメモリ26からなるメモリブロック25とを備えている。メモリブロック25は、複数のフラッシュメモリ26からなる。
フラッシュメモリコントローラ10は、VDD電圧振幅での信号で外部との入出力をおこなう入出力回路12と、内部電圧VDDIで信号処理をおこなうための信号処理ブロック回路11とを備えている。
電源回路20は、入力されるVDD電圧からフラッシュメモリ26で使用されるVHHを発生する昇圧電圧発生部と、フラッシュメモリコントローラ10内の信号処理ブロックで使用されるVDDIを発生する高電圧発生部とを備えている。電源回路20は、電源線44を介してラッシュメモリ32に接続されるとともに、信号処理ブロック11へのVDDI電源を供給するために電源線45を介してフラッシュメモリコントローラ10に接続されている。
フラッシュメモリコントローラ10の信号処理ブロック11へ電源を供給するために、電源回路20内に設けられる降圧電圧発生部は、大規模ロジック集積回路との混載という制約を受けることなく、降圧動作に最適なデバイスを用いて構成することができることができる。そのため、高効率な降圧回路を実現するこができる。
図87に示す実施例によれば、信号処理ブロック11用VDDI電圧を生成するために、無駄なジュール熱を発生させることを抑制することができ、不揮発性記憶システムの低消費電力化を実現することができる。
図88は本発明のさらに他の実施例における不揮発性記憶システム用の電源回路の電圧発生部の構成を示すブロック図である。電圧発生部50は、図57に示した電圧発生部と同一構成である昇圧電圧発生部100と、降圧発生部102とを備えている。昇圧電圧発生部100と降圧発生部102とは、共にDC−DCコンバータで構成されている。
スイッチング素子106は、比較回路114からのPWM(パルス幅変調)信号の電源電圧変化信号N20に基づいてオン・オフ制御される。スイッチング素子106がオン状態では、直流電源電圧VDDが出力端子VDDIに出力されるが、チョークコイル104の自己誘導により、電源電圧VDDが打ち消され、降圧された電圧がVDDIに出力される。スイッチング素子106がオフ状態では、コンデンサ110とダイオード108との還元電流により、VDDIの電圧が保持される。
上述したように比較回路114は、分圧抵抗によって分圧された出力電圧の分圧電圧112と、基準電圧VREF_Vとを比較して、比較結果を電源電圧変化信号N20として出力している。スイッチング素子106は、比較回路114の比較結果(電源電圧変化信号N20)に基づいてオン/オフ制御される。これにより、VDDIの出力電圧は、電源電圧変化信号N20によって駆動される帰還ループでの制御により決定される。このようにしてVDDIを設定する本実施例の構成では、VDDIの出力電圧は安定に設定される。
このように、チョークコイルに流れる電流のスイッチングを用いて電圧を変換する本実施例は電力損失を少なくでき、降圧電圧をジュール熱により放出するレギュレータに比べ高い電力効率を得ることができる。
図88に示す電圧発生部50の降圧電圧発生部102の出力を図87に示すフラッシュメモリコントローラ10のVDDI電源として供給することにより、不揮発性記憶システムの低消費電力化が実現できる。