(57)【要約】【課題】不揮発性半導体メモリに対して、上位装置のデータ書き込み単位が小さい場合においても書き込み性能を向上する。【解決手段】ホスト機器２０に接続され、第１のデータ書き込み単位を有する受信データを受信するホストインタフェース６と、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリ３に接続され，第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェース５と、メモリインタフェース５を介して不揮発性半導体メモリ３の一時書き込みブロック１２に受信データを書き込み、ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、対応する書き込みデータを一時書き込みブロック１２から読み出し、一時書き込みブロック１２とは別のターゲットブロック１１に書き込む中央演算処理装置８とを備えるメモリコントローラ４。【選択図】図１
2006092169.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に接続され、前記ホスト機器から第１のデータ書き込み単位を有する受信データを受信するホストインタフェースと、
前記第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリに接続され、前記不揮発性半導体メモリに対して前記第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェースと、
前記メモリインタフェースを介して前記不揮発性半導体メモリの一時書き込みブロックに前記受信データを前記書き込みデータとして書き込み、前記ホストインタフェースが受信した複数の受信データが前記第２のデータ書き込み単位のエリアデータに達した際に、前記エリアデータに対応する書き込みデータを前記一時書き込みブロックから読み出し、読み出された前記書き込みデータを含む前記エリアデータを前記一時書き込みブロックとは別のターゲットブロックに書き込む中央演算処理装置
とを備えることを特徴とするメモリコントローラ。
【請求項２】
ホスト機器に接続され、前記ホスト機器から第１のデータ書き込み単位を有する受信データを受信するホストインタフェースと、
前記第１のデータ書き込み単位を有する受信データを記憶し、かつランダムアクセス可能な不揮発性キャッシュメモリと、
前記第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリに接続されるメモリインタフェースと、
前記ホストインタフェースを介して前記不揮発性キャッシュメモリに前記受信データを書き込みデータとして書き込み、前記ホストインタフェースが受信した複数の受信データが前記第２のデータ書き込み単位のエリアデータに達した際に、前記エリアデータに対応する書き込みデータを前記不揮発性キャッシュメモリから読み出し、読み出された前記書き込みデータを含む前記エリアデータを、前記メモリインタフェースを介して、ページ単位で前記不揮発性半導体メモリのターゲットブロックに書き込む中央演算処理装置
とを備えることを特徴とするメモリコントローラ。
【請求項３】
第１のデータ書き込み単位を有する送信データを送信するホスト機器に接続されるメモリ装置であって、
一時書き込みブロックと、前記一時書き込みブロックとは別のターゲットブロックとを備え、前記第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリと、
前記ホスト機器に接続され，前記第１のデータ書き込み単位を有する受信データを受信するホストインタフェースと、前記不揮発性半導体メモリに接続され，前記不揮発性半導体メモリに対して前記第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェースと、前記メモリインタフェースを介して前記不揮発性半導体メモリの前記一時書き込みブロックに前記受信データを前記書き込みデータとして書き込み，前記ホストインタフェースが受信した複数の受信データが前記第２のデータ書き込み単位のエリアデータに達した際に，前記エリアデータに対応する書き込みデータを前記一時書き込みブロックから読み出し，読み出された前記書き込みデータを含む前記エリアデータを前記ターゲットブロックに書き込む中央演算処理装置とを備えるメモリコントローラ
とを備えることを特徴とするメモリ装置。
【請求項４】
ホストインタフェースにおいて、ホスト機器から第１のデータ書き込み単位を有する受信データを受信するステップと、
メモリインタフェースにおいて、前記第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリへ、前記第１のデータ書き込み単位を有する書き込みデータを送信するステップと、
前記メモリインタフェースを介して前記不揮発性半導体メモリの一時書き込みブロックに前記受信データを前記書き込みデータとして書き込むステップと、
前記ホストインタフェースが受信した複数の受信データが前記第２のデータ書き込み単位のエリアデータに達した際に、該エリアデータに対応する書き込みデータを前記一時書き込みブロックから読み出すステップと、
読み出された前記書き込みデータを含む前記エリアデータを前記不揮発性半導体メモリ内の前記一時書き込みブロックとは別のターゲットブロックに書き込むステップ
とを備えることを特徴とするメモリコントローラの制御方法。
【請求項５】
ホストインタフェースにおいて、ホスト機器から第１のデータ書き込み単位を有する受信データを受信するステップと、
メモリインタフェースにおいて、前記第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリへ書き込みデータを送信するステップと、
前記ホストインタフェースを介してメモリコントローラ内の不揮発性キャッシュメモリに前記受信データを前記書き込みデータとして書き込むステップと、
前記ホストインタフェースが受信した複数の受信データが前記第２のデータ書き込み単位のエリアデータに達した際に、該エリアデータに対応する書き込みデータを前記不揮発性キャッシュメモリから読み出すステップと、
読み出された前記書き込みデータを含む前記エリアデータを、前記メモリインタフェースを介して、前記の不揮発性半導体メモリのターゲットブロックに書き込むステップ
とを備えることを特徴とするメモリコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びその制御方法に関し、特にＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置を内蔵したメモリカード或いはメモリ装置に関する。
【背景技術】
【０００２】
フラッシュメモリのようなメモリ部品には、それにデータを書き込む場合、一度に書き込めるデータ量が固定されているものがある。また、ファイルシステムを持つコンピュータのような上位装置では、書き込むデータ量の単位がメモリ部品とは別に決まっている。例えば、メモリ部品の書き込み単位が２０４８バイト、上位装置の書き込み単位が５１２バイトのように、メモリ部品側の書き込み単位の方が上位装置(メモリカードを利用する装置：ホスト)の書き込み単位より大きい場合がある。
【０００３】
このように大きい書き込み単位のメモリ部品を内蔵したメモリカード等のメモリ装置は、上位装置からの書き込み指示に対応するため、小さい単位のデータ書き込みでも処理できなければならない。
【０００４】
上位装置のデータ書き込み単位が小さく(例えば５１２バイト)、不揮発性メモリ部品のデータ書き込み可能単位が大きい(例えば２０４８バイト)状態において、上位装置から不揮発性メモリ部品に小さい単位のデータＤ１を書き込み、そのデータ書き込みが完了した後、データＤ１が書き込まれたページの次のエリア位置に小さい単位のデータＤ２を書く場合を考える。フラッシュメモリには、ページを分割してデータを書き込むことが許されていないものがある。この場合、そのフラッシュメモリは、データＤ１を含むブロックからデータＤ１以外のデータを新たなブロックにコピーし、その新たなブロックにデータＤ１，Ｄ２を書き込まなければならない。以下では、便宜上、このような処理を「巻き添え引越し」と呼ぶ。この「巻き添え引越し」は書き換えられないデータのコピー動作を伴うため、「巻き添え引越し」が多発すると、メモリ装置の書き込み性能を下げてしまう。したがって、不揮発性メモリ部品として一般的に使われているフラッシュメモリには、ライト処理に長い時間が掛かるという問題点があった。
【０００５】
なお、特許文献１には、メモリコントローラの制御により、ホストからの書き込みデータを、一旦不揮発性メモリに取り込んで処理を行ない、停電等による処理中断後の装置立ち上げの際は、キャッシュメモリに書き戻す、高速書き込み方式が開示されている。
【特許文献１】特開平５−１５１０９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、大きなデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置を内蔵したメモリカード或いはメモリ装置において、上位装置のデータ書き込み単位が小さい場合においても書き込み性能を向上できるメモリコントローラ及びその制御方法及びメモリ装置を提供する。
【課題を解決するための手段】
【０００７】
本発明の実施の形態の第１の特徴は、（イ）ホスト機器に接続され、ホスト機器から第１のデータ書き込み単位を有する受信データを受信するホストインタフェースと、（ロ）第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリに接続され、不揮発性半導体メモリに対して第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェースと、（ハ）メモリインタフェースを介して不揮発性半導体メモリの一時書き込みブロックに受信データを書き込みデータとして書き込み、ホストインタフェースが受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、エリアデータに対応する書き込みデータを一時書き込みブロックから読み出し、読み出された書き込みデータを含むエリアデータを一時書き込みブロックとは別のターゲットブロックに書き込む中央演算処理装置（ＣＰＵ）とを備えるメモリコントローラであることを要旨とする。
【０００８】
本発明の実施の形態の第２の特徴は、（イ）ホスト機器に接続され、ホスト機器から第１のデータ書き込み単位を有する受信データを受信するホストインタフェースと、（ロ）第１のデータ書き込み単位を有する受信データを記憶し、かつランダムアクセス可能な不揮発性キャッシュメモリと、（ハ）第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリに接続されるメモリインタフェースと、（ニ）ホストインタフェースを介して不揮発性キャッシュメモリに受信データを書き込みデータとして書き込み、ホストインタフェースが受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、エリアデータに対応する書き込みデータを不揮発性キャッシュメモリから読み出し、読み出された書き込みデータを含むエリアデータをメモリインタフェースを介して、不揮発性半導体メモリのターゲットブロックに書き込む中央演算処理装置とを備えるメモリコントローラであることを要旨とする。
【０００９】
本発明の実施の形態の第３の特徴は、（イ）第１のデータ書き込み単位を有する送信データを送信するホスト機器に接続されるメモリ装置であって、（ロ）一時書き込みブロックと、一時書き込みブロックとは別のターゲットブロックとを備え、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリと、（ハ）ホスト機器に接続され，第１のデータ書き込み単位を有する受信データを受信するホストインタフェースと、不揮発性半導体メモリに接続され，不揮発性半導体メモリに対して第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェースと、メモリインタフェースを介して不揮発性半導体メモリの一時書き込みブロックに受信データを書き込みデータとして書き込み，ホストインタフェースが受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に，エリアデータに対応する書き込みデータを一時書き込みブロックから読み出し，読み出された書き込みデータを含むエリアデータをターゲットブロックに書き込む中央演算処理装置とを備えるメモリコントローラとを備えるメモリ装置であることを要旨とする。
【００１０】
本発明の実施の形態の第４の特徴は、（イ）ホストインタフェースにおいて、ホスト機器から第１のデータ書き込み単位を有する受信データを受信するステップと、（ロ）メモリインタフェースにおいて、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリへ、第１のデータ書き込み単位を有する書き込みデータを送信するステップと、（ハ）メモリインタフェースを介して不揮発性半導体メモリの一時書き込みブロックに受信データを書き込みデータとして書き込むステップと、（ニ）ホストインタフェースが受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、エリアデータに対応する書き込みデータを一時書き込みブロックから読み出すステップと、（ホ）読み出された書き込みデータを含むエリアデータを不揮発性半導体メモリ内の一時書き込みブロックとは別のターゲットブロックに書き込むステップとを備えるメモリコントローラの制御方法であることを要旨とする。
【００１１】
本発明の実施の形態の第５の特徴は、（イ）ホストインタフェースにおいて、ホスト機器から第１のデータ書き込み単位を有する受信データを受信するステップと、（ロ）メモリインタフェースにおいて、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有する不揮発性半導体メモリへ書き込みデータを送信するステップと、（ハ）ホストインタフェースを介してメモリコントローラ内の不揮発性キャッシュメモリに受信データを書き込みデータとして書き込むステップと、（ニ）ホストインタフェースが受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、エリアデータに対応する書き込みデータを不揮発性キャッシュメモリから読み出すステップと、（ホ）読み出された書き込みデータを含むエリアデータを、メモリインタフェースを介して、不揮発性半導体メモリのターゲットブロックに書き込むステップとを備えるメモリコントローラの制御方法であることを要旨とする。
【発明の効果】
【００１２】
本発明により、大きなデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置を内蔵したメモリカード或いはメモリ装置において、上位装置のデータ書き込み単位が小さい場合においても書き込み性能を向上できるメモリコントローラ及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１３】
次に、図面を参照して、本発明の第１及び第３の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第１及び第２の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１４】
本発明の第１乃至第３の実施の形態に係るメモリコントローラ及びその制御方法においては、メモリカード等のメモリ装置内において、上位装置からの小さい単位のデータの書き込み指示に対し、データを本来書くべき不揮発性メモリ部品のアドレスに直ぐには書き込まず、不揮発性メモリの他の領域、或いはメモリコントローラ内に配置した不揮発性キャッシュメモリに一時的に書き込んでおき、上位装置から連続的なアドレスへ書き込み指示が送られた場合に、不揮発性メモリ部品の書き込みデータ単位に達したら、不揮発性メモリの他の領域、或いはメモリコントローラ内に配置した不揮発性キャッシュメモリに一時的に書き込んであったデータを本来書き込むべき不揮発性メモリ部品の領域へ書き込む。この処理により、「巻き添え引越し処理」を減らし、メモリ装置の書き込み性能を向上する。
【００１５】
[第１の実施の形態]
本発明の第１の実施の形態に係るメモリコントローラは、図１に示すように、ホスト機器２０に接続され、ホスト機器２０から第１のデータ書き込み単位を有する受信データを受信するホストインタフェース（Ｉ／Ｆ）６と、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３に接続され、ＮＡＮＤ型フラッシュメモリ３に対して第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェース（Ｉ／Ｆ）５と、メモリインタフェース５を介してＮＡＮＤ型フラッシュメモリ３の一時書き込みブロックに受信データを書き込みデータとして書き込み、ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、そのエリアデータに対応する書き込みデータを一時書き込みブロック（Ｂブロック）１２から読み出し、読み出された書き込みデータを含むエリアデータを一時書き込みブロック（Ｂブロック）１２とは別のターゲットブロック（Ａブロック）１１に書き込む中央演算処理装置（ＣＰＵ）８とを備える。ＣＰＵ８は、ＮＡＮＤ型フラッシュメモリ３の管理ブロック１３に記憶するメモリ管理情報を読み出して、書き込みデータのアドレスを決定する。或いは又、後述するように、一時書き込みブロック（Ｂブロック）１２内のページアドレス情報と、ターゲットブロック（Ａブロック）１１内の書き込み先のページアドレス情報をＮＡＮＤ型フラッシュメモリ３内の所定の記憶領域に記憶しても良い。
【００１６】
（メモリ装置）
本発明の第１の実施の形態に係るメモリコントローラ４のメモリカードへの適用例は、図１に示す様に表される。図１は、ホスト機器２０とメモリカード１を含む構成を示すブロック図である。ホスト機器２０は、接続されるメモリカード１に対してアクセスを行うためのハードウェア及びソフトウェア（システム）を備えている。
【００１７】
メモリカード１は、ホスト機器２０に接続されたときに電源供給を受けて動作し、ホスト機器２０からのアクセスに応じた処理を行う。このメモリカード１は、本発明の第１の実施の形態に係るメモリコントローラ４を備える。
【００１８】
本発明の第１の実施の形態に係るメモリコントローラ４をメモリカード１等のメモリ装置へ適用した構成例は、図１を参照して説明すると、第１のデータ書き込み単位を有する送信データを送信するホスト機器２０に接続されるメモリ装置であって、一時書き込みブロック（Ｂブロック）１２と、一時書き込みブロック（Ｂブロック）１２とは別のターゲットブロック（Ａブロック）１１とを備え、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３等の不揮発性半導体メモリと、ホスト機器２０に接続され，第１のデータ書き込み単位を有する受信データを受信するホストインタフェース６と、ＮＡＮＤ型フラッシュメモリ３に接続され，ＮＡＮＤ型フラッシュメモリ３に対して第１のデータ書き込み単位を有する書き込みデータを送信するメモリインタフェース５と、メモリインタフェース５を介してＮＡＮＤ型フラッシュメモリ３の一時書き込みブロック（Ｂブロック）１２に受信データを書き込みデータとして書き込み，ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に，エリアデータに対応する書き込みデータを一時書き込みブロック（Ｂブロック）１２から読み出し，読み出された書き込みデータを含むエリアデータをターゲットブロック（Ａブロック）１１に書き込む中央演算処理装置８とを備えるメモリコントローラ４とを備える。
【００１９】
ＮＡＮＤ型フラッシュメモリ３は、例えば、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が２５６ｋバイトに定められている不揮発性メモリである。このＮＡＮＤ型フラッシュメモリ３は、例えば０．０９μｍプロセス技術を用いて製作される。即ち、ＮＡＮＤ型フラッシュメモリ３のデザインルールは、０．１μｍ未満となっている。また、メモリカード１を実用上有効な製品とするためには、ＮＡＮＤ型フラッシュメモリ３の記憶容量は１Ｇバイト以上であることが望ましい。
【００２０】
（メモリコントローラ）
本発明の第１の実施の形態に係るメモリコントローラ４は、ＣＰＵ８及びＲＯＭ９の他に、メモリインタフェース５、ホストインタフェース６、バッファメモリ７、及びＲＡＭ１０を搭載している。このメモリコントローラ４は、ＮＡＮＤ型フラッシュメモリ３内部の物理状態（何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか）を管理するものとして構築されている。
【００２１】
メモリＩ／Ｆ５は、メモリコントローラ４とＮＡＮＤ型フラッシュメモリ３との間のインタフェース処理を行うものである。ホストＩ／Ｆ６は、メモリコントローラ４とホスト機器２０との間のインタフェース処理を行うものである。
【００２２】
バッファメモリ７は、ホスト機器２０から送られてくるデータをＮＡＮＤ型フラッシュメモリ３へ書き込む際に、一定量のデータ（例えば１ページ分）を一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ３から読み出されるデータをホスト機器２０へ送り出す際に、一定量のデータを一時的に記憶したりするものである。
【００２３】
ＣＰＵ８は、メモリカード１全体の動作を制御する。ＣＰＵ８は、例えば、メモリカード１が電源供給を受けた際に、ＲＯＭ９の中に格納されている制御プログラム等のファームウェアに従って所定の処理を実行することにより、各種のテーブルをＲＡＭ１０上で作成したり、ホスト機器２０から書き込みコマンド，読み出しコマンド，消去コマンドを受けてＮＡＮＤ型フラッシュメモリ３のＮＡＮＤメモリセル領域上の該当領域に対するアクセスを実行したり、バッファメモリ７を通じたデータ処理を制御したりする。
【００２４】
ＲＯＭ９は、ＣＰＵ８により使用される制御プログラム等を格納するメモリである。
【００２５】
ＲＡＭ１０は、ＣＰＵ８の作業エリアとして使用され、各種のテーブルを記憶するメモリである。
【００２６】
（ＮＡＮＤ型フラッシュメモリ）
本発明の第１の実施の形態に適用するＮＡＮＤ型フラッシュメモリ３の構造は、図１内に示すように、連続書き込みデータをメモリインタフェース５を介して一時的に記憶する一時書き込みブロック（Ｂブロック）１２と、一時書き込みブロック（Ｂブロック）１２からのエリアデータをページ単位で書き込むターゲットブロック（Ａブロック）１１と、メモリ管理情報を記憶する管理ブロック１３とを備える。１４，１５は空ページを表示している。
【００２７】
図２は、フラッシュメモリ（即ち、メモリカード１内のＮＡＮＤ型フラッシュメモリ３）のデータ配置を示している。フラッシュメモリ３の各ページは、２１１２バイト（５１２バイト分のデータ記憶部×４＋１０バイト分の冗長部×４＋２４バイト分の管理データ記憶部）を有しており、１２８ページ分が一つの消去単位（即ち、２５６ｋバイト＋８ｋバイト）となる。なお、以下の説明においては、便宜上、このフラッシュメモリの消去単位を２５６ｋバイトと呼ぶ。ＮＡＮＤ型フラッシュメモリ３は、フラッシュメモリへのデータ入出力を行うためのデータレジスタ１６を備えている。データ書き込みなどの際には、データレジスタ１６は、フラッシュメモリに対するデータ入出力処理を自身の記憶容量に相当する１ページ分の単位で実行する。データレジスタ１６の記憶容量は、２１１２バイト（２０４８バイト＋６４バイト）である。このデータレジスタ１６の記憶容量がフラッシュメモリのデータ書き込み単位（第２のデータ書き込み単位）に対応する。このＮＡＮＤ型フラッシュメモリ３のデータ書き込み単位に対し、ホスト機器２０のデータ書き込み単位（第１のデータ書き込み単位）は、５１２バイトである。つまり、ＮＡＮＤ型フラッシュメモリ３の１ページには、ホスト機器２０のデータ書き込み単位４つ分のデータが格納される。
【００２８】
更に又、本発明の第１の実施の形態に適用するＮＡＮＤ型フラッシュメモリ３の構造は、図３及び図５に詳細に説明するように、ホスト機器の書き込み単位（第１のデータ書きこみ単位）２１によってそれぞれ４分割された，ページｐ０，ｐ１，ｐ２，…を備えるターゲットブロック（Ａブロック）１１と、同様に書き込み単位２１によってそれぞれ４分割された，ページｑ０，ｑ１，ｑ２，…を備える一時書き込みブロック（Ｂブロック）１２とを備える。ターゲットブロック（Ａブロック）１１と一時書き込みブロック（Ｂブロック）１２は同一のＮＡＮＤ型フラッシュメモリ３のデータ記憶領域を分割して形成することができる。同一のＮＡＮＤ型フラッシュメモリ３ではなく、別々に構成されたＮＡＮＤ型フラッシュメモリ３を用いても良いことは勿論である。例えば、図２において説明した１ページ分のデータ部２０４８バイトに対しては、４分割することによって５１２バイトが書き込みページ単位となる。
【００２９】
ターゲットブロック（Ａブロック）１１の目的エリアと一時書き込みブロック（Ｂブロック）１２の一時エリアとの対応関係は、例えば図４に示すように、メモリ管理テーブルによって関連付けられている。図４の管理テーブルは、図１に示すメモリ管理情報を記憶する管理ブロック１３に格納される。但し、図４に示されるような管理テーブルは必須のものではなく、後述する動作例１において説明するように、ページ情報として、ＮＡＮＤ型フラッシュメモリ３内の所定の記憶領域に記憶しても良い。
【００３０】
ここで、不揮発性半導体メモリとして、ＮＡＮＤ型フラッシュメモリ３の例を説明しているが、ＮＯＲ型、ＡＮＤ型、２トランジスタ／セル型、３トランジスタ／セル型等の他の形式の不揮発性半導体メモリを適用しても良いことは勿論である。また、不揮発性半導体メモリとして、２値記憶に限らず、４値データ等の多値論理を記憶する方式であっても良いことも勿論である。
【００３１】
（メモリコントローラの制御方法）
本発明の第１の実施の形態に係るメモリコントローラ４の制御方法は、図１を参照して説明すると、ホストインタフェース６において、ホスト機器２０から第１のデータ書き込み単位を有する受信データを受信するステップと、メモリインタフェース５において、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３等の不揮発性半導体メモリへ第１のデータ書き込み単位を有する書き込みデータを送信するステップと、メモリインタフェース５を介してＮＡＮＤ型フラッシュメモリ３の一時書き込みブロック（Ｂブロック）１２に受信データを書き込みデータとして書き込むステップと、ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、そのエリアデータに対応する書き込みデータを一時書き込みブロック（Ｂブロック）１２から読み出すステップと、読み出された書き込みデータを含むエリアデータをＮＡＮＤ型フラッシュメモリ３内の一時書き込みブロック（Ｂブロック）１２とは別のターゲットブロック（Ａブロック）１１に書き込むステップとを備える。
【００３２】
（動作例１）
上位装置であるホスト機器２０が、本発明の第１の実施の形態に係るメモリコントローラ４を内蔵するメモリカード１に以下の指示を出した時の動作の一例を図３を参照して、説明する。
【００３３】
（ａ）ホスト機器２０が、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞にデータＤ１を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、そのデータＤ１を、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ０＞の位置に書き込み、ホスト機器２０の指示を完了する。
【００３４】
（ｂ）次に、ホスト機器２０が＜エリアａ５＞の位置にデータＤ２を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、データＤ２を一時的に、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ５＞に書き込む。同時に、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ０＞の位置に書き込まれたデータＤ１を＜エリアｂ４＞にコピーして書き込む。
【００３５】
（ｃ）同様に、ホスト機器２０が＜エリアａ６＞の位置にデータＤ３を書くことをメモリコントローラ４に指示すると、メモリコントローラ４はデータＤ３を一時的に、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ１０＞に書き込む。同時に、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ４＞の位置に書き込まれたデータＤ１を＜エリアｂ８＞にコピーして書き込み、＜エリアｂ５＞の位置に書き込まれたデータＤ２を＜エリアｂ９＞にコピーして書き込む。
【００３６】
（ｄ）次に、ホスト機器２０が＜エリアａ７＞の位置にデータＤ４を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ８＞，＜エリアｂ９＞，＜エリアｂ１０＞に保持されているデータＤ１〜Ｄ３を読み込み、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞〜＜エリアａ６＞に転送する。
【００３７】
（ｅ）続いて、データＤ４をターゲットブロック（Ａブロック）１１内の＜エリアａ７＞に転送し、＜エリアａ４＞〜＜エリアａ７＞への書き込みを一回で実施する。
【００３８】
動作例１において、一時書き込みブロック（Ｂブロック）１２内のどのページが最新のページであるかのページアドレス情報と、その最新のページに記憶されたデータをターゲットブロック（Ａブロック）１１内のどこに書き込むかを表す書き込み先のページアドレス情報については、ＮＡＮＤ型フラッシュメモリ３内の所定の記憶領域に記憶しておくことができる。例えば、メモリカード１をホスト機器２０から急に引き抜いたために電源がオフになり、再度オンする場合、ＮＡＮＤ型フラッシュメモリ３内の所定の記憶領域に記憶しておいたページのデータを読み出すことによって、効率的且つ迅速に再起動することができるからである。
【００３９】
（動作例２）
上位装置であるホスト機器２０が、本発明の第１の実施の形態に係るメモリコントローラ４を内蔵するメモリカード１に以下の指示を出した時の動作の別の例を図５を参照して、説明する。
【００４０】
（ａ）ホスト機器２０が、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞にデータＤ１を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、そのデータＤ１を、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ０＞の位置に書き込み、ホスト機器２０の指示を完了する。
【００４１】
（ｂ）次に、ホスト機器２０が＜エリアａ５＞の位置にデータＤ２を書くことをメモリコントローラ４に指示すると、メモリコントローラ４はデータＤ２を一時的に、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ５＞に書き込む。
【００４２】
（ｃ）同様に、ホスト機器２０が＜エリアａ６＞の位置にデータＤ３を書くことをメモリコントローラ４に指示すると、メモリコントローラ４はデータＤ３を一時的に、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ１０＞に書き込む。
【００４３】
（ｄ）次に、ホスト機器２０が＜エリアａ７＞の位置にデータＤ４を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、一時書き込みブロック（Ｂブロック）１２内の＜エリアｂ０＞，＜エリアｂ５＞，＜エリアｂ１０＞に保持されているデータＤ１〜Ｄ３を読み込み、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞〜＜エリアａ６＞に転送する。
【００４４】
（ｅ）続いて、データＤ４をターゲットブロック（Ａブロック）１１内の＜エリアａ７＞に転送し、＜エリアａ４＞〜＜エリアａ７＞への書き込みを一回で実施する。
【００４５】
動作例２において、ページの部分書き込みを禁止するのは、プログラムディスターブを防止するためである。即ち、データＤ２を＜エリアｂ１＞に書かずに＜エリアｂ５＞に書いた理由は、データＤ２の処理の前に＜ページｑ０＞の＜エリアｂ０＞に書き込みを行なっているので、同じ＜ページｑ０＞にある＜エリアｂ１＞に対して、２回目の書き込みを行なうことを禁止して、プログラムディスターブを防止することができるからである。或いは又、データＤ３についても同様である。即ち、データＤ３を＜エリアｂ６＞に書かずに＜エリアｂ１０＞に書いた理由は、データＤ３の処理の前に＜ページｑ１＞の＜エリアｂ５＞に書き込みを行なっているので、同じ＜ページｑ１＞にある＜エリアｂ６＞に対して、２回目の書き込みを行なうことを禁止して、プログラムディスターブを防止することができるからである。一時的に書き込むデータをＲＡＭ等の揮発性のメモリに書き込まずに、ＮＡＮＤ型フラッシュメモリ３等の不揮発性メモリに書いている理由は、例えば、ホスト機器２０がデータＤ１を書いた後にメモリカード１の電源をオフにし、その後オンにした時でも、データＤ１を解読することができるからである。また、この状態で、ホスト機器２０がメモリカード１に対して、＜エリアａ５＞のデータＤ２の読み込みを指示したとき、実際には、図４に示すメモリ管理テーブルに従って、メモリコントローラ４が＜エリアｂ５＞のデータＤ２をホスト機器２０に返すという動作を実現することができるからである。
【００４６】
以上のメモリコントローラの制御方法により、ホスト機器２０からの小さいデータ書き込み単位、即ち第１のデータ書き込み単位の書き込み指示であって、そのアドレスが連続する場合、「巻き添え引越し」をすることなく、ＮＡＮＤ型フラッシュメモリ３等の大きなデータ書き込み単位、即ち第２のデータ書き込み単位を有する不揮発性メモリ部品にデータを効率よく書き込むことができる。
【００４７】
本発明の第１の実施の形態により、大きなデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置を内蔵したメモリカード或いはメモリ装置において、上位装置のデータ書き込み単位が小さい場合においても書き込み性能を向上できるメモリコントローラ，メモリ装置及びメモリコントローラの制御方法を提供することができる。
【００４８】
[第２の実施の形態]
本発明の第２の実施の形態に係るメモリコントローラ４は、図６に示すように、ホスト機器２０に接続され、ホスト機器２０から第１のデータ書き込み単位を有する受信データを受信するホストインタフェース６と、第１のデータ書き込み単位を有する受信データを記憶し、かつランダムアクセス可能な不揮発性キャッシュメモリ２２と、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３に接続されるメモリインタフェース５と、ホストインタフェース６を介して不揮発性キャッシュメモリ２２に受信データを書き込みデータとして書き込み、ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、エリアデータに対応する書き込みデータを不揮発性キャッシュメモリ２２から読み出し、読み出された書き込みデータを含むエリアデータを、メモリインタフェース５を介して、ＮＡＮＤ型フラッシュメモリ３のターゲットブロック（Ａブロック）１１に書き込む中央演算処理装置（ＣＰＵ）８とを備える。
【００４９】
図６は、本発明の第２の実施の形態に係るメモリコントローラの模式的ブロック構成図であって、ＮＡＮＤ型フラッシュメモリ３と共に全体としてメモリカード１を構成するブロック構成図を示し、図７（ａ）は、図６におけるＮＡＮＤ型フラッシュメモリ３のデータ構造図、図７（ｂ）は、図６におけるメモリコントローラ４内の不揮発性キャッシュメモリ２２のデータ構造図をそれぞれ示す。
【００５０】
メモリコントローラ４は、不揮発性キャッシュメモリ２２を内蔵している。不揮発性キャッシュメモリ２２は、バッファメモリ７とメモリＩ／Ｆ５に接続されている。不揮発性キャッシュメモリ２２は、例えば、強誘電体メモリ（ＦｅＲＡＭ：Ferroelectric Random Access Memory）や磁気ランダムアクセスメモリ（ＭＲＡＭ：Magnetic Random Access Memory）などのランダムアクセス可能な不揮発性メモリ等で構成している。
【００５１】
図６に示すように、ＮＡＮＤ型フラッシュメモリ３は、図１に示す例とは異なり、一時書き込みブロック（Ｂブロック）１２は不要である。メモリコントローラ４内に配置された不揮発性キャッシュメモリ２２によって、一時書き込みブロック（Ｂブロック）１２と同様の動作を実現しているからである。
【００５２】
（メモリ装置）
本発明の第２の実施の形態に係るメモリコントローラ４のメモリカードへの適用例は、図６に示す様に表される。図６は、ホスト機器２０とメモリカード１を含む構成を示すブロック図である。ホスト機器２０は、接続されるメモリカード１に対してアクセスを行うためのハードウェア及びソフトウェア（システム）を備えている。
【００５３】
メモリカード１は、ホスト機器２０に接続されたときに電源供給を受けて動作し、ホスト機器２０からのアクセスに応じた処理を行う。このメモリカード１は、本発明の第２の実施の形態に係るメモリコントローラ４を備える。
【００５４】
本発明の第２の実施の形態に係るメモリコントローラ４をメモリカード１等のメモリ装置へ適用した構成例は、図６を参照して説明すると、第１のデータ書き込み単位を有する送信データを送信するホスト機器２０に接続されるメモリ装置であって、ターゲットブロック（Ａブロック）１１を備え，第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３等の不揮発性半導体メモリと、ホスト機器２０に接続され，ホスト機器２０から第１のデータ書き込み単位を有する受信データを受信するホストインタフェース６と、第１のデータ書き込み単位を有する受信データを記憶し，かつランダムアクセス可能な不揮発性キャッシュメモリ２２と、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３に接続されるメモリインタフェース５と、ホストインタフェース６を介して不揮発性キャッシュメモリ２２に受信データを書き込みデータとして書き込み，ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に，エリアデータに対応する書き込みデータを不揮発性キャッシュメモリ２２から読み出し，読み出された書き込みデータを含むエリアデータを，メモリインタフェース５を介して，ＮＡＮＤ型フラッシュメモリ３のターゲットブロック（Ａブロック）１１に書き込む中央演算処理装置８とを備えるメモリコントローラ４とを備える。
【００５５】
（メモリコントローラの制御方法）
本発明の第２の実施の形態に係るメモリコントローラ４の制御方法は、図６を参照して説明すると、ホストインタフェース６において、ホスト機器２０から第１のデータ書き込み単位を有する受信データを受信するステップと、メモリインタフェース５において、第１のデータ書き込み単位よりも大きな第２のデータ書き込み単位を有するＮＡＮＤ型フラッシュメモリ３等の不揮発性半導体メモリへ書き込みデータを送信するステップと、ホストインタフェース６を介してメモリコントローラ４内の不揮発性キャッシュメモリ２２に受信データを書き込みデータとして書き込むステップと、ホストインタフェース６が受信した複数の受信データが第２のデータ書き込み単位のエリアデータに達した際に、エリアデータに対応する書き込みデータを不揮発性キャッシュメモリ２２から読み出すステップと、読み出された書き込みデータを含むエリアデータを、メモリインタフェース５を介して、ＮＡＮＤ型フラッシュメモリ３のターゲットブロック（Ａブロック）１１に書き込むステップとを備える。
【００５６】
（動作例）
上位装置であるホスト機器２０が、本発明の第２の実施の形態に係るメモリコントローラ４を内蔵するメモリカード１に以下の指示を出した時の動作の例を図７を参照して、説明する。
【００５７】
（ａ）ホスト機器２０が、図７（ａ）に示すように、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞にデータＤ１を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、そのデータＤ１を、図７（ｂ）に示すように、メモリコントローラ４内部の不揮発性キャッシュメモリ２２のデータ構造内の＜エリアｃ０＞の位置に書き込み、ホスト機器２０の指示を完了する。
【００５８】
（ｂ）次に、ホスト機器２０がターゲットブロック（Ａブロック）１１内の＜エリアａ５＞の位置にデータＤ２を書くことをメモリコントローラ４に指示すると、メモリコントローラ４はデータＤ２を一時的に不揮発性キャッシュメモリ２２内の＜エリアｃ１＞に書き込む。
【００５９】
（ｃ）同様に、ホスト機器２０がターゲットブロック（Ａブロック）１１内の＜エリアａ６＞の位置にデータＤ３を書くことをメモリコントローラ４に指示すると、メモリコントローラ４はデータＤ３を一時的に不揮発性キャッシュメモリ２２内の＜エリアｃ２＞に書き込む。
【００６０】
（ｄ）次に、ホスト機器２０がターゲットブロック（Ａブロック）１１内の＜エリアａ７＞の位置にデータＤ４を書くことをメモリコントローラ４に指示すると、メモリコントローラ４は、不揮発性キャッシュメモリ２２内の＜エリアｃ０＞〜<エリアｃ２＞に保持されているデータＤ１〜Ｄ３を読み込み、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞〜＜エリアａ６＞に転送する。
【００６１】
（ｅ）続いて、データＤ４をターゲットブロック（Ａブロック）１１内の＜エリアａ７＞に転送し、ターゲットブロック（Ａブロック）１１内の＜エリアａ４＞〜＜エリアａ７＞への書き込みを一回で実施する。
【００６２】
以上の動作例において、不揮発性キャッシュメモリ２２内のどのページが最新のページであるかのページアドレス情報と、その最新のページに記憶されたデータをターゲットブロック（Ａブロック）１１内のどこに書き込むかを表す書き込み先のページアドレス情報については、ＮＡＮＤ型フラッシュメモリ３若しくは不揮発性キャッシュメモリ２２内の所定の記憶領域に記憶しておくことができる。例えば、メモリカード１をホスト機器２０から急に引き抜いたために電源がオフになり、再度オンする場合、ＮＡＮＤ型フラッシュメモリ３若しくは不揮発性キャッシュメモリ２２内の所定の記憶領域に記憶しておいたページのデータを読み出すことによって容易に再起動することができるからである。
【００６３】
以上の処理により、ホスト機器２０からの小さいデータ書き込み単位、即ち第１のデータ書き込み単位の書き込み指示に対し、「巻き添え引越し」をすることなく、ＮＡＮＤ型フラッシュメモリ３等の大きなデータ書き込み単位、即ち第２のデータ書き込み単位を有する不揮発性メモリ部品にデータを効率よく書き込むことができる。したがって、本発明の第２の実施の形態によれば、書き込み性能を向上できるメモリコントローラ，メモリ装置及びメモリコントローラの制御方法を提供することができる。
【００６４】
更に又、本発明の第２の実施の形態によれば、第１の実施の形態に比較して、ランダムアクセス可能な不揮発性キャッシュメモリ２２に一時的なデータを保存することにより、不揮発性メモリ部品上には余計なアクセスが発生せず、更に書き込み性能が向上する。
【００６５】
（第３の実施の形態）
（分割書き込み機能のオン／オフ機能）
本発明の第１の実施の形態に係るメモリコントローラ４を図１に示すようなメモリカード１へ適用したメモリ装置においては、メモリコントローラ４の分割書き込み機能をオン／オフする機能を付加することもできる。同様に本発明の第２の実施の形態に係るメモリコントローラ４を図６に示すようなメモリカード１へ適用したメモリ装置においても、メモリコントローラ４の分割書き込み機能をオン／オフする機能を付加することもできる。
【００６６】
本発明の第３の実施の形態に係るメモリコントローラ４においては、内蔵されるメモリコントローラ４の分割書き込み機能をオン／オフする機能を付加する。
【００６７】
本発明の第３の実施の形態に係るメモリコントローラ４は、２値を記憶するＮＡＮＤ型フラッシュメモリにも適用することができる。２値を記憶するＮＡＮＤ型フラッシュメモリは、図１或いは図６に示すようなメモリカード１に適用する場合、ＮＡＮＤ型フラッシュメモリ３側で分割書き込み(５１２バイト単位の書き込み動作)が可能である。ＮＡＮＤ型フラッシュメモリ３側で５１２バイト単位の書き込み動作が実現できれば、メモリコントローラ４側で分割書き込みを回避する動作を実行するよりもむしろ、メモリ装置の動作を高速化することができる。
【００６８】
したがって、分割書き込み機能を必要としない２値を記憶するＮＡＮＤ型フラッシュメモリ３の場合には、分割書き込み機能をオフにした方がメモリカード１の性能を向上することができる。このため、本発明の第３の実施の形態に係るメモリコントローラ４においては、分割書き込み機能のオン／オフ機能を付加することによって、幅広いＮＡＮＤ型フラッシュメモリの性能に対応することができるようになる。
【００６９】
メモリコントローラ４の分割書き込み機能のオン／オフ機能の設定は、ＮＡＮＤ型フラッシュメモリに格納されたメモリ管理情報の値で決まる。メモリコントローラ４若しくはメモリ装置の初期化時に、ＣＰＵ８がメモリ管理情報の値を読み込み、その読み込まれた設定値に従って、メモリコントローラ４を制御することによって、メモリコントローラ４の分割書き込み機能のオン／オフ機能の設定が実行される。
【００７０】
本発明の第３の実施の形態に係るメモリコントローラ４においては、内蔵されるメモリコントローラ４の分割書き込み機能をオン／オフする機能を付加することによって、幅広いＮＡＮＤ型フラッシュメモリの性能に対応することができると共に、ＮＡＮＤ型フラッシュメモリ３側で５１２バイト単位の書き込み動作が実現できる場合には、内蔵されるメモリコントローラ４の分割書き込み機能をオフにすることによって、メモリ装置の動作を高速化することができる。
【００７１】
[その他の実施の形態]
上記のように、本発明は第１乃至第３の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００７２】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施の形態に係るメモリコントローラの模式的ブロック構成図であって、ＮＡＮＤ型フラッシュメモリと共に全体としてメモリカードを構成するブロック構成図。
【図２】ＮＡＮＤ型フラッシュメモリの構成例。
【図３】不揮発性メモリ（ＮＡＮＤ型フラッシュメモリ）のデータ構造図であって、本発明の第１の実施の形態に係るメモリコントローラの動作の一例を説明する図。
【図４】メモリ管理テーブルの構成例。
【図５】不揮発性メモリ（ＮＡＮＤ型フラッシュメモリ）のデータ構造図であって、本発明の第１の実施の形態に係るメモリコントローラの動作の別の一例を説明する図。
【図６】本発明の第２の実施の形態に係るメモリコントローラの模式的ブロック構成図であって、ＮＡＮＤ型フラッシュメモリと共に全体としてメモリカードを構成するブロック構成図。
【図７】本発明の第２の実施の形態に係るメモリコントローラの動作の一例を説明する図であって、（ａ）ＮＡＮＤ型フラッシュメモリのデータ構造図及び（ｂ）メモリコントローラ内の不揮発性キャッシュメモリのデータ構造図。
【符号の説明】
【００７４】
１…メモリカード
３…ＮＡＮＤ型フラッシュメモリ
４…メモリコントローラ
５…メモリインタフェース
６…ホストインタフェース
８…中央演算処理装置（ＣＰＵ）
１１…ターゲットブロック（Ａブロック）
１２…一時書き込みブロック（Ｂブロック）
２０…ホスト機器
２１…書き込み単位
２２…不揮発性キャッシュメモリ
【図１】
2006092169.tif 000003
【図２】
2006092169.tif 000004
【図３】
2006092169.tif 000005
【図４】
2006092169.tif 000006
【図５】
2006092169.tif 000007
【図６】
2006092169.tif 000008
【図７】
2006092169.tif 000009