JP2000011677A - フラッシュメモリシステム - Google Patents

フラッシュメモリシステム

Info

Publication number
JP2000011677A
JP2000011677A JP19497198A JP19497198A JP2000011677A JP 2000011677 A JP2000011677 A JP 2000011677A JP 19497198 A JP19497198 A JP 19497198A JP 19497198 A JP19497198 A JP 19497198A JP 2000011677 A JP2000011677 A JP 2000011677A
Authority
JP
Japan
Prior art keywords
block
address
flash memory
replacement
spare
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
JP19497198A
Other languages
English (en)
Other versions
JP3589033B2 (ja
Inventor
Tsutomu Sugawara
勉 菅原
Shuichi Kikuchi
修一 菊地
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.)
Tokyo Electron Ltd
Original Assignee
Tokyo Electron Ltd
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 Tokyo Electron Ltd filed Critical Tokyo Electron Ltd
Priority to JP19497198A priority Critical patent/JP3589033B2/ja
Publication of JP2000011677A publication Critical patent/JP2000011677A/ja
Application granted granted Critical
Publication of JP3589033B2 publication Critical patent/JP3589033B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

(57)【要約】 [課題] フラッシュメモリについて少ない資源で効率
よく信頼性の高いブロック代替管理を行う。 [解決手段] 各フラッシュメモリ・チップFMi 内の
ブロックは通常領域のブロックとスペア領域のブロック
とに区画されている。ブロック代替管理テーブルTBi
では、各フラッシュメモリ・チップFMi についてその
スペア領域のブロック数またはアドレス数と同じ個数の
テーブルアドレス(物理アドレス)がブロック代替管理
テーブルTBi 内に設定され、各テーブルアドレスが1
対1の対応関係でいずれか1つのスペアブロックの物理
アドレスに対応づけられている。各テーブルアドレスで
指示されるテーブル記憶位置には、ブロック代替情報が
格納される。

Description

【発明の詳細な説明】
【0010】
【発明の属する技術分野】本発明は、フラッシュメモリ
を含むメモリシステムに関する。
【0020】
【従来の技術】近年、ハードディスクやフロッピーディ
スク等の磁気メモリに置き換わる半導体メモリとして、
フラッシュEEPROM(以下フラッシュメモリと称す
る。)が注目されている。フラッシュメモリは、消費電
力が少なく電気的に書き換え可能な不揮発性の半導体メ
モリであり、軽量小型で耐震性が良いため、携帯機器等
への用途が拡大している。
【0030】フラッシュメモリは、チップ内のEEPR
OMセルアレイが複数個のブロックに分割され、各ブロ
ックはさらに1個または複数個のセクタに分割されてい
る。通常、プログラミング(書き込み)や読み出しはセ
クタ単位で行われ、消去はブロック単位で行われる。
【0040】一般に、フラッシュメモリを外部記憶装置
に用いるコンピュータ・システムでは、フラッシュメモ
リ専用のコントローラがあてがわれる。ホストコンピュ
ータ(たとえばパソコン)はこのコントローラに対して
データの書き込みや読み出しを指示すればよい。コント
ローラは、ホストからの指示を受けてフラッシュメモリ
に対してデータの書き込みや読み出しを直接制御するほ
か、ブロック毎のデータ書き換えや一括消去等のメモリ
管理を行う。
【0050】このようなメモリ管理の一環として、コン
トローラは、データの書き込みまたは読み出しを正常に
行えない不良(欠陥)ブロックを把握し、各不良ブロッ
クを正常な他のブロックに代替させる管理機能を要求さ
れる。
【0060】一般のフラッシュメモリシステムは、その
ような不良ブロックの存在ないし発生がある程度の個数
まで許容されるよう、メモリ領域の一部に適当な個数の
スペアまたは予備のブロックを用意している。通常は、
これらのスペアブロックが代替ブロックに用いられる。
【0070】従来のフラッシュメモリシステムでは、フ
ラッシュメモリの各ブロックの冗長部内に当該ブロック
が正常であるのか不良であるのかを示すフラグまたはス
テータス情報を格納し、さらには当該ブロックを不良ブ
ロックと認定したときはそれに置き換わるべき代替ブロ
ックの記憶位置を指示するアドレス情報(ポインタ)も
格納している。ホストよりメモリアクセスが行われる度
毎に、コントローラがアドレス指定されたブロックのブ
ロック良否フラグ情報を読み取り、そのブロックが「正
常」であればそのままそこにアクセスし、「不良」であ
ればポインタで指示される別のブロック(代替ブロッ
ク)にアクセスするようになっている。
【0080】
【発明が解決しようとする課題】上記のように、従来の
方式では、フラッシュメモリ内の各ブロックの冗長部に
ブロック良否フラグ等のブロック関連情報を格納(保
存)し、コントローラがメモリアクセスの度毎に当該ブ
ロックのブロック関連情報を読み取って、ブロック代替
の要否を判断するようにしている。
【0090】したがって、ホスト側からのアドレスが不
良ブロックを指定する場合は、その不良ブロックにアク
セスし、そこからブロック関連情報を読み取り、ブロッ
ク代替要否の判断を行ってから、代替ブロックへアクセ
スすることになる。つまり、2ブロック分のデータ読み
出し動作を行うことになる。
【0100】このようなブロック代替管理方式は非効率
的であるばかりか、不良ブロックより読み出された信頼
性の低いデータ(ブロック関連情報)に基づいてブロッ
ク代替要否の判断を行わなくてはならないため、ブロッ
ク代替機能の信頼度も低いという問題がある。さらに
は、不良ブロックへのアクセスがフラッシュメモリに有
害なストレスを与え、メモリの劣化を早めるおそれがあ
る。
【0110】なお、電源投入直後やリセット解除直後の
初期化の中で、コントローラがフラッシュメモリ内の全
ブロックの冗長部を読みに行って、それぞれのブロック
関連情報を収集し、収集したブロック関連情報を基にた
とえばSRAMのような揮発性メモリ上にブロック代替
用のテーブルを形成する方式も考えられている。
【0120】この方式によれば、ホストからのメモリア
クセスに対して、先ずブロック代替用テーブルを参照
し、アドレス指定されたブロックが正常であるのか不良
であるのかを判別したうえで、つまりブロック代替の要
否を判断して、そのブロックもしくは代替ブロックにア
クセスすることになる。
【0130】しかし、この方式でも、初期化(テーブル
形成)時には不良ブロックにアクセスすることになり、
アクセス回数は少なくなるものの、基本的に上記の問題
は解決されない。また、フラッシュメモリ内の全ブロッ
ク分のブロック関連情報を収集する方法であるため、ブ
ロック代替用テーブルの形成に要する処理時間が長いう
え、テーブルメモリに要求される記憶容量が大きいとい
う問題もある。近年、フラッシュメモリは急速に大容量
化の一途を辿っており、この不利点はますます顕著にな
る。
【0140】本発明は、上記の問題点に鑑みてなされた
もので、少ない資源で効率よくブロック代替管理を行え
るようにしたフラッシュメモリシステムを提供すること
を目的とする。
【0150】また、本発明は、不良ブロックへの無駄な
アクセスを不要とし、信頼性および効率の高いブロック
代替管理を行えるようにしたフラッシュメモリシステム
を提供することを目的とする。
【0160】さらに、本発明は、不良ブロックに置き換
わる代替ブロックへ短時間で効率よくアクセスできるよ
うにしたフラッシュメモリシステムを提供することを目
的とする。
【0170】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明の第1のフラッシュメモリシステムは、記
憶領域を複数のブロックに分割し、ブロック単位で記憶
データを一括消去するように構成されたフラッシュメモ
リと、前記フラッシュメモリ内で不良と判定されたブロ
ックに割り当てられていたアドレスを登録し、かつ前記
不良ブロックに替わって用いられるべき代替ブロックの
記憶位置を示す代替アドレスを与えるブロック代替情報
登録手段と、前記フラッシュメモリに対するメモリアク
セスのため与えられるアドレスを入力し、前記入力アド
レスが前記ブロック代替情報登録手段に登録されていな
いときは前記入力アドレスで指示される前記フラッシュ
メモリ内のブロックにアクセスし、前記入力アドレスが
前記ブロック代替情報登録手段に登録されているときは
前記入力アドレスに対応した前記代替アドレスで指示さ
れる前記フラッシュメモリ内のブロックにアクセスする
ブロック代替制御手段とを具備する構成とした。
【0180】また、本発明の第2のフラッシュメモリシ
ステムは、記憶領域を複数のブロックに分割し、ブロッ
ク単位で記憶データを一括消去するように構成されたフ
ラッシュメモリと、前記フラッシュメモリ内で不良と判
定されたブロックに割り当てられていた論理アドレスを
登録し、各不良ブロックに替わって用いられる代替ブロ
ックに割り当てられている物理アドレスを代替アドレス
として与えるブロック代替情報登録手段と、前記フラッ
シュメモリに対するメモリアクセスのため与えられるア
ドレスを入力し、前記入力アドレスをシステム内の論理
アドレスに変換し、前記論理アドレスが前記ブロック代
替情報登録手段に登録されていないときは前記論理アド
レスで指示される前記半導体メモリ内のブロックにアク
セスするブロック代替制御手段とを具備する構成とし
た。
【0190】本発明において、前記ブロック代替情報登
録手段は、前記フラッシュメモリ内に代替ブロック用と
して設定された複数個のスペアブロックと1対1で対応
する複数個の記憶位置を有し、いずれかのスペアブロッ
クが代替ブロックとして使用されているときはそれによ
って代替されている不良ブロックに割り当てられている
アドレスを示すアドレス情報を前記スペアブロックと対
応する前記記憶位置に格納する不揮発性の記憶手段を含
むものであってよい。
【0200】また、各々の前記記憶位置には、各対応す
る前記スペアブロックが代替ブロックとして使用されて
いないときはその空き状態を示す第1のステータス情報
が格納されてよく、さらには各対応する前記スペアブロ
ックが正常であるのか不良であるのかを示す第2のステ
ータス情報も格納されてよい。
【0210】また、前記ブロック代替情報登録手段は、
各々の前記不良ブロックに替わる代替ブロックのアドレ
スをその不良ブロックに対応するアドレス情報が格納さ
れている前記記憶位置のアドレスに基づいて求めるアド
レス生成手段を含むものであってよい。
【0220】前記フラッシュメモリと前記不揮発性記憶
手段とは別個のデータ線を介して前記メモリ制御手段に
接続されている構成が好ましい。
【0230】前記不揮発性記憶手段は、好ましくはNO
R型フラッシュメモリで構成されてよい。あるいは、前
記フラッシュメモリ内の所定の記憶領域を用いて構成さ
れてもよい。
【0240】
【発明の実施の形態】以下、添付図を参照して本発明の
実施例を説明する。
【0250】図1は、本発明の一実施例によるフラッシ
ュメモリシステムの構成を示す。このシステムにおい
て、コントローラ10、テーブルメモリ12およびフラ
ッシュメモリ14の各チップは一枚のカードたとえばフ
ラッシュ・ディスク・カード16上に搭載されている。
カード16がホストコンピュータ18のカード・スロッ
トに装着され、コントローラ10はホストコンピュータ
18に所定規格のインタフェースたとえばPCMCIA
−ATAまたはIDEインタフェース20で接続され
る。
【0260】フラッシュメモリ14は、ホスト18側か
らコントローラ10を介してデータの書き込み/読み出
しを行えるメモリであり、たとえば同一構成および機能
を有する1個または複数個(n個)のAND型フラッシ
ュEEPROMチップからなり、バス22および所要の
制御線24を介してコントローラ10に接続されてい
る。
【0270】テーブルメモリ12は、ホスト18とは独
立してコンローラ10の管理下に置かれる不揮発性の半
導体メモリチップたとえばNOR型フラッシユメモリか
らなり、データ蓄積用のフラッシュメモリ14とは別個
のバス26および制御線28を介してコントローラ10
に接続されている。このテーブルメモリ12内に後述す
るブロック代替管理テーブルが構築される。
【0280】図2に、本実施例におけるコントローラ1
0の内部の機能的構成をブロック図で示す。コントロー
ラ10は、メインシーケンサ30、フラッシュI/Fシ
ーケンサ32、ホストインタフェース部34、データバ
ッファ36およびバッファ制御部38を有している。
【0290】メインシーケンサ30は、内蔵または外付
けのファームウェアにしたがって動作し、コントローラ
10内の各部を制御してホスト18およびフラッシュメ
モリ14間のデータのやりとりを管理するだけでなく、
テーブルメモリ12に対して直接アクセス可能で所要の
メモリ制御を行う機能を有している。
【0300】フラッシュI/Fシーケンサ32は、メイ
ンシーケンサ30の管理下でフラッシュメモリ14に対
して直接アクセスし所要のメモリ制御を行う。
【0310】ホストインタフェース部34は、CHSレ
ジスタ40、アドレス変換部42、ロジック制御部44
およびI/Oポート46等を含んでいる。CHSレジス
タ40は、ホスト18より送られて来たCHS(シリン
ダ・ヘッド・セクタ)モードのアドレスを保持する。ア
ドレス変換部42は、ホスト18からのCHSアドレス
をシステム内の論理アドレスに変換するための演算機能
を有するほか、論理アドレスの自動更新を行うための演
算機能も有している。
【0320】ロジック制御部44は、ホスト18側より
書き込み可能または読み取り可能な各種レジスタを内蔵
しており、書き込まれたコマンドを解読してアドレス変
換部42やバッファ制御部38等を制御する機能を有し
ている。
【0330】I/Oポート46は、ホスト18のバス2
0に所定規格のインタフェースたとえばPCMCIA−
ATAまたはIDEインタフェースで接続され、ホスト
18より入力したデータおよび制御信号を各部へ転送す
るためのマルチプレクサ機能を有するほか、ホスト18
より受信したアドレス信号をデコードするためのアドレ
スデコードを内蔵している。
【0340】データバッファ36は、揮発性の半導体メ
モリたとえばSRAMからなる。バッファ制御部38
は、メインシーケンサ30、フラッシュI/Fシーケン
サ32またはI/Oポート46からのデータバッファ3
6に対するデータの書き込み/読み出しの要求を受け付
け、かつ調停を行って、データバッファ36のデータ書
き込み/読み出し動作を制御する。
【0350】なお、メインシーケンサ30とフラッシュ
I/Fシーケンサ32、ホストインタフェース部34、
バッファ制御部38の各部との間はデータバスと制御線
とで接続されるが、これらのデータバスはハードウェア
的には共通のバスでよく、さらにはその共通バスにテー
ブルメモリ12を接続することも可能である。
【0360】図3に、フラッシュメモリ14における1
ブロック内の記憶領域フォーマットの一例を示す。フラ
ッシュメモリ14の各チップFMi (i=1,2…,
n)内のメモリ領域は所定数(N個)のブロックに分割
され、さらに各ブロック内の記憶領域が所定のフォーマ
ットで区分されている。
【0370】図3のフォーマット例では、1ブロック内
が512バイト(1セクタ分)のデータ格納部と、4バ
イトのECC(Error Check and Correction) コード格
納部と、12バイトの未使用領域(Reserve )とに区分
されている。1ブロックが書き込み単位の1セクタに相
当するため、消去だけでなく書き込みも1ブロック単位
で行われる。
【0380】図4に、フラッシュメモリ・チップFMi
の記憶領域フォーマットの一例を示す。この例では、各
チップFMi 内の記憶領域が16384個のブロックに
分割され、それぞれのブロックに配列順に物理アドレス
0,1,…,16383が割り当てられる。
【0390】また、本実施例では、各フラッシュメモリ
・チップFMi 内でブロックの代替が行われていない場
所では論理アドレスと物理アドレスとが同じ値で対応
し、物理アドレスと同じ値の論理アドレスが割り当てら
れる。
【0400】各フラッシュメモリ・チップFMi 内の1
6384個のブロックのうち、0〜15359番目のブ
ロックは通常領域に属し、正常である限りデータ格納用
ブロックとして用いられる。残りのブロックつまり15
360番目から16383番目(最後)までの1024
個のブロックはスペア領域に属し、通常領域内に不良の
ブロックが存在するときにそれに替わる代替ブロックと
して用いられる。
【0410】図4には、テーブルメモリ12内に構築さ
れるブロック代替管理テーブルの一例も示されている。
本実施例では、各フラッシュメモリ・チップFMi につ
いてそのスペア領域のブロック数またはアドレス数と同
じ個数(1024)のテーブルアドレス(物理アドレ
ス)がブロック代替管理テーブルTBi 内に設定され、
各テーブルアドレスが1対1の対応関係でいずれか1つ
のスペアブロックの物理アドレスに対応づけられてい
る。
【0420】この例では、それぞれスペア領域およびテ
ーブル領域内で同じ配列順位を有するテーブルアドレス
とスペアブロック物理アドレスとが互いに対応してお
り、各テーブルアドレスに一定のオフセット値AS (1
5360)を加算すると、そのテーブルアドレスに対応
するスペアブロック物理アドレスが得られるという関係
がある。
【0430】各テーブルアドレスで指示されるテーブル
記憶位置には、そのテーブルアドレスに対応するスペア
ブロックの状態に関する情報がブロック代替情報として
所定のデータ長たとえば1ワード(16ビット)で格納
される。
【0440】図5に、本実施例におけるブロック代替情
報のデータフォーマット例を示す。この1ワードのブロ
ック代替情報B15-00 のうち、最上位2ビットB15-14
には当該(対応)スペアブロックの良否状態を示す情報
がセットされる。つまり、当該スペアブロックが「正
常」であるか「不良」であるかに応じてこの良否フラグ
ビットB15-14 に「11」,「00」がセットされる。
【0450】なお、本実施例においてブロックが「正
常」であるとは、前回このスペアブロックにアクセスし
た際に正常であったことを意味し、必ずしも現時点の状
態が正常であるとは限らない。また、「不良」と判定さ
れたブロックには以後のアクセスを禁止するため、いっ
たん「00」にセットされた良否フラグビットB15-14
が「11」に変わることはない。
【0460】下位14ビットのフィールドB13-00 は、
最上位ビット(良否フラグビット)B15-14 が「11」
のとき有意となり、当該スペアブロックが未使用状態つ
まり空き状態であるのか、それとも代替ブロックとして
使用中の状態であるのかを示す情報がセットされる。
【0470】すなわち、当該スペアブロックが空き状態
のときは、このフィールドB13-00の全ビットに1がセ
ットされる。したがって、ブロック代替情報B15-00 は
全ビットが1の値つまりFFFFh になる。
【0480】また、当該スペアブロックが代替ブロック
として使用されているときは、このフィールドB13-00
には当該スペアブロック(代替ブロック)によって代替
されている通常領域内の不良ブロックに割り当てられて
いた論理アドレスがセットされる。
【0490】図5には、フラッシュメモリ14の全チッ
プFM0 ,FM1 ,…,FMn に対応するブロック代替
管理テーブルTB0 ,TB1 ,…,TBn のテーブルメ
モリ12内の配置構造も示されている。本例では、テー
ブルメモリ12の物理アドレスの最下位10ビットの値
がチップ1個分の各ブロック代替管理テーブルTBiの
物理アドレスに相当する。そして、テーブル1個分のア
ドレスは[0000000000]〜[1111111111]で与えられる
から、テーブルの始端位置が3C00h のときは、3F
FFh が終端位置となる。
【0500】なお、図4の例では、ブロック代替管理テ
ーブルTBi の先頭位置(テーブルアドレス0)および
2番目の位置(テーブルアドレス1)に論理アドレス
4,5がそれぞれ格納(登録)されている場合を示して
いる。
【0510】このことは、フラッシュメモリ・チップF
Mi において論理アドレス4,5をそれぞれ割り当てら
れていた通常領域内のブロックつまり物理アドレス4,
5の両ブロックが不良と判定されており、物理アドレス
4の不良ブロックはテーブルアドレス0に対応するチッ
プFMi 内の物理アドレス15360のスペアブロック
で代替され、物理アドレス5の不良ブロックはテーブル
アドレス1に対応するチップFMi 内の物理アドレス1
5361のスペアブロックで代替されていることを意味
する。これらのブロック代替に伴って、論理アドレス
4,5は実質的に不良ブロック(4,5)から代替ブロ
ック(15360,15361)にそれぞれ移行してい
る。
【0520】フラッシュメモリ内の不良ブロックは、チ
ップ出荷前のブロック良否検査によって検出できるのは
もちろん、実際のメモリアクセス動作の中でも公知の方
法で検出可能である。チップ出荷前の良否検査で検出さ
れる不良はいわゆる先天性不良であり、使用中に不良に
なるのはいわゆる後天性不良である。本発明では、いず
れの不良ブロックも検出された順にブロック代替管理テ
ーブルTBに登録される。その場合、図4に示すよう
に、テーブルの先頭位置から順に1テーブルアドレスに
つき1論理アドレスずつ登録されることになる。
【0530】なお、先天性不良のブロックが各フラッシ
ュメモリ・チップ内の所定の冗長部に記録またはリスト
される場合は、そのリストの情報を基に先天性不良ブロ
ックをブロック代替管理テーブルTBに一括登録するこ
とができる。そのようなリストが得られない場合は、シ
ステム構築時の初期化で全ブロックの良否を検査して先
天性不良ブロックを割り出してもよい。あるいは、先天
性不良ブロックも後天性不良ブロックと同じ扱いで実際
のメモリアクセスの中で個別的に検出し、その都度ブロ
ック代替管理テーブルTBに登録してもよい。
【0540】図6および図7に、本実施例においてアド
レス変換部42により実行されるアドレス演算の例を示
す。
【0550】本実施例では、ホスト18からのアドレス
がCHSモードで与えられる。このCHSモードのアド
レスには、アドレス指定の対象となる記憶場所のシリン
ダナンバー(C)、ヘッドナンバー(H)、セクタナン
バー(S)、シリンダあたりのヘッド数(HpC)およ
びヘッドあたりのセクタ数(SpH)の値(データ)が
含まれている。
【0560】図6に示すように、先ずアドレス変換部4
2は、入力したCHSモードのアドレス情報(C,H,
S,HpC,SpH)を基に次式(1)を演算して、対
応する値の論理ブロックアドレス(LBA)を求める。 LBA=(C×HpC+H)SpH+S−1 ………(1)
【0570】次に、アドレス変換部42は、上記のよう
にして算出した論理ブロックアドレス(LBA)とフラ
ッシュメモリ14に含まれるチッブFMの個数(Num
CHIP)とから次式(2),(3)を演算して、論理
アドレスを規定するチップナンバー(CHIP- NU
M)およびチップ内論理ブロックナンバー(LA- BL
K)を求める。 LA- BLK=LBA/NumCHIP ………(2) CHIP- NUM=LBA mod NumCHIP ………(3)
【0580】なお、上式(2),(3)は一例である。
フラッシュメモリ・チップFMi またはブロックの記憶
領域フォーマットが変われば、上式(2),(3)とは
違った演算式が用いられる。
【0590】次に、図8〜図10につきホスト18から
の読み出しのメモリアクセスに対する本システムの作用
を説明する。図8および図9はコントローラ10内の処
理手順を示し、図10はシステム内の各部の動作のタイ
ミングを示す。
【0600】本フラッシュメモリシステムに対してデー
タの読み出しを行うとき、ホスト18は上記したように
CHSモードのアドレス情報で読み出し位置(先頭位
置)を指定してくる。また、読み出しデータの量または
範囲をセクタカウント(SC)で指定し、読み出しコマ
ンドを送ってくる。
【0610】コントローラ10では、ホストインタフェ
ース部34においてI/Oポート46で受信したホスト
18からの読み出し指令情報(CHS,SC,コマン
ド)をロジック制御部44内のレジスタに格納する。以
後、メインシーケンサ30が中心となって以下のような
処理を実行する。
【0620】先ず、ロジック制御部44内に設けられて
いるホスト向けの内部ビジーフラグ(BUSY)をセッ
トする(ステップA1 )。
【0630】次いで、CHSレジスタ40に格納されて
いるCHSモードの入力アドレスをアドレス変換部42
において図6および図7に示すような演算によりフラッ
シュメモリ14内の論理アドレスに変換する(ステップ
A2 )。このアドレス変換で得られる論理アドレスから
今回の読み出し動作の対象となるフラッシュメモリ・チ
ップFMi が判明する。
【0640】次に、メインシーケンサ30が、該当フラ
ッシュメモリ・チップFMi に対応するブロック代替管
理テーブルTBi を検索し、ホスト18より指定されて
いる論理アドレスが該テーブルTBi 内に登録されてい
るかどうかテーブル先頭位置からアドレス順に検索(サ
ーチ)する(ステップA3 〜A9 )。
【0650】このサーチは高速に行える。本実施例のよ
うにテーブルメモリ12にNOR型フラッシュメモリを
用いた場合、テーブル1行の検索に要する時間を100
ナノ秒以下に抑えることが可能である。
【0660】たとえば、ブロック代替管理テーブルTB
i の内容が図4に示すような状態であり、アドレス変換
によって得られた論理アドレスの値が2であったとす
る。
【0670】この場合、ブロック代替管理テーブルTB
i の検索で最初に(テーブル先頭位置より)読み出され
る情報は「C004」であり、照合一致しない。そこ
で、次に2番目のテーブル記憶位置の情報を読み出す
と、「C005」であり、これも照合一致しない。次
に、3番目のテーブル位置の情報を読み出すと、「FF
FFh 」であり、これは対応スペアブロック(物理アド
レス15361のブロック)が空き(未使用)の状態で
あることを示す。したがって、これ以降のテーブル記憶
位置にも全て空き状態を示す「FFFFh 」が格納され
ていることもわかる。
【0680】この時点で、論理アドレス2はブロック代
替管理テーブルTBi に登録されていないこと、したが
って目的のフラッシュメモリ読み出し位置は物理アドレ
ス2のブロックであることが判明したので(ステップA
6 )、テーブル検索を終了し(ステップA11)、この論
理アドレス2をそのままアクセス先の物理アドレス2に
置き換える(ステップA12)。
【0690】そして、フラッシュI/Fシーケンサ32
を通じてこの物理アドレス2で指定される該当フラッシ
ュメモリ・チップFMi 内のブロックにアクセスし、そ
のアクセスしたブロックよりデータを読み出す(ステッ
プA14)。この際、フラッシュメモリ14より読み出さ
れたデータはバス22を介していったんデータバッファ
36に格納される。
【0700】別の例として、上記アドレス変換によって
得られた論理アドレスの値が5であったとする。この場
合は、上記のテーブル検索において2番目のテーブル記
憶位置から「C005」が読み出され、このブロック代
替情報「C005」に論理アドレス5が照合一致する
(ステップA5 )。
【0710】この時点で、論理アドレス5を割り当てら
れていた通常領域内の物理アドレス5のブロックが不良
であること、そしてテーブルTBi の2番目の記憶位置
に対応するチップ内物理アドレスの位置に該不良ブロッ
クの替わりとなる該当の代替ブロックが配置されている
ことが判明する。そこで、テーブル検索を終了し(ステ
ップA11)、照合一致のあったテーブルアドレス(1)
に所定のオフセット値As (15360)を加算して、
アクセス先のチップ内物理アドレス(15361)を求
める(ステップA13)。
【0720】そして、フラッシュI/Fシーケンサ32
を通じてこの物理アドレス(15361)で指定される
該当フラッシュメモリ・チップFMi のブロックにアク
セスし、そのブロックよりデータを読み出す(ステップ
A14)。この場合も、フラッシュメモリ14より読み出
されたデータはバス22を介してデータバッファ36に
格納される。
【0730】上記のようにしてフラッシュメモリ14よ
り読み出されたデータにエラーがなければ、たとえばデ
ータ読み出し終了時にフラッシュメモリ14より送られ
てくるステータス情報がエラーを示していなければ、正
常な読み取りが行われたものと判断し(ステップA2
6)、直ちにデータバッファ36内の読み出しデータを
ホスト18側へ転送可能とする。すなわち、内部ビジー
フラグ(BSY)をクリアし、ホスト18による読み出
しデータの取り込みを待つ(ステップA28)。
【0740】そして、ホスト18へのデータ転送の終了
の後、今回のメモリアクセスでホスト18より与えられ
ているセクタカウント(SC)が1のときは上記した1
ブロック(1セクタ)分の読み出しでもって今回の全読
み出し動作を終了する。しかし、セクタカウント(S
C)が2以上のときは、最初に戻り(ステップA30)、
上記と同様の手順で読み出し動作を実行する。ただし、
2回目以降の論理アドレスはアドレス変換部42におい
て自動更新(インクリメント)した値となる。
【0750】図10の(A)には、フラッシュメモリ1
4より読み出された2セクタ分のデータにエラーが無い
場合の各部の動作のタイミングが示されている。
【0760】フラッシュメモリ14より読み出されたデ
ータにエラーがある場合は、図9のステップA16〜A25
の処理が行われる。このときの各部の動作のタイミング
は図10の(B)に示されている。
【0770】各フラッシュメモリ・チップFMi 内には
チップ内のメモリアレイから読み出したデータにECC
エラーが発生したか否かを検出できる機能が備わってい
る。エラーがあったときは、データ読み出し終了時にチ
ップFMi よりフラッシュI/Fシーケンサ32に送ら
れてくるステータス情報でエラーが通知される。
【0780】ECCエラーを示すステータス情報が通知
されたときは、今回の読み出し対象となったブロックの
記憶内容を消去する(ステップA16)。このイレース処
理では、フラッシュI/Fシーケンサ32よりバス22
を介して該当のフラッシュメモリ・チップFMi に消去
対象のブロックを指定するアドレスや消去実行コマンド
等が与えられる。そうすると、該チップFMi 内でその
ブロックについてブロック消去動作が実行される。
【0790】本実施例では、上記のように読み出し時に
ECCエラーを起こしたブロックについては、これを不
良ブロックと認定する。この不良と認定されたブロック
は、フラッシュメモリ・チップFMi において通常領域
に属する通常ブロックであるときもあれば、スペア領域
に属するスペアブロック(代替ブロック)のときもあ
る。
【0800】スペア領域内のブロックであるときは、ブ
ロック代替管理テーブルTBi においてそのスペアブロ
ックについての登録抹消処理を行う(ステップA18)。
この登録抹消処理では、そのスペアブロックに対応する
テーブル記憶位置に「0000h 」を書き込み、そのス
ペアブロックが「不良」であること、したがって代替ブ
ロックでも代替可能ブロックでもないことを明示し、以
後のアクセスを禁止する。こうして、「不良」と判定し
たスペアブロックをブロック代替管理テーブルTBi か
ら登録抹消する。
【0810】今回不良と認定されたブロックが通常領域
内のブロックであるときは、上記のようなブロック代替
管理テーブルTBi における登録抹消処理(ステップA
18)は不要であり、この処理をスキップして(ステップ
A19)、空きブロックサーチ(ステップA20)を行う。
【0820】この空きブロックサーチでは、今回不良と
認定されたブロックに換わるべき空き状態のスペアブロ
ックを捜す。具体的には、ブロック代替管理テーブルT
Biにおいてテーブル先頭位置から順にテーブル記憶位
置にアクセスし、空き情報「FFFFh 」が格納されて
いる最先(先頭)の位置を捜し出す。そして、その捜し
出したテーブル位置を基に、上記したようなテーブルア
ドレスとスペアブロック物理アドレスとの対応関係か
ら、スペア領域内で未だ空き状態になっているスペアブ
ロックの中の先頭ブロックを割り出す。
【0830】本実施例では、上記のようなブロック代替
管理テーブルTBi におけるスペアブロック登録抹消お
よび空きブロックサーチの各処理(ステップA18,A2
0)をフラッシュメモリ14における不良ブロックのイ
レース処理(ステップA16)と並行して実行することが
可能である。
【0840】すなわち、ブロック代替管理テーブルTB
i が位置するテーブルメモリ12と不良ブロックが位置
するフラッシュメモリ14とは別々のバス26,22に
接続されているので、コントローラ10は両メモリ1
2,14に対して並列的にアクセスし、両メモリ12,
14に所要のメモリ動作を並列的または同時的に行わせ
ることができる。
【0850】上記のようにして新規の代替ブロックとな
るべき空きのスペアブロックを割り出したなら、次に、
このスペアブロックをイレース(初期化)したうえで、
データバッファ36に格納されているデータ(フラッシ
ュメモリ14より今回読み出されたデータ)を該スペア
ブロックに書き込む(ステップA21)。
【0860】このデータ書き込み処理は、今回不良と認
定されたブロックにいままで蓄積されていたデータを新
規代替ブロックとなるべきスペアブロックに移し替える
処理にほかならない。
【0870】この初期化のイレース処理は上記不良ブロ
ックに対するイレース処理(ステップA16)と同様にし
て行われる。また、該スペアブロックへのデータの書き
込みに際しては、フラッシュI/Fシーケンサ32から
は該スペアブロックを指定するアドレスと書き込みを指
示する所要のコマンドとが、データバッファ36からは
書き込み対象のデータが、それぞれ所定のタイミングで
該当のフラッシュメモリ・チップFMi に送り込まれ
る。そうすると、そのフラッシュメモリ・チップFMi
内では、書き込みコマンドが実行され、該当スペアブロ
ックに該データが書き込まれる。
【0880】このスペアブロックにおける初期化および
データ書き込みは、首尾良く行われたかそれとも失敗し
たのか、上記と同様にフラッシュメモリ・チップFMi
からのステータス情報を基に確認をとる(ステップA1
2)。失敗したときは、当該スペアブロックを「不良」
と認定し、新規の代替ブロックとして使える正常なスペ
アブロックが得られるまで、スペアブロックに関する上
記一連の処理(A18,A20,A21)を繰り返す(ステッ
プA23)。その際、ブロック代替管理テーブルTBi に
おいては、テーブルアドレスの上位位置から順に「00
00h 」の書き込み(登録抹消)が行われる。
【0890】そして、新規の代替ブロックとして使えた
正常なスペアブロックが決まったならば、次にそのスペ
アブロックに対応するブロック代替管理テーブルTBi
のテーブル記憶位置に今回のメモリアクセスに係る論理
アドレス(ステップA2 )の値を格納(登録)する(ス
テップA24)。これで、この論理アドレスはこの新規代
替ブロックに割り付けられたことになる。
【0900】次に、今回の読み出しデータエラーが訂正
不能であった場合は、この時点でロジック制御部44内
のエラービットフラグをセットする(ステップA25)。
次いで、ビジーフラグ(BSY)をクリアして(ステッ
プA27)、データバッファ36内の読み出しデータをホ
スト18へ転送可能とする(ステップA28)。
【0910】次に、図11〜図15につきホスト18か
らの書き込みのメモリアクセスに対する本システムの作
用を説明する。図11〜図13はコントローラ10内の
処理手順を示し、図14〜図15はシステム内の各部の
動作のタイミングを示す。
【0920】データの書き込みを行うとき、ホスト18
はCHSモードのアドレス情報で書き込み位置(先頭位
置)を指定し、セクタカウント(SC)で書き込みデー
タの量または長さを指定し、書き込みコマンドで指示し
てくる。
【0930】コントローラ10では、ホストインタフェ
ース部34においてI/Oポート46で受信したホスト
18からの書き込み指令情報(CHS,SC,コマン
ド)をロジック制御部44内のレジスタに格納する。以
後、メインシーケンサ30が中心となって以下のような
処理を実行する。
【0940】先ず、ロジック制御部44内の内部ビジー
フラグ(BUSY)をセットする(ステップB1 )。
【0950】次いで、アドレス変換部42においてCH
Sモードのアドレスからフラッシュメモリ内論理アドレ
スへのアドレス変換(演算)が行われる(ステップB2
)。
【0960】次に、メインシーケンサ30が、上記した
読み出し動作のときと同様に、該当フラッシュメモリ・
チップFMi に対応するブロック代替管理テーブルTB
i を検索し、ホスト18より指定されている論理アドレ
スがテーブルTBi 内に登録されているかどうかテーブ
ル先頭位置からアドレス順に検索し(ステップB3 〜B
9 )、検索結果にしたがって該論理アドレスに対応する
ブロックの物理アドレスを割り出す。
【0970】すなわち、該論理アドレスがテーブルTB
i 内に登録されているときは、その登録位置のテーブル
アドレスに対応する代替ブロックの物理アドレスが割り
出される(ステップB13)。また、該論理アドレスがテ
ーブルTBi 内に登録されていないときは、その論理ア
ドレスと同じ値の物理アドレスが割り出される(ステッ
プB12)。
【0980】次に、その割り出された物理アドレスで指
示される当該フラッシュメモリ・チップFMi 内のブロ
ックをイレース(初期化)する。この初期化のイレース
処理は、上記した読み出し動作における不良ブロックの
イレース(ステップA16)と同様の手順で行われる。
【0990】そして、ホスト18からの書き込みデータ
の転送に応ずるため内部ビジーフラグ(BSY)をクリ
アしておいて(ステップB15)、イレース処理(ステッ
プB14)が首尾良く完了したことを当該フラッシュメモ
リ・チップFMi からのステータス情報で確認する(ス
テップB16,B17)。さらに、ホスト18からのデータ
が全てデータバッファ36にロードされたことも確認す
る(ステップB28)。
【1000】そして、内部ビジーフラグ(BSY)をセ
ットしたうえで(ステップB29)、フラッシュメモリ1
4へのデータ書き込みを行う(ステップB30)。このデ
ータ書き込み処理は、上記した読み出し動作におけるデ
ータエラー発生時のデータ移し替えのための書き込み処
理(ステップA21)と同様の手順で行われる。
【1010】すなわち、フラッシュI/Fシーケンサ3
2からは該当の物理アドレスと書き込みコマンドとが、
データバッファ36からはホスト18より送られて来た
書き込み対象のデータが、それぞれ所定のタイミングで
該当のフラッシュメモリ・チップFMi に送り込まれ
る。フラッシュメモリ・チップFMi 内では、書き込み
コマンドが実行され、該当ブロックに該データが書き込
まれる。
【1020】そして、この書き込みが首尾良く行われた
ことを当該フラッシュメモリ・チップFMi からのステ
ータス情報で確認する(ステップB31)。ホスト18よ
り与えられているセクタカウント(SC)が1のときは
これで全処理を終了し、セクタカウント(SC)が2以
上のときは最初に戻り(ステップB42)、上記と同様の
手順で読み出し動作を実行する。ただし、2回目以降の
論理アドレスはアドレス変換部42において1つインク
リメントした値となる。
【1030】図14の(A)には、何のエラーや障害も
発生することなくホストからの2セクタ分のデータがフ
ラッシュメモリ14に書き込まれた場合の各部の動作の
タイミングが示されている。
【1040】上記した該当ブロックに対するイレース処
理(ステップB14)が失敗したときは、図12のステッ
プB20〜B26の処理が行われる。このときの各部の動作
のタイミングは図14の(B)に示されている。
【1050】このイレース処理(ステップB14)でエラ
ーがあったときは、イレース動作終了後に当該フラッシ
ュメモリ・チップFMi よりフラッシュI/Fシーケン
サ32に送られてくるステータス情報でエラーが通知さ
れる。
【1060】本実施例では、イレース・エラーが発生し
たブロックについては、これを不良ブロックと認定す
る。この不良と認定されたブロックは、フラッシュメモ
リ・チップFMi において通常領域に属する通常ブロッ
クであるときもあれば、スペア領域に属するスペアブロ
ック(代替ブロック)のときもある。
【1070】スペア領域内のブロックであるときは、ブ
ロック代替管理テーブルTBi においてそのスペアブロ
ックについての登録抹消処理を行う(ステップB19)。
この登録抹消処理は、上記した読み出し動作における登
録抹消処理(ステップA18)と同様の手順で行われる。
【1080】今回不良と認定されたブロックが通常領域
内のブロックであるときは、上記した読み出し動作のと
きと同様に、テーブル内登録抹消処理(ステップB19)
をスキップして(ステップB20)、空きブロックサーチ
(ステップB21)を行う。
【1090】この空きブロックサーチの処理も、上記し
た読み出し動作における空きブロックサーチ(ステップ
A20)と同様の手順で行われ、空き状態のスペアブロッ
クの中で最も上位位置にあるブロックを割り出す。
【1100】上記のようにして新規の代替ブロックとな
るべき空きのスペアブロックを割り出したなら、次に、
このスペアブロックに対し上記と同様の手順で初期化の
イレースを行う(ステップB22)。
【1110】このイレースが首尾良く行われたならその
スペアブロックを新規代替ブロックとして使える正常な
ブロックと認定し、イレースが失敗したならこのスペア
ブロックを不良ブロックと認定し、正常なスペアブロッ
クが見つかるまで上記の処理を繰り返す(ステップB2
4)。この点は、上記した読み出し動作において新規代
替ブロックを決定するときの処理(ステップA18〜A2
3)と類似している。
【1120】そして、正常にイレースされたスペアブロ
ックに突き当たったときは、このスペアブロックを代替
ブロックとして登録するため、ブロック代替管理テーブ
ルTBi においてそのスペアブロックの物理アドレスに
対応するテーブルアドレスのテーブル位置に今回のメモ
リアクセスで指定された論理アドレス(ステップB2)
を格納しておく(ステップB25)。
【1130】また、今回のデータ書き込みのアクセス先
をこの登録された代替ブロックに変更しておく(ステッ
プB26)。
【1140】上記フラッシュメモリ14へのデータ書き
込み処理(ステップB30)が失敗したときは、図13の
ステップB32〜B38の処理が行われる。このときの各部
の動作のタイミングは図15に示されている。
【1150】このデータ書き込み処理(ステップB30)
でエラーがあったときも、当該フラッシュメモリ・チッ
プFMi より書き込み動作終了後に送られてくるステー
タス情報でエラーが通知される。
【1160】本実施例では、データ書き込みの失敗した
ブロックについても、これを不良ブロックと認定する。
そして、この不良ブロックに替わるべき代替用のスペア
ブロックを決定し、そのスペアブロックにアクセスして
今回のホスト18からのデータを書き込む。この一連の
代替処理(ステップB32〜B38)は、上記した読み出し
動作におけるデータエラー発生時の代替処理(ステップ
A17〜A24)と同様の手順で行われる。
【1170】その結果、上記のような所定の条件を満た
す新規の代替用スペアブロックに今回のメモリアクセス
でホスト18より送られてきたデータが書き込まれる。
そして、このスペアブロックに対応するブロック代替管
理テーブルTBi のテーブル記憶位置に今回ホスト18
より指定された論理アドレスの値が格納(登録)される
ことで(ステップB38)、次回にこの論理アドレスが指
定されたときはこの新規代替ブロックがアクセス先とな
る。
【1180】なお、図8、図9、図11〜図13のフロ
ーチャートに示す読み出し動作および書き込み動作の手
順は、説明の便宜上、図3に示すような1ブロック=1
セクタのフォーマットに対応させている。1ブロックに
複数のセクタが含まれている場合は、1セクタの転送毎
に最初から処理を繰り返すことはせず、1ブロック分の
全データをデータバッファ36に格納し、ホストインタ
フェース部34とホスト18との間だけで1セクタ単位
のデータ転送を繰り返す。
【1190】上記したように、本実施例のフラッシュメ
モリシステムでは、フラッシュメモリ14の外部で、か
つ別個のバス26上に好ましくはNOR型フラッシュメ
モリからなる不揮発性のテーブルメモリ12を設け、こ
のテーブルメモリ12内に上記したようなブロック代替
管理テーブルTBを構築する。
【1200】ホスト18からのメモリアクセス要求を受
ける度に、コントローラ10(より詳細にはメインシー
ケンサ30)が該テーブルTBを検索すると、テーブル
の内容とホストより指定された論理アドレスとの照合に
よりブロック代替の要否判断が自動的に行われ、アクセ
ス先となる該当ブロックが短時間で判明する。このアク
セス先のブロックは、少なくとも前回アクセスされた時
点では正常な記憶領域を有していたものであり、今回も
正常であることの蓋然性は高い。
【1210】本実施例によれば、最初から不良と分かっ
ているブロックにアクセスするようなことを回避するこ
とができる。これにより、不良のアレイ領域へのアクセ
スに起因してフラッシュメモリが受ける有害なストレス
を可及的に少なくすることができる。
【1220】そして、仮にアクセス先のブロックが不良
になっていた場合は、ブロック代替管理テーブルTBを
参照しつつ、その不良ブロックに替わるべき代替ブロッ
クを適確かつ迅速に決定し、同時にそのような新規のブ
ロック代替に追随してテーブルTBの内容も適宜更新
(書き換え)するようにしている。
【1230】上記したように、本フラッュメモリシステ
ムでは、ブロック代替管理テーブルTB上でブロック代
替情報を一元管理しているため、効率の高いブロック代
替管理を実現できる。特に、テーブルTB内には不良と
判定された通常ブロックに係わる論理アドレスのみ登録
すればよく、代替ブロックを指示するための特別なポイ
ンタを登録する必要もない。したがって、テーブル容量
は少なくて済み、フラッシュメモリの大容量化に十分対
応できる。
【1240】また、ブロック代替管理テーブルTBには
電源の入/切に関係なくブロック代替情報が保持される
ため、電源投入直後等で行われるシステム初期化の中で
テーブル形成のための処理も時間も一切不要である。
【1250】また、本実施例では、ブロック代替管理テ
ーブルTBを与えるテーブルメモリ12とデータ格納用
のメモリ空間を与えるフラッシュメモリ14とが別々の
バス26,22に接続されているので、ブロック代替管
理テーブルTBi 内の処理(検索・更新等)をフラッシ
ュメモリ14側の動作と独立させて実行することが可能
であり、ブロック代替管理を効率よく展開できる。
【1260】もっとも、上記した実施例は一例であり、
本発明におけるブロック代替管理方式とりわけブロック
代替管理テーブルTBに関連する諸機能は種々の応用お
よび変形が可能である。
【1270】たとえば、上記した実施例では、ホスト1
8からのメモリアクセス要求を受けると、コントローラ
10(メインシーケンサ30)は即座に(無条件)でブ
ロック代替管理テーブルTBi を検索するようにした。
しかし、先ずはホストから指定された論理アドレスのブ
ロックにそのままアクセスし、そのブロックが不良であ
ることが冗長部のブロック関連情報等から確認された時
点で、ブロック代替管理テーブルTBを参照する方法も
可能である。この場合でも、ブロック代替管理テーブル
TBを通して該当の代替ブロックへアクセスすることが
できる。
【1280】また、ブロック代替管理テーブルTBの更
新は常に論理アドレス、不良フラグ等のデータ書き込み
の形態で行われる。テーブルの初期化で全テーブル位置
に書き込まれる空き情報(FFFFh )を除き、いった
ん書き込まれたデータが消去されることはない。その意
味で、上記実施例のようにブロック代替管理テーブルT
Bに用いる不揮発性のメモリとして、AND型フラシュ
メモリは機能的にもコスト的にも有利である。
【1290】しかし、EEPROMやFRAMのような
他の種類の不揮発性メモリも使用可能である。なお、テ
ーブルメモリ12に用いた不揮発性半導体メモリに他の
用途のテーブルや各種設定値、ファームウェア等も一緒
に格納できることはもちろんである。
【1300】あるいは、個々のフラッシュメモリ・チッ
プFMi 内の冗長領域にブロック代替管理テーブルTB
i を設けることも可能である。その場合、テーブル内の
処理とチップ内の本来のメモリ動作とは競合することに
なるため、特別の時分割制御が必要となる。
【1310】上記実施例では、ブロック代替管理テーブ
ルTBにおいて、フラッシュメモリ・チップ内スペア領
域のブロック数またはアドレス数と同じ個数のテーブル
アドレス(物理アドレス)が設定され、各テーブルアド
レスが1対1の対応関係でいずれか1つのスペアブロッ
クの物理アドレスに対応づけられていた。そして、それ
ぞれスペア領域およびテーブル領域内で同じ配列順位を
有するテーブルアドレスとスペアブロック物理アドレス
とが互いに対応しており、各テーブルアドレスに一定の
オフセット値AS を加算すると、そのテーブルアドレス
に対応するスペアブロック物理アドレスが得られるとい
う関係があった。
【1320】しかし、スペア領域のブロック数またはア
ドレス数とテーブルアドレスとは必ずしも同数である必
要はない。オフセットAs は任意に設定可能であり、一
定値でなくてもよい。重要なのは両者の間に1対1の対
応関係があり、その対応関係が管理されるということで
ある。
【1330】また、ブロック代替管理テーブル内の検索
方向または検索順次も任意に取り決めることが可能であ
る。
【1340】上記実施例におけるフラッシュ・ディスク
・システムの構成、特にコントローラ内部の構成または
レイアウトは一例であり、種々の変形が可能である。上
記した実施例においてホストより与えられるアドレスの
形態(CHSモード)も一例であり、ホストが最初から
フラッシュメモリ内の論理アドレスを与えてきてもよ
く、他のモードのアドレスを与えてきてもよい。種々多
様な構成または機能を有するホストないしホストインタ
フェースが使用可能である。
【1350】
【発明の効果】以上説明したように、本発明のフラッシ
ュメモリシステムによれば、少ない資源で効率よく信頼
性の高いブロック代替管理を行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施例によるフラッシュメモリシス
テムの構成を示すブロック図である。
【図2】実施例におけるコントローラの内部の機能的構
成を示すブロック図である。
【図3】実施例のフラッシュメモリにおけるブロック内
記憶領域フォーマットの一例を示す図である。
【図4】実施例におけるフラッシュメモリチップ内記憶
領域フォーマットの一例とブロック代替管理テーブルの
構成例を示す図である。
【図5】実施例におけるブロック代替情報のデータフォ
ーマット例を示す図である。
【図6】実施例のアドレス演算部で実行されるアドレス
演算の例を示す図である。
【図7】実施例のアドレス演算部で実行されるアドレス
演算の例を示す図である。
【図8】実施例における読み出し動作の処理手順を示す
フローチャートである。
【図9】実施例における読み出し動作の処理手順を示す
フローチャートである。
【図10】実施例の読み出し動作における各部の動作の
タイミングを示す図である。
【図11】実施例における書き込み動作の処理手順を示
すフローチャートである。
【図12】実施例における書き込み動作の処理手順を示
すフローチャートである。
【図13】実施例における書き込み動作の処理手順を示
すフローチャートである。
【図14】実施例の書き込み動作における各部の動作の
タイミングを示す図である。
【図15】実施例の書き込み動作における各部の動作の
タイミングを示す図である。
【符号の説明】
10 コントローラ 12 テーブルメモリ 14 フラッシュメモリ 18 ホストコンピュータ 22,26 バス 30 メインシーケンサ 32 フラッシュI/Fシーケンサ 34 ホストインタフェース部 36 データバッファ 38 バッファ制御部 42 アドレス変換部

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 記憶領域を複数のブロックに分割し、ブ
    ロック単位で記憶データを一括消去するように構成され
    たフラッシュメモリと、 前記フラッシュメモリ内で不良と判定されたブロックに
    割り当てられていたアドレスを登録し、かつ前記不良ブ
    ロックに替わって用いられるべき代替ブロックの記憶位
    置を示す代替アドレスを与えるブロック代替情報登録手
    段と、 前記フラッシュメモリに対するメモリアクセスのため与
    えられるアドレスを入力し、前記入力アドレスが前記ブ
    ロック代替情報登録手段に登録されていないときは前記
    入力アドレスで指示される前記フラッシュメモリ内のブ
    ロックにアクセスし、前記入力アドレスが前記ブロック
    代替情報登録手段に登録されているときは前記入力アド
    レスに対応した前記代替アドレスで指示される前記フラ
    ッシュメモリ内のブロックにアクセスするブロック代替
    制御手段とを具備するメモリシステム。
  2. 【請求項2】 記憶領域を複数のブロックに分割し、ブ
    ロック単位で記憶データを一括消去するように構成され
    たフラッシュメモリと、 前記フラッシュメモリ内で不良と判定されたブロックに
    割り当てられていた論理アドレスを登録し、各不良ブロ
    ックに替わって用いられるべき代替ブロックに割り当て
    られている物理アドレスを代替アドレスとして与えるブ
    ロック代替情報登録手段と、 前記フラッシュメモリに対するメモリアクセスのために
    与えられるアドレスを入力し、前記入力アドレスを前記
    フラッシュメモリにおける論理アドレスに変換し、前記
    論理アドレスが前記ブロック代替情報登録手段に登録さ
    れていないときは前記論理アドレスで指示される前記フ
    ラッシュメモリ内のブロックにアクセスし、前記論理ア
    ドレスが前記ブロック代替情報登録手段に登録されてい
    るときは前記論理アドレスに対応した前記代替アドレス
    で指示される前記フラッシュメモリ内のブロックにアク
    セスするブロック代替制御手段とを具備するメモリシス
    テム。
  3. 【請求項3】 前記ブロック代替情報登録手段が、前記
    フラッシュメモリ内に代替ブロック用として設定された
    複数個のスペアブロックと1対1で対応する複数個の記
    憶位置を有し、いずれかのスペアブロックが代替ブロッ
    クとして使用されているときはそれによって代替されて
    いる不良ブロックに割り当てられているアドレスを示す
    アドレス情報を前記スペアブロックに対応する前記記憶
    位置に格納する不揮発性の記憶手段を含む請求項1また
    は2に記載のフラッシュメモリシステム。
  4. 【請求項4】 各々の前記記憶位置には、それと対応す
    る前記スペアブロックが代替ブロックとして使用されて
    いないときはその空き状態を示す第1のステータス情報
    が格納される請求項3に記載のメモリシステム。
  5. 【請求項5】 各々の前記記憶位置には、それと対応す
    る前記スペアブロックが正常であるのか不良であるのか
    を示す第2のステータス情報が格納される請求項3また
    は4に記載のメモリシステム。
  6. 【請求項6】 前記ブロック代替情報登録手段が、各々
    の前記不良ブロックに替わる代替ブロックのアドレスを
    その不良ブロックに対応するアドレス情報が格納されて
    いる前記記憶位置のアドレスに基づいて求めるアドレス
    生成手段を含む請求項3に記載のメモリシステム。
  7. 【請求項7】 前記フラッシュメモリと前記不揮発性半
    導体記憶手段とは別個のデータ線を介して前記メモリ制
    御手段に接続されている請求項1〜6のいずれかに記載
    のメモリシステム。
  8. 【請求項8】 前記不揮発性記憶手段がNOR型フラッ
    シュメモリからなる請求項7に記載のメモリシステム。
  9. 【請求項9】 前記不揮発性記憶手段が前記フラッシュ
    メモリ内に設定された所定の記憶領域からなる請求項3
    に記載のフラッシュメモリシステム。
JP19497198A 1998-06-25 1998-06-25 フラッシュメモリシステム Expired - Fee Related JP3589033B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19497198A JP3589033B2 (ja) 1998-06-25 1998-06-25 フラッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19497198A JP3589033B2 (ja) 1998-06-25 1998-06-25 フラッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2000011677A true JP2000011677A (ja) 2000-01-14
JP3589033B2 JP3589033B2 (ja) 2004-11-17

Family

ID=16333400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19497198A Expired - Fee Related JP3589033B2 (ja) 1998-06-25 1998-06-25 フラッシュメモリシステム

Country Status (1)

Country Link
JP (1) JP3589033B2 (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001337786A (ja) * 2000-05-26 2001-12-07 Matsushita Electric Ind Co Ltd 記憶装置用アダプタ
WO2002031661A1 (fr) * 2000-10-13 2002-04-18 Sony Corporation Procede de gestion de donnees pour un dispositif a memoire
JP2003045196A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd ブロックアドレス切替機能を有するメモリ回路
US7007140B2 (en) 2001-03-16 2006-02-28 Tokyo Electron Device Limited Storage device, storage device controlling method, and program
WO2006107086A1 (en) 2005-03-31 2006-10-12 Tokyo Electron Device Limited Storage device, memory managing apparatus, memory managing method, and program
US7191296B2 (en) 2001-09-28 2007-03-13 Tokyo Electron Device Limited Data writing apparatus, data writing method, and program
JP2008047283A (ja) * 2007-09-18 2008-02-28 Toshiba Corp データ記憶システムおよびその設定方法
US7403436B2 (en) 2001-09-06 2008-07-22 Renesas Technology Corp. Non-volatile semiconductor memory device
JP2008191966A (ja) * 2007-02-06 2008-08-21 Hitachi Ltd ストレージシステム及びその制御方法
JP2008198020A (ja) * 2007-02-14 2008-08-28 Toshiba Corp 半導体メモリ情報蓄積装置とその不良部位対処方法
JP2008204114A (ja) * 2007-02-19 2008-09-04 Toshiba Corp 半導体メモリ情報蓄積装置とその書き込み不良対策方法
JP2008537828A (ja) * 2005-04-15 2008-09-25 トムソン ライセンシング 少なくとも一つの共通データi/oバスに接続された複数の不揮発性メモリ中における論理データ・ブロックをフラッシュ・ブロックに記憶する方法およびシステム
US7581146B2 (en) 2006-01-25 2009-08-25 Samsung Electronics Co., Ltd. Semiconductor memory device storing repair information avoiding memory cell of fail bit operating method thereof
WO2009107283A1 (en) * 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
KR101086876B1 (ko) 2009-09-30 2011-11-25 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
US8099544B2 (en) 2008-02-29 2012-01-17 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
CN104685474A (zh) * 2012-09-25 2015-06-03 惠普发展公司,有限责任合伙企业 包括不可纠正的错误的地址范围的通知

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001337786A (ja) * 2000-05-26 2001-12-07 Matsushita Electric Ind Co Ltd 記憶装置用アダプタ
US7281090B2 (en) 2000-10-13 2007-10-09 Sony Corporation Data managing method for memory apparatus
JP2002123422A (ja) * 2000-10-13 2002-04-26 Sony Corp メモリ装置におけるデータ管理方法
US7296119B2 (en) 2000-10-13 2007-11-13 Sony Corporation Data managing method for memory apparatus
US7284090B2 (en) 2000-10-13 2007-10-16 Sony Corporation Data managing method for memory apparatus
WO2002031661A1 (fr) * 2000-10-13 2002-04-18 Sony Corporation Procede de gestion de donnees pour un dispositif a memoire
US6889287B2 (en) 2000-10-13 2005-05-03 Sony Corporation Data management method for memory device
JP4534336B2 (ja) * 2000-10-13 2010-09-01 ソニー株式会社 メモリ装置におけるデータ管理方法
US7007140B2 (en) 2001-03-16 2006-02-28 Tokyo Electron Device Limited Storage device, storage device controlling method, and program
JP2003045196A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd ブロックアドレス切替機能を有するメモリ回路
US7403436B2 (en) 2001-09-06 2008-07-22 Renesas Technology Corp. Non-volatile semiconductor memory device
US7191296B2 (en) 2001-09-28 2007-03-13 Tokyo Electron Device Limited Data writing apparatus, data writing method, and program
WO2006107086A1 (en) 2005-03-31 2006-10-12 Tokyo Electron Device Limited Storage device, memory managing apparatus, memory managing method, and program
US8301825B2 (en) 2005-04-15 2012-10-30 Thomson Licensing Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus
JP2008537828A (ja) * 2005-04-15 2008-09-25 トムソン ライセンシング 少なくとも一つの共通データi/oバスに接続された複数の不揮発性メモリ中における論理データ・ブロックをフラッシュ・ブロックに記憶する方法およびシステム
US7581146B2 (en) 2006-01-25 2009-08-25 Samsung Electronics Co., Ltd. Semiconductor memory device storing repair information avoiding memory cell of fail bit operating method thereof
US8117376B2 (en) 2007-02-06 2012-02-14 Hitachi, Ltd. Storage system and control method thereof
JP2008191966A (ja) * 2007-02-06 2008-08-21 Hitachi Ltd ストレージシステム及びその制御方法
US8930611B2 (en) 2007-02-06 2015-01-06 Hitachi, Ltd. Storage system and control method thereof
JP2008198020A (ja) * 2007-02-14 2008-08-28 Toshiba Corp 半導体メモリ情報蓄積装置とその不良部位対処方法
JP2008204114A (ja) * 2007-02-19 2008-09-04 Toshiba Corp 半導体メモリ情報蓄積装置とその書き込み不良対策方法
JP4686520B2 (ja) * 2007-09-18 2011-05-25 株式会社東芝 データ記憶システム
JP2008047283A (ja) * 2007-09-18 2008-02-28 Toshiba Corp データ記憶システムおよびその設定方法
JP4829342B2 (ja) * 2008-02-29 2011-12-07 株式会社東芝 情報処理装置及び不揮発性半導体メモリドライブ
US8099544B2 (en) 2008-02-29 2012-01-17 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
WO2009107283A1 (en) * 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
KR101086876B1 (ko) 2009-09-30 2011-11-25 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
US8392647B2 (en) 2009-09-30 2013-03-05 Hynix Semiconductor Inc. Solid state storage system for controlling reserved area flexibly and method for controlling the same
CN104685474A (zh) * 2012-09-25 2015-06-03 惠普发展公司,有限责任合伙企业 包括不可纠正的错误的地址范围的通知
JP2015529927A (ja) * 2012-09-25 2015-10-08 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 訂正不能エラーを含むアドレス範囲の通知
US9804917B2 (en) 2012-09-25 2017-10-31 Hewlett Packard Enterprise Development Lp Notification of address range including non-correctable error

Also Published As

Publication number Publication date
JP3589033B2 (ja) 2004-11-17

Similar Documents

Publication Publication Date Title
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US5603001A (en) Semiconductor disk system having a plurality of flash memories
JP3589033B2 (ja) フラッシュメモリシステム
JP4132086B2 (ja) フラッシュメモリ内のブロックにおける移動セクタ
US6754765B1 (en) Flash memory controller with updateable microcode
TWI592865B (zh) 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器
US20100211723A1 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
US20100074019A1 (en) Memory card, semiconductor device, and method of controlling memory card
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2000510634A (ja) 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能
TWI595356B (zh) 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路
US7136986B2 (en) Apparatus and method for controlling flash memories
US20140181378A1 (en) Control device, control method, and program
KR20020009564A (ko) 메모리 시스템
KR20030011230A (ko) 비휘발성 기억 장치 및 그의 재기입 제어 방법
JPH07302176A (ja) 半導体ディスク装置
JP2002278781A (ja) 記憶装置、記憶装置制御方法及びプログラム
US20080189476A1 (en) Nonvolatile semiconductor storage device and method of managing the same
JPH07302175A (ja) 半導体ディスク装置
US20190347037A1 (en) Data storage apparatus and system information programming method therefor
JP4594944B2 (ja) メモリ制御装置
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4710918B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JPH09213064A (ja) メモリ書込み/読出し方法及びメモリ制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20031222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040809

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees