JP2005332249A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法 - Google Patents

メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法 Download PDF

Info

Publication number
JP2005332249A
JP2005332249A JP2004150628A JP2004150628A JP2005332249A JP 2005332249 A JP2005332249 A JP 2005332249A JP 2004150628 A JP2004150628 A JP 2004150628A JP 2004150628 A JP2004150628 A JP 2004150628A JP 2005332249 A JP2005332249 A JP 2005332249A
Authority
JP
Japan
Prior art keywords
data
data transfer
flash memory
signal
processing request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004150628A
Other languages
English (en)
Other versions
JP4273038B2 (ja
Inventor
Takuma Mitsunaga
琢真 光永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2004150628A priority Critical patent/JP4273038B2/ja
Publication of JP2005332249A publication Critical patent/JP2005332249A/ja
Application granted granted Critical
Publication of JP4273038B2 publication Critical patent/JP4273038B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

【課題】フラッシュメモリにおける処理順序に偏りが生じるのを回避する。
【解決手段】フラッシュメモリ10は、データを入出力するブロックを例えば2つ備え、フラッシュメモリインターフェース26は、フラッシュメモリ10の各ブロックに対応するインターフェースを2つ備え、また、監視制御部を備える。監視制御部は、2つのインターフェースから送信される処理要求信号に対して、2つのインターフェースによるデータ転送が交互に行われるように、許可信号の送信タイミングを設定し、この許可信号を2つのインターフェースに送信する。
【選択図】図1

Description

本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法に関する。
半導体メモリは、メモリカードやシリコンディスクといったメモリシステムに用いられる。また、近年、この半導体メモリには、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種であり、電力が供給されていないときでも、データを保持することが要求される。
特に、NAND型フラッシュメモリは、上記メモリシステムに多く用いられる。NAND型フラッシュメモリでは、複数のメモリセルを含んでおり、論理値”1”を示すデータが格納されているとき、各メモリセルは消去状態である。また、論理値”0”を示すデータが格納されているとき、各メモリセルは書き込み状態である。
NAND型フラッシュメモリに含まれている複数のメモリセルは、それぞれ、他のメモリセルとは独立して、消去状態から書き込み状態へと変化させることができる。
これとは対照的に、各メモリセルは、他のメモリセルと独立して書き込み状態から消去状態へと変化させることができない。
このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般に、「ブロック消去」と称されている。
NAND型フラッシュメモリに対する書き込み処理若しくは読み出し処理は、ページと称される予め定められた数のメモリ単位で行われる。消去処理の単位であるブロックは複数のページで構成される。
また、フラッシュメモリに書き込まれるデータは、一旦、フラッシュメモリ内のレジスタに保持された後、レジスタからメモリセルアレイを構成する各メモリセルに複写される。この複写を行っている間、フラッシュメモリは、ビジー状態となり、他の処理を受け付けない。このため、このビジー状態が解除されるまで、フラッシュメモリにアクセスすることができない。
レジスタからメモリセルへの複写又はメモリセルからレジスタへの複写を実行するには、メモリセルに高電圧を印加して電子を注入しなければならない。このため、複写の実行によるビジー状態の期間は長くなり、書き込み処理の処理効率が低下する。
このような問題を解決するため、複数チップのフラッシュメモリを備え、ビジー状態が解除されていることが検出されたフラッシュメモリから順に処理を行うようにしたものがある(例えば、特許文献1参照)。
特開平10−63442号公報
しかし、従来のメモリでは、ビジー状態が解除されたフラッシュメモリに対して順次、書き込み処理や読み出し処理が開始されるので、処理時間は短縮されるものの、フラッシュメモリで処理が実行されるときに発生するビジー期間にばらつきが生じる。このばらつきにより、各フラッシュメモリにおける処理の進行状況に偏りが生じる。この状態を放置して書き込み処理を行った場合、進行の早いフラッシュメモリに対して優先的に書き込み処理が行われ、各フラッシュメモリに書き込まれるデータの順序に乱れが生じる。
本発明は、このような従来の問題点に鑑みてなされたもので、フラッシュメモリにおける処理順序に偏りが生じるのを回避することが可能なメモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法を提供することを目的とする。
この目的を達成するため、本発明の第1の観点に係るメモリコントローラは、
データを記憶する複数のフラッシュメモリとの間でデータ転送を行うメモリコントローラにおいて、
前記複数のフラッシュメモリとの間でデータ転送を行うためのデータを記憶するデータ記憶部と、
前記データ記憶部と前記各フラッシュメモリとの間に、前記各フラッシュメモリに対応して備えられ、データ転送を要求する処理要求信号を送信し、データ転送を許可する許可信号を受信して、対応するフラッシュメモリと前記データ記憶部との間でデータ転送を行う複数のデータ転送部と、
前記複数のデータ転送部から送信された複数の処理要求信号を受信して、前記各データ転送部によるデータ転送が順番に行われるように送信タイミングを設定した許可信号を、前記各データ転送部に送信する転送制御部と、を備えたことを特徴とする。
前記各フラッシュメモリは、ページ単位でデータの入出力が行われるものであって、
前記データ記憶部は、前記転送対象のデータを保持するものとして、前記各フラッシュメモリの各ページに対応する量のデータ保持が可能な複数のデータ保持部が備えられたものであり、
前記各データ保持部は、データが供給されたものから順に、データが排出されるように構成されたものであってもよい。
前記転送制御部は、前記データ記憶部と前記各フラッシュメモリとの間で行われるデータ転送の順序を判別し、前記順序が後と判別したデータ転送部からの処理要求信号を、前記順序が先と判別したデータ転送部からの処理要求信号よりも先に受信したときは、前記順序が先と判別したデータ転送部に許可信号を送信して前記対応するフラッシュメモリとの間でデータ転送が行われてから、前記順序が後と判別したデータ転送部に許可信号を送信するように、前記各データ転送部への許可信号の送信タイミングを設定するようにしてもよい。
前記転送制御部は、前記フラッシュメモリとの間でデータ転送を行ったデータ転送部が次にデータ転送を行うべき順序を最後尾としてもよい。
本発明の第2の観点に係るフラッシュメモリシステムは、
データを記憶する複数のフラッシュメモリと、
請求項1乃至4のいずれか1項に記載のメモリコントローラと、を備えたことを特徴とする。
本発明の第3の観点に係るフラッシュメモリのデータ転送方法は、
データを記憶する複数のフラッシュメモリとの間でデータ転送を行うために、前記各フラッシュメモリに対応して備えられた複数のデータ転送部から、データ転送を要求する処理要求信号を受信するステップと、
前記各フラッシュメモリとのデータ転送が順番に行われるように、前記データ転送を許可するための許可信号を送信する送信タイミングを設定するステップと、
前記送信タイミングに従って、各データ転送部に前記許可信号を送信するステップと、を備えたことを特徴とする。
本発明によれば、フラッシュメモリにおける処理順序に偏りが生じるのを回避することができる。
以下、本発明の実施の形態に係るメモリ装置を図面を参照して説明する。
本実施形態に係るフラッシュメモリシステムの構成を図1に示す。
本実施形態に係るフラッシュメモリシステム1は、通常、ホストシステム2に着脱可能に装着されて使用され、ホストシステム2に対して一種の外部記憶装置として用いられるものである。
ホストシステム2は、コンピュータ、デジタルスチルカメラのように、文字、音声、あるいは画像情報等の種々の情報を処理するものである。ホストシステム2は、フラッシュメモリシステム1に論理アドレスを与えてフラッシュメモリ10にアクセスする。
フラッシュメモリシステム1は、フラッシュメモリ10と、コントローラ20と、を備える。フラッシュメモリ10は、ハードディスクの代わりになるストレージデバイスへの用途として開発されたものであり、NAND型フラッシュメモリからなる複数のチップを備える。
このNAND型フラッシュメモリは、不揮発性メモリであり、一般的には、レジスタとメモリセルアレイとによって構成され、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子が注入される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子が排出される。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
一般的なNAND型フラッシュメモリのメモリセルアレイは、例えば、図2(a)に示すように、1ブロックが32ページ(P0〜P31)で構成されている。各ページは、512バイトのユーザ領域と16バイトの冗長領域とで構成される。
但し、NAND型フラッシュメモリの構成は仕様によって異なる。記憶容量が大きい場合、NAND型フラッシュメモリは、例えば、図2(b)に示すように、1ブロックが64ページ(P0〜P63)、各ページが2048バイトのユーザ領域と64バイトの冗長領域とで構成される。
ユーザ領域は、主に、ホストシステム2から供給されるデータを記憶するための領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス、ブロックステータス(フラグ)等の付加データを記録するための領域である。
エラーコレクションコードは、ユーザ領域に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
対応論理ブロックアドレスは、データが格納されているブロックに対応するアドレスを示すデータである。
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域には、不良ブロックであることを示すフラグが書き込まれる。
このように構成されたNAND型フラッシュメモリでは、ランダムアクセスを行うことができず、データの書き込みと読み出しとは、レジスタを介してページ単位で行われ、消去はブロック単位で行われる。また、NAND型フラッシュメモリでは、データの上書をすることができないので、データは、データが消去されている領域に書き込まれる。
NAND型フラッシュメモリは、このような特徴を有するため、データの書き換えを行う場合、通常、データが消去されているブロックに新たなデータが書き込まれ、書き換え前の古いデータが書き込まれているブロックのデータがブロック単位で消去される。このようなデータの書き換えを行った場合、書き換え後のデータは、書き換え前とは異なるブロックに書き込まれる。
このため、ホストシステム2がフラッシュメモリシステム1に与える論理アドレスと、フラッシュメモリ10内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書き換える毎に動的に変化する。
従って、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各ページの冗長領域に記憶されている対応論理ブロックアドレスに基づいて作成される。
尚、ブロックにデータが格納されていない場合、フラッシュメモリ10の冗長領域には、このブロックに対応する対応論理ブロックアドレスは格納されない。このため、この対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済みブロックであるか否かを判断することができる。
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域には、不良ブロックであることを示すフラグが書き込まれる。
図1に戻り、コントローラ20は、ホストインターフェース21と、マイクロプロセッサ22と、ワークエリア23と、バッファ24と、ECCブロック25と、フラッシュメモリインターフェース26と、を備える。
ホストインターフェース21は、ホストシステム2との間でデータ、アドレス情報、ステータス情報及び外部コマンド情報等の授受を行うための機能ブロックであり、動作設定レジスタ、タスクファイルレジスタ、エラーレジスタ等を備える(いずれも図示せず)。
このうち、タスクファイルレジスタは、ホストシステム2より供給されるホストアドレス及び外部コマンドを一時的に格納するためのレジスタである。エラーレジスタは、エラーが発生した場合にデータがセットされるレジスタである。
ホストシステム2に装着されたフラッシュメモリシステム1は、外部バス31を介してホストシステム2に接続される。ホストインターフェース21は、ホストシステム2からデータ等が供給されると、フラッシュメモリシステム1の入口として、供給されたデータ等をコントローラ20の内部に取り込む。
また、フラッシュメモリシステム1がホストシステム2にデータ等を供給する場合、ホストインターフェース21は、データ等をホストシステム2に供給するフラッシュメモリシステム1の出口として機能する。
マイクロプロセッサ22は、コントローラ20を構成する各機能ブロック全体の動作を制御するための機能ブロックである。
ワークエリア23は、フラッシュメモリ10の制御に必要なデータを一時的に格納する作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。ワークエリア23は、必要なデータとして、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する前述のアドレス変換テーブルも格納する。
ECCブロック25は、フラッシュメモリ10に書き込むデータに付加されるエラーコレクションデータを生成するとともに、読み出したデータに付加されたエラーコレクションコードに基づいて、読み出したデータの誤り検出を行い、検出した誤りを訂正すための機能ブロックである。
バッファ24は、フラッシュメモリ10から読み出されたデータをホストシステム2の受け取り準備ができるまで保持し、また、フラッシュメモリ10に書き込むデータを、フラッシュメモリ10への書き込み準備ができるまで一時的に保持するための機能ブロックである。
バッファ24は、転送対象のデータを保持するものとして、複数のデータ保持部を備える。各データ保持部は、フラッシュメモリ10の各チップの1ページ当たりのデータを保持するだけの領域が割り当てられる。
例えば、フラッシュメモリ10の各チップの1ページが512バイトのデータによって構成されたものである場合、マイクロプロセッサ22は、各データ保持部に、この512バイトのデータを保持することが可能な領域を割り当てる。
また、1ページが2048バイトのデータによって構成されたものである場合、マイクロプロセッサ22は、各データ保持部に、2048バイトのデータを保持することが可能な領域を割り当てる。データ量が1ページ分を越える場合、マイクロプロセッサ22は、バッファ24に、各ページに対応する複数のデータ保持部を設定する。
各データ保持部は、ページ単位でデータが供給され、データが供給されたデータ保持部から順に、データを排出するように構成されている。マイクロプロセッサ22は、このようなデータ保持部に関する制御を行う。
フラッシュメモリインターフェース26は、内部バス32を介して、フラッシュメモリ10との間でデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行うために備えられた機能ブロックである。フラッシュメモリインターフェース26は、内部コマンドを実行する際に必要な情報を設定するための複数のレジスタを備える(図示せず)。
ここで、内部コマンドとは、コントローラ20がフラッシュメモリ10に処理の実行を指示するためのコマンドであり、フラッシュメモリ10は、コントローラ20からの内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム2がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
フラッシュメモリインターフェース26は、図3に示すように、インターフェース26−0,26−1と、監視制御部27と、を備える。インターフェース26−0,26−1は、フラッシュメモリ10との間で独立してデータ等の転送を行う複数系統のインターフェースとして備えられたものである。
インターフェース26−0は、フラッシュメモリ10のチップ10−0に対応して備えられ、NAND型フラッシュメモリに対応するチップ10−0との間でデータ転送を行うCH(チャンネル)0のインターフェースである。
インターフェース26−0は、チップ10−0との間でデータ転送を行う場合、図4に示すように、監視制御部27に、データ転送を要求する処理要求信号REQ0を送信する。そして、インターフェース26−0は、処理要求信号REQ0に応答して監視制御部27から送信された許可信号ACK0’を受信して、チップ10−0に対して書き込み処理又は読み出し処理を行うためのデータを転送する。
インターフェース26−1は、フラッシュメモリ10のチップ10−1に対応して備えられ、NAND型フラッシュメモリに対応するチップ10−1との間でデータ転送を行うCH1のインターフェースである。
インターフェース26−1は、チップ10−1との間でデータ転送を行う場合、図4に示すように、監視制御部27に、データ転送を要求する処理要求信号REQ1を送信する。そして、インターフェース26−1は、処理要求信号REQ1に応答して監視制御部27から送信された許可信号ACK1’を受信して、チップ10−1に対して書き込み処理又は読み出し処理を行うためのデータを転送する。
監視制御部27は、インターフェース26−0,26−1から送信された2つの処理要求信号REQ0,REQ1を受信して、インターフェース26−0,26−1によるデータ転送が順番に行われるように送信タイミングを設定した許可信号ACK0’,ACK1’を、それぞれ、インターフェース26−0,26−1に送信するものである。
監視制御部27は、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ0,REQ1を受信すると、インターフェース26−0,26−1のうち、いずれが先に、それぞれ、チップ10−0,10−1との間でデータ転送を行うべきか、その順序を判別する。
監視制御部27は、例えば、インターフェース26−0によるデータ転送の方が先であると判別した場合に、インターフェース26−1から処理要求信号REQ1を受信したときは、インターフェース26−0から処理要求信号REQ0を受信するまで待機する。監視制御部27は、処理要求信号REQ0を受信すると、処理要求信号REQ0に対応した処理要求信号REQ0’をバッファ24に送信する。
バッファ24は、処理要求信号REQ0’に応答して許可信号ACK0を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK0を受信してインターフェース26−0に許可信号ACK0’を送信する。監視制御部27は、インターフェース26−0に許可信号ACK0’を送信すると、インターフェース26−0が次にデータ転送を行う順序をインターフェース26−1よりも後として記憶する。
そして、監視制御部27は、次にデータ転送を行う順序がインターフェース26−1になった後、つまり、インターフェース26−0に許可信号ACK0’を送信した後、処理要求信号REQ1に対応した処理要求信号REQ1’をバッファ24に送信する。
バッファ24は、処理要求信号REQ1’に応答して許可信号ACK1を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK1を受信してインターフェース26−1に許可信号ACK1’を送信する。監視制御部27は、インターフェース26−1に許可信号ACK1’を送信すると、インターフェース26−1が次にデータ転送を行う順序をインターフェース26−0よりも後として記憶する。
また、監視制御部27は、例えば、インターフェース26−1によるデータ転送の方が先であると判別した場合に、インターフェース26−0から処理要求信号REQ0を受信したときは、インターフェース26−1から処理要求信号REQ1を受信するまで、待機する。監視制御部27は、処理要求信号REQ1を受信すると、処理要求信号REQ1に対応した処理要求信号REQ1’をバッファ24に送信する。
バッファ24は、処理要求信号REQ1’に応答して許可信号ACK1を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK1を受信してインターフェース26−1に許可信号ACK1’を送信する。監視制御部27は、インターフェース26−1に許可信号ACK1’を送信すると、インターフェース26−1が次にデータ転送を行う順序をインターフェース26−0よりも後として記憶する。
そして、監視制御部27は、次にデータ転送を行う順序がインターフェース26−0になった後、つまり、インターフェース26−1に許可信号ACK1’を送信した後、処理要求信号REQ0に対応した処理要求信号REQ0’をバッファ24に送信する。
バッファ24は、処理要求信号REQ0’に応答して許可信号ACK0を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK0を受信してインターフェース26−0に許可信号ACK0’を送信する。監視制御部27は、インターフェース26−0に許可信号ACK0’を送信すると、インターフェース26−0が次にデータ転送を行う順序をインターフェース26−1よりも後として記憶する。
このようにして、監視制御部27は、インターフェース26−0,26−1間でデータ転送が交互に行われるように、許可信号ACK0’,ACK1’の送信タイミングを設定する。
次に本実施形態に係るフラッシュメモリシステム1の動作を説明する。
フラッシュメモリシステム1がホストシステム2に装着されると、フラッシュメモリシステム1は、外部バス31を介してホストシステム2に接続される。
ホストシステム2は、データをフラッシュメモリ10に書き込む場合、外部バス31を介してフラッシュメモリシステム1にアドレスを供給し、書き込むデータをフラッシュメモリシステム1に供給する。
フラッシュメモリシステム1は、供給されたデータを、ホストインターフェース21を介してコントローラ20の内部に取り込む。
マイクロプロセッサ22は、例えば、図5に示すように、バッファ24に3つのデータ保持部24A,24B,24Cを設定する。フラッシュメモリ10の1ページ当たりのバイト数が512バイトとすると、マイクロプロセッサ22は、3つのデータ保持部24A,24B,24Cに、それぞれ、512バイトの領域を割り当てる。
マイクロプロセッサ22は、ホストシステム2から供給されたデータを、割り当てた512バイトの領域に対応するように区分する。区分したデータが、図5に示すように、Page1〜Page5までのデータになったものとすると、まず、マイクロプロセッサ22は、図6に示すように、Page1,Page2,Page3のデータを、それぞれ、バッファ24のデータ保持部24A,24B,24Cに保持する。データ保持部24A,24B,24Cは、フラッシュメモリ10に書き込むデータを、フラッシュメモリ10への書き込み準備ができるまで一時的に保持する。
そして、フラッシュメモリインターフェース26とバッファ24とは、処理要求信号REQ0’,REQ1’、許可信号ACK0,ACK1を送受信する。この場合、データの送受信が行われるタイミングには、図7(a)〜(c)に示すように、3つのパターンが可能である。尚、パターン1〜3の関係は、インターフェース26−0,26−1を入れ替えると、逆の関係になる。
まず、パターン1は、図7(a)に示すように、先にデータ転送を行うべきインターフェース26−0が、インターフェース26−1よりも先に処理要求信号REQ0を監視制御部27に送信する場合である。
パターン1の場合、監視制御部27は、図7(a)に示すように、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ0,REQ1を、この順番で受信する。監視制御部27は、処理要求信号REQ0に対応する処理要求信号REQ0’をバッファ24に出力する。バッファ24は許可信号ACK0を監視制御部27に出力する。監視制御部27は、許可信号ACK0を受信して、許可信号ACK0に対応する許可信号ACK0’をインターフェース26−0に出力する。
監視制御部27は、処理要求信号REQ1に対応する処理要求信号REQ1’をバッファ24に出力する。バッファ24が処理要求信号REQ1’に応答して許可信号ACK1を監視制御部27に出力すると、監視制御部27は、許可信号ACK1に対応する許可信号ACK1’をインターフェース26−1に送信する。
パターン2は、図7(b)に示すように、後でデータ転送を行うべきインターフェース26−1が、インターフェース26−0よりも先に処理要求信号REQ1を監視制御部27に送信する場合である。
パターン2の場合、監視制御部27は、図7(b)に示すように、インターフェース26−1からの処理要求信号REQ1を先に受信しても、インターフェース26−0からの処理要求信号REQ0を受信するまで待機する。監視制御部27は、インターフェース26−0からの処理要求信号REQ0を受信すると、処理要求信号REQ0’をバッファ24に送信する。
バッファ24が処理要求信号REQ0’に応答して、監視制御部27に許可信号ACK0を送信すると、監視制御部27は、この許可信号ACK0を受信して、許可信号ACK0に対応する許可信号ACK0’をインターフェース26−0に出力する。
監視制御部27は、次に、処理要求信号REQ1’をバッファ24に送信する。バッファ24は、処理要求信号REQ1’に応答して、監視制御部27に許可信号ACK1を出力すると、監視制御部27は、許可信号ACK1に対応する許可信号ACK1’をインターフェース26−1に送信する。
このパターン2におけるフラッシュメモリ10へのデータの書き込みタイミングを図8に示す。
インターフェース26−0,26−1に接続されたフラッシュメモリ10は、図8(a)、(c)に示すように、時刻t10、t11(t10<t11)において、ビジー信号として、それぞれ、信号S12,信号S10をL(低)レベルからHレベル(高レベル)に立ち上げるものとする。尚、ビジー信号のLレベルは、処理中であることを示し、Hレベルは、待機中であることを示す。
信号S12(BUSY_CH1)がHレベルに立ち上がると、インターフェース26−1は、内部バス32を介してフラッシュメモリ10(チップ10−1)に、コマンド信号C、アドレス信号Aを、順次、出力する。
続いて、インターフェース26−1は、図8(d)の信号S13で示すように、処理要求信号REQ1をLレベルからHレベルに立ち上げる。しかし、監視制御部27は、信号S13(REQ1)がHレベルに立ち上がっても、このまま、処理要求信号REQ0が立ち上がるまで待機する。
一方、信号S10が立ち上がると、インターフェース26−0は、コマンド信号C、アドレス信号Aを、順次、フラッシュメモリ10(チップ10−0)に出力する。コマンド信号Cは、フラッシュメモリ10(チップ10−0)内のレジスタに書き込むデータを転送するコマンドである。続いて、インターフェース26−0は、図8(b)の信号S11で示すように、処理要求信号REQ0をLレベルからHレベルに立ち上げる。
監視制御部27は、信号S11(REQ0)がHレベルに立ち上がると、図8(e)の信号S14で示すように、処理要求信号REQ0’をLレベルからHレベルに立ち上げる。
処理要求信号REQ0’がHレベルに立ち上がると、バッファ24は、図8(f)の信号S15で示すように、許可信号ACK0をLレベルからHレベルに立ち上げる。
信号S15(ACK0)がHレベルに立ち上がると、監視制御部27は、図8(g)の信号S16で示すように、許可信号ACK0’をLレベルからHレベルに立ち上げる。
信号S16(ACK0’)がHレベルに立ち上がると、インターフェース26−0は、バッファ24が保持しているデータDをフラッシュメモリ10に転送する。
また、監視制御部27は、信号S16(ACK0’)をHレベルに立ち上げると、図8(h)の信号S17で示すように、処理要求信号REQ1’をLレベルからHレベルに立ち上げる。
信号S17(REQ1’)がHレベルに立ち上がると、バッファ24は、応答して、図8(i)の信号S18で示すように、許可信号ACK1をLレベルからHレベルに立ち上げる。
信号S18(ACK1)がHレベルに立ち上がると、監視制御部27は、図8(j)の信号S19で示すように、許可信号ACK1’をLレベルからHレベルに立ち上げる。
信号S16(ACK1’)がHレベルに立ち上がると、インターフェース26−1は、バッファ24が保持しているデータDをフラッシュメモリ10に転送する。
フラッシュメモリ10のチップ10−0へのデータDの転送が終了すると、インターフェース26−0は、内部バス32を介してフラッシュメモリ10(チップ10−0)に、コマンド信号C’を送信する。
また、フラッシュメモリ10のチップ10−1へのデータDの転送が終了すると、インターフェース26−1は、内部バス32を介してフラッシュメモリ10(チップ10−1)に、コマンド信号C’を送信する。コマンド信号C’は、フラッシュメモリ10内のレジスタに保持されたデータをフラッシュメモリ10内のメモリセルアレイに複写するコマンドである。
このようなタイミングで、パターン2におけるデータの書き込み処理が行われる。
パターン3は、図7(c)に示すように、データ転送を行ったインターフェース26−0が、インターフェース26−1よりも先に、再度、処理要求信号REQ0を監視制御部27に送信する場合である。
パターン3の場合、監視制御部27は、図7(c)に示すように、処理要求信号REQ0を受信すると、処理要求信号REQ0’をバッファ24に送信する。バッファ24は、処理要求信号REQ0’に応答して監視制御部27に許可信号ACK0を送信する。
監視制御部27は、許可信号ACK0を受信すると、許可信号ACK0’をインターフェース26−0に送信する。この場合、監視制御部27は、次にデータ転送を行うべきものがインターフェース26−1であることを判別する。監視制御部27は、再度、インターフェース26−0から、処理要求信号REQ0を受信しても、処理要求信号REQ1を受信するまで待機する。
監視制御部27は、インターフェース26−1からの処理要求信号REQ1を受信すると、バッファ24に処理要求信号REQ1’を送信する。
バッファ24は、処理要求信号REQ1’に応答して、監視制御部27に許可信号ACK1を送信すると、監視制御部27は、許可信号ACK1を受信して、許可信号ACK1に対応する許可信号ACK1’をインターフェース26−1に出力する。
次に、監視制御部27は、バッファ24に処理要求信号REQ0’を送信する。バッファ24は、処理要求信号REQ0’に応答して監視制御部27に許可信号ACK0を送信すると、監視制御部27は、この許可信号ACK0を受信して、許可信号ACK0に対応する許可信号ACK0’をインターフェース26−0に送信する。
このようにして、監視制御部27は、許可信号ACK0’,ACK1’を交互にインターフェース26−0,26−1に送信するようにタイミングを制御する。
例えば、図5に示すように、先にデータ転送を行うべきインターフェース26−0が、インターフェース26−1よりも先に処理要求信号REQ0を監視制御部27に送信した場合、このパターンは、パターン1に該当する。
この場合、監視制御部27は、図7(a)に示すパターン1に従って、インターフェース26−0に許可信号ACK0’を送信し、インターフェース26−0は、許可信号ACK0’を受信して、チップ10−0へのPage1のデータの転送を開始する。監視制御部27は、許可信号ACK0’を送信した後に、許可信号ACK1’をインターフェース26−1に送信する。インターフェース26−1は、許可信号ACK1’を受信して、チップ10−1へのPage2のデータの転送を開始する。
次に、図9に示すように、後にデータ転送を行うべきインターフェース26−1が、インターフェース26−0よりも先に、処理要求信号REQ1を監視制御部27に送信した場合、このパターンは、パターン2に該当する。
この場合、監視制御部27は、図7(b)に示すパターン2に従って、インターフェース26−0に許可信号ACK0’を送信してから、インターフェース26−1に、許可信号ACK1’を送信する。インターフェース26−0は、チップ10−0にPage1のデータの転送を開始し、この転送が開始された後に、インターフェース26−1は、チップ10−1にPage2のデータの転送を開始する。
次に、図10に示すように、転送したPage1のデータがチップ10−0内のレジスタからメモリセルアレイに複写され、Page1のデータを転送したインターフェース26−0が、インターフェース26−1よりも先に、再度、処理要求信号REQ0を監視制御部27に送信した場合、このパターンは、パターン3に該当する。
この場合、監視制御部27は、図7(c)に示すパターン3に従って、インターフェース26−1に許可信号ACK1’を送信してから、インターフェース26−0に、許可信号ACK0’を送信する。インターフェース26−1は、チップ10−1にPage2のデータの転送を開始し、この転送が開始された後に、インターフェース26−0は、チップ10−0にPage3のデータの転送を開始する。
このようにして、監視制御部27が許可信号ACK0’,ACK1’を交互にインターフェース26−0,26−1に送信すると、データ保持部24A〜24Cに取り込まれたデータは、結果として、以下のように取り込まれた順に、フラッシュメモリ10のチップ10−0,10−1に交互に割り当てられる。
ステップ1:データ保持部24Aのデータ→チップ10−0
ステップ2:データ保持部24Bのデータ→チップ10−1
ステップ3:データ保持部24Cのデータ→チップ10−0
ステップ4:データ保持部24Aのデータ→チップ10−1
ステップ5:データ保持部24Bのデータ→チップ10−0
・・・
次に、フラッシュメモリ10からのデータの読み出し処理について説明する。
フラッシュメモリ10からのデータの読み出し処理についても、監視制御部27は、データの書き込み処理と同じように、図7(a)〜(c)に示すパターン1〜3に従って、処理要求信号と許可信号との送信タイミングを調整する。
パターン2におけるフラッシュメモリ10からのデータの読み出しタイミングを図11に示す。
インターフェース26−0,26−1は、それぞれ、コマンド信号C、アドレス信号Aを、順次、フラッシュメモリ10に出力する。コマンド信号Cは、フラッシュメモリ10から、データを読み出すコマンドである。
フラッシュメモリ10は、図11(a)、(c)に示すように、時刻t20において、ビジー信号として、それぞれ、信号S22(BUSY_CH1),信号S20(BUSY_CH0)をHレベルからLレベルに立ち下げる。尚、データの読み出し時においても、ビジー信号のLレベルは、処理中であることを示し、Hレベルは、待機中であることを示す。
図11(c)に示すように、フラッシュメモリ10は、信号S22(BUSY_CH1)をHレベルに立ち上げ、インターフェース26−1は、図11(d)の信号S23で示すように、処理要求信号REQ1をLレベルからHレベルに立ち上げる。しかし、監視制御部27は、信号S23(REQ1)がHレベルに立ち上がっても、このまま、処理要求信号REQ0が立ち上がるまで待機する。
時間が経過して、図11(a)に示すように、フラッシュメモリ10が信号S20(BUSY_CH0)をHレベルに立ち上げると、図11(b)の信号S21で示すように、インターフェース26−0は、処理要求信号REQ0をHレベルに立ち上げる。
信号S21(REQ0)が立ち上がると、監視制御部27は、図11(e)の信号S24で示すように、処理要求信号REQ0’をLレベルからHレベルに立ち上げる。
信号S24(REQ0’)がHレベルに立ち上がると、図11(f)の信号S25で示すように、バッファ24は、許可信号ACK0をLレベルからHレベルに立ち上げる。
信号S25(ACK0)がHレベルに立ち上がると、図11(g)の信号S26で示すように、監視制御部27は、許可信号ACK0’をLレベルからHレベルに立ち上げる。
信号S26(ACK0’)がHレベルに立ち上がると、インターフェース26−0は、時刻t21において、フラッシュメモリ10のチップ10−0のデータDをバッファ24に転送する。
一方、監視制御部27は、信号S26(ACK0’)をHレベルに立ち上げると、図11(h)の信号S27で示すように、処理要求信号REQ1’をLレベルからHレベルに立ち上げる。
信号S27(REQ1’)がHレベルに立ち上がると、バッファ24は、図11(i)の信号S28で示すように、許可信号ACK1をLレベルからHレベルに立ち上げる。
信号S28(ACK1)がHレベルに立ち上がると、監視制御部27は、図11(j)の信号S29で示すように、許可信号ACK1’をLレベルからHレベルに立ち上げる。
信号S29(ACK1’)がHレベルに立ち上がると、インターフェース26−1は、時刻t22(t21<t22)において、フラッシュメモリ10のチップ10−1のデータDをバッファ24に転送する。このようなタイミングで、パターン2におけるデータの読み出し処理が行われる。
このようにして、監視制御部27は、許可信号ACK0’,ACK1’を交互にインターフェース26−0,26−1に送信する。そして、監視制御部27は、最初にフラッシュメモリ10のチップ10−0のデータをバッファ24のデータ保持部24Aに割り当てるとすると、結果として、チップ10−0,10ー1のデータは、以下のようにデータ保持部24A〜24Cに割り当てられる。
ステップ1:チップ10−0のデータ→データ保持部24A
ステップ2:チップ10−1のデータ→データ保持部24B
ステップ3:チップ10−0のデータ→データ保持部24C
ステップ4:チップ10−1のデータ→データ保持部24A
ステップ5:チップ10−0のデータ→データ保持部24B
・・・
以上説明したように、本実施形態によれば、監視制御部27が、インターフェース26−0,26−1からの処理要求信号REQ0,REQ1を受け付けると、処理要求信号REQ0’,REQ1’が交互にバッファ24に送信されるようにタイミングを調整するようにした。従って、フラッシュメモリにおける処理順序に偏りが生じるのを回避することができる。
尚、本発明を実施するにあたっては、種々の形態が考えられ、上記実施の形態に限られるものではない。
例えば、上記実施の形態では、フラッシュメモリ10に対するインターフェース26−0,26−1を、独立した2系統のバスで構成した場合について説明した。しかし、系統数は、特に限定されるものではなく、3系統以上のバスで構成されてもよい。
3系統以上のインターフェースを備えた場合、監視制御部27は、バッファ24と各チップとの間で行われるデータ転送の順序を判別し、各インターフェースに、順番に許可信号を送信する。そして、監視制御部27は、フラッシュメモリ10との間でデータ転送を行ったインターフェースが次にデータ転送を行うべき順序を最後尾とする。
また、監視制御部27は、フラグを用いて、許可信号ACK0’,ACK1’の送信タイミングを制御するようにしてもよい。例えば、フラッシュメモリインターフェース26内を上記実施形態のように2系統とした場合、インターフェース26−0,26−1のうちのフラグ値に対応するものに、先に許可信号を送信する。
即ち、フラグ値が0の場合に、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ0,REQ1が順次、送信されれば、監視制御部27は、それぞれ、インターフェース26−0,26−1に、許可信号ACK0’,ACK1’を、順に送信する。
また、フラグ値0の場合に、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ1,REQ0が順次、送信されても、監視制御部27は、それぞれ、インターフェース26−0,26−1に、許可信号ACK0’,ACK1’の順に送信する。このようにしても、データ転送を交互に行わせるように制御することができる。
本発明の実施形態に係るフラッシュメモリシステムの構成を示すブロック図である。 図1のフラッシュメモリのメモリセルアレイの構成を示す説明図である。 図1のフラッシュメモリインターフェースとフラッシュメモリとの主要構成を示すブロック図である。 図1のバッファとフラッシュメモリインターフェース(監視制御部、インターフェース)との間で送受信される信号を示す説明図である。 ホストシステムが書き込み処理時にデータをフラッシュメモリに供給する場合の説明図である。 書き込み処理を行う場合に、バッファが、ホストシステムから供給されたデータをデータ保持部に保持した場合の説明図である。 フラッシュメモリインターフェースの動作パターンを示す説明図であり、(a)〜(c)は、それぞれ、パターン1〜3を示す。 図7(b)に示すパターン2の場合における書き込み処理の内容を示すタイミングチャートである。 図7(b)のパターン2の具体例を示す説明図である。 図7(c)のパターン3の具体例を示す説明図である。 図7(b)のパターン2の場合における読み出し処理の内容を示すタイミングチャートである。
符号の説明
1 フラッシュメモリシステム
2 ホストシステム
10 フラッシュメモリ
10−0,10−1 チップ
20 コントローラ
24 バッファ
26 フラッシュメモリインターフェース
26−0,26−1 インターフェース
27 監視制御部

Claims (6)

  1. データを記憶する複数のフラッシュメモリとの間でデータ転送を行うメモリコントローラにおいて、
    前記複数のフラッシュメモリとの間でデータ転送を行うためのデータを記憶するデータ記憶部と、
    前記データ記憶部と前記各フラッシュメモリとの間に、前記各フラッシュメモリに対応して備えられ、データ転送を要求する処理要求信号を送信し、データ転送を許可する許可信号を受信して、対応するフラッシュメモリと前記データ記憶部との間でデータ転送を行う複数のデータ転送部と、
    前記複数のデータ転送部から送信された複数の処理要求信号を受信して、前記各データ転送部によるデータ転送が順番に行われるように送信タイミングを設定した許可信号を、前記各データ転送部に送信する転送制御部と、を備えた、
    ことを特徴とするメモリコントローラ。
  2. 前記各フラッシュメモリは、ページ単位でデータの入出力が行われるものであって、
    前記データ記憶部は、前記転送対象のデータを保持するものとして、前記各フラッシュメモリの各ページに対応する量のデータ保持が可能な複数のデータ保持部が備えられたものであり、
    前記各データ保持部は、データが供給されたものから順に、データが排出されるように構成されたものである、
    ことを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記転送制御部は、前記データ記憶部と前記各フラッシュメモリとの間で行われるデータ転送の順序を判別し、前記順序が後と判別したデータ転送部からの処理要求信号を、前記順序が先と判別したデータ転送部からの処理要求信号よりも先に受信したときは、前記順序が先と判別したデータ転送部に許可信号を送信して前記対応するフラッシュメモリとの間でデータ転送が行われてから、前記順序が後と判別したデータ転送部に許可信号を送信するように、前記各データ転送部への許可信号の送信タイミングを設定する、
    ことを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 前記転送制御部は、前記フラッシュメモリとの間でデータ転送を行ったデータ転送部が次にデータ転送を行うべき順序を最後尾とする、
    ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。
  5. データを記憶する複数のフラッシュメモリと、
    請求項1乃至4のいずれか1項に記載のメモリコントローラと、を備えた、
    ことを特徴とするフラッシュメモリシステム。
  6. データを記憶する複数のフラッシュメモリとの間でデータ転送を行うために、前記各フラッシュメモリに対応して備えられた複数のデータ転送部から、データ転送を要求する処理要求信号を受信するステップと、
    前記各フラッシュメモリとのデータ転送が順番に行われるように、前記データ転送を許可するための許可信号を送信する送信タイミングを設定するステップと、
    前記送信タイミングに従って、各データ転送部に前記許可信号を送信するステップと、を備えた、
    ことを特徴とするフラッシュメモリのデータ転送方法。
JP2004150628A 2004-05-20 2004-05-20 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法 Expired - Lifetime JP4273038B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004150628A JP4273038B2 (ja) 2004-05-20 2004-05-20 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004150628A JP4273038B2 (ja) 2004-05-20 2004-05-20 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法

Publications (2)

Publication Number Publication Date
JP2005332249A true JP2005332249A (ja) 2005-12-02
JP4273038B2 JP4273038B2 (ja) 2009-06-03

Family

ID=35486862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004150628A Expired - Lifetime JP4273038B2 (ja) 2004-05-20 2004-05-20 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法

Country Status (1)

Country Link
JP (1) JP4273038B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334863A (ja) * 2006-06-12 2007-12-27 Samsung Electronics Co Ltd フラッシュメモリシステム、そのプログラムのためのホストシステム及びプログラム方法
JP2008052728A (ja) * 2006-08-23 2008-03-06 Samsung Electronics Co Ltd フラッシュメモリシステム及びそのプログラム方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334863A (ja) * 2006-06-12 2007-12-27 Samsung Electronics Co Ltd フラッシュメモリシステム、そのプログラムのためのホストシステム及びプログラム方法
JP2008052728A (ja) * 2006-08-23 2008-03-06 Samsung Electronics Co Ltd フラッシュメモリシステム及びそのプログラム方法

Also Published As

Publication number Publication date
JP4273038B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
US8904090B2 (en) Non-volatile memory device, devices having the same, and method of operating the same
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR20190032815A (ko) 메모리 시스템 및 그것의 동작 방법
JP2008152464A (ja) 記憶装置
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
JP2006294218A (ja) 不揮発性メモリ装置及びそのマルチページコピーバック方法
JP2008041098A (ja) メモリーカード及び該データ格納方法
KR20190087072A (ko) 데이터 저장 장치, 그것의 동작 방법 및 비휘발성 메모리 장치
KR20160098839A (ko) 메시지 전송 플로우 관리 방법 및 이를 적용하는 스토리지 디바이스
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN111488118B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
JP2006338083A (ja) メモリコントローラ
JP4273038B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP4910426B2 (ja) 不揮発性記憶装置の書込み方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090302

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4273038

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

EXPY Cancellation because of completion of term