JPH06332806A - フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法 - Google Patents

フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法

Info

Publication number
JPH06332806A
JPH06332806A JP12240193A JP12240193A JPH06332806A JP H06332806 A JPH06332806 A JP H06332806A JP 12240193 A JP12240193 A JP 12240193A JP 12240193 A JP12240193 A JP 12240193A JP H06332806 A JPH06332806 A JP H06332806A
Authority
JP
Japan
Prior art keywords
area
error
information
memory
address
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.)
Pending
Application number
JP12240193A
Other languages
English (en)
Inventor
Ryuichi Hattori
隆一 服部
Hajime Yamagami
一 山上
Takashi Tsunehiro
隆司 常弘
Takashi Totsuka
隆 戸塚
Takeshi Wada
武史 和田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP12240193A priority Critical patent/JPH06332806A/ja
Priority to KR1019940007261A priority patent/KR970008188B1/ko
Priority to EP94105467A priority patent/EP0619541B1/en
Priority to DE69432878T priority patent/DE69432878T2/de
Priority to US08/225,313 priority patent/US5530673A/en
Priority to TW083103109A priority patent/TW403871B/zh
Publication of JPH06332806A publication Critical patent/JPH06332806A/ja
Priority to US08/640,998 priority patent/US5862083A/en
Priority to US09/182,630 priority patent/US5973964A/en
Priority to US09/357,931 priority patent/US6078520A/en
Priority to US09/577,371 priority patent/US6275436B1/en
Priority to US09/927,493 priority patent/US6421279B1/en
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 フラッシュメモリの書き込みエラーを救済
し、半導体ディスク装置の寿命を延ばす。 【構成】 フラッシュメモリを記憶媒体とする記憶部を
備える半導体メモリ部と、該半導体メモリ部との間で情
報を送受信するホストシステムとを有する記憶システム
において、前記半導体メモリ部は、前記ホストシステム
との間で情報を送受信するインタフェース回路と、前記
記憶部に対する情報の読み書きを制御し、当該記憶部の
エラー領域を検出する制御回路と、前記記憶部の各領域
ごとに使用/未使用の状態を保持し、該制御回路におい
てエラーを検出した場合に、前記記憶部のエラー領域の
代わりに未使用の領域を代替領域として割り当て、該割
り当てた代替領域と前記エラー領域との対応を保持する
メモリ管理手段とを有し、前記制御回路は、前記メモリ
管理手段を参照し、前記記憶部に対する情報の読み書き
の制御を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フラッシュメモリを記
憶媒体とした半導体ディスク装置に関する。
【0002】
【従来の技術】従来、半導体メモリを記憶媒体とする半
導体ディスクには、ダイナミックランダムアクセスメモ
リ(以下DRAMと略す)およびスタティクランダムア
クセスメモリ(以下SRAMと略す)が用いられてい
る。上記DRAMまたはSRAMを用いた半導体ディス
クは、通常の磁気記憶媒体を用いた磁気ディスクに比べ
てアクセス時間が高速であり、また半導体メモリ素子の
集積化により小型化が容易である。
【0003】しかしながら、DRAM・SRAMともに
揮発性メモリであり、機器の電源切断後もデータを保持
するためにはバッテリーバックアップが必要である。さ
らに、DRAMは、記憶内容を保持するため、定期的に
メモリリフレッシュ動作が必要であり、制御が複雑にな
る。また、SRAMはリフレッシュ動作は必要無いが、
DRAMに比べて集積度が低く、記憶容量あたりの単価
が高いことから、SRAMやDRAMを用いた半導体デ
ィスクは一般には普及していない。
【0004】ところで、近年フラッシュメモリと呼ばれ
る新たな半導体メモリ素子が普及してきた。このフラッ
シュメモリは不揮発性メモリであるが書き替え可能であ
り、また、素子構造が簡単であるのでDRAMよりチッ
プ面積を小さくでき、集積度を上げやすい等の利点を持
っている。このフラッシュメモリを上記半導体ディスク
の記憶媒体に使用した場合、不揮発性メモリなのでバッ
テリーバックアップが不要でり、チップ面積が小さいの
で大量生産に向き安価にできることなどから、半導体デ
ィスクの記憶媒体として期待されている。
【0005】
【発明が解決しようとする課題】上記述べたフラッシュ
メモリは、データの読み出しはDRAMやSRAMと同
様にバイトやワード単位のように小さいデータ単位で読
み出しが可能である。しかし、書き込みについては、現
在のフラッシュメモリ素子にはその構造から書換え回数
に制限があるため、書換え単位を512バイトのような
ブロック単位とし書換え回数の削減を行なっている。ま
た、構造上、書換えを行う前に当該ブロックのデータの
消去が必要である。そのためフラッシュメモリ素子によ
っては、消去などのコマンド処理機能を設けているもの
もある。しかし、フラッシュメモリを半導体ディスクの
記憶媒体に用いる場合に最も問題となるのは、上記述べ
た書換え回数の制限である。例えば、ディスクにおいて
は、ディレクトリーやFAT領域のような領域は他の領
域に比べて書換えの回数が多いので、ディレクトリーや
FAT領域に割り当てたフラッシュメモリの特定ブロッ
クのみ書換えが頻繁に起こり、他の領域よりも早くフラ
ッシュメモリの書換え回数の制限を越える可能性が高
い。書換え回数の制限を超えた場合には、素子が劣化す
るなどして読み出し、書き込みが正しく行えなくなる事
がある。ディスクでは、FATやディレクトリーなどが
壊れるとディスク全ての読み出ができなくなる。従っ
て、特定のブロックのみ異常となったために、半導体デ
ィスク全てが使用できなくなるので効率が悪い。
【0006】また、本件の出願人が先に出願している特
願平4−99891号においては、上記課題を解決する
ために、代替メモリ領域を設けて半導体ディスクの寿命
をのばしている。しかし、上記出願においては、代替メ
モリ領域は予め固定に割り付けているため、容量を動的
に変更することができない。
【0007】本発明の目的は、上記課題を解決し、フラ
ッシュメモリを記憶媒体とする半導体ディスクの寿命を
のばすことにある。
【0008】
【課題を解決するための手段】本発明は、上記課題を解
決するために、フラッシュメモリを記憶媒体とする記憶
部を備える半導体メモリ部と、該半導体メモリ部との間
で情報を送受信するホストシステムとを有する記憶シス
テムにおいて、前記半導体メモリ部は、前記ホストシス
テムとの間で情報を送受信するインタフェース回路と、
前記記憶部に対する情報の読み書きを制御し、当該記憶
部のエラー領域を検出する制御回路と、前記記憶部の各
領域ごとに使用/未使用の状態を保持し、該制御回路に
おいてエラーを検出した場合に、前記記憶部のエラー領
域の代わりに未使用の領域を代替領域として割り当て、
該割り当てた代替領域と前記エラー領域との対応を保持
するメモリ管理手段とを有し、前記制御回路は、前記メ
モリ管理手段を参照し、前記記憶部に対する情報の読み
書きの制御を行う。
【0009】この場合、前記制御回路は、前記記憶部の
エラー領域の検出時に、当該記憶部のエラー領域の検出
を示すエラー情報を前記ホストシステムに通知する通知
手段を備え、前記ホストシステムは、該通知手段からの
エラー情報の通知を検出する通知検出手段と、該通知検
出手段によるエラー情報の通知の検出時にエラー情報を
出力する出力手段とを備えることができる。
【0010】また、前記半導体メモリ部は、予め定めた
エラー情報を保持するエラー情報保持手段をさらに有
し、前記制御回路は、前記記憶部のエラー領域の検出時
に、当該記憶部のエラー領域の検出を示すエラー情報を
該エラー情報保持手段に設定し、前記ホストシステム
は、該エラー情報保持手段を参照し、前記エラー情報を
検出する検出手段と、該検出手段によるエラー情報の検
出時にエラー情報を出力する出力手段とを備えるように
してもよい。出力手段としては、LED表示およびCR
T上へのエラーメッセージ表示など視覚的通知手段、B
EEP音および合成音声等による音声通知手段を備える
ことができる。
【0011】さらに、前記制御回路は、前記記憶部の代
替領域が無くなったことをさらに検出し、前記エラー情
報保持手段に、前記記憶部の代替領域が無くなったこと
を示すエラー情報をさらに設定することができる。
【0012】前記ホストシステムは、前記記憶部の情報
を記憶するデータ領域と前記代替領域とを初期化情報と
してあらかじめ設定するための指示を受け付ける入力手
段と、該入力手段により受け付けた指示に基づいて前記
メモリ管理手段に当該初期化情報を設定する設定手段と
を備え、前記メモリ管理手段は、前記設定手段の設定に
基づいて領域分けして管理する。前記メモリ管理手段
は、前記代替領域が無くなった場合に、前記データ領域
の空き領域の未使用の領域を検出し、該検出した未使用
領域を代替領域に再設定する再設定手段と、該再設定手
段により再設定したときに、前記未使用領域を代替領域
に設定したことを通知する再設定通知手段とを備え、前
記ホストシステムは、該再設定通知手段より再設定の通
知があると、該未使用領域を使用禁止とすることができ
る。
【0013】フラッシュメモリを記憶媒体とする半導体
メモリの記憶制御方法として、外部から書き込み指示さ
れるアドレス情報に対応する書き込みアドレスをあらか
じめ保持し、前記記憶媒体の書き込みアドレスが示す領
域の使用/未使用の状態を保持し、外部からアドレス情
報とともに書き込み指示があると、該アドレス情報に対
応する前記保持した書き込みアドレスを参照し、該書き
込みアドレスが示す領域に書き込みを行い、書き込み時
に、当該領域を使用状態として保持し、書き込み時に、
書き込みエラーが発生したか否かを判断し、該書き込み
エラーが発生した場合には、該エラーが発生した領域の
代わりに、未使用の領域を代替領域として割り当てて、
該代替領域に書き込みを行い、前記保持している書き込
みアドレスを該割り当てた代替領域の書き込みアドレス
に更新し、当該代替領域を使用したことを通知すること
ができる。
【0014】また、他の記憶制御方法として、情報を記
憶するデータ領域と、書き込みエラー発生時に、当該エ
ラー発生した領域以外の領域を割り当てるための代替領
域とを領域分けする指示を受け付け、当該指示に従い、
前記データ領域のアドレス情報に対応する書き込みアド
レスと、前記代替領域のアドレスとをあらかじめ保持
し、前記データ領域および前記代替領域の使用/未使用
の状態をアドレスごとに保持し、アドレス情報とともに
書き込み指示を受け付けると、該アドレス情報に対応す
る前記保持した書き込みアドレスを参照し、該書き込み
アドレスが示す領域に書き込みを行い、書き込み時に、
当該領域を使用状態として保持し、書き込み時に、書き
込みエラーが発生したか否かを判断し、該書き込みエラ
ーが発生した場合には、該エラーが発生した領域の代わ
りに、未使用の代替領域を割り当てて、該代替領域に書
き込みを行い、前記保持している書き込みアドレスを該
割り当てた代替領域のアドレスに更新し、当該代替領域
を使用状態として保持することができる。
【0015】
【作用】メモリ管理手段(メモリブロック管理テーブ
ル)では、記憶部の各領域ごとに使用/未使用の状態を
保持し、制御回路においてエラーを検出した場合に、記
憶部のエラー領域の代わりに未使用の領域を代替領域と
して割り当て、割り当てた代替領域と前記エラー領域と
の対応を保持しておく。
【0016】データを書き込む場合、ホストシステム
は、該半導体メモリ部に対してアドレス情報(ブロック
ごとに書き込みをする場合にはブロックの識別情報)と
ともに書き込み指示する。半導体メモリ部の制御回路
は、インタフェース回路を介して書き込み指示を受ける
と、メモリブロック管理テーブルから書き込もうとする
アドレス情報に対応する半導体メモリの書き込みアドレ
スを読みとり、データメモリの目的の領域へデータを書
き込む。制御回路は、書き込み時に、当該ブロックにエ
ラーが発生していたことを検出し、この場合、メモリ管
理手段は、未使用の代替メモリ部のアドレス情報を読み
とり、代替領域を割り当て、当該代替領域を使用中にす
る。制御回路は、割り当てられた代替領域にデータを書
き込む。
【0017】さらに、上記書き込み動作において、エラ
ーが発生した場合にデータを書き込む空き領域が無い場
合には、通知手段により記憶部のエラー領域の検出を示
すエラー情報を前記ホストシステムに通知する。通知手
段としては、割込み信号により通知をすることができ
る。ホストシステムの通知検出手段は、該通知手段から
のエラー情報の通知を検出し、出力手段は、該通知検出
手段によるエラー情報の通知の検出時にエラー情報を出
力する。また、予め定めたエラー情報を保持するエラー
情報保持手段をさらに有する場合には、制御回路は、前
記記憶部のエラー領域の検出時に、当該記憶部のエラー
領域の検出を示すエラー情報を該エラー情報保持手段に
設定し、前記ホストシステムの検出手段は、該エラー情
報保持手段を参照して前記エラー情報を検出し、出力手
段より該検出手段によるエラー情報の検出時にエラー情
報を出力する。また、前記制御回路は、前記記憶部の代
替領域が無くなったことをさらに検出し、前記エラー情
報保持手段に、前記記憶部の代替領域が無くなったこと
を示すエラー情報をさらに設定するようにしてもよい。
これにより、CRT等の出力手段にエラー情報を表示し
てユーザに対しディスクに空き容量が無いことを知らせ
るなど、適切な処理を行うことができる。
【0018】さらに、ホストシステムの入力手段は、前
記記憶部の情報を記憶するデータ領域と前記代替領域と
を初期化情報としてあらかじめ設定するための指示を受
け付ける。設定手段は、該入力手段により受け付けた指
示に基づいて前記メモリ管理手段に当該初期化情報を設
定することができる。前記メモリ管理手段は、前記設定
手段の設定に基づいて領域分けして管理するようにして
もよい。この場合、メモリ管理手段は、前記代替領域が
無くなった場合に、前記データ領域の空き領域の未使用
の領域を検出し、該検出した未使用領域を代替領域に再
設定する再設定手段と、該再設定手段により再設定した
ときに、前記未使用領域を代替領域に設定したことを通
知する再設定通知手段とを備え、前記ホストシステム
は、該再設定通知手段より再設定の通知があると、該未
使用領域を使用禁止とすることができる。
【0019】上記半導体ディスクから目的のブロックの
データを読み出す場合は、前記メモリ管理手段により、
読み出したいアドレス情報に対応する前記半導体メモリ
の領域を読み取り、前記記憶部の目的の領域からデータ
を読み出す。もし、当該ブロックにエラーが発生してい
た場合は、前記メモリ管理手段に前記代替領域のアドレ
ス情報が格納されているのでそれを読みとり、対応する
代替領域からデータを読み出す。
【0020】
【実施例】以下に、ブロック図およびフローチャートを
用いて本発明の実施例を説明する。本発明の本質は、フ
ラッシュメモリで構成する半導体ディスクにおいて、書
き込みエラーが発生した場合に代替書き込み領域へ書き
込むことにより、ディスクの寿命を延ばすことにある。
また、代替書き込み領域が足らなくなった場合の救済方
法や、ユーザへのエラー通知方法について実施例に基づ
いて説明する。実施例の中で説明するフラッシュメモリ
素子、半導体ディスクおよび記憶テーブル等の容量は任
意の大きさに設定することができる。実施例中では、上
記容量を適当な値を用いて説明するが、それらの値が変
化しても、本発明の本質に影響を与えるものではない。
同様に、実施例中でのフラッシュメモリおよび前記記憶
テーブル等のアドレス空間への割付け方法も一位的に決
まるのではなく、任意のアドレスに割り付けることがで
き、アドレス空間への割付け方法によって本発明の本質
に影響を与えるものではない。
【0021】図1に本発明の一実施例の構成図を示す。
図1において、102は、半導体ディスクであり、ホス
トシステム101のI/Oバス104に接続し、ホスト
システム101と情報を送受信する。半導体ディスク1
02は、エラーレジスタ105、インターフェース回路
107、バッファメモリ115、半導体ディスク制御回
路111、メモリブロック管理テーブル112、およ
び、半導体メモリ106を備え、内部バスa116、内
部バスb117、アドレスバス113、データバス11
4および制御信号110によりそれらをそれぞれ接続す
る。さらに、半導体メモリ106は、ファイルデータを
格納するデータメモリ部108と代替メモリとして使う
代替メモリ部109とを備える。
【0022】バッファメモリ115は、半導体メモリ1
06に書き込むデータまたは読み出したデータを一時記
憶しておくメモリであり、読み書きが容易でかつ高速な
SRAMまたはDRAMを用いる。半導体メモリ106
は、不揮発性メモリであるフラッシュメモリで構成し、
データメモリ部108と代替メモリ部109とに、2M
バイト(1Mバイトは2の20乗バイト=104857
6バイト)のフラッシュメモリを合わせて16個備え
る。従って、半導体メモリ106の記憶容量は、32M
バイトである。このうち代替メモリ部109には、2M
バイトを割り当てるので、半導体ディスク装置102の
記憶容量は30Mバイトになる。メモリブロック管理テ
ーブル112は、512kバイト(1kバイトは2の1
0乗バイト=1024バイト)のフラッシュメモリを用
い、ディスクのブロック番号に対応する半導体メモリ1
06のアドレス情報と各ブロックに対応するメモリ領域
の使用状況とを記憶する。半導体メモリ106とメモリ
ブロック管理テーブル112とは、どちらも、所定の書
き込み単位である512バイトのブロックで書き込みを
行なうものとする。上記述べたようにフラッシュメモリ
素子、半導体ディスクの容量およびメモリブロック管理
テーブル等の容量は任意の値に設定することができる。
また、それぞれ個別のメモリチップにより構成するよう
にしてもよい。
【0023】エラー情報レジスタ105は、予め定めた
エラー情報を保持するエラー情報保持手段であり、半導
体ディスク装置102に発生したエラーをホストシステ
ム101に通知するために、発生したエラーに関する情
報を書き込む。インターフェース回路107は、I/O
バス104からの命令を受け取る。あるいは、インター
フェース回路107は、I/Oバス104に対し、割込
み信号線103を用いて割込み信号を出力する。
【0024】半導体ディスク制御回路111は、内部バ
スa116,内部バスb117,アドレスバス113、
データバス114および制御信号110を用いて半導体
メモリディスク装置102全体の制御を行う。半導体デ
ィスク制御回路111は、バッファメモリ115、エラ
ー情報レジスタ105、メモリブロック管理テーブル1
12および半導体メモリ106の読み出し/書き込みを
アドレスバス113、データバス114および制御信号
110を用いて制御する。また、半導体ディスク制御回
路111は、フラッシュメモリで構成するメモリブロッ
ク管理テーブル112と半導体メモリ106とは、消去
動作も必要なのでこれも制御する。
【0025】図2に、半導体メモリ106のメモリアド
レスマップとメモリブロック管理テーブル112のメモ
リマップとの対応の例を示す。メモリブロック管理テー
ブル112は、メモリ管理手段であり、記憶部の各領域
ごとに使用/未使用の状態をブロック使用テーブルに保
持し、制御回路においてエラーを検出した場合に、前記
記憶部のエラー領域の代わりに未使用の領域を代替領域
として割り当て、該割り当てた代替領域と前記エラー領
域との対応をブロック登録テーブルに保持する。メモリ
アドレスマップ201に示すように、前記図1において
述べたように、30Mバイトのデータメモリ部108
は、データメモリ領域202(アドレス0000000
H番地(Hは16進表示を表す)から1DFFFFFH
番地までの30Mバイト)を備え、2Mバイトの代替メ
モリ部109は代替メモリ領域203(1E00000
H番地から1FFFFFFH番地までの2Mバイト)を
備える。本実施例では、512バイト単位で書き込みを
行なうことにしたので、1ブロックあたり200H番地
となり、例えば、ブロック0は0000000H番地か
ら00001FFH番地までとなる。同様に、ブロック
1は0000200H番地から00003FFH番地、
ブロック2は0000400H番地から00005FF
H番地、ブロック3は0000600H番地から000
07FFH番地という様に、メモリアドレスマップ20
1に割り振っている。代替メモリブロックも同様に、1
E00000H番地から割り振っている。上記述べたよ
うにこれらアドレスの割付けは一義的に決まるものでは
なく、任意の割当て方法をとることができる。
【0026】また、メモリブロック管理テーブル204
は、ブロックに該当する半導体メモリのアドレスを登録
するブロック登録テーブル205、データメモリ部10
8の各領域の使用状況を登録するメモリブロック使用テ
ーブル206、および、装置全体の初期化情報を登録す
る初期化情報領域207を備える。
【0027】ブロック登録テーブル205およびメモリ
ブロック使用テーブル206のそれぞれのテーブルは、
図2に示すように構成されている。すなわち、ブロック
登録テーブル205は、ブロック毎に対応する半導体メ
モリ106のアドレスを示すので、1ブロックに対して
4バイト(32ビット)の容量を持つことにする。ブロ
ック登録テーブル205は、2000000H番地から
始まり、4H番地毎に一つのブロックを表す。ブロック
0は、2000000H番地から始まる4バイトの領域
216に格納されるアドレス情報によって示される。同
様に、ブロック1は2000004H番地から始まる4
バイトの領域217に、ブロック2は2000008H
番地から始まる4バイトの領域218に格納されるアド
レス情報によって示される。
【0028】また、ブロック使用テーブル206は、デ
ータメモリ部108、代替メモリ部109の使用状況を
格納する。使用状況は、1ブロックに対して1ビットの
情報で表され、本実施例では、未使用ブロックを0と
し、使用ブロックを1としている。この領域の0のビッ
トすなわち未使用のブロックを捜すことにより代替メモ
リ部109の空きブロックを見つけることができる。ブ
ロック使用テーブル206は、2020000H番地か
ら始まり、1バイトの使用情報あたり8ブロックの使用
状況を表す。また、1バイトの中では最下位ビットが番
号の小さなブロックを表すものとする。すなわち、20
2000H番地の1バイトの使用情報214は、ブロッ
ク0からブロック7までの8ブロックの使用状況を表
し、例えば、その1バイトが11011111b(bは
バイナリデータであることを示す。)であれば、ブロッ
ク5だけが未使用であることを示す。また202000
0H番地から2021DFFH番地までの領域がデータ
メモリ部108の使用状況を表し、2021E00H番
地から2021FFFH番地までの領域が代替メモリ部
109を表すものとする。
【0029】さらに、初期化情報領域207に格納する
情報の具体例を図19に示す。図19において、初期化
情報領域207は、データメモリ領域202の開始アド
レス情報231、データメモリ領域202の終了アドレ
ス情報232、データメモリ領域の容量233、1ブロ
ック当りの記憶容量234、使用可能なブロック数23
5、代替メモリ領域203の開始アドレス情報236、
代替メモリ領域203の終了アドレス情報237、およ
び、予備情報領域238などの初期化情報を記憶する領
域である。初期化情報領域207は、ディスクシステム
全体の初期化動作において必要な情報を書き込まれる。
【0030】つぎに、ディスクシステム全体の初期化動
作について図7を用いて説明する。初期化動作とは、デ
ィスク装置を使用するために必要な作業であり、ホスト
システムにおいてフォーマットコマンドなどを実行する
ことによって行なわれる。本実施例において初期化作業
は、まず処理701において、データメモリ領域202
と代替メモリ領域203との容量を決定する。この決定
は、ホストシステムの入力手段のキーボード122によ
り容量等の指定を受け付け、指定に従い決定することが
できる。ユーザは、これにより代替メモリ領域203の
容量を自由に設定できる。指定される情報としては、デ
ータメモリ領域の容量、1ブロック当りの記憶容量など
がある。また、ジャンパーピン等を用いてあらかじめ半
導体ディスク制御回路111にハード的に設定してもよ
いし、ブロック使用テーブルの容量から計算してもよい
し、データメモリ領域202および代替メモリ領域20
3のライト/リードチェックを行なって実装容量を判定
しても良い。処理702では、これらの指定された初期
化情報を初期化情報領域207に書き込む。初期化情報
領域207への書き込みフローを図20に示す。初期化
情報領域207に書き込む動作は、ホストシステム10
1から上記初期化情報をインタフェース回路107を介
して半導体ディスク制御回路111に指示し、半導体デ
ィスク制御回路111において、所定のアドレスが示す
位置に上記初期化情報を書き込む。初期化情報領域20
7に書き込まれた初期化情報により、データメモリ部1
08および代替メモリ部109の領域を規定することが
できる。つづいて、ブロック登録テーブル205および
ブロック使用テーブル206の初期化を行なう。まず、
処理703でディスクの各ブロックに対応するアドレス
情報をブロック登録テーブル205に書き込む。例え
ば、ブロック0を初期化する場合には、ブロック登録テ
ーブル205のブロック0に対応する2000000h
番地から始まる4バイトの領域に、データメモリ領域2
02のブロック0に対応するアドレス情報000000
0hを書き込む。同様に、ブロック1の初期化は前記ブ
ロック登録テーブル205の2000004h番地に、
前記データメモリ領域202のブロック1に対応するア
ドレス情報0000200hを書き込む。この動作をデ
ータメモリ領域202および代替メモリ領域203の全
てのブロックについて終了するまで繰り返す(処理70
4)。さらに、必要であれば処理705においてエラー
情報レジスタ105、バッファメモリ115の初期化を
行ない、ディスク全体の初期化作業を終了する。上記述
べた初期化作業は半導体ディスク装置102を最初に使
用するとき、また、ディスクのフォーマット命令が実行
された場合などに実行すれば良い。
【0031】また、データメモリ領域202および代替
メモリ領域203の容量に対する、ブロック登録テーブ
ル205およびブロック使用テーブル206の決定方法
を説明する。データメモリ領域202代替メモリ領域2
03は合わせて32Mバイトであり、ブロック登録テー
ブルが管理する最小単位は一ブロック512バイトであ
るから、32Mバイト/512バイト=65536、つ
まり64Kバイト(1Kバイトは1024バイト)必要
である。したがって0000HからFFFFH番地ま
で、本実施例では、2000000H番地から200F
FFFH番地までの、少なくとも64Kバイトをブロッ
ク登録テーブル205に割り当てれば良い。本実施例で
は、2000000H番地から201FFFFH番地ま
での128Kバイトを割り当てているので、データメモ
リ領域202と代替メモリ領域203とを合わせて最大
64Mバイトまでアドレス情報を登録することができ
る。また、ブロック使用テーブル206は、1ブロック
あたり1ビット必要なので、1バイトあたり8ブロック
管理できる。したがって総ブロック数65536/8=
8192、すなわち、すくなくとも8Kバイトの領域を
ブロック使用テーブル206に割り当てれば良い。本実
施例では、2020000H番地から2021FFFH
番地までの16Kバイトを割り当てているので、最大1
31072ブロックつまり67108864バイト(6
4Kバイト)まで使用状況を管理することができる。こ
のようにブロック登録テーブル205およびブロック使
用テーブル206を適当な容量割り当てることにより、
任意の大きさの半導体メモリを制御することができる。
【0032】つぎに、図13に、ホストシステム101
の構成図を示す。ホストシステム101は、CPU12
0が、ホストバス125を介して主メモリ121と接続
され、さらに、I/Oバス104を介して、ROM12
6、キーボード122、CRT123およびスピーカ1
24に接続している。キーボード122は、入力手段で
あり、ユーザから入力されたデータや初期設定情報等を
受け付ける。CRT123は、出力手段の一つであり、
CPU120の演算結果やエラー情報等を表示する。ス
ピーカ124は、出力手段の一つであり、エラー発生時
に警告音等を発生する。ROM126または主メモリ1
21には、読みだし/書き込み処理、割込み処理等の予
め定めた処理のプログラムを記憶する。
【0033】次に、本実施例の半導体ディスク装置10
6の読み書き動作を、図3、図4および図5に示すフロ
ーチャートを用いて説明する。
【0034】最初に、ホストシステム101からI/O
バス104を通じてファイルデータの読み出し命令を受
けたとする。この場合、まず、半導体ディスク制御回路
111がこの命令を処理するが、命令の与えられ方によ
って制御内容も異なってくる。例えば、読み出しを行な
うファイルデータのアロケーション情報を磁気ディスク
などと同様にセクタ番号やトラック番号で与えられた場
合には、これらの情報をデータメモリ部108の物理ア
ドレスに変換する必要がある。本実施例では説明の簡単
化のため、I/Oバス104からのファイルアロケーシ
ョン情報は、データメモリ部108のブロック番号で与
えるものとする。ブロック番号は、物理アドレスの上位
ビットに変換する。
【0035】半導体ディスク制御回路111の読み出し
時の処理手順を図3に示す。図3に示すように、処理3
00において、半導体ディスク制御回路111は、I/
Oバス104から受けとったブロック番号に対応する半
導体メモリ106のアドレス情報をメモリブロック管理
テーブル112のブロック登録テーブル205から読み
とる。例えば、ブロック0を読み出す場合は、ブロック
登録テーブル205の2000000H番地からの4バ
イトのアドレス情報216を読みだし、またブロック1
の場合には2000004H番地からの4バイトのアド
レス情報217を読みとる。次に、処理301において
読みとったアドレス情報にもとづいて、処理302にお
いて、データメモリ部108のブロック番号に相当する
領域、例えばブロック0ならアドレス情報216の00
00000H番地から512バイトのデータを読みと
り、処理303で、データを一旦バッファメモリへ転送
する。その後処理304にて、インターフェース回路1
07を通じてデータをI/Oバス104へ転送する。
【0036】ここで、図2に示すデータメモリ領域20
2の0000400H番地から始まるブロック2の領域
208のように、以前の書き込みにおいて不良となった
ブロックの場合は、ブロック登録テーブル205に代替
メモリ部109のアドレス情報を登録しておく。すなわ
ち、図2に示す、代替メモリ領域203の1E0000
0H番地から始まる512バイトの領域211のアドレ
ス情報が登録してある。よって、処理302において、
代替メモリ部109のブロック2を代替する領域、すな
わち1E00000H番地から512バイトの領域21
1データを読みとり、インターフェース回路107を通
じてI/Oバス104へ転送すればよい。代替メモリ領
域の登録方法については後述の書き込み動作において説
明する。
【0037】ここで、メモリブロック管理テーブル11
2と、データメモリ部108および代替メモリ部109
との読み出しは、半導体ディスク制御回路111が制御
する。また、これらの読みだしデータのI/Oバス10
4への転送は、同様に、半導体ディスク制御回路111
が、内部バスa116、内部バスb117、アドレスバ
ス113、データバス114、制御信号110およびイ
ンターフェース回路107を制御するなどして行なう。
このように、ファイルデータを読みとる動作は、目的の
ブロックに対応する半導体メモリのアドレス情報を読み
とり、該アドレス情報にしたがってデータメモリ部10
8または代替メモリ部109のデータを読みとることが
できる。
【0038】次に、I/Oバス104からファイルデー
タの書き込み命令を受けた場合について説明する。図4
に、書き込み時の半導体ディスク制御回路111の処理
手順を示す。まず、半導体ディスク制御回路111は、
処理400においてインターフェース回路107から書
き込み命令を受け付けると、処理401においてI/O
バス104から与えられるファイルデータをバッファメ
モリ115へ転送する。これはフラッシュメモリへの書
き込みが読み出しに比べ時間がかかるため、ホストシス
テム101の待ち時間を軽減させるために行なう。ま
た、バッファメモリ115の容量は、最低でもフラッシ
ュメモリの書き込み単位容量以上であるものとする。次
に、処理402において、書き込みを行なうブロック番
号に対応する半導体メモリ106のアドレス情報をメモ
リブロック管理テーブル112のブロック登録テーブル
205から読みとる。次に、処理403において、バッ
ファメモリ115のファイルデータを前記処理402で
読み取ったアドレス情報にもとづいて、半導体メモリ1
06へ書き込む。例えば、本実施例において、ブロック
3に書き込む場合には、ブロック登録テーブル205の
200000AH番地からの4バイトのアドレス情報2
19を読み出す。ここではデータメモリ部108の、ア
ドレス情報219に示されている1E00200H番地
から512バイトのブロック212にデータを書き込
む。次に、処理404において、データメモリ部108
または代替メモリ部109への書き込みが正常に行なわ
れたかどうかチェックする。フラッシュメモリにおいて
書き込みのエラーが発生するのは、特定のブロックにの
み書き込みが頻発しフラッシュメモリの書換え回数の制
限を越えた場合である。前記処理404のチェックは、
フラッシュメモリがコマンドとしてチェック機能を有す
る場合にはコマンドを利用し、そうでない場合には書き
込みを行なったアドレスからデータを読み出し、バッフ
ァメモリ115の内容と比較することで簡単に行なえ
る。処理404のチェックにおいて正常な書き込みが行
なわれていた場合は、I/Oバス104からのファイル
データ書き込み命令の処理は終了する(処理410)。
一方、このチェックにおいて書き込みが正常にできてい
なかった場合の動作について以下に説明する。例えば、
ブロック3に対する書き込みが正常にできなかった場
合、まず処理405において、ブロック使用テーブル2
06を検索し、代替メモリ部109の未使用ブロックを
探しだす。検索は、ブロック使用テーブル206の20
21E00H番地以降の領域で0であるビットを探すこ
とにより行なう。本実施例では、2021E00H番地
の1バイト情報214のうち、下位から6ビット目が0
であるので代替メモリ領域203の6番目のブロックす
なわち1E00A00H番地から始まる512バイトの
ブロック213が未使用ブロックであることを半導体デ
ィスク制御回路111が検出する。つぎに、処理406
で未使用ブロックが見つかったかどうかを判断する。本
実施例では、未使用ブロックが有ったのでこれを代替ブ
ロックとして使用する。処理407において、半導体デ
ィスク装置102のブロック3に対応するブロック登録
テーブル205の200000CH番地に代替メモリ部
109の6番目のブロックを示すアドレス情報1E00
A00H番地を書き込み、ブロック使用テーブル206
のブロック213を示すビット220を1に書き替え
る。つぎに、処理408において、代替ブロックとして
使用するブロック213をブロック消去し、処理409
でバッファメモリ115の内容を代替ブロックに書き込
む。もし、処理406で代替ブロック部に未使用ブロッ
クが無い場合には、処理411において、前記図1に示
すエラー情報レジスタ105に適当なエラーコードを書
き込んだ後、I/Oバス104に割込み信号103を出
力する。ホストシステム101は、割込み信号103を
受け付けると実行中の処理を中断し、エラー情報レジス
タ105の内容を読み取る。そして、ホストシステム1
01は、半導体ディスク装置102のデータメモリ部1
08の他のブロックに再度書き込み動作を行なうか、あ
るいは、ユーザに半導体ディスク装置102の代替メモ
リ部109に空き領域が無くなったことを通知するなど
の処理を行なう。このホストシステムの処理については
後述する。
【0039】以上のようにして、不良ブロックがある場
合でも代替ブロックを使用することによりフラッシュメ
モリ全体の寿命を伸ばすことができる。本実施例では、
処理404においてのみ、書き込みのチェックを行なっ
たが処理408の次の処理において消去が正常に行なわ
れたかどうかのチェックを加えてもよい。また、処理4
09の次の処理に書き込みが正常に行なわれたかのチェ
ックを加えても良い。もしエラーであればこの場合も処
理405から処理410で述べた代替ブロックへの書き
込み処理を行なう。
【0040】つぎに、エラー情報レジスタ105の内容
とホストシステムの処理について図21および図22を
参照して説明する。図21に、エラー情報レジスタ10
5の内容を示す。また、図22に、ホストシステムにお
ける割込み信号に応答する動作を示す。
【0041】半導体ディスク制御回路111では、書き
込み時にエラーが発生すると、通知手段により割込み信
号を発生するとともに、それに関する情報を図21に示
すようなエラー情報レジスタ105に格納する。格納す
るエラー情報としては、前述のように、代替メモリ領域
203に未使用ブロックが無い場合には、エラー発生の
有無を示すビットと、空き代替ブロックが無いことを示
すビットとをセットする。また、データメモリ領域20
2に空きデータブロックが無い場合には、エラー発生の
有無を示すビットと、空きデータブロックが無いことを
示すビットとをセットする。また、エラーが発生したブ
ロック領域について、当該ブロック領域のブロック番号
等のアドレス情報をブロック番号登録部にセットするこ
とができる。
【0042】また、図23に示すように、エラー情報レ
ジスタを領域分けして備えてもよい。図23において、
エラー種別情報部、予備情報領域、ブロック番号登録部
1およびブロック番号登録部2というように、あらかじ
めエラー情報レジスタを領域分けしておく。エラー発生
時に半導体ディスク制御回路111が、前述と同様に、
設定を行う。
【0043】エラーが発生すると、ホストシステム10
1は、図22に示すように処理を行う。図22におい
て、ホストシステム101は、半導体ディスク装置10
2から割込み信号を受信する(処理141)と、割込み
応答処理を行う。また、割込み信号を受信する代わり
に、エラー情報レジスタ105の内容をポーリングなど
により得るようにしてもよい。割込みが発生すると、R
OM126もしくは主メモリ121に記憶している割込
みハンドルルーチンを呼び出す(処理142)。エラー
情報レジスタ105に格納されている内容を読み出す
(処理143)。エラーの発生の有無を示すビットを判
定し(処理144)、エラーがない場合には割込み処理
ルーチンの他の処理を実行し、割込み処理を終了する
(処理149)。エラービットがセットされている場合
には、エラー情報レジスタ105に格納されている他の
内容を読み出す(処理145)。エラー内容に対応する
エラーメッセージを、ROM126もしくは主メモリ1
21から読み出す(処理146)。読みだしたエラーメ
ッセージを表示手段の画面に表示する(処理147)。
もしくは、スピーカなどの出力手段より、エラー発生を
示す警告音を出力したり、メッセージを音声出力する。
また、エラー情報に対応して予め定めた他の処理を行っ
てもよい。
【0044】図14、図15および図16にエラー情報
の通知方法の例を示す。
【0045】図14において、前記CPU120は、エ
ラーが発生すると、主メモリ121等に記憶しているエ
ラー情報をCRT123に出力する。エラー情報は、ユ
ーザに対し、前記半導体ディスクの空き容量が無くなっ
たことを示すメッセージの例130や、同じく書き込み
エラーが発生したことを通知する他のメッセージの例1
31など、ユーザにエラーの内容がわかるものであれば
良い。また、図15に示すように警告音としてBEEP
音132を発生させてもよい。また、図16に示すよう
に、合成音声133などを用いてメッセージを出力して
も良い。この他前記半導体ディスク装置102に1個ま
たは複数個のLEDを備えて、発生したエラーの内容に
よってこれらのLEDを点灯させるようにしてもよい。
【0046】このようにして、エラー発生を通知するこ
とができる。
【0047】つぎに、上記述べた書き込み処理におい
て、代替メモリ部109に未使用のブロックが見つから
ない場合に、データメモリ部108の未使用ブロックを
検索し代替メモリとして用いるようにした場合の書き込
み動作フローチャートを図5に示す。
【0048】図5において、図4に示す処理と同様に、
書き込みエラーが起こった場合、処理405において代
替メモリ部109の空きブロックを検索し、処理406
で空き領域が見つからなかった場合、処理501におい
てデータメモリ部109の空き領域を検索し、代替ブロ
ックに割り当てる処理をおこなう。この処理501のさ
らに詳細な動作を図6に示すフローチャートを用いて説
明する。また、図5の他の処理については図4と同一で
あるのでここでは省略する。
【0049】図6において、まず処理601において、
前記図2に示すメモリブロック管理テーブル204のブ
ロック使用テーブル206からデータメモリ部108の
未使用ブロックを検索する。具体的にはブロック使用テ
ーブル206のアドレス2020000H番地から20
21DFFFH番地までの領域を検索し、ビットが0に
なっているものを探しだす。本実施例では202000
0H番地の1バイトのうち、下位から6番目のビットが
0になっている。これは前記述べたように、データメモ
リ領域202の6番目のブロックすなわち0000A0
0H番地からはじまる512バイトのブロック210が
未使用である事を示す。次に処理602においてデータ
メモリ部108に空き領域があるかどうか判定し、空き
領域があった場合には、処理603においてブロック使
用テーブル206のブロック210対応するビット22
0を使用中すなわち1にする。つぎに処理604におい
て図2のブロック登録テーブル205の、書き込もうと
するブロック210に対応する、200000EH番地
から始まる4バイトの領域に、前記検索したデータメモ
リ領域202の空き領域のアドレス情報221を書き込
む。本実施例ではブロック5に書き込む処理の場合、ブ
ロック管理テーブル205の200000EH番地にア
ドレス情報0000A00Hを書き込む。つづいて処理
605で前記データメモリ部109の空き領域のブロッ
ク消去を行ない、処理606で前記空きブロック215
にバッファメモリ115の内容を書き込む。
【0050】ところで、上記述べた処理において、代替
書き込み領域として使用したデータメモリ部108のブ
ロック210は、本来データ領域として使用する領域で
ある。そのためホストシステム101が前記データメモ
リ部109のブロック210に他の書き込み命令を発行
する可能性が有る。そこで処理607において前記エラ
ー情報レジスタ105に代替領域として使用した前記デ
ータメモリ部109の空き領域のブロック番号などの情
報を書き込み、処理609においてホストシステム10
1に対し割込み信号103を出力する。ホストシステム
101は割込み信号103を受け付けると処理を中断
し、前記エラー情報レジスタ105のブロック番号を読
み取り、当該ブロックを使用禁止にするなどの適切な処
理を行なえば良い。
【0051】また、前記処理602においてデータメモ
リ部108に空き領域が見つからなかった場合には、処
理608において前記エラー情報レジスタ105に空き
領域が見つからなかったことを示すエラー情報を書き込
み、処理609において割込み信号103をホストシス
テム101に対して出力する。ホストシステム101は
割込み信号103を受け付けると、実行中の処理を中断
しユーザに対して半導体ディスク装置102に空き容量
が無くなったことを通知するなど、適切な処理を行なう
ようにすればよい。
【0052】また、本実施例の半導体ディスク制御回路
における処理方法において、データメモリ部および代替
メモリ部の再構成を行なう動作を図18に示すフローチ
ャートを用いて説明する。上記各実施例において、書き
込みエラーが発生した場合には、前述したように、前記
代替メモリ部109の空きブロックを検索し、データを
書き込む。上記代替メモリ部109の空きブロックがな
くなった場合には、データメモリ部108の空き領域を
検索し、半導体ディスク102の再構成をおこなうよう
にできる。この場合、図18において、まず、上記実施
例のメモリブロック管理テーブル112から初期化情報
を読み取り(処理181)、さらにデータメモリ部10
8の未使用ブロックを検索する(処理182)。これを
前記データメモリ部108の全ブロックについて繰り返
す(処理183)。ここで処理184にて、空き領域の
有無を判断し、空き領域が無ければ、処理188におい
てユーザに空き領域が無いことを通知する。また空き領
域があれば、これを新たに代替メモリ部109に割当
て、前記メモリブロック管理テーブル112の初期化情
報領域に新しい初期化情報を書き込む(処理185)。
さらに、上記代替メモリ部に割り当てたブロックをエラ
ー情報レジスタ105を用いてホストシステムに通知
し、使用禁止にする(処理186)。その後ユーザにデ
ィスクの再構成処理が終了したことを通知して(処理1
87)終了する。
【0053】以上のようにして、代替メモリ部の再構成
を行うようにしてもよい。
【0054】次に、第二の実施例について説明する。上
記実施例では、半導体メモリ106にデータメモリ部1
08と代替メモリ部109とを設けたが、データメモリ
部106と代替メモリ部109とを区別せず混在領域と
する場合の実施例について説明する。この場合の構成図
を図8に示す。図8では、図1に示す構成と異なり半導
体メモリ106はデータメモリと代替メモリとが混在す
る混在データメモリ801で構成する。また、図8に示
す混在データメモリ701のメモリマップとメモリブロ
ック管理テーブル112との対応例を図9に示す。図9
において、メモリアドレスマップ201に示すように、
混在データ領域901は、データブロックと代替ブロッ
クが混在しており、全体で0000000h番地から1
FFFFFFh番地までの32Mバイトの容量をもつ。
本実施例では、このうち実際にデータ領域として使用す
るのは30Mバイトとし、残りの2Mバイトは代替ブロ
ック領域として使用するものとする。上記2つの領域の
容量は固定的なものではなく、ユーザが半導体ディスク
装置の初期化作業の際に初期化情報領域に適当な値を設
定することで任意に変更できる。初期化情報領域207
およびブロック登録テーブル205、ブロック使用テー
ブル206の容量の決定方法については図2と同様であ
る。
【0055】次に、図8に示す実施例の動作について図
10を用いて説明する。読み出し動作については、前記
図3に述べたフローチャートと同様に処理することがで
きる。また、書き込み動作は、前記図4において述べた
書き込み動作の処理404までは同様に処理する。図9
に示す実施例では、上記述べたようにデータブロック領
域と代替ブロック領域とが混在している、したがって図
10に示す処理404で書き込みエラーが発生した場合
は、処理405においてブロック使用テーブル206全
体のなかから空きブロックを検索する。これ以後の処理
およびその他の処理は図4に示す処理と同様に行う。
【0056】次に、図11に本発明の第三の実施例を示
す。図11に示す実施例は、図1に示す実施例における
半導体メモリ制御回路111をCPU、MPU、MCU
などと呼ばれるマイコン116を用いて実現し、バッフ
ァメモリ115をインターフェース回路107に内蔵し
たものである。マイコン116を用いた半導体ディスク
装置102の制御は、通常リードオンリメモリ(以下R
OMと略す。)に格納したものを用いる。本実施例では
マイコン116をROM内蔵のワンチップタイプのマイ
コンとしても良いし、メモリブロック管理テーブル11
2または半導体メモリ106の特定のアドレス空間をマ
イコン116の制御プログラムに割り当てても良い。ま
た、独立したROMチップを搭載しても良い。また、図
11に示す実施例の動作は、図1に示す実施例の半導体
ディスク制御回路111をマイコン116に置き換えた
ものであり、基本的に同一である。
【0057】また、以上述べてきた図1、図8および図
11に示す実施例では、代替メモリ領域203とデータ
メモリ領域202とはそれぞれ1領域のみであるが、初
期化情報領域に新たに他のアドレス情報と容量を加える
ことで、複数の代替メモリ領域202とデータメモリ領
域202とを設けても差し支えない。
【0058】次に、図12に本発明の第四の実施例を示
す。図12に示す実施例では、図1に示す実施例から割
込み信号103を除いたものであり、半導体ディスク装
置102にフラッシュメモリの書き込みエラー等が発生
した場合には、半導体ディスク制御回路111がエラー
情報をエラー情報レジスタ105に書き込み、ホストシ
ステム101がI/Oバス104を通じてエラー情報レ
ジスタ105の内容をポーリングするなどして読み取る
ことにより、エラーの発生を通知できる。図12に示す
実施例の他の動作については図1に示す実施例と同様で
ある。
【0059】次に、図17に本発明の第五の実施例を示
す。図17に示す第五の実施例は、図11に示す第三の
実施例において、前記半導体メモリ106を前記データ
メモリ部108のみで構成するようにしたものである。
図17に示す実施例において、フラッシュメモリの書き
込みエラーが発生した場合には、メモリブロック管理テ
ーブル112のメモリブロック使用情報を検索してデー
タメモリ部108の空きブロックを探しだし、前記空き
ブロックを代替ブロックとしてデータを書き込み、さら
に代替ブロックとして使用した前記データメモリ部10
8のブロック情報をエラー情報レジスタ105に書き込
んで、ホストシステム101に通知するようにすれば良
い。図17に示す実施例の他の部分の動作は図1に示す
実施例と同一である。
【0060】以上述べてきたように、本発明の本質はフ
ラッシュメモリを用いた半導体ディスクにおいて、フラ
ッシュメモリの空き容量が無くなった場合あるいは書き
込みエラー発生時に代替する代替メモリ領域が無くなっ
た場合に、これをホストシステムおよびそのユーザに通
知など適切な処理をすることが本質である。したがって
フラッシュメモリ本体の読み込み、書き込み制御方式お
よびメモリブロック管理テーブルの構成方法などは上記
説明した実施例以外の任意の方式で良く、本特許の本質
を変えるものではない。また、ユーザにエラーを通知す
る手段も上記述べてきた実施例に限定されるものではな
い。上記実施例によれば、フラッシュメモリの書き込み
エラーを救済できるので半導体ディスク装置の寿命を延
ばすことができる。
【0061】
【発明の効果】本発明により、フラッシュメモリを記憶
媒体とした半導体ディスクにおいて、フラッシュメモリ
の書換え回数の制限による書き込みエラーを救済できる
ので、半導体ディスクの寿命をのばすことができる。ま
たエラー救済ができないときはユーザにこれを通知する
ので、データ損失を防ぐ適切な処置をとることができ
る。
【図面の簡単な説明】
【図1】本発明の第一の実施例の構成図。
【図2】メモリブロック管理テーブルとメモリマップの
対応例を示す説明図。
【図3】読み出し動作の処理手順を示すフローチャー
ト。
【図4】書き込み動作の処理手順を示すフローチャー
ト。
【図5】書き込み動作の他の処理手順を示すフローチャ
ート。
【図6】代替ブロックの登録処理手順を示すフローチャ
ート。
【図7】初期化作業の処理手順を示すフローチャート。
【図8】本発明の第二の実施例の構成図。
【図9】第二の実施例のメモリブロック管理テーブルの
例を示す説明図。
【図10】第二の実施例の書き込み時の処理手順を示す
フローチャート。
【図11】本発明の第三の実施例の構成図。
【図12】本発明の第四の実施例の構成図。
【図13】本発明のホストシステムの構成図。
【図14】エラーメッセージの出力例を表す説明図。
【図15】エラー通知方法の例を表す説明図。
【図16】エラー通知方法の他の例を表す説明図。
【図17】本発明の第五の実施例の構成図。
【図18】半導体ディスクの再構成を表すフローチャー
ト。
【図19】第1の実施例における初期化情報領域の内容
を表す説明図。
【図20】第1の実施例における初期化情報領域設定の
フローチャート。
【図21】エラー情報レジスタを表す説明図。
【図22】割込み応答情報を表すフローチャート。
【図23】エラー情報レジスタの他の例を表す説明図。
【符号の説明】
101…ホストシステム、102…半導体ディスク装
置、103…割り込み信号、104…I/Oバス、10
5…エラー情報レジスタ、106…半導体メモリ、10
7…インターフェース回路、108…データメモリ部、
109…代替メモリ部、110…制御信号、111…半
導体ディスク制御回路、112…メモリブロック管理テ
ーブル、116・・・マイコン、201…メモリアドレ
スマップ、202…データメモリ領域、203…代替メ
モリ領域、204…メモリブロック管理テーブル、20
5…ブロック登録テーブル、206…ブロック使用テー
ブル、207…初期化情報領域、801…混在データメ
モリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 常弘 隆司 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立製作所マイクロエレクトロニク ス機器開発研究所内 (72)発明者 戸塚 隆 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体設計開発センタ内 (72)発明者 和田 武史 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体設計開発センタ内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】フラッシュメモリを記憶媒体とする記憶部
    を備える半導体メモリ部と、該半導体メモリ部との間で
    情報を送受信するホストシステムとを有する記憶システ
    ムにおいて、 前記半導体メモリ部は、 前記ホストシステムとの間で情報を送受信するインタフ
    ェース回路と、 前記記憶部に対する情報の読み書きを制御し、当該記憶
    部のエラー領域を検出する制御回路と、 前記記憶部の各領域ごとに使用/未使用の状態を保持
    し、前記制御回路においてエラーを検出した場合に、前
    記記憶部のエラー領域の代わりに未使用の領域を代替領
    域として割り当て、該割り当てた代替領域と前記エラー
    領域との対応を保持するメモリ管理手段とを有し、 前記制御回路は、前記メモリ管理手段を参照し、前記記
    憶部に対する情報の読み書きの制御を行うことを特徴と
    する記憶システム。
  2. 【請求項2】請求項1において、前記制御回路は、前記
    記憶部のエラー領域の検出時に、当該記憶部のエラー領
    域の検出を示すエラー情報を前記ホストシステムに通知
    する通知手段を備え、 前記ホストシステムは、該通知手段からのエラー情報の
    通知を検出する通知検出手段と、該通知検出手段による
    エラー情報の通知の検出時にエラー情報を出力する出力
    手段とを備えることを特徴とする記憶システム。
  3. 【請求項3】請求項1において、前記半導体メモリ部
    は、予め定めたエラー情報を保持するエラー情報保持手
    段をさらに有し、 前記制御回路は、前記記憶部のエラー領域の検出時に、
    当該記憶部のエラー領域の検出を示すエラー情報を該エ
    ラー情報保持手段に設定し、 前記ホストシステムは、該エラー情報保持手段を参照
    し、前記エラー情報を検出する検出手段と、該検出手段
    によるエラー情報の検出時にエラー情報を出力する出力
    手段とを備えることを特徴とする記憶システム。
  4. 【請求項4】請求項3において、前記制御回路は、前記
    記憶部の代替領域が無くなったことをさらに検出し、前
    記エラー情報保持手段に、前記記憶部の代替領域が無く
    なったことを示すエラー情報をさらに設定することを特
    徴とする記憶システム。
  5. 【請求項5】請求項1において、前記ホストシステム
    は、前記記憶部の情報を記憶するデータ領域と前記代替
    領域とを初期化情報としてあらかじめ設定するための指
    示を受け付ける入力手段と、該入力手段により受け付け
    た指示に基づいて前記メモリ管理手段に当該初期化情報
    を設定する設定手段とを備え、 前記メモリ管理手段は、前記設定手段の設定に基づいて
    領域分けして管理することを特徴とする記憶システム。
  6. 【請求項6】請求項5において、前記メモリ管理手段
    は、前記代替領域が無くなった場合に、前記データ領域
    の空き領域の未使用の領域を検出し、該検出した未使用
    領域を代替領域に再設定する再設定手段と、該再設定手
    段により再設定したときに、前記未使用領域を代替領域
    に設定したことを通知する再設定通知手段とを備え、 前記ホストシステムは、該再設定通知手段より再設定の
    通知があると、該未使用領域を使用禁止とすることを特
    徴とする記憶システム。
  7. 【請求項7】フラッシュメモリを記憶媒体とする半導体
    メモリの記憶制御方法であって、 外部から書き込み指示されるアドレス情報に対応する書
    き込みアドレスをあらかじめ保持し、 前記記憶媒体の書き込みアドレスが示す領域の使用/未
    使用の状態を保持し、 外部からアドレス情報とともに書き込み指示があると、
    該アドレス情報に対応する前記保持した書き込みアドレ
    スを参照し、 該書き込みアドレスが示す領域に書き込みを行い、 書き込み時に、当該領域を使用状態として保持し、 書き込み時に、書き込みエラーが発生したか否かを判断
    し、 該書き込みエラーが発生した場合には、該エラーが発生
    した領域の代わりに、未使用の領域を代替領域として割
    り当てて、該代替領域に書き込みを行い、 前記保持している書き込みアドレスを該割り当てた代替
    領域の書き込みアドレスに更新し、 当該代替領域を使用したことを通知することを特徴とす
    る記憶制御方法。
  8. 【請求項8】フラッシュメモリを記憶媒体とする半導体
    メモリの記憶制御方法であって、 情報を記憶するデータ領域と、書き込みエラー発生時
    に、当該エラー発生した領域以外の領域を割り当てるた
    めの代替領域とを領域分けする指示を受け付け、 当該指示に従い、前記データ領域のアドレス情報に対応
    する書き込みアドレスと、前記代替領域のアドレスとを
    あらかじめ保持し、 前記データ領域および前記代替領域の使用/未使用の状
    態をアドレスごとに保持し、 アドレス情報とともに書き込み指示を受け付けると、該
    アドレス情報に対応する前記保持した書き込みアドレス
    を参照し、 該書き込みアドレスが示す領域に書き込みを行い、 書き込み時に、当該領域を使用状態として保持し、 書き込み時に、書き込みエラーが発生したか否かを判断
    し、 該書き込みエラーが発生した場合には、該エラーが発生
    した領域の代わりに、未使用の代替領域を割り当てて、
    該代替領域に書き込みを行い、 前記保持している書き込みアドレスを該割り当てた代替
    領域のアドレスに更新し、 当該代替領域を使用状態として保持することを特徴とす
    る記憶制御方法。
JP12240193A 1993-04-08 1993-05-25 フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法 Pending JPH06332806A (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
JP12240193A JPH06332806A (ja) 1993-05-25 1993-05-25 フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
KR1019940007261A KR970008188B1 (ko) 1993-04-08 1994-04-07 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
EP94105467A EP0619541B1 (en) 1993-04-08 1994-04-08 Information processing system with cached flash memory
DE69432878T DE69432878T2 (de) 1993-04-08 1994-04-08 Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher
US08/225,313 US5530673A (en) 1993-04-08 1994-04-08 Flash memory control method and information processing system therewith
TW083103109A TW403871B (en) 1993-04-08 1994-04-09 Control method of flash memory and its application on data process device
US08/640,998 US5862083A (en) 1993-04-08 1996-04-30 Information processing system
US09/182,630 US5973964A (en) 1993-04-08 1998-10-30 Flash memory control method and information processing system therewith
US09/357,931 US6078520A (en) 1993-04-08 1999-07-21 Flash memory control method and information processing system therewith
US09/577,371 US6275436B1 (en) 1993-04-08 2000-05-23 Flash memory control method and apparatus processing system therewith
US09/927,493 US6421279B1 (en) 1993-04-08 2001-08-13 Flash memory control method and apparatus processing system therewith

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12240193A JPH06332806A (ja) 1993-05-25 1993-05-25 フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法

Publications (1)

Publication Number Publication Date
JPH06332806A true JPH06332806A (ja) 1994-12-02

Family

ID=14834885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12240193A Pending JPH06332806A (ja) 1993-04-08 1993-05-25 フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法

Country Status (1)

Country Link
JP (1) JPH06332806A (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
JP2001306409A (ja) * 2000-04-21 2001-11-02 Mitsubishi Electric Corp 携帯可能な記憶装置及びそれを用いた情報処理システム
KR100387077B1 (ko) * 1995-12-23 2003-08-14 삼성전자주식회사 온 라인 상태에서 시스템의 기능 정정방법
US6839798B1 (en) 1998-12-14 2005-01-04 Renesas Technology Corp. Flash memory capable of storing frequently rewritten data
JP2006509304A (ja) * 2002-12-09 2006-03-16 サンディスク コーポレイション 不揮発性メモリにおける欠陥のためのゾーン境界調整
JP2007328824A (ja) * 2007-09-14 2007-12-20 Toshiba Corp メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
JP2008048763A (ja) * 2006-08-22 2008-03-06 Daiman:Kk 遊技機
JP2008079754A (ja) * 2006-09-27 2008-04-10 Daiman:Kk 遊技機
JP2008079753A (ja) * 2006-09-27 2008-04-10 Daiman:Kk 遊技機
JP2008228955A (ja) * 2007-03-20 2008-10-02 Daiman:Kk 遊技機
JP2009123236A (ja) * 2009-02-26 2009-06-04 Solid State Storage Solutions Llc メモリシステム
JP2009301525A (ja) * 2008-05-14 2009-12-24 Hitachi Ltd フラッシュメモリを用いたストレージ装置
JP2010049613A (ja) * 2008-08-25 2010-03-04 Nec Corp ストレージ装置、ストレージ性能管理方法及びストレージ性能管理プログラム
JP2010152913A (ja) * 1999-09-03 2010-07-08 Lexar Media Inc セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JP2011018387A (ja) * 2009-07-07 2011-01-27 Sony Corp メモリ装置、メモリ制御方法、およびプログラム
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US8850105B2 (en) 2011-04-08 2014-09-30 Kabushiki Kaisha Toshiba Method for controlling memory system, information processing apparatus, and storage medium
WO2015182439A1 (ja) * 2014-05-26 2015-12-03 ソニー株式会社 記憶装置、記憶システムおよび記憶装置の制御方法
JP2017045288A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
JP2018136735A (ja) * 2017-02-22 2018-08-30 三菱電機株式会社 メモリ制御装置及びメモリ制御方法

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100387077B1 (ko) * 1995-12-23 2003-08-14 삼성전자주식회사 온 라인 상태에서 시스템의 기능 정정방법
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
US6581132B1 (en) 1997-12-16 2003-06-17 Tdk Corporation Flash memory system including a memory manager for managing data
US6839798B1 (en) 1998-12-14 2005-01-04 Renesas Technology Corp. Flash memory capable of storing frequently rewritten data
JP2010152913A (ja) * 1999-09-03 2010-07-08 Lexar Media Inc セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JP2001306409A (ja) * 2000-04-21 2001-11-02 Mitsubishi Electric Corp 携帯可能な記憶装置及びそれを用いた情報処理システム
JP2006509304A (ja) * 2002-12-09 2006-03-16 サンディスク コーポレイション 不揮発性メモリにおける欠陥のためのゾーン境界調整
JP2008048763A (ja) * 2006-08-22 2008-03-06 Daiman:Kk 遊技機
JP2008079753A (ja) * 2006-09-27 2008-04-10 Daiman:Kk 遊技機
JP2008079754A (ja) * 2006-09-27 2008-04-10 Daiman:Kk 遊技機
JP2008228955A (ja) * 2007-03-20 2008-10-02 Daiman:Kk 遊技機
JP2007328824A (ja) * 2007-09-14 2007-12-20 Toshiba Corp メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
JP4602387B2 (ja) * 2007-09-14 2010-12-22 株式会社東芝 メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US9176816B2 (en) 2008-03-01 2015-11-03 Kabushiki Kaisha Toshiba Memory system configured to control data transfer
US8751901B2 (en) 2008-03-01 2014-06-10 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory system configured to control data transfer
US8429372B2 (en) 2008-05-14 2013-04-23 Hitachi, Ltd. Allocating substitute area capacity in a storage system using flash memory packages
JP2009301525A (ja) * 2008-05-14 2009-12-24 Hitachi Ltd フラッシュメモリを用いたストレージ装置
US8806170B2 (en) 2008-05-14 2014-08-12 Hitachi Ltd. Accessing a hard disk drive and a flash memory with different formats in a storage system
JP2010049613A (ja) * 2008-08-25 2010-03-04 Nec Corp ストレージ装置、ストレージ性能管理方法及びストレージ性能管理プログラム
JP2009123236A (ja) * 2009-02-26 2009-06-04 Solid State Storage Solutions Llc メモリシステム
JP2011018387A (ja) * 2009-07-07 2011-01-27 Sony Corp メモリ装置、メモリ制御方法、およびプログラム
US8448017B2 (en) 2009-07-07 2013-05-21 Sony Corporation Memory apparatus, memory controlling method and program
US8850105B2 (en) 2011-04-08 2014-09-30 Kabushiki Kaisha Toshiba Method for controlling memory system, information processing apparatus, and storage medium
WO2015182439A1 (ja) * 2014-05-26 2015-12-03 ソニー株式会社 記憶装置、記憶システムおよび記憶装置の制御方法
JPWO2015182439A1 (ja) * 2014-05-26 2017-04-20 ソニー株式会社 記憶装置、記憶システムおよび記憶装置の制御方法
US10120614B2 (en) 2014-05-26 2018-11-06 Sony Corporation Storage device, storage system, and method of controlling storage device
JP2017045288A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
JP2018136735A (ja) * 2017-02-22 2018-08-30 三菱電機株式会社 メモリ制御装置及びメモリ制御方法

Similar Documents

Publication Publication Date Title
JPH06332806A (ja) フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
US5933846A (en) Rewritable ROM file device having read/write buffer access control via copy of rewritable area
US6130837A (en) Storage device employing a flash memory
US7447072B2 (en) Storage device employing a flash memory
US5946714A (en) Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
JP3792259B2 (ja) 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能
US7146455B2 (en) System and method for optimized access to memory devices requiring block writing
JP3574078B2 (ja) 記憶装置と記憶装置制御方法
JPH05204561A (ja) フラッシュメモリを記憶媒体とした半導体ディスク
JP2010152913A (ja) セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JPH09185551A (ja) 半導体記憶装置
US5928338A (en) Method for providing temporary registers in a local bus device by reusing configuration bits otherwise unused after system reset
JP3609739B2 (ja) 半導体記憶装置
KR19990055972A (ko) 블록 재할당 기능을 갖는 플래시 메모리 이용 보조기억장치 및 그 방법
JP2932392B2 (ja) メモリカード
JPH09198201A (ja) 半導体ディスク装置およびその書換回数管理方法
JP2007310927A (ja) 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2954988B2 (ja) 情報処理装置
JPH0225542B2 (ja)
JP3827112B2 (ja) 計算機システムおよび特定主記憶の参照更新プログラムを記録した媒体
JP2858517B2 (ja) コンピュータシステム及び同システムにおいてアドレス指定可能な拡張された記憶装置を与える方法
JPH0241772B2 (ja)
JPH09237217A (ja) ローカルストレージのメモリ割付け方式と制御装置
JPH01214948A (ja) ランダム・アクセス・メモリのアクセス制御装置
JPH11102327A (ja) マイクロコンピュータ