JP2007310915A - メモリカード及びメモリコントローラ - Google Patents

メモリカード及びメモリコントローラ Download PDF

Info

Publication number
JP2007310915A
JP2007310915A JP2007225960A JP2007225960A JP2007310915A JP 2007310915 A JP2007310915 A JP 2007310915A JP 2007225960 A JP2007225960 A JP 2007225960A JP 2007225960 A JP2007225960 A JP 2007225960A JP 2007310915 A JP2007310915 A JP 2007310915A
Authority
JP
Japan
Prior art keywords
memory
data
storage area
nonvolatile
sector
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
JP2007225960A
Other languages
English (en)
Other versions
JP4849637B2 (ja
Inventor
Takayuki Tamura
隆之 田村
Hirofumi Shibuya
洋文 渋谷
Hiroyuki Goto
啓之 後藤
Shigemasa Shioda
茂雅 塩田
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007225960A priority Critical patent/JP4849637B2/ja
Publication of JP2007310915A publication Critical patent/JP2007310915A/ja
Application granted granted Critical
Publication of JP4849637B2 publication Critical patent/JP4849637B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】不揮発性メモリを用いたメモリカードにおけるアクセスの高速化を実現する。
【解決手段】メモリカード(1)は、複数の不揮発性メモリ(2,3)、及び前記不揮発性メモリの動作を制御するメモリコントローラ(5)を有する。メモリコントローラは、外部からのアクセス指示に応答する前記不揮発性メモリのアクセス制御、及びアクセスエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御を行う。このとき、前記アクセス制御では前記複数の不揮発性メモリを並列アクセス動作させ、フラッシュメモリ間のデータ転送速度の高速化を実現する。前記代替制御ではアクセスエラーを生じた不揮発性メモリ毎に記憶領域を代替可能にするから、不良アドレスに対する代替領域を効率良く利用でき、代替に際して記憶領域の無駄を低減できる。
【選択図】図1

Description

本発明は、不揮発性メモリを搭載したメモリカード、不揮発性のメモリカードに適用されるメモリコントローラに関し、例えばハードディスク互換のフラッシュッメモリ搭載メモリカードに適用して有効な技術に関する。
フラッシュメモリ等の電気的に消去及び書き込み可能な不揮発性メモリを用いたメモリカードでは、カード基板に、不揮発性メモリとそのアクセス制御及び外部インタフェース制御などを行なうメモリコントローラとを搭載して構成される。不揮発性メモリとメモリコントローラとの間のデータ転送ビット数は不揮発性メモリのデータ入出力ビット数に等しくしてもよいが、データ転送効率が悪い場合もある。そのため、複数の不揮発性メモリをメモリコントローラに並列接続し、データ転送の並列ビット数を増やすことが可能である。この点に着目した従来技術として、特開平6−342399号、特開平7−36787号公報に記載の並列書き込み技術、特開平10−187359号公報に記載の2個のフラッシュメモリに対するインタリーブ書き込み技術などがある。
特開平6−342399号公報 特開平7−36787号公報 特開平10−187359号公報
本発明者は複数の不揮発性メモリを用いた並列アクセス技術について検討した。第1の検討事項はアクセスエラーを生じたときの記憶領域の代替制御機能との関係である。例えばハードディスク互換のメモリカードにおいて書き込みエラーなどのアクセスエラーを生じたとき、セクタ単位で記憶領域の代替が行われる。1セクタ分のデータが複数個の不揮発性メモリに分散されているとき、セクタ単位で代替を行なうと、実際に書きこみエラーを生じていないフラッシュメモリの記憶領域も代替対象とされ、不揮発性メモリの記憶領域が無駄になり、代替不能状態に陥るまでの期間が短くなるという懸念もある。
第2の検討事項はECCなどによるエラー検出・訂正動作との関係である。即ち、記憶情報の信頼性を向上させる為に通常は、ECCのような技術として、書込みデータに対するエラー検出コードの付加、読み出しデータに対するエラー検出・訂正を行なうのが通例である。このようなエラー検出・訂正機能を考慮すると、メモリコントローラが単に不揮発性メモリを並列アクセスするだけでは足りないことが明らかにされた。例えば、メモリコントローラが複数の不揮発性メモリを並列アクセスして高速にデータをリードしても、そのリードデータに対してエラー検出・訂正処理を行なうECC回路の動作が追従しなければ、また、書き込みデータに付加すべきエラー検出コードの生成動作が速くなければ、メモリカード全体としてのアクセスの高速化を実現することができない。
本発明の目的は、不揮発性メモリを用いたメモリカードにおけるアクセスの高速化を実現することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係るメモリカードは、複数の不揮発性メモリ、及び前記不揮発性メモリの動作を制御するメモリコントローラを有する。前記メモリコントローラは、外部からのアクセス指示に応答する前記不揮発性メモリのアクセス制御、及びアクセスエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御を行う。
このときメモリコントローラは、第1に、前記アクセス制御では前記複数の不揮発性メモリを並列アクセス動作させる。例えば、2個の不揮発性メモリとして第1及び第2の不揮発性メモリを想定すると、前記メモリコントローラは、セクタデータの偶数番目のデータの記憶領域に第1の不揮発性メモリを割り当て、セクタデータの奇数番目のデータの記憶領域に第2の不揮発性メモリを割り当てる。前記並列アクセス動作では、第1及び第2の不揮発性メモリを並列にリード動作させ、また、並列に書き込み動作させる。メモリコントローラが複数の不揮発性メモリを並列アクセスするということは、メモリコントローラとフラッシュメモリとの間のデータバス幅若しくはデータ転送並列ビット数が多いということであり、フラッシュメモリとの間のデータ転送速度の高速化が実現できる。
前記メモリコントローラは、第2に、前記代替制御ではアクセスエラーを生じた不揮発性メモリ毎に記憶領域を代替可能にする。要するに、複数個の不揮発性メモリ毎に、代替制御の為のアドレス管理情報を持たせる。例えば、あるセクタデータの偶数番目のデータでアクセスエラーを生じたときは第1の不揮発性メモリにおける当該偶数番目のデータの記憶領域を別のメモリアドレスで代替させ、アクセスエラーを生じていない奇数番目のデータには元々のメモリアドレスを割当てる。このように、複数の不揮発性メモリの代替制御の為のエリア管理を夫々の不揮発性メモリ単位に行うから、不良アドレスに対する代替領域を効率良く利用でき、代替に際して記憶領域の無駄を低減でき、メモリカードの寿命を延ばすことに寄与することができる。要するに、一つのセクタデータを複数の不揮発性メモリに分散配置したとき、セクタデータ単位の代替を行えば、各不揮発性メモリで一つずつ代替セクタドレスを費やすことになるが、ここでは、そのような無駄を省いている。
前記メモリコントローラは、第3に、不揮発性記憶装置との間のデータ転送効率を向上させたことに対してECC回路の動作を追従させる。即ち、前記メモリコントローラが備えるECC回路は、前記並列アクセス動作される前記不揮発性メモリの入出力動作周波数に対して前記並列アクセス動作の並列数倍の動作周波数で入出力動作を行なうようになっている。これにより、ECC回路のハードウェアを増大させずにエラー検出コードの生成やエラー検出・訂正処理の高速化を実現できる。
また、ECC回路を前記並列アクセス動作の並列数に相当する複数個設ける場合には、その動作周波数を上げることなく、前記並列アクセス動作される前記不揮発性メモリの入出力動作周波数に等しい動作周波数で並列的に入出力動作を行なうようにすればよい。
上記より、メモリコントローラが複数の不揮発性メモリを並列アクセスして高速にデータをリードしたとき、そのリードデータに対してエラー検出・訂正処理を行なうECC回路の動作を追従させることができ、また、書き込みデータに付加すべきエラー検出コードの生成動作を高速化できるから、メモリカード全体としてのアクセスの高速化を実現することができる。
〔2〕本発明に係るメモリコントローラは、所定のプロトコルにしたがって入出力動作可能なホストインタフェース回路と、複数の不揮発性メモリに並列接続可能なメモリインタフェース回路と、前記ホストインタフェース回路及びメモリインタフェース回路に接続された制御回路とを有する。前記制御回路は、前記ホストインタフェース回路を介する外部インタフェース制御、外部からのアクセス指示に応答する前記メモリインタフェース回路を介する前記不揮発性メモリのアクセス制御、及びアクセスエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御を行う。特に制御回路は、第1に、前記アクセス制御では前記複数の不揮発性メモリを並列アクセス動作させる。これによって不揮発性メモリ間のデータ転送速度の高速化が実現できる。第2に、前記代替制御ではアクセスエラーを生じた不揮発性メモリ毎に記憶領域を代替可能にする。これにより、代替に際して記憶領域の無駄を低減でき、メモリカードの寿命を延ばすことに寄与することができる。第3に不揮発性記憶装置との間のデータ転送効率の向上にECC回路の動作を追従させるから、エラー検出コードの生成やエラー検出・訂正処理の点においても、メモリカード全体としての高速アクセスの実現に寄与する。
〔3〕更に別の観点による本発明のメモリカードは、制御回路と、複数の不揮発性メモリと、外部装置に接続される外部インタフェース回路と、バスとを有する。前記複数の不揮発性メモリは複数の入出力端子(I/O0〜I/O7)を有する。前記バスは、第1のビット幅を有し、前記所定数毎に分割され、対応する前記不揮発性メモリの入出力端子に接続される。前記制御回路は前記複数の不揮発性メモリへのアクセス制御を行い、不揮発性メモリへのアクセスにおいてアクセスエラーが発生したときアドレス代替処理を不揮発性メモリ毎に行なう。これにより、上記複数の不揮発性メモリに対する並列アクセスの第1の点、上記メモリ単位に置き換える第2の点と同様の作用及び効果を得る。
更に別の観点による本発明のメモリカードは、制御回路(41,42,43)と、複数の不揮発性メモリと、n(1以上の整数)個のエラー検出・訂正回路と、バスとを有する。前記制御回路は前記複数の不揮発性メモリへのアクセス制御を行う。前記複数の不揮発性メモリは夫々第1のビット幅W1の入出力端子を有し、アクセス周波数F1でアクセス可能である。前記バスは、W1×mのビット幅を有し、m個の不揮発性メモリの入出力端子に並列に接続される。前記エラー検出・訂正回路は、ビット幅W2のデータについてエラー検出・訂正が可能である。前記エラー検出・訂正回路の動作周波数F2は、F2≧(F1×W1×m)/(W2×n)の関係を満足する。これにより、不揮発性記憶装置との間のデータ転送効率の向上にECC回路の動作を追従させる第3の点と同様の作用及び効果を得る。
更に別の観点による本発明のメモリコントローラは、制御回路(41,42,43)と、第1のビット幅を有する入出力端子(12,13に接続する入出力端子)と、1又はそれ以上の個数のエラー検出・訂正回路を有する。前記エラー検出・訂正回路は前記入出力端子を介して入出力が行われるデータのエラー訂正を行う。前記制御回路は、アドレス代替機能を有し、前記入出力端子を介してのデータの入出力の制御を行ない、あるアドレスでのデータ入出力においてアクセスエラーが発生したとき、前記入出力端子を第2のビット幅毎のグループに分割し、アクセスエラーが生じたグループについてアドレスの代替を行なうものである。これによっても、上記複数の不揮発性メモリに対する並列アクセスの第1の点、上記メモリ単位に置き換える第2の点と同様の作用及び効果を得る。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、メモリコントローラは、外部からのアクセス指示に応答する不揮発性メモリのアクセス制御では前記複数の不揮発性メモリを並列アクセス動作させるから、メモリコントローラと不揮発性メモリとの間のデータバス幅若しくはデータ転送並列ビット数を多くでき、不揮発性メモリとの間のデータ転送速度の高速化を実現することができる。
前記メモリコントローラは、アクセスエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御ではアクセスエラーを生じた不揮発性メモリ毎に記憶領域を代替可能にする。したがって、不良アドレスに対する代替領域を効率良く利用でき、代替に際して記憶領域の無駄を低減でき、メモリカードの寿命を延ばすことに寄与することができる。
複数の不揮発性メモリに対する並列アクセスを可能にする構成に対し、エラー検出・訂正回路のデータ入出力動作周波数を逓倍し、或はエラー検出・訂正回路それ自体の数を増やす。これにより、メモリコントローラが複数の不揮発性メモリを並列アクセスして高速にデータをリードしたとき、そのリードデータに対してエラー検出・訂正処理を行なうECC回路の動作を追従させることができ、また、書き込みデータに付加すべきエラー検出コードの生成動作を高速化できる。したがって、メモリカード全体としてのアクセスの高速化を実現することができる。
図1には本発明に係るメモリカードの一例が示される。メモリカード1は複数個の不揮発性メモリ例えば2個のフラッシュメモリ2,3と、DRAM(Dynamic Random Access memory)又はSRAM(Static Random Access Memory)等から成るデータバッファ4と、メモリ制御及び外部インタフェース制御を行うメモリコントローラ5とを、実装基板に備えて成る。
前記データバッファ4は、特に制限されないが、16ビットのデータ入出力用バッファバス10とアドレス及びアクセス制御バス11を介してメモリコントローラ5のアクセス制御を受ける。
フラッシュメモリ2は16ビットの入出力用フラッシュバスの上位8ビット(上位フラッシュバス)12に、フラッシュメモリ3は前記フラッシュバスの下位8ビット(下位フラッシュバス)13に接続され、メモリコントローラ5との間でデータ、アドレス信号、及びコマンドの入出力が可能にされる。14、15はメモリコントローラ5からフラッシュメモリ2,3に別々に接続されるアクセス制御バスである。フラッシュメモリ2,3は、夫々のフラッシュバス12,13とアクセス制御バス14,15を介してメモリコントローラ5により並列的にアクセス制御可能にされる。
尚、前記アクセス制御バス14,15にはチップ選択信号、コマンドイネーブル信号、出力イネーブル信号等が伝達され、出力イネーブル信号等の一部のストローブ信号はフラッシュメモリ2,3の間で共通化することも可能である。
前記フラッシュメモリ2,3は同一の回路構成を有する。例えばフラッシュメモリ2の一例が図2に示される。同図においてメモリアレイ20は、メモリマット、データラッチ回路及びセンスラッチ回路を有する。このメモリマットは電気的に消去及び書き込み可能な不揮発性のメモリセルトランジスタを多数有する。メモリセルトランジスタ(フラッシュメモリセルとも記す)は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートは対応するワード線21に、ドレインは対応するビット線22に、ソースは図示を省略するソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧(コントロールゲート印加電圧)に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。尚、書き込みと消去の定義は相対的な概念であるから上記とは逆に定義することも可能である。
前記フラッシュバス12に接続されるフラッシュメモリ2の外部入出力端子I/O0〜I/O7は、アドレス入力端子、データ入力端子、データ出力端子、コマンド入力端子に兼用される。外部入出力端子I/O0〜I/O7から入力されたXアドレス信号はマルチプレクサ24を介してXアドレスバッファ25に供給される。Xアドレスデコーダ26はXアドレスバッファ25から出力される内部相補アドレス信号をデコードしてワード線21を駆動する。
前記ビット線22の一端側には、センスラッチ回路が設けられ、他端にはデータラッチ回路が設けられている。ビット線22はYアドレスデコーダ27から出力される選択信号に基づいてYスイッチアレイ28で選択される。外部入出力端子I/O0〜I/O7から入力されたYアドレス信号はYアドレスカウンタ29にプリセットされ、プリセット値を起点に順次インクリメントされたアドレス信号が前記Yアドレスデコーダ27に与えられる。
Yスイッチアレイ28で選択されたビット線は、データ出力動作時には出力バッファ30の入力端子に導通され、データ入力動作時には入力バッファ31を介してデータ制御回路32の出力端子に導通される。出力バッファ30、入力バッファ31と前記入出力端子I/O0〜7との接続は前記マルチプレクサ24で制御される。入出力端子I/O0〜I/O7から供給されるコマンドはマルチプレクサ24及び入力バッファ31を介してモード制御回路33に与えられる。
制御信号バッファ回路35はアクセス制御信号として、チップイネーブル信号/CE、出力イネーブル信号/OE、書き込みイネーブル信号/WE、シリアルクロック信号SC、リセット信号/RES及びコマンドイネーブル信号/CDEを入力する。信号名の直前に記付された記号/は当該信号がロー・イネーブルであることを意味する。モード制御回路33は、それら信号の状態に応じてマルチプレクサ24を介する外部との信号インタフェース機能などを制御する。入出力端子I/O0〜I/O7からのコマンド入力は前記コマンドイネーブル/CDEに同期される。データ入力はシリアルクロックSCに同期される。アドレス情報の入力はライトイネーブル信号/WEに同期される。モード制御部33は、コマンドコードにより消去又は書込み動作の開始が指示されると、その期間、消去や書込み動作中を示すレディー・ビジー信号R/Bをアサートして外部に出力する。
内部電源回路(内部電圧発生回路)36は、書込み、消去、ベリファイ、読み出しなどのための各種内部電圧とされる動作電源37を生成して、前記Xアドレスデコーダ26及びメモリセルアレイ20等に供給する。
前記モード制御回路33は、入力コマンドに従ってフラッシュメモリを全体的に制御する。フラッシュメモリ2の動作は、基本的にコマンドによって決定される。フラッシュメモリ2のコマンドには、読み出し、消去、書込み等の各コマンドがある。例えば読み出しコマンドは、読み出しコマンドコード、読み出しXアドレス、及び必要なYアドレスを含む。書込みコマンドは、書込みコマンドコード、Xアドレス、必要なYアドレス、及び書込みデータを含む。
フラッシュメモリ2はその内部状態を示すためにステータスレジスタ38を有し、その内容は、信号/OEをアサートすることによって入出力端子I/O0〜I/O7から読み出し可能にされる。
図1において、前記メモリコントローラ5は、例えばホストコンピュータ(ホスト装置)6との間でIDEディスクインタフェース仕様などに従った外部インタフェース制御を行う。メモリコントローラ5は、ホストコンピュータからの指示に従って、フラッシュメモリ2、3をアクセスするアクセス制御機能を有する。このアクセス制御機能はハードディスク互換の制御機能であり、例えばホストコンピュータ6がセクタデータの集合をファイルデータとして管理するとき、メモリコントローラ5は論理アドレスとしてのセクタアドレスと物理メモリアドレスとを対応させてフラッシュメモリ2,3のアクセス制御を行う。このとき、前記メモリコントローラ5は、セクタデータの偶数番目のデータの記憶領域に一方のフラッシュメモリ2を割り当て、セクタデータの奇数番目のデータの記憶領域に他方のフラッシュメモリ3を割り当てる。そして、メモリコントローラ5は前記フラッシュメモリ2,3を並列にリード動作させ、また、並列に書き込み動作させる。メモリコントローラ5による上記並列アクセス制御機能により、メモリコントローラ5とフラッシュメモリ2,3との間のデータバス幅若しくはデータ転送並列ビット数が多くなり、フラッシュメモリとの間のデータ転送速度の高速化が実現できる。このアクセス制御機能にしたがってフラッシュメモリ2をアクセスするときECC機能によりライトデータに対してエラーコードの付加、リードデータに対してエラー検出・訂正を行なう。更に上記アクセス制御機能にしたがってフラッシュメモリ2、3へ消去又は書き込みを行なうとき、ベリファイ動作で消去不良又は書き込み不良(アクセスエラー)が発生した場合には、当該不良領域を代替領域に代替させる代替制御機能を備える。
図1に従えば、前記メモリコントローラ5は、ホストインタフェース回路40、演算制御手段としてのマイクロプロセッサ(MPU)41、メモリインタフェース回路としてのフラッシュインタフェース回路42、バッファコントローラ43、及びECC回路44を備える。前記MPU41、バッファコントローラ43、及びECC回路44はメモリコントローラ5の制御回路を構成する。
MPU41は、CPU(Central Processing Unit)及びそのプログラムメモリ(PGM)などを有し、メモリコントローラ5を全体的に制御する。プログラムメモリはCPUの動作プログラムなどを保有する。
前記ホストインタフェース回路40は、ATA(ATAttachment)、IDE(Integrated Device Electronics)、SCSI(Small Computer System Interface)等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ6とインタフェースを行う回路である。ホストインタフェース動作の制御はアクセスバス45を介してMPU41が行う。上記プロトコルは公知であるから詳細な説明を省略する。
前記バッファコントローラ43はアクセスバス46を介してMPU41から与えられるアクセス指示に従って、データバッファ4のメモリアクセス動作を制御する。データバッファ4にはホストインタフェース回路40に入力されたデータ、又はホストインタフェース回路40から出力するデータが一時的に保持される。また、データバッファ4には、フラッシュメモリ2、3から読み出されたデータ又はフラッシュッメモリ2,3に書き込まれるデータが一時的に保持される。
フラッシュインタフェース回路42はアクセスバス47を介してMPU41から与えられるアクセス指示に従って、フラッシュメモリ2、3に対する、読み出し動作、消去動作及び書き込み動作を制御する。フラッシュインタフェース回路42は、読み出し動作において読み出しコマンドコードや読み出しアドレス情報等の読み出し制御情報を出力し、書き込み動作において書き込みコマンドコード及び書き込みアドレス情報などの書き込み制御情報を出力し、消去動作において消去コマンド等の消去制御情報を出力する。前述の如く、フラッシュインタフェース回路42はフラッシュメモリ2,3に対する読み出し、書き込みのアクセス動作を並列に行う。要するに、リードデータの入力、書込みコマンドコード及び書込みデータの出力をフラッシュバス12,13を介して16ビット幅で行う。
ECC回路44は、前記アクセス制御機能の一環として、アクセスバス48を介してMPU41から与えられる指示に従って、フラッシュメモリ2、3に書き込むデータに対してエラー訂正符号(エラー訂正コード)を生成して、書込みデータに付加する。また、フラッシュメモリ2、3から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラー発生に対してエラー訂正を行う。フラッシュインタフェース回路42とECC回路44は8ビットのデータバス49を介してデータ伝送を行う。このECC回路44は、フラッシュメモリ2,3が併せて16ビット幅で並列データ転送を行うという処理能力に追従するために、並列アクセス動作される前記フラッシュメモリ2,3の入出力動作周波数に対して並列アクセス動作の並列数倍即ち2倍の動作周波数で入出力動作を行なう。これにより、ECC回路44のハードウェアを増大させずに、フラッシュバス12,13を介するデータアクセスの高速化に追従させてエラー検出コードの生成やエラー検出・訂正処理を高速化することができる。
図3にはフラッシュメモリ2の記憶領域が例示される。図4にはフラッシュメモリ3の記憶領域が例示される。フラッシュッメモリ2、3の記憶領域は、ユーザデータエリアAreU、代替エリアAreR、及び代替管理エリアAreMに大別される。各エリアAreU,AreR,AreMは、特に制限されないが、夫々データ部PrtDと管理部PrtMに大別される所定フォーマットの領域を単位領域BLKとして有する。フラッシュメモリ2の各単位領域BLKには便宜上その物理アドレスとしてセクタアドレスSA1(SA1(0)〜SA1(99))が割り当てられる。フラッシュメモリ3の各単位領域BLKには便宜上その物理アドレスとしてセクタアドレスSA2(SA2(0)〜SA2(99))が割り当てられる。
前記ユーザデータエリアAreUは例えばユーザに開放されるデータ領域とされる。フラッシュメモリ2のデータ部PrtDは図3に例示されるようにセクタデータの偶数番目バイトのデータを保持し、フラッシュメモリ3のデータ部PrtDは図4に例示されるようにセクタデータの奇数番目バイトのデータを保持する。経時的にユーザデータエリアAreUで消去エラー又は書込みエラーを生じたとき、エラーを生じたユーザデータエリアAreUの単位領域BLKを代替するのに前記代替エリアAreRが用いられる。代替の単位は単位領域BLKを最小単位とする。
例えば、図3のフラッシュメモリ2においてセクタアドレスSA1(n)のデータ部PrtDは、セクタデータ2nの偶数番目バイトのデータ(例えば512バイトの各バイトデータの内の偶数番目の256バイトデータ)EvD(2n)、前記セクタデータ2nの偶数番目バイトのデータに関するエラー検出コードとしてのECC符号EvC(2n)、セクタデータ2n+1の偶数番目バイトのデータ(例えば512バイトの各バイトデータの内の偶数番目の256バイトデータ)EvD(2n+1)、及び前記セクタデータ2n+1の偶数番目バイトのデータに関するエラー検出コードとしてのECC符号EvC(2n+1)を含む。セクタアドレスSA1(n)の管理部PrtMはセクタアドレスnの管理情報として、良セクタコード、識別情報、その他管理情報、及びECC符号を有する。良セクタコードはセクタアドレスSA1(n)の良又は不良を示すコードデータである。識別情報は対応するデータ部がユーザデータ、代替済み、空き、又は代替エリア管理エリアの何れに属するかを示すコードデータとされる。その他の管理情報は特に定めなくてもよい。ECC符号は良セクタコード、識別情報、その他管理情報に対するエラー検出・訂正用の冗長情報とされる。
図4のフラッシュメモリ3においてセクタアドレスSA2(n)のデータ部PrtDは、セクタデータ2nの奇数番目バイトのデータ(例えば512バイトの各バイトデータの内の奇数番目の256バイトデータ)OdD(2n)、前記セクタデータ2nの奇数番目バイトのデータに関するエラー検出コードとしてのECC符号EvC(2n)、セクタデータ2n+1の奇数番目バイトのデータ(例えば512バイトの各バイトデータの内の奇数番目の256バイトデータ)OdD(2n+1)、及び前記セクタデータ2n+1の奇数番目バイトのデータに関するエラー検出コードとしてのECC符号OdC(2n+1)を含む。フラッシュメモリ3の管理部PrtMが保有する管理情報は図3のフラッシュメモリと同様の意義を有する。
代替管理エリアAreMは、特に制限されないが、ユーザデータエリアAreUの単位領域BLKに対応する不良登録データを代替エリア管理テーブルとして有する。個々の不良登録データは代替先の単位領域のアドレスを特定する代替先アドレス情報とされる。例えば図5にはフラッシュメモリ2における代替エリア管理テーブルが例示され、一つの不良登録データは2バイトとされ、セクタアドレス毎に不良登録データ領域が割り当てられ、不良登録データはFFFFhによって代替不要を意味し、代替を要するときは代替先セクタアドレスのコードが保持される。図5の例は、図3においてフラッシュメモリ2のセクタアドレスSA1(1)における不良をセクタアドレスSA1(90)で代替する場合を示している。フラッシュメモリ3における代替エリア管理テーブルを示す図6の例は、図4においてフラッシュメモリ3のセクタアドレスSA2(n)における不良をセクタアドレスSA2(90)で代替する場合を示している。図5及び図6の例からも明らかなように、不良登録データと単位領域BLKとの対応は一対一対応とされる。したがって、単位領域BLKの物理アドレスに基づいてアドレス演算を行うことにより、対応する不良登録データを得ることができる。
前記メモリコントローラ5は、代替制御ではアクセスエラーを生じたフラッシュメモリ毎に記憶領域を代替可能にする。要するに、一つのセクタデータを偶数バイトと奇数バイトに分けて2個のフラッシュメモリ2,3に分散配置させたとき、フラッシュメモリ2,3毎に、代替制御の為の代替エリア管理テーブルを持たせる。例えば、セクタデータの偶数番目バイトのデータでアクセスエラーを生じたときはフラッシュメモリ2における当該偶数番目バイトのデータのセクタアドレスを代替エリアの別のセクタアドレスで代替させ、アクセスエラーを生じていない奇数番目バイトのデータにはフラッシュメモリ3の元々のセクタアドレスを割当てる。このように、フラッシュメモリ2,3を代替制御する為のエリア管理を夫々のフラッシュメモリ2,3毎に行うから、不良アドレスに対する代替領域を効率良く利用でき、代替に際して記憶領域の無駄を低減でき、メモリカード1の寿命を延ばすことが可能になる。要するに、一つのセクタデータを複数のフラッシュメモリ2,3に分散配置したとき、セクタデータ単位の代替を行えば、各フラッシュメモリ2,3で一つずつ代替セクタドレスを費やすことになり、そのような無駄を省いている。
図7及び図8にはセクタデータの書込み動作手順が例示される。ホストコンピュータ6がメモリカード1に論理アドレスとライトコマンドを発行すると(S1)、ホストインタフェース回路40はライトコマンドが発行されたことをMPU41のCPUに通知すると共に、ホストコンピュータ6にセクタライトデータの入力準備が完了したこと(データ入力レディー状態)を通知する。これによってホストコンピュータ6から供給されるセクタデータがホストインタフェース回路40に入力され、入力されたセクタライトデータがバッファコントローラ43を介してデータバッファ4に格納される(S2)。MPU41のCPUはホストコンピュータ6から与えられた論理アドレスをフラッシュメモリ2,3の物理アドレスであるセクタアドレスSA1,SA2に変換し、フラッシュインタフェース回路42を介して当該セクタアドレスSA1,SA2の管理部PrtMの管理情報をリードさせ、リードした管理情報をバッファコントローラ43を介してデータバッファ4にストアする(S3)。MPU41のCPUはストアされたセクタアドレスSA1の管理情報に対するECC結果がOKであるとき、そのセクタアドレスSA1の管理情報に含まれる良セクタコードに基づいて当該セクタの良否を判定する(S4)。判別結果が不良セクタ又はECCによる訂正不能なエラー発生(ECC=NG)であるなら、代替先アドレスの検索処理が行われる(S5)。判別結果が良セクタ及びECCによる訂正不能なエラー無し(ECC=OK)であるなら、今度は、ストアしたセクタアドレスSA2の管理情報に含まれる良セクタコードのECCと該セクタの良否とを判定する(S6)。判別結果が不良セクタ又はECCによる訂正不能なエラー発生(ECC=NG)であるなら、代替先アドレスの検索処理が行われる(S7)。尚、セクタアドレスSA1,SA2を別のセクタアドレスに代替した場合も当該代替先セクタアドレスを便宜上セクタアドレスSA1,SA2と称する。
次いで、MPU41のCPUは、フラッシュメモリ2のセクタアドレスSA1及びフラッシュメモリ3のセクタアドレスSA2に対して消去動作を開始させる(S8)。消去動作に並行してMPU41のCPUはホストコンピュータ6からデータバッファ4に書込みセクタデータが転送されたか否かを判定する(S9)。MPU41のCPUは夫々のフラッシュメモリ2,3に対して消去チェック処理を行う(S10,S11)。消去チェック処理の後、MPU41のCPUはバッファコントローラ43とフラッシュインタフェース回路42とを介してデータバッファ4からフラッシュメモリ2,3に書込みセクタアドレスSA1,SA2及び書込みセクタデータ等を転送し、転送後に、フラッシュメモリ2,3の書込み(プログラム)動作を開始させる(S12)。プログラム動作の開始後、CPUはフラッシュメモリ2,3に対するプログラムチェック処理を行う(S13,S14)。
図9には前記S5,S7の代替先アドレス検索処理手順が例示される。先ず、MPU41のCPUは処理対象とするフラッシュメモリ(処理S5の場合にはフラッシュメモリ2、処理S7の場合にはフラッシュメモリ3)の代替管理エリアAreMの管理情報をデータバッファ4にストアさせる(S20)。CPUはその管理情報に対するECC結果がOKであるとき、その管理情報に含まれる良セクタコードに基づいて当該セクタの良否を判定する(S21)。判別結果が不良セクタ又はECCによる訂正不能なエラー発生(ECC=NG)であるなら、CPUはホストコンピュータ6にエラー発生を通知して、ライトコマンドに対する処理を終了する(S22)。判別結果が良セクタ及びECCによる訂正不能なエラー無し(ECC=OK)であるなら、CPUは今度は、当該代替管理エリアAreMの代替エリア管理テーブルをデータバッファ4へストアする(S23)。CPUはデータバッファ4にストアされた代替エリア管理テーブルから、対応する領域に格納されている代替先アドレスをリードし、これを代替されたセクタアドレスSA1又はSA2として採用する(S24)。
図10には前記S10,S11のフラッシュメモリの消去チェック処理の手順が例示される。消去動作が開始されると、フラッシュメモリ2(3)は消去対象メモリセルに消去電圧を印加しながらベリファイを繰返す動作を一定期間行う。MPU41のCPUはフラッシュメモリ2(3)の消去動作が終了したか否かを判別する(S30)。消去動作の終了結果は、消去対象メモリセルの全てが消去状態の閾値電圧状態に到達する状態と、到達しない消去エラー状態であり、CPUはその結果をフラッシュメモリ2(3)のステータスレジスタをリードして判定する(S31)。消去エラーの場合、CPUは代替先アドレス検索処理を行い(S32)、フラッシュメモリ2(3)の代替先セクタアドレスに対して消去動作を開始させ、再度ステップS30の処理に戻る。ステップS32の代替先アドレス検索処理では、代替エリアAreRの管理情報を、セクタアドレスの小さい方から順次読み出し、最初に見つけた空きを代替先アドレスとする。消去エラーが発生しない場合にはステップS32およびS33によって代替が発生したかをチェックし(S34)、代替が発生した場合には、代替エリア管理テーブルに、新規の代替先アドレスを登録し(S35)、代替が発生していない場合には消去チェック処理を終了する。
図11には前記S13,S14のフラッシュメモリのプログラムチェック処理の手順が例示される。プログラム動作が開始されると、フラッシュメモリ2(3)はプログラム対象メモリセルに書き込み電圧を印加しながらベリファイを繰返す動作を一定期間行う。MPU41のCPUはフラッシュメモリ2(3)の書き込み動作が終了したか否かを判別する(S40)。プログラム動作の終了結果は、プログラム対象メモリセルの全てが書き込み状態の閾値電圧状態に到達する状態と、到達しないプログラムエラー状態であり、CPUはその結果をフラッシュメモリ2(3)のステータスレジスタをリードして判定する(S41)。プログラムエラーの場合、CPUは代替先アドレス検索処理を行い(S42)、フラッシュメモリ2(3)の代替先セクタアドレスに対して消去動作を開始させ、その消去対象エリアに対して図10の消去チェック処理を行う(S44)。S42の代替先アドレス検索処理は、図10のS32と同様に、代替エリアAreRの管理情報を順次読み出し、空きの単位領域BLKを代替先アドレスとする。消去チェック処理が正常終了したとき、MPU41のCPUは再び、バッファコントローラ43とフラッシュインタフェース回路42を介してデータバッファ4からフラッシュメモリ2(3)に書込み書込みセクタデータ等の転送を指示し、転送後に、フラッシュメモリ2(3)の書込み(プログラム)動作を開始させる(S45)。開始されたプログラム動作に対してCPUの処理が前記ステップS40に戻される。フラッシュメモリへのプログラムが正常終了した後(S41のNo)、ステップS42〜S45によって代替が発生したかをチェックし(S46)、代替が発生した場合には、代替エリア管理テーブルに新規の代替先アドレスを登録し(S47)、代替が発生していない場合には、プログラムチェック処理を終了する。
図12及び図13にはホストコンピュータによるセクタデータのリード動作手順が例示される。ホストコンピュータ6がメモリカード1に論理アドレスとリードコマンドを発行すると(S50)、ホストインタフェース回路40はリードコマンドが発行されたことをMPU41のCPUに通知する(S51)。MPU41のCPUはホストコンピュータ6から与えられた論理アドレスをフラッシュメモリ2,3の物理アドレスであるセクタアドレスSA1,SA2に変換し、フラッシュインタフェース回路42を介して当該セクタアドレスSA1,SA2の管理部PrtMの管理情報をリードさせ、リードした管理情報をバッファコントローラ43を介してデータバッファ4にストアする(S52)。MPU41のCPUはストアされたセクタアドレスSA1の管理情報に対するECC結果がOKであるとき、そのセクタアドレスSA1の管理情報に含まれる良セクタコードに基づいて当該セクタの良否を判定する(S53)。判別結果が不良セクタ又はECCによる訂正不能なエラー発生(ECC=NG)であるなら、CPUはフラッシュメモリ2の代替管理エリアAreMの代替エリア管理テーブルをデータバッファ4へストアする(S54)。CPUはデータバッファ4にストアされた代替エリア管理テーブルから、対応する領域に格納されている代替先アドレスをリードし、これを代替されたセクタアドレスSA1として採用する(S55)。この代替先セクタアドレスSA1に対してCPUはそのアドレスSA1の管理情報をデータバッファ4へストアする(S56)。ストアされたMPU41のCPUはストアされたセクタアドレスSA1の管理情報に対するECC結果がOKであるとき、そのセクタアドレスSA1の管理情報に含まれる良セクタコードに基づいて当該セクタの良否を判定する(S57)。判別結果が不良セクタ又はECCによる訂正不能なエラー発生(ECC=NG)であるなら、CPUはホストコンピュータ6にエラー応答を行って(S58)、処理を終了する。
前記処理S53又はS57の処理結果が良セクタ及びECCによる訂正不能なエラー発生無(ECC=OK)である時は、フラッシュメモリ3に対して、上記処理S53〜S57の処理を行う(S59〜S63)。
フラッシュッメモリ3に対して前記処理S59又はS63の処理結果が不良セクタ及びECC=OKであるとき、MPU41のCPUは、フラッシュインタフェース回路42を介して夫々のフラッシュメモリ2、3のセクタアドレスSA1,SA2からセクタデータを並列リードさせ、リードデータに対してECC回路44でエラー検出・訂正処理を実行させ、エラー検出・訂正処理を経たリードデータを、バッファコントローラ43を介してデータバッファ4にストアさせる(S65)。このリード転送の終了を検出すると(S65)、セクタリードデータに対してECCエラーが生じているかを判別し(S66)、ECCエラーを生じている場合にはホストコンピュータ6にエラー応答を行ってリード処理を終了する。ECCエラーを生じていない場合には、CPUはホストインタフェース回路40を介してホストコンピュータ6にデータ転送レディ状態を通知して、セクタデータを出力する(S67)。ホストコンピュータ6はそのセクタデータをリードする(S68)。
図14にはデータバッファからフラッシュメモリへ一つのセクタデータを転送するときの転送タイミングが例示される。セクタデータはD0〜D511の512バイトとされ、偶数バイトD0,D2,…,D510がバッファバスの上位8ビットに、奇数バイトD1,D3,…,D511がバッファバスの下位8ビットに割当てられる。データバッファ4からバッファコントローラ43に16ビットのバッファバス10で転送されたセクタデータはECC回路44に供給される。ECC回路のバス幅は8ビット幅なので、バッファからの1回の読み出しに対して、2回に分けて1バイトずつECC回路44に入力する。例えば、tW1においてデータバッファ4から読み出したD0とD1のデータは、tW2においてD0に続いてD1の順でECC回路44に入力している。この時のECCバス49上でのデータ転送動作周波数はバッファバス10上のデータ転送動作周波数の2倍にされている。これに並行してフラッシュインタフェース回路42からフラッシュメモリ2,3にもセクタデータが供給される。フラッシュバス12,13はバッファバス10と同じ16ビットであるからデータバッファ4からのデータ転送動作周波数と同じ動作周波数でフラッシュメモリにセクタデータが転送される。データバッファ4から一つのセクタデータの読み出しが終了し(tW4)、ECC回路44に一つのセクタデータの入力が完了すると(tW5)、ECC回路44には一つのセクタデータに対するECC符号が生成されている。最後に、ECC回路44からECC符号(E−0,E−1)を読み出し(tW6)、フラッシュメモリにECC符号を転送する(tW7)。ECC回路44で生成されたECCコードがフラッシュインタフェース回路42に供給されるときのデータ転送動作周波数も同様に2倍にされている。フラッシュインタフェース回路42からフラッシュメモリ2,3には、ECC符号E−0,E−1は並列に供給される。
図15にはフラッシュメモリからデータバッファ4に一つのセクタデータを転送するときの転送タイミングが例示される。フラッシュメモリ2,3から2バイト並列でフラッシュバス12,13に読み出されたデータD0,D1,…E−0,E―1は、フラッシュインタフェース回路42からECCバス49経由で1バイト単位に順次ECC回路44に入力される。例えば、サイクルtR1においてフラッシュメモリ2,3から読み出されたデータD0,D1は、サイクルtR2においてD0に続いてD1の順でECC回路44に入力される。また、フラッシュメモリ2,3から2バイト並列で順次読み出されたデータは、バッファバス10を介して2バイト並列のままデータバッファ4にストアされる。サイクルtR6において、ECC符号がECC回路44に転送っされた時点で、ECC回路44では、フラッシュメモリ2,3からリードしたデータに対するエラー検出が完了する。
図14及び図15より明らかなように、ECCバス49上でのデータ転送動作周波数はバッファバス10上のデータ転送動作周波数の2倍にされているから、フラッシュメモリ2,3の並列アクセスによる動作の高速化に対してECC回路44の動作を追従させることができる。
図16には本発明に係るメモリカードの第2の例が示される。図1のメモリカードとの相違点は、メモリコントローラ5が2個のECC回路44A,44Bを有し、夫々別々に8ビットのECCバス49A,49Bでフラッシュインタフェース回路42に接続されていることである。第1のECC回路44Aは、フラッシュメモリへのライト時に、第1のフラッシュメモリ2に格納されるセクタデータの偶数番目バイトのデータに対するECC符号を生成する。フラッシュメモリからのリード時には、第1のフラッシュメモリ2から読み出されるセクタデータの偶数番目バイトのデータと生成されたECC符号からエラー検出を行い、エラーがあった場合にはエラー訂正を行う。セクタデータ及びECC符号の転送はECCバス49Aを介して行う。
第2のECC回路44Bは、フラッシュメモリへのライト時に、第2のフラッシュメモリ3に格納されるセクタデータの奇数番目バイトのデータに対するECC符号を生成する。フラッシュメモリからのリード時には、第2のフラッシュメモリ3から読み出されるセクタデータの奇数番目バイトのデータと生成されたECC符号からエラー検出を行い、エラーがあった場合にはエラー訂正を行う。セクタデータ及びECC符号の転送はECCバス49Bを介して行う。その他の構成は図1と同じであるからその詳細な説明は省略する。
図17には図16のメモリカードにおいてデータバッファからフラッシュメモリへ一つのセクタデータを転送する動作タイミングが例示される。
バッファバス10にはデータバッファ4から2バイト並列でセクタデータが読み出される。データバッファ4から読み出された偶数番目バイトのデータD0,D2,…,D510は第1のECCバス49Aから第1のECC回路44Aへ入力される。同様に、データバッファ4から読み出された奇数番目バイトのデータD1,D3,…,D511は第2のECCバス49Bから第2のECC回路44Bへ入力される。要するに、図14のように、ECCバス49A,49B上のデータ転送動作周波数を2倍に高速化することを要しない。但しECC回路のハードウェア量は2倍になる。第1のECC回路44Aではセクタデータの偶数番目バイトのデータに対するECC符号E−Aが生成される。第2のECC回路44Bではセクタデータの奇数番目バイトのデータに対するECC符号E−Bが生成される。生成されたECC符号はセクタデータの後に、フラッシュバス12,13を介して2バイト並列にフラッシュメモリ2,3に供給される。
図18には図16のメモリカードにおいてフラッシュメモリからデータバッファへ一つのセクタデータを転送する動作タイミングが例示される。フラッシュメモリ2、3から2バイト並列でフラッシュバス12,13に読み出される。フラッシュメモリ2から読み出された偶数番目バイトのデータは第1のECCバス49Aを経て第1のECC回路44Aに入力され、セクタデータの偶数番目バイトのデータに対するエラー検出が第1のECC回路44Aで行われる。同様に、第2のフラッシュメモリ3から読み出された奇数番目バイトのデータは第2のECCバス49Bを経て第2のECC回路44Bに入力され、セクタデータの奇数番目バイトのデータに対するエラー検出が第2のECC回路44Bで行われる。前記フラッシュメモリ2,3から読みされたセクタデータは2バイト並列にバッファバス10を介してデータバッファ4にもストアされる。
図19には本発明に係るメモリカードの第3の例が示される。図1のメモリカードとの相違点は、バッファバス10Aが8ビット幅になったことである。その他の構成は図1と同じであるからその詳細な説明は省略する。
図20には図19のメモリカードにおいてデータバッファ4からフラッシュメモリ2,3へ一つのセクタデータを転送する動作タイミングが示される。データバッファ4からバッファバス10Aへのデータ読み出しは8ビット幅で行われる。データバッファ4から読み出されたセクタデータは、同じく8ビット幅でECCバス49からECC回路44に入力され、ECC符号E−0,E−1が生成される。また、データバッファ4から読み出されたセクタデータは、1サイクル送れたタイミングで、偶数番目バイトのセクタデータが上位フラッシュバス12を経由してフラッシュメモリ2に、奇数番目バイトのセクタデータが下位フラッシュバス13を経由してフラッシュメモリ3に、並列に供給される。夫々8ビット幅のバッファバス10A及びECCバス49上でのデータ転送動作周波数は16ビットのバス幅を有するフラッシュバス12,13上でのデータ転送動作周波数の2倍になっている。
図21には図19のメモリカードにおいてフラッシュメモリからデータバッファへ一つのセクタデータを転送する動作タイミングが例示される。フラッシュメモリ2,3からフラッシュバス12,13にバイト並列で読み出されたセクタデータは、8ビットのECCバス49を通ってECC回路44に供給され、エラー検出処理が行われ、これに並行して、8ビットのバッファバス10Aからデータバッファ4に書き込まれる。夫々8ビット幅のバッファバス10A及びECCバス49上でのデータ転送動作周波数は16ビットのバス幅を有するフラッシュバス12,13上でのデータ転送動作周波数の2倍になっている。
以上説明したメモリカード1のメモリコントローラ5によれば、セクタデータの偶数番目バイトのデータの記憶領域にフラッシュメモリ2を割り当て、セクタデータの奇数番目バイトのデータの記憶領域にフラッシュメモリ3を割り当て、ホストコンピュータ6からのアクセスコマンドに応答するフラッシュメモリのアクセス制御では、2個のフラッシュメモリ2,3を並列にリード動作させ、また、並列に書き込み動作させる。このフラッシュッメモリ2,3に対する並列アクセスにより、メモリコントローラ5とフラッシュメモリ2,3との間のデータバス幅若しくはデータ転送並列ビット数が多くなり、フラッシュメモリ2,3との間のデータ転送速度の高速化を実現することができる。
前記メモリコントローラ5は、前記代替制御ではアクセスエラーを生じたフラッシュメモリ毎に記憶領域を代替可能にする。したがって、不良アドレスに対する代替領域を効率良く利用でき、代替に際して記憶領域の無駄を低減でき、メモリカード1の寿命を延ばすことに寄与することができる。
図1の前記メモリコントローラ5が備えるECC回路44は、前記並列アクセス動作されるフラッシュメモリ2,3の入出力動作周波数に対して2倍の動作周波数で入出力動作を行なう。したがって、ECC回路44の数を増やすことなくエラー検出コードの生成やエラー検出・訂正処理の高速化を実現できる。また、図16のように、フラッシュメモリ2,3の数と同じ数のECC回路44A,44Bを設ければ、ECC回路44A,44Bの動作周波数を上げることなく、フラッシュメモリ2,3の入出力動作周波数に等しい動作周波数でECC動作を行なえば済むようになる。これらにより、前記メモリコントローラ5は、フラッシュメモリ2,3との間のデータ転送効率の向上にECC回路の動作を追従させることができる。このように、メモリコントローラ5が複数のフラッシュメモリ2,3を並列アクセスして高速にデータをリードしたとき、そのリードデータに対してエラー検出・訂正処理を行なうECC回路44の動作を追従させることができ、また、書き込みデータに付加すべきエラー検出コードの生成動作を高速化できるから、メモリカード全体としてのアクセスの高速化を実現することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、複数個の不揮発性メモリとは2個のフラッシュメモリチップに限定されない。1個とは物理的に1個のメモリチップを意味すだけでなく、複数個のメモリチップの集合であってもよい。例えば3nビットのデータバスに対し、下位側からnビット単位でフラッシュメモリチップのデータ入出力端子を接続して3個のフラッシュッメモリチップで1群のフラッシュメモリを構成し、そのようなメモリチップ群を複数群採用して、複数個の不揮発性メモリを構成してもよい。フラッシュッメモリは3個又は3群以上のフラッシュメモリチップによって構成してもよい。不揮発性メモリはフラッシュメモリに限定されず、高誘電体メモリであってもよい。
フラッシュバス、バッファバス、ECCバスのビット数は上記の例に限定されず適宜のビット数に変更可能である。
また、メモリコントローラは1チップに限定されず、MPUを別チップで構成してもよい。また、メモリコントローラとデータバッファを単一半導体チップに形成してもよい。更に、メモリコントローラ、データバッファ、及びフラッシュッメモリを同一チップに形成してもよい。
フラッシュメモリとECC回路との間におけるアクセス周波数及びデータ入出力端子数の関係については、上記の例に限定されず、以下の関係を満足させてメモリカードを構成してもよい。即ち、複数のフラッシュメモリは夫々第1のビット幅W1の入出力端子を有し、アクセス周波数F1でアクセス可能である。前記バスは、W1×mのビット幅を有し、m個のフラッシュメモリの入出力端子に並列に接続される。ECC回路は、ビット幅W2のデータについてエラー検出・訂正が可能である。前記ECC回路の動作周波数F2は、F2≧(F1×W1×m)/(W2×n)の関係を満足する。これにより、フラッシュッメモリとの間の並列アクセスによるデータ転送効率の向上にECC回路の動作を追従させるという作用及び効果を得る。
本発明に係るメモリカードの一例を示すブロック図である。 フラッシュメモリの一例を示すブロック図である。 一方のフラッシュメモリの記憶領域を例示する説明図である。 他方のフラッシュメモリの記憶領域を例示する説明図である。 一方のフラッシュメモリにおける代替エリア管理テーブルを例示する説明図である。 他方のフラッシュメモリにおける代替エリア管理テーブルを例示する説明図である。 セクタデータの書込み動作手順について一部を例示するフローチャートである。 セクタデータの書込み動作手順について残りを例示するフローチャートである。 代替先アドレス検索処理手順について例示するフローチャートである。 フラッシュメモリの消去チェック処理手順について例示するフローチャートである。 フラッシュメモリのプログラムチェック処理手順について例示するフローチャートである。 ホストコンピュータによるセクタデータのリード動作手順について一部を例示するフローチャートである。 ホストコンピュータによるセクタデータのリード動作手順について残りを例示するフローチャートである。 データバッファからフラッシュメモリへ一つのセクタデータを転送するときの転送タイミングを例示するタイミングチャートである。 フラッシュメモリからデータバッファに一つのセクタデータを転送するときの転送タイミングを例示するタイミングチャートである。 本発明に係るメモリカードの第2の例を示すブロック図である。 図16のメモリカードにおいてデータバッファからフラッシュメモリへ一つのセクタデータを転送する動作タイミングを例示するタイミングチャートである。 図16のメモリカードにおいてフラッシュメモリからデータバッファへ一つのセクタデータを転送する動作タイミングを例示するタイミングチャートである。 本発明に係るメモリカードの第3の例を示すブロック図である。 図19のメモリカードにおいてデータバッファからフラッシュメモリへ一つのセクタデータを転送する動作タイミングを示すタイミングチャートである。 図19のメモリカードにおいてフラッシュメモリからデータバッファへ一つのセクタデータを転送する動作タイミングを示すタイミングチャートである。
符号の説明
1 メモリカード
2、3 フラッシュメモリ
4 データバッファ
5 メモリコントローラ
10 バッファバス
12 フラッシュバス上位
13 フラッシュバス下位
40 ホストインタフェース回路
41 マイクロプロセッサ
42 フラッシュインタフェース回路
43 バッファコントローラ
44 ECC回路
49 ECCバス

Claims (5)

  1. 複数の不揮発性メモリ、及び前記不揮発性メモリの動作を制御するメモリコントローラを有するメモリカードであって、
    前記メモリコントローラは、外部からの書き込み指示に応答する前記不揮発性メモリの書き込み制御、及び書き込みエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御を行ない、前記書き込み制御では前記複数の不揮発性メモリを並列書き込み動作させ、前記代替制御では書込みエラーを生じた不揮発性メモリの記憶領域を当該不揮発性メモリの別の記憶領域に代替可能にすることを特徴とするメモリカード。
  2. 第1の不揮発性メモリ、第2の不揮発性メモリ、及び前記不揮発性メモリの動作を制御するメモリコントローラを有するメモリカードであって、
    前記メモリコントローラは、セクタデータの偶数番目のデータの記憶領域として第1の不揮発性メモリを割り当て、セクタデータの奇数番目のデータの記憶領域として第2の不揮発性メモリを割り当て、外部からの書き込み指示に応答する前記不揮発性メモリの書き込み制御では前記第1及び第2の不揮発性メモリを並列書き込み動作させ、書き込みエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御では書込みエラーを生じた不揮発性メモリの記憶領域を当該不揮発性メモリの別の記憶領域に代替可能にすることを特徴とするメモリカード。
  3. 前記夫々の不揮発性メモリを別々に書き込み制御可能に前記メモリコントローラに接続するバスを有して成ることを特徴とする請求項1又は2記載のメモリカード。
  4. 所定のプロトコルにしたがって入出力動作可能なホストインタフェース回路と、複数の不揮発性メモリに並列接続可能なメモリインタフェース回路と、前記ホストインタフェース回路及びメモリインタフェース回路に接続された制御回路とを有し、
    前記制御回路は、前記ホストインタフェース回路を介する外部インタフェース制御、外部からの書き込み指示に応答する前記メモリインタフェース回路を介する前記不揮発性メモリの書き込み制御、及び書き込みエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御を行ない、前記書き込み制御では前記複数の不揮発性メモリを並列書き込み動作させ、前記代替制御では書込みエラーを生じた不揮発性メモリの記憶領域を当該不揮発性メモリの別の記憶領域に代替可能にすることを特徴とするメモリコントローラ。
  5. 所定のプロトコルにしたがって入出力動作可能なホストインタフェース回路と、第1及び第2の不揮発性メモリに並列接続可能なメモリインタフェース回路と、前記ホストインタフェース回路及びメモリインタフェース回路に接続された制御回路とを有し、
    前記制御回路は、セクタデータの偶数番目のデータの記憶領域として第1の不揮発性メモリを割り当て、セクタデータの奇数番目のデータの記憶領域として第2の不揮発性メモリを割り当て、外部からの書き込み指示に応答する前記不揮発性メモリの書き込み制御では前記第1及び第2の不揮発性メモリを並列書き込み動作させ、書き込みエラーに係る不揮発性メモリの記憶領域を別の記憶領域に代替させる代替制御では書込みエラーを生じた不揮発性メモリの記憶領域を当該不揮発性メモリの別の記憶領域に代替可能にすることを特徴とするメモリコントローラ。
JP2007225960A 2007-08-31 2007-08-31 メモリカード及びメモリコントローラ Expired - Fee Related JP4849637B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007225960A JP4849637B2 (ja) 2007-08-31 2007-08-31 メモリカード及びメモリコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007225960A JP4849637B2 (ja) 2007-08-31 2007-08-31 メモリカード及びメモリコントローラ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001241930A Division JP4059473B2 (ja) 2001-08-09 2001-08-09 メモリカード及びメモリコントローラ

Publications (2)

Publication Number Publication Date
JP2007310915A true JP2007310915A (ja) 2007-11-29
JP4849637B2 JP4849637B2 (ja) 2012-01-11

Family

ID=38843652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007225960A Expired - Fee Related JP4849637B2 (ja) 2007-08-31 2007-08-31 メモリカード及びメモリコントローラ

Country Status (1)

Country Link
JP (1) JP4849637B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011508296A (ja) * 2007-12-24 2011-03-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 読出ステータスのコントローラ
TWI381392B (zh) * 2010-02-04 2013-01-01 Transcend Information Inc 雙層面記憶體錯誤修正方法以及相關的記憶體裝置
US10372361B2 (en) 2014-02-27 2019-08-06 Mitsubishi Electric Corporation Data storage device including multiple memory modules and circuitry to manage communication among the multiple memory modules
CN115050410A (zh) * 2022-08-17 2022-09-13 合肥智芯半导体有限公司 可擦除非易失性存储器的控制装置、系统以及控制芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877066A (ja) * 1994-08-31 1996-03-22 Tdk Corp フラッシュメモリコントローラ
JPH09288618A (ja) * 1996-04-19 1997-11-04 Hitachi Ltd 記憶装置及びそのメモリアクセス制御方法
JP2001134496A (ja) * 1999-11-04 2001-05-18 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877066A (ja) * 1994-08-31 1996-03-22 Tdk Corp フラッシュメモリコントローラ
JPH09288618A (ja) * 1996-04-19 1997-11-04 Hitachi Ltd 記憶装置及びそのメモリアクセス制御方法
JP2001134496A (ja) * 1999-11-04 2001-05-18 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011508296A (ja) * 2007-12-24 2011-03-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 読出ステータスのコントローラ
TWI381392B (zh) * 2010-02-04 2013-01-01 Transcend Information Inc 雙層面記憶體錯誤修正方法以及相關的記憶體裝置
US10372361B2 (en) 2014-02-27 2019-08-06 Mitsubishi Electric Corporation Data storage device including multiple memory modules and circuitry to manage communication among the multiple memory modules
CN115050410A (zh) * 2022-08-17 2022-09-13 合肥智芯半导体有限公司 可擦除非易失性存储器的控制装置、系统以及控制芯片
CN115050410B (zh) * 2022-08-17 2022-11-04 合肥智芯半导体有限公司 可擦除非易失性存储器的控制装置、系统以及控制芯片

Also Published As

Publication number Publication date
JP4849637B2 (ja) 2012-01-11

Similar Documents

Publication Publication Date Title
JP4059473B2 (ja) メモリカード及びメモリコントローラ
KR100622349B1 (ko) 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법.
JP5984989B2 (ja) オンチップのnand型フラッシュメモリおよびその不良ブロック管理方法
JP5686516B2 (ja) Nandメモリのためのプログラミング管理データ
JP4129381B2 (ja) 不揮発性半導体記憶装置
US6388919B2 (en) Memory controller for flash memory system and method for writing data to flash memory device
JP4761959B2 (ja) 半導体集積回路装置
US9703698B2 (en) Data writing method, memory controller and memory storage apparatus
US8904086B2 (en) Flash memory storage system and controller and data writing method thereof
JP5492679B2 (ja) 記憶装置およびメモリコントローラ
KR20030011230A (ko) 비휘발성 기억 장치 및 그의 재기입 제어 방법
US8667348B2 (en) Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same
JP4730846B2 (ja) メモリシステム
TWI725416B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
JP4034947B2 (ja) 不揮発性記憶システム
JP2002358795A (ja) 不揮発性半導体記憶装置および製造方法
JP4849637B2 (ja) メモリカード及びメモリコントローラ
JP2006004367A (ja) メモリカード及び半導体装置
JP2008251154A (ja) 不揮発性半導体記憶装置
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4641034B2 (ja) 不揮発性記憶システム
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2013030269A (ja) 不揮発性記憶装置
JP2010123255A (ja) 不揮発性記憶装置
JP2008234514A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070831

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110603

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: 20111013

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: 20111014

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees