JPH07302176A - 半導体ディスク装置 - Google Patents

半導体ディスク装置

Info

Publication number
JPH07302176A
JPH07302176A JP9512694A JP9512694A JPH07302176A JP H07302176 A JPH07302176 A JP H07302176A JP 9512694 A JP9512694 A JP 9512694A JP 9512694 A JP9512694 A JP 9512694A JP H07302176 A JPH07302176 A JP H07302176A
Authority
JP
Japan
Prior art keywords
data
write
block
page
flash
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
JP9512694A
Other languages
English (en)
Inventor
Hiroshi Sukegawa
博 助川
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9512694A priority Critical patent/JPH07302176A/ja
Priority to US08/435,854 priority patent/US5603001A/en
Publication of JPH07302176A publication Critical patent/JPH07302176A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 【目的】フラッシュEEPROMに対するライトアクセ
ス速度の向上を図る。 【構成】NANDバスインタフェース19は、フラッシ
ュEEPROM11−1〜11−16それぞれからの1
6本のレディー/ビジー信号を独立して受信し、フラッ
シュEEPROM毎に動作状態を管理する。このため、
全てのフラッシュEEPROM11−1〜11−16の
動作完了を待つことなく、ライトアクセス対象のフラッ
シュEEPROMがレディー状態になりさえすれば、そ
のライトアクセス対象のフラッシュEEPROMに対す
るライトアクセスを開始する事ができる。また、各フラ
ッシュEEPROMはライト動作を自動実行可能なコマ
ンド制御タイプのものであるので、あるフラッシュEE
PROMのデータ書き込み動作期間中に別のフラッシュ
EEPROMに対するライトアクセスを行うことが可能
になり、複数のフラッシュEEPROMを並行して動作
させる事ができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は半導体ディスク装置に
関し、特にページライト動作を自動実行する機能を持つ
複数のフラッシュEEPROMを内蔵し、ホスト装置か
らのディスクアクセス要求に応じてそれらフラッシュE
EPROMをアクセスする半導体ディスク装置に関す
る。
【0002】
【従来の技術】従来のワークステーションやパーソナル
コンピュータ等の情報処理装置の多くは、2次記憶装置
として磁気ディスク装置を用いていた。磁気ディスク装
置は、記録の信頼性が高い、ビット単価が安いなどの利
点がある反面、装置のサイズが大きい、物理的な衝撃に
弱いなどの欠点を持つ。
【0003】そこで、近年、装置のサイズが小さく物理
的な衝撃にも強い半導体ディスク装置に注目が集まって
いる。半導体ディスク装置とは、電気的に一括消去が可
能な不揮発性の半導体メモリであるフラッシュEEPR
OMを、従来の磁気ディスク装置などと同様にパーソナ
ルコンピュータなどの2次記憶装置として用いるもので
ある。この半導体ディスク装置には、磁気ディスク装置
の磁気ヘッドや回転ディスクのような機械的な可動部分
を含まないため、物理的な衝撃による誤動作や故障が発
生しにくい。また、装置としてのサイズも小さくなる等
の利点がある。
【0004】ところで、最近では、全ての動作モードが
外部からのコマンドによって指定可能ないわゆるコマン
ド制御タイプのフラッシュEEPROMが種々開発され
ている。
【0005】この種のフラッシュEEPROMは、1ペ
ージ分のデータを保持するデータレジスタを備えてお
り、データレジスタからメモリセルアレイへのデータ書
込み動作や、メモリセルアレイからデータレジスタへの
データ読み出し動作を外部からの制御なしで自動実行す
る事ができる。外部システムは、フラッシュEEPRO
Mのデータ書込み/読み出し動作が終了したかどうか
を、フラッシュEEPROMからのレディー/ビジー信
号によって判断する事ができる。
【0006】このようなコマンド制御タイプの複数のフ
ラッシュEEPROMを半導体ディスク装置に内蔵して
使用した場合には、その半導体ディスク装置内のコント
ローラは、コマンドを発行してフラッシュEEPROM
の動作モードを一旦指定しさえすればその後はそのフラ
ッシュEEPROMの制御から解放される。このため、
例えば、あるフラッシュEEPROMの書込み動作中
に、待機中の別のフラッシュEEPROMに対するライ
トアクセスを行う事が可能である。
【0007】しかしながら、従来の半導体ディスク装置
では、複数のフラッシュEEPROMそれぞれからのレ
ディー/ビジー信号のAND出力を1本の信号線として
コントローラに入力する構成が採用されており、フラッ
シュEEPROM毎に独立してその動作状態(レディ−
/ビジ−)を検出する事ができなかった。
【0008】このため、フラッシュEEPROMのコマ
ンド制御機能を有効利用する事ができず、あるフラッシ
ュEEPROMの書込み動作中に、待機中の別のフラッ
シュEEPROMに対するライトアクセスを行うといっ
た並列処理は行われていなかった。
【0009】
【発明が解決しようとする課題】従来の半導体ディスク
装置では、コマンド制御タイプのフラッシュEEPRO
Mに対応した構成が採用されておらず、たとえコマンド
制御タイプのフラッシュEEPROMを利用したとして
も、フラッシュEEPROM毎に独立してその動作状態
(レディ−/ビジ−)を検出する事はできない。このた
め、複数のフラッシュEEPROMに書込み動作を同時
実行させる事ができず、動作性能の向上を実現する事は
できなかった。
【0010】この発明はこのような点に鑑みてなされた
もので、フラッシュEEPROM毎に独立してその動作
状態(レディ−/ビジ−)を検出できるようにして、複
数のフラッシュEEPROMに書込み動作を同時実行さ
せることが可能な半導体ディスク装置を提供することを
目的とする。
【0011】
【課題を解決するための手段および作用】この発明は、
外部からのライトコマンドに応じてデータ書込み動作を
自動実行し、そのデータ書込み動作期間中にはビジース
テートのレディー/ビジー信号を発生する複数のフラッ
シュEEPROMを内蔵し、ホスト装置からのディスク
アクセス要求に応じてそれら複数のフラッシュEEPR
OMをアクセスする半導体ディスク装置において、前記
ホスト装置から転送されるライトデータを格納するデー
タバッファと、前記複数のフラッシュEEPROMから
出力される複数のレディー/ビジー信号をそれぞれ受信
する複数の入力ポートを有し、それらレディー/ビジー
信号に応じて前記複数のフラッシュEEPROMそれぞ
れのレディー/ビジー状態を示す複数のステータスデー
タを保持するレディー/ビジー管理手段と、前記ホスト
装置からのライトアクセス要求に応じて、前記複数のフ
ラッシュEEPROMをライトアクセスするライトアク
セス手段とを具備し、このライトアクセス手段は、前記
ディスクアクセス要求によって指定されたライトアクセ
ス対象のフラッシュEEPROMに対応するステータス
データを参照して、前記ライトアクセス対象フラッシュ
EEPROMがレディー状態か否かを決定する手段と、
前記ライトアクセス対象フラッシュEEPROMがレデ
ィー状態であることが決定された際、前記ライトアクセ
ス対象フラッシュEEPROMにライトコマンドを発行
してデータ書込み動作を実行させる手段とを具備するこ
とを特徴とする。
【0012】この半導体ディスク装置においては、複数
のレディー/ビジー信号が独立して受信される事によ
り、フラッシュEEPROM毎に動作状態を管理するこ
とができる。このため、全てのフラッシュEEPROM
の動作完了を待つことなく、ライトアクセス対象のフラ
ッシュEEPROMがレディー状態になりさえすれば、
ライトアクセスを開始する事ができる。また、この半導
体ディスク装置で使用されているフラッシュEEPRO
Mは、ライト動作を自動実行可能なコマンド制御タイプ
のものである。このため、ライトアクセス手段は、ある
フラッシュEEPROMにライトコマンドを発行しさえ
すれば、その後はそのライト制御動作から解放される。
したがって、あるフラッシュEEPROMのデータ書き
込み動作期間中に別のフラッシュEEPROMに対する
ライトアクセスを行うことが可能になり、複数のフラッ
シュEEPROMを並行して動作させる事ができる。よ
って、データ書込み速度の向上を図る事ができる。
【0013】また、複数のフラッシュEEPROMに対
しては連続するセクタ番号をそれらチップに横断して割
り当てることが好ましい。これにより、ホスト装置から
連続セクタに跨がるライトデータの書込みが要求された
場合に、そのライトデータの書込みを複数のフラッシュ
EEPROMに分散させて実行させることが可能とな
り、書込み動作をより効率的に行う事が可能になる。
【0014】また、この発明は、複数のページからそれ
ぞれ構成される複数の消去ブロックを有するメモリセル
アレイと、外部から転送される1ページ分のデータを保
持するデータレジスタとをそれぞれ有し、外部からのラ
イトコマンドに応じて、データレジスタに転送されたデ
ータをメモリセルアレイに書き込むページライト動作を
自動実行し、そのページライト動作期間中にはビジース
テートのレディー/ビジー信号を発生する複数のフラッ
シュEEPROMを内蔵し、ホスト装置からのディスク
アクセス要求に応じてそれら複数のフラッシュEEPR
OMをアクセスする半導体ディスク装置において、前記
ホスト装置から転送されるライトデータを格納するデー
タバッファと、前記複数のフラッシュEEPROMから
出力される複数のレディー/ビジー信号をそれぞれ受信
する複数の入力ポートを有し、それらレディー/ビジー
信号に応じて前記複数のフラッシュEEPROMそれぞ
れのレディー/ビジー状態を示す複数のステータスデー
タを保持するレディー/ビジー管理手段と、前記ホスト
装置からのライトアクセス要求に応じて、前記複数のフ
ラッシュEEPROMをライトアクセスするライトアク
セス手段とを具備し、このライトアクセス手段は、前記
ライト要求によって指定されたライトアクセス対象の複
数のフラッシュEEPRMにそれぞれ対応する複数ブロ
ック分のブロックライトデータを生成する手段と、前記
ライトアクセス対象の複数のフラッシュEEPRMに対
して順番に対応するブロックライトデータの1ページ分
のデータ転送およびライトコマンドの発行を実行し、そ
れらライトアクセス対象の複数のフラッシュEEPRM
それぞれにページライト動作を実行させる手段と、前記
複数のライトアクセス対象フラッシュEEPROMにそ
れぞれ対応するステータスデータを参照して、ライトア
クセス対象フラッシュEEPROM毎にページライト動
作の終了の有無を検出する手段と、この検出手段の検出
結果に基づいて、次ページのページライト動作を実行さ
せるためのデータ転送およびライトコマンドの発行を、
ページライト動作が終了したフラッシュEEPROMか
ら順次実行する手段とを具備することを特徴とする。
【0015】この半導体ディスク装置においては、ライ
トアクセス対象の複数のフラッシュEEPROMにそれ
ぞれ対応する複数のライトデータブロックが生成され、
ページライト動作が終了したチップから順に次のページ
ライト動作が実行される。このため、半導体ディスク装
置に含まれるフラッシュEEPROMの性能そのものの
差やページライトベリファイによって再試行されるペー
ジライト動作の回数の差などによって、チップ間でペー
ジライトに要する時間に違いが生じる場合においても、
内蔵チップの書込み性能を最大限引き出す事ができる。
【0016】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
【0017】図1には、この発明の一実施例に係わる半
導体ディスク装置の構成が示されている。この半導体デ
ィスク装置10は、ハードディスク装置の代替としてパ
ーソナルコンピュータなどのホストシステムに接続され
て使用されるものであり、ホストシステム(ファイルシ
ステム、磁気ディスク装置用のドライバ)からのディス
クアクセス要求をフラッシュEEPROMに対するアク
セス要求にエミュレートして、半導体ディスク装置10
内蔵のフラッシュEEPROMをアクセスする。この半
導体ディスク装置10には、最大16個のフラッシュE
EPROMチップを搭載することが可能である。これら
フラッシュEEPROMは、それぞれICソケットを介
して半導体ディスク装置10の回路基盤に着脱自在に実
装される。図1においては、16個のNAND型フラッ
シュEEPROM11−1〜11−16が搭載されてい
る状態が示されている。半導体ディスク装置10には、
さらに、コントローラ12、およびRAM13が設けら
れている。
【0018】フラッシュEEPROM11−1〜11−
16は、この半導体ディスク装置10の記録媒体として
使用されるものであり、ハードディスク装置の磁気記録
媒体に相当する。これらフラッシュEEPROM11−
1〜11−16はNANDメモリバス14を介してコン
トローラ12に接続されている。NANDメモリバス1
4には、8ビット幅のデータバス、および各フラッシュ
EEPROMの制御信号端子に接続される各種制御信号
線が定義されている。I/Oデータバスおよび各種制御
信号線は、それぞれフラッシュEEPROM11−1〜
11−16のデータ入出力端子I/O、および制御信号
入力端子CONT(コマンドラッチイネーブル端子CL
E、アドレスラッチイネーブル端子ALE、ライトイネ
ーブル端子WE、リードイネーブル端子REなどを含
む)に共通接続されている。
【0019】さらに、フラッシュEEPROM11−1
〜11−6とコントローラ12の間には、チップセレク
ト信号(CS1〜CS8)線、およびReady/Bu
sy信号線(R/B1〜R/B16)がそれぞれチップ
毎に独立して配設されている。
【0020】これらフラッシュEEPROM11−1〜
11−6はそれぞれ16MビットのNAND型EEPR
OMであり、図2に示されているように、メモリセルア
レイ111とデータレジスタ112を備えている。メモ
リセルアレイ111は、8K行×264列×8ビットの
ビット構成を有し、512個のブロックを有している。
データ消去はこのブロック単位で実行することができ
る。各ブロックは16ページ(行)から構成されてお
り、各ページは、256バイトのデータ記憶領域と8バ
イトの冗長領域を備えている。データの書込みと読み出
しは、256+8バイトのデータレジスタ112を介し
てページ単位で実行される。この半導体ディスク装置に
おいては、各ページの冗長領域はECCや書換回数デー
タの格納に利用される。
【0021】フラッシュEEPROM11−1〜11−
6はそれぞれライトモード、リードモード、消去モード
などの動作モードを有しており、これら動作モードはコ
ントローラ12からのコマンドによって指定される。
【0022】リードモードにおいては、メモリセルアレ
イ111からデータレジスタ112へのページ単位のデ
ータ転送(ページリード)がフラッシュEEPROM内
部で自動実行される。このデータ転送期間中はRead
y/Busy信号線はBusy状態に設定され、これに
よってページリード動作中であることがコントローラ1
2に通知される。データレジスタ112に転送された1
ページ分のデータは、入出力端子I/O0〜I/O7か
ら8ビット単位でシリアルに読み出される。1ページ分
のデータのシリアルリードが終了すると、次のページの
ページリードが自動的に実行される。
【0023】ライトモードにおいては、データレジスタ
112からメモリセルアレイ111へのページ単位のデ
ータ転送(ページライト)がフラッシュEEPROM内
部で自動実行される。このデータ転送期間中はRead
y/Busy信号線はBusy状態に設定され、これに
よってページライト動作中であることがコントローラ1
2に通知される。
【0024】消去モードにおいては、コントローラから
のコマンドによって指定された任意のブロックの記憶内
容が一括消去される。
【0025】半導体ディスク装置10においては、これ
らフラッシュEEPROM11−1〜11−6の制御の
ための処理の殆どはファームウェアによって制御され
る。ハードウェアによって実行されるのは、フラッシュ
EEPROMへのデータ書込みの際のECC生成と、フ
ラッシュEEPROMからのデータ読み出しの際のEC
Cチェックである。
【0026】次に、半導体ディスク装置10のディスク
コントローラ12の構成を説明する。
【0027】ディスクコントローラ12は1個のLSI
によって実現されており、そのLSIチップには、図1
に示されているように、マイクロプロセッサ(MPU)
14、プロセッサバスインタフェース15、ROM1
6、外部バスインタフェース17、バッファメモリコン
トローラ18、およびNANDバスインタフェース19
が集積形成されている。
【0028】マイクロプロセッサ14は、ROM16に
格納されたファームウェアを実行してこの半導体ディス
ク装置10全体の動作を制御するものであり、パーソナ
ルコンピュ−タのCPU1から送られるディスクアクセ
スのためのホストアドレスを、フラッシュEEPROM
11−1〜11−16をアクセスするためのメモリアド
レスに変換するアドレス変換処理、フラッシュEEPR
OM11−1〜11−16をリード/ライトアクセスす
るためのアクセス制御処理、フラッシュEEPROM1
1−1〜11−6それぞれのデータ書換回数の管理、お
よびデータ書換回数を平準化するためのスワッピング処
理の制御などを行う。
【0029】ROM16には、マイクロプロセッサ14
によって実行されるファームウェア、およびパーソナル
コンピュータのCPU1によって実行されるオペレーテ
ィングシステムやアプリケーションプログラムなどの各
種プログラムが格納されている。オペレーティングシス
テムやアプリケーションプログラムはROM16内でフ
ァイルとして管理されており、それらプログラムはCP
U1から半導体ディスク装置10に対して発行される読
み出し要求に応じてROM16から読み出され、そして
パーソナルコンピュータのメインメモリ3にロードされ
る。
【0030】ROM16およびフラッシュEEPROM
11−1〜11−16には、連続するディスクアドレス
がマッピングされており、ROM16もディスク装置1
0の記憶媒体の一部として利用される。このため、RO
M16に格納されているオペレーティングシステムやア
プリケーションプログラムの読み出しは、CPU1から
の読み出し要求が、ある特定の番地を指定している時に
のみ実行され、その他の番地を指定している時はフラッ
シュEEPROM11−1〜11−16に対するリード
アクセスが行われる。
【0031】外部バスインタフェース17は、IDEや
PCMCIA仕様に準拠したインタフェースであり、パ
ーソナルコンピュータのシステムバス2に接続される。
外部バスインタフェース17には、CPU1との通信の
ためのI/Oレジスタ群が設けられている。レジスタ群
には、セクタナンバレジスタ171、セクタカウントレ
ジスタ172、データレジスタ173、シリンダレジス
タ174、ドライブ/ヘッドレジスタ175、コマンド
レジスタ176、ステータスレジスタ177などが含ま
れている。これらレジスタは、マイクロプロセッサ14
およびパーソナルコンピュータのCPU1によってそれ
ぞれリード/ライト可能である。
【0032】セクタナンバレジスタ171には、アクセ
ス先頭位置を指定するセクタ番号がCPU1によってラ
イトされる。セクタカウントレジスタ172には、リー
ド/ライト対象のセクタ数がCPU1によってライトさ
れる。データレジスタ173には、CPU1から供給さ
れるライトデータまたは半導体ディスク装置10から読
み出されるリードデータが設定される。シリンダレジス
タ174には、リード/ライト対象のシリンダ番号がC
PU1によってライトされる。ドライブ/ヘッドレジス
タ175には、リード/ライト対象のドライブ番号、お
よびヘッド番号がCPU1によってライトされる。コマ
ンドレジスタ176には、半導体ディスク装置10の動
作を指定するリードコマンドやライトコマンド等がCP
U1によってライトされる。ステータスレジスタ177
には、CPU1に通知すべき半導体ディスク装置10の
各種ステータスがセットされる。
【0033】バッファメモリコントローラ18は、RA
M13をアクセス制御するためのものであり、システム
バス2とRAM13間のデータ転送などを行う。データ
転送には、システムバス2とRAM13間のデータ転送
の他、RAM13とフラッシュEEPROM11−1〜
11−16間のデータ転送がある。後者のデータ転送
は、マイクロプロセッサ14によるムーブストリング命
令の実行によって行われる。
【0034】NANDバスインタフェース19は、マイ
クロプロセッサ14の制御の下にフラッシュEEPRO
M11−1〜11−16をアクセス制御するハードウェ
アロジックであり、フラッシュEEPROM11−1〜
11−16との間のデータ転送、およびフラッシュEE
PROMとの間の各種制御信号の授受を行う。
【0035】このNANDバスインタフェース19に
は、図示のように、NANDメモリバス14に接続され
る入出力端子の他、16個のフラッシュEEPROM1
1−1〜11−16それぞれからのReady/Bus
y信号線(R/B1〜R/B16)をそれぞれチップ毎
に独立して入力するための16個の入力端子と、16個
のフラッシュEEPROM11−1〜11−16それぞ
れにチップセレクト信号(CS1〜CS8)を独立して
出力るための16個の出力端子が設けられている。
【0036】また、NANDバスインタフェース19に
は、マイクロプロセッサ14によってリード/ライト可
能なI/Oレジスタ群20と、ECC演算回路21が設
けられている。ECC演算回路21は、ECC生成のた
めの演算およびECCチェックのための演算を行う。
【0037】I/Oレジスタ群20には、図3に示され
ているように、NANDチップナンバレジスタ201、
NANDデータリード/ライトレジスタ202、NAN
Dチップイネーブル制御レジスタ203、NANDコマ
ンドラッチイネーブル制御レジスタ204、NANDア
ドレスラッチイネーブル制御レジスタ205、ECCス
タート制御レジスタ206、ECCレディー/ビジース
テータスレジスタ207、LWCレジスタ208、6個
のECCデータジスタ209〜214、および16個の
NANDチップレディー/ビジーステータスレジスタ2
15−1〜215−16などが含まれている。
【0038】NANDチップナンバレジスタ201は、
どのNAND型フラッシュEEPROMに対して処理を
実行するかを選択するためのレジスタであり、アクセス
対象のNAND型フラッシュEEPROMのチップ番号
を示す値がプロセッサ14によってセットされる。
【0039】NANDデータリード/ライトレジスタ2
02は、データバスを介してフラッシュEEPROMに
対するデータのリード/ライトを行うためのレジスタで
あり、フラッシュEEPROMに対するコマンドの発
行、アドレスの発行、ステータスデータのリードなどに
使用される。
【0040】NANDチップイネーブル制御レジスタ2
03は、フラッシュEEPROMのチップイネーブル端
子CEを制御するためのレジスタであり、チップセレク
ト信号の発生/非発生を示すフラグがプロセッサ14に
よってセットされる。ビット0にフラグ“1”がセット
されると、NANDバスインタフェース19は、NAN
Dチップナンバレジスタ201によって選択されたフラ
ッシュEEPROMのチップイネーブル端子CEをアク
ティブにするためのチップセレクト信号(CS)を発生
する。
【0041】NANDコマンドラッチイネーブル制御レ
ジスタ204は、フラッシュEEPROMのコマンドラ
ッチイネーブル端子CLEを制御するためのレジスタで
あり、コマンドラッチイネルーブル端子CLEをアクテ
ィブにするか否かを指定するフラグがプロセッサ14に
よってセットされる。ビット0にフラグ“1”がセット
されると、フラッシュEEPROMのコマンドラッチイ
ネーブル端子CLEがNANDバスインタフェース19
によってアクティブに設定される。これにより、データ
バスにコマンドが発行されたことが、フラッシュEEP
ROMに対して通知される。
【0042】NANDアドレスラッチイネーブル制御レ
ジスタ205は、フラッシュEEPROMのアドレスラ
ッチイネーブル端子ALEを制御するためのレジスタで
あり、アドレスラッチイネルーブル端子ALEをアクイ
ブにするか否かを指定するフラグがプロセッサ14によ
ってセットされる。ビット0にフラグ“1”がセットさ
れると、フラッシュEEPROMのアドレスラッチイネ
ーブル端子ALEがNANDバスインタフェース19に
よってアクティブに設定される。これにより、データバ
スにアドレスが発行されたことが、フラッシュEEPR
OMに対して通知される。
【0043】ECCスタート制御レジスタ206は、E
CC演算の実行開始を制御するためのレジスタであり、
RAM13とフラッシュEEPROM11−1〜11−
16との間のデータ転送を開始する前に、ECC演算の
実行開始を指定するフラグがプロセッサ14によってセ
ットされる。フラッシュEEPROMからRAM13へ
のデータ転送を行う時は、ビット0に“1”がセットさ
れる。この場合、ECC演算回路21は、フラッシュE
EPROMから読み出されるデータについてECCチェ
ックを行う。RAM13からフラッシュEEPROMへ
のデータ転送を行う時は、ビット0に“0”がセットさ
れる。この場合、ECC演算回路21は、RAM13か
ら転送されるデータについてECCの生成を行う。
【0044】ECCレディー/ビジーステータスレジス
タ207は、ECC演算回路21によるECC演算(E
CC生成またはECCチェック)が実行中か否かを示す
ステータスレジスタである。NANDバスインタフェー
ス19は、ECC演算実行中であればビット0に“1”
のフラグをセットし、ECC演算の実行が終了すると、
ビット0に“0”のフラグをセットする。プロセッサ1
4は、RAM13とフラッシュEEPROM11−1〜
11−16との間における256バイトのデータ転送終
了後にレジスタ207のフラグを参照してECC演算処
理の終了の有無を調べ、そして終了を確認すると、次の
256バイトのデータ転送処理を開始する。
【0045】LWCレジスタ208には、フラッシュE
EPROMの8バイトの冗長領域の先頭の2バイトに格
納すべきデータ、例えば、書換回数データの下位ビット
であるLWC(Low Wite Count)データ
がセットされる。この場合、RAM13からフラッシュ
EEPROMへのデータ転送においては、そのデータ転
送に先立って、転送先となるフラッシュEEPROMの
ライト対象ブロックに対応したLWCデータがファーム
ウェアによってセットされる。フラッシュEEPROM
からRAM13へのデータ転送においては、フラッシュ
EEPROMから読み出されるデータ列からLWCデー
タがNANDバスインタフェース19によって取り出さ
れ、それがセットされる。
【0046】ECCデータレジスタ209〜214は、
6バイトのECCデータを保持するためのレジスタ群で
ある。RAM13からフラッシュEEPROMへのデー
タ転送時は、256バイトのライトデータに対応する6
バイトのECCデータがECC演算回路21によって生
成され、その生成されたECCデータがECCデータレ
ジスタ209〜214にセットされる。フラッシュEE
PROMからRAM13へのデータ転送時は、ECC演
算回路21によって実行されるECCチェック演算の結
果がレジスタ209〜214にセットされる。このEC
Cチェック演算は、エラー検出を行うために実行され
る。このECCチェック演算においては、256バイト
のリードデータに対応する6バイトのECCデータが再
度生成され、その6バイトのECCデータとフラッシュ
EEPROMから実際に読み出された6バイトのECC
データとの比較がバイト単位で行われる。一致すれば
“0”、不一致であれば“1”が対応するレジスタのビ
ット0にセットされる。したがって、エラーが発生して
なければ、ECCデータレジスタ209〜214のビッ
ト0にセットされる値は全て“0”となる。
【0047】NANDチップレディー/ビジーステータ
スレジスタ215−1〜215−16は、16個のフラ
ッシュEEPROM11−1〜11−16それぞれのレ
ディー/ビジーステータスを保持するレジスタ群であ
り、各レジスタのビット0には対応するフラッシュEE
PROMがレディー状態であるかビジー状態であるかを
示すフラグがNANDバスインタフェース19によって
セットされる。レディー状態ならばフラグ“1”が、ビ
ジー状態であれはフラグ“0”がセットされる。
【0048】レディー状態であるかビジー状態であるか
は、フラッシュEEPROM11−1〜11−16から
それぞれ独立して入力されるレディー/ビジー信号(R
/B1〜R/B16)の論理レベルによってチップ毎に
判定される。
【0049】図1のRAM13はダイナミックRAMか
ら構成されており、その記憶領域の一部はパーソナルコ
ンピュータのCPU1から転送されるライトデータ、お
よびフラッシュEEPROM11−1〜11−16から
読み出されるリードデータを保持するデータバッファ1
31として使用される。また、RAM13は、マイクロ
プロセッサ14の作業領域として使用され、ここには、
ホストアドレスをメモリアドレスに変換するためのアド
レス変換テーブル132、フラッシュEEPROMに書
き込むべき1ブロック分のブロックデータの格納位置を
管理するヘッダテーブル133、フラッシュEEPRO
M11−1〜11−16の書換回数をブロック単位で管
理するための書換回数管理テーブル134などが格納さ
れる。
【0050】次に、図4を参照して、マイクロプロセッ
サ14によって管理される半導体ディスク装置10内の
メモリマップについて説明する。
【0051】マイクロプロセッサ14が管理するメモリ
アドレス空間には、図示のように、RAM領域、NAN
Dメモリデータ領域、アプリケーションROM(APL
−ROM)領域、およびファームウェアROM(FW−
ROM)領域がマッピングされている。
【0052】RAM領域はRAM13をアクセスするた
めのメモリアドレス空間であり、ここにはデータバッフ
ァ131などが割り当てられている。
【0053】NANDメモリデータ領域は、フラッシュ
EEPROM11−1〜11−16をアクセスするため
の256バイトのアドレス空間である。フラッシュEE
PROM11−1〜11−16に対するデータのリード
/ライトアクセスにおいては、マイクロプロセッサ14
のムーブストリング命令によって256バイトのデータ
転送が行われる。このため、この256バイトのデータ
転送のために、256バイトのアドレス空間がNAND
メモリデータ領域として確保されている。このNAND
メモリデータ領域を使用する事により、データバッファ
131とフラッシュEEPROM11−1〜11−16
との間のデータ転送は全てファームウェアの処理として
行う事ができる。
【0054】次に、図5を参照して、フラッシュEEP
ROM11−1〜11−16それぞれのブロックの利用
形態について説明する。
【0055】フラッシュEEPROM11−1〜11−
16のブロックはユーザデータの格納だけでなく、これ
らフラッシュEEPROMを制御するための各種管理情
報の格納にも利用されている。フラッシュEEPROM
11−1〜11−16に対するユーザデータと管理情報
の割り当ては以下の通りである。
【0056】すなわち、チップ番号#0のNAND型フ
ラッシュEEPROM11−1においては、図示のよう
に、512個のブロックの中でブロック0〜ブロック5
03の504個のブロックは、ユーザデータを格納する
ためのメモリブロックとして利用される。また、ブロッ
ク504は、チップ内の512個のブロックのアドレス
や書換回数などを管理するための管理情報を記憶するM
BI(MemoryBlock Infomatio
n)テーブルブロックとしてを利用される。また、ブロ
ック505〜509は、メモリブロックおよびMBIテ
ーブルブロックに不良が発生した時にその代替用の予備
ブロックとして使用される。ブロック511は半導体デ
ィスク装置10の構成情報を記憶するコンフィグブロッ
クとして使用され、ブロック510はコンフィグブロッ
クの代替用の予備ブロックとして使用される。
【0057】コンフィグブロックは装置10全体で1個
だけ存在し、ここには、半導体ディスク装置10に搭載
されているフラッシュEEPROMのチップ数や、各フ
ラッシュEEPROMにおけるMBIテーブルブロック
の存在位置などを示す情報などが管理されている。
【0058】チップ番号#1〜#16のNAND型フラ
ッシュEEPROM11−2〜11−16においては、
図示のように、ブロック0〜ブロック503の504個
のブロックは、ユーザデータを格納するためのメモリブ
ロックとして利用され、ブロック504は、チップ内の
512個のブロックのアドレスや書換回数を管理するた
めの管理情報を記憶するMBI(Memory Blo
ck Infomation)テーブルブロックとして
利用される。また、ブロック505〜511は、メモリ
ブロックおよびMBIテーブルブロックの代替用のブロ
ックとして使用される。
【0059】メモリブロック、MBIテーブルブロッ
ク、代替ブロック、コンヒィグブロックそれぞれの物理
的なブロック構造は図2で説明した通りであるが、以
下、それらブロック内のデータ格納形式について説明す
る。
【0060】図6には、ユーザデータを格納するための
メモリブロックのデータ格納形式が示されている。
【0061】図2で説明したように、この半導体ディス
ク装置10で使用されるNAND型フラッシュEEPR
OMは16Mビットのチップであり、各ブロックは、ペ
ージ0からページ15までの16ページから構成されて
いる。各ページは、256バイトのデータ領域と8バイ
トの冗長領域とから構成されている。
【0062】一般に、ホストシステムによるディスクア
クセスは512バイトのセクタ単位で行われる。この場
合、各ページのデータ領域に格納される256バイトの
ユーザデータのサイズは、1セクタ分のユーザデータサ
イズの半分となる。この半導体ディスク装置10におい
ては、ユーザデータの格納には256バイトのデータ領
域だけが使用され、8バイトの冗長領域はユーザデータ
の格納には利用されない。したがって、この半導体ディ
スク装置10においては、512バイトのユーザデータ
は、ブロック内の連続する2ページに亙って格納され
る。このため、1ブロックに格納されるユーザデータ
は、8セクタ分のデータ、例えば、セクタ0からセクタ
7までのデータとなる。
【0063】すなわち、図5に示されているように、ペ
ージ0にはセクタ0の前半の256バイト、ページ1に
はセクタ0の後半の256バイト、ページ2にはセクタ
1の前半の256バイト、ページ3にはセクタ1の後半
の256バイトが格納され、以下同様にして、1/2セ
クタ単位でユーザデータが格納される。
【0064】ページ0〜15それぞれの8バイトの冗長
領域は、2バイトの領域と6バイトの領域に分割されて
おり、その6バイトの領域にはECCが格納される。こ
のECCは、同一ページのデータ領域に格納されている
256バイトのユーザデータに対応するものである。
【0065】すなわち、ページ0の冗長領域に格納され
ているECCは、ページ0のデータ領域に格納されてい
る256バイトのユーザデータから生成されたものであ
り、同様に、ページ1の冗長領域に格納されているEC
Cは、ページ1のデータ領域に格納されている256バ
イトのユーザデータから生成されたものである。
【0066】このように、この半導体ディスク装置10
においては、512バイトのセクタ単位ではなく256
バイトのページ単位でECCが生成され、演算対象のデ
ータ列とECCとが同一ページに格納される。このた
め、たとえ、図示のようにフラッシュEEPROMの複
数ページそれぞれの同一ビット位置に不良セルが発生す
るというエラーが発生しても、ECCの演算対象となる
データ列に含まれる不良セルは1つだけとなる。したが
って、データ回復能力の高い複雑なECC演算式を利用
することなく通常の簡単なECC演算によってエラー検
出および訂正を行うことが可能となる。
【0067】また、ページ0の冗長領域の残りの2バイ
トには、ブロック0のブロックステータス情報として、
LWCデータが格納されている。このLWCデータは、
ブロック0の書換回数を示す書換回数データの下位ビッ
ト部、例えば26ビット幅の書換回数データの下位10
ビットのデータから構成される。
【0068】LWCデータはブロック毎に1つ格納さ
れ、ブロック1〜ブロック503それぞれの先頭ページ
の冗長領域の先頭の2バイトにも、同様にして、そのブ
ロックステータス情報としてLWCデータが格納されて
いる。
【0069】さらに、ページ1の冗長領域の残りの2バ
イトには、セクタ0のセクタステータス情報として、B
ADセクタ情報、およびECCエラー情報が格納されて
いる。
【0070】BADセクタ情報は、そのセクタ0が不良
セクタか否かを示すステータス情報である。同様に、ペ
ージ3、ページ5、……ページ15それぞれの冗長領域
の残りの2バイトにも、セクタ1、セクタ2、……セク
タ7それぞれに対応するBADセクタ情報が格納されて
いる。これらBADセクタ情報は、半導体ディスク装置
10のホストシステムであるパーソナルコンピュータ
が、半導体ディスク装置10をフォーマッティングする
ためのフォーマットコマンドを実行する時に、そのパー
ソナルコンピュータのCPU1によって与えられる。
【0071】ECCエラー情報は、そのセクタに対する
ECCエラー発生の有無を示すステータス情報である。
このECCエラー情報は、例えば、パーソナルコンピュ
ータがWRITE LONGコマンドによるデータ書込
みを行った場合においてECCエラーとなるバーストエ
ラーなどのエラーが発生した時に、パーソナルコンピュ
ータのCPU1によって与えられる。
【0072】次に、図7を参照して、MBIテーブルブ
ロックのデータ格納形式を説明する。
【0073】MBIテーブルブロックは、ページ0から
ページ15までの16ページを含む1個のブロックから
構成されている。各ページは、256バイトのデータ領
域と8バイトの冗長領域とから構成されている。8バイ
トの冗長領域のうちの後の6バイトには、そのページの
データ領域に格納されている256バイトのデータに対
応するECCが格納されている。また、冗長領域の先頭
の2バイトは未使用である。
【0074】MBIテーブルブロックのデータ領域に
は、図示のように、アドレス変換テーブル、UWCテー
ブル、およびスワップオーダーテーブルが格納されてい
る。
【0075】MBIテーブルブロックにおけるアドレス
変換テーブルは、チップ内のブロック0〜511の物理
ブロックアドレス0〜511を、シリンダ番号、ヘッド
番号およびセクタ番号によって規定されるホストアドレ
スに変換するためのアドレス変換情報を保持する。この
アドレス変換テーブルにおいては、物理ブロックアドレ
ス順に各ブロックに対応するホストアドレスの値が格納
されている。
【0076】ここで、MBIテーブルブロックにおける
ホストアドレスの値としては、ホストシステムから与え
られるシリンダ番号、ヘッド番号およびセクタ番号その
ものではなく、それらシリンダ番号、ヘッド番号および
セクタ番号から計算されたホスト論理アドレスが使用さ
れる。
【0077】このホスト論理アドレスは、フラッシュE
EPROM11−1〜11−16に割り当てられる全セ
クタ(=8×512×16セクタ)に対して“0”から
順に連続するセクタ番号を割り当てた場合のセクタの通
し番号である。したがって、ホスト論理アドレスのビッ
ト幅は、16ビットとなる。しかし、このMBIテーブ
ルブロックのアドレス変換テーブルで管理されるアドレ
ス変換情報は、1セクタ単位では無く、1ブロックに含
まれるセクタ数である8セクタ単位でアドレス変換を行
うためのものであるので、実際には、16ビットのホス
ト論理アドレスのなかの上位13ビットだけがテーブル
上に格納されている。
【0078】UWCテーブルは、チップ内の512個の
ブロックそれぞれの書換回数を示す書換回数データの上
位ビット部から構成されるUWC(UPPER WRI
TECOUNT)データを保持する。UWCデータは1
6ビット幅を有しており、このUWCデータと前述の1
0ビット幅のLWCとを合わせると、最大で6400万
回数の書換までカウントする事ができる。UWCデータ
の値は、対応するLWCデータに桁上がりが発生する
度、つまり1024回の書換が発生する度に、+1カウ
ントアップされる。
【0079】これらアドレス変換テーブルおよびUWC
テーブルは、図示のように、MBIテーブルブロックの
ページ5からページ12のデータ領域に格納されてい
る。アドレス変換テーブルおよびUWCテーブルは、装
置起動時、つまり半導体ディスク装置10のパワーオン
時に、RAM13に転送されて、それぞれアドレス変換
テーブル132および書換回数管理テーブル134とし
て常駐される。
【0080】スワップオーダーテーブルは、ブロック入
れ替えのためのスワッピング操作の際にマイクロプロセ
ッサ14によって参照されるテーブルであり、スワッピ
ング先のブロック(被スワップブロック)を示すブロッ
クアドレスを、優先度順(UWCデータの値が小さい
順)に保持している。スワップオーダーテーブルは、図
示のように、MBIテーブルブロックのページ13から
ページ15のデータ領域に格納されている。スワップオ
ーダーテーブルは、RAM13には常駐されず、ブロッ
ク入れ替えの検討時、つまりLWCデータからUWCデ
ータへの桁上がり発生時に、RAM13に転送されてマ
イクロプロセッサ14によって参照される。
【0081】図8には、アドレス変換テーブルとUWC
テーブルの構成が示されている。
【0082】図示のように、ホストアドレスとUWCデ
ータの格納領域はそれぞれ2バイトのデータサイズを有
している。ここで、ホストアドレスは前述したように1
3ビットであるので、2バイトの格納領域の上位3ビッ
ト(ビット15〜ビット13)は使用されない。ホスト
アドレスとUWCデータは、物理ブロックアドレス順に
交互に配置されている。
【0083】すなわち、MBIテーブルブロックにおけ
るページ5の256バイトのデータ領域には、その先頭
から順に、物理ブロックアドレス0に対応するホストア
ドレス、物理ブロックアドレス0に対応するUWCデー
タ、物理ブロックアドレス1に対応するホストアドレ
ス、物理ブロックアドレス1に対応するUWCデータと
いった順番で、ホストアドレスとUWCデータが64個
のブロック(ブロック0〜ブロック63)分格納されて
いる。
【0084】同様にして、ページ12の256バイトの
データ領域には、その先頭から順に、物理ブロックアド
レス448に対応するホストアドレス、物理ブロックア
ドレス448に対応するUWCデータ、物理ブロックア
ドレス449に対応するホストアドレス、物理ブロック
アドレス449に対応するUWCデータといった順番
で、ホストアドレスとUWCデータが64個のブロック
(ブロック448〜ブロック511)分格納されてい
る。
【0085】次に、フラッシュEEPROM11−1〜
11−16に対するホスト論理アドレスの割り当ての一
例を説明する。
【0086】図9に示されているように、フラッシュE
EPROM11−1〜11−16それぞれのブロックに
は、連続する8個のセクタ番号が割り付けられる。そし
て、フラッシュEEPROM11−1〜11−15それ
ぞれの物理ブロックアドレス0の16個のブロックに
は、セクタ番号0から127までの128個のセクタ番
号が連続的に割り当てられる。
【0087】すなわち、フラッシュEEPROM11−
1の先頭ブロックにはセクタ番号0〜セクタ番号7が割
り付けられ、フラッシュEEPROM11−1の先頭ブ
ロックにはセクタ番号8〜セクタ番号15が割り付けら
れ、そしてフラッシュEEPROM11−15の先頭ブ
ロックにはセクタ番号120〜セクタ番号127が割り
付けられる。さらに、フラッシュEEPROM11−1
の第2番目のブロックにはセクタ番号128〜セクタ番
号135が割り付けられる。
【0088】このように、フラッシュEEPROM11
−1〜11−16には、連続するセクタ番号がチップを
横切る形式で割り当てられている。このようなアドレス
割り当てはユーザデータを格納するためのメモリブロッ
クについてのみ行われる。
【0089】図10には、このようなアドレス割り当て
を行った場合の各チップのMBIチッブルブロックにお
けるアドレス変換およびUWCテーブルの内容が示され
ている。図10の内容は、総チップ数がN、1チップ当
たりのメモリブロック数が504、UWC=0の場合を
想定したものである。
【0090】図11には、スワップオーダーテーブルの
構成が示されている。
【0091】スワップオーダーテーブルは、ブロック0
からブロック255までの前半の256個のブロックに
対応する第1オ−ダーテーブルと、ブロック256から
ブロック511までの後半の256個のブロックに対応
する第2オ−ダーテーブルとに分割されている。
【0092】第1オーダーテーブルにおいて、その先頭
の2バイトの領域(アドレス800h,801h)に
は、ブロック0からブロック255の中の最小のUWC
の値が格納されている。
【0093】次の1バイト(アドレス802h)には、
最小UWCの値を持つブロックの総数を示す値が格納さ
れる。
【0094】さらに、次の1バイト(アドレス803
h)には、最小UWC+1の値を持つブロックの総数を
示す値が格納される。ここで、“最小UWC+1”と
は、あくまでも最小UWCに1を加えた値を示してお
り、最小UWCの次に小さなUWCを示すものではな
い。最小UWC+1の値を持つブロック総数がゼロとな
る場合もある。
【0095】以降、アドレス804h〜87Ahには、
最小UWC+2の値を持つブロック総数を示すデータか
ら最小UWC+120の値を持つブロック総数を示すデ
ータが順次格納される。
【0096】アドレス87Ch〜87Fhには、MBI
テーブルブロック自体の書換回数を示すデータなどが格
納される。
【0097】アドレス880h〜97Fhには、本来の
スワップオーダーテーブルとしての情報が格納されてい
る。すなわち、アドレス880hには、ブロック0〜ブ
ロック255の中で最優先度の被スワップ対象のブロッ
クを示す値として、最小UWCの値を有するブロックの
物理ブロックアドレスが格納されている。最小UWCの
値を有するブロックが複数存在する場合には、物理ブロ
ックアドレスが最も後ろのブロックから順に優先順位が
高くなる。以下、同様にして、アドレス881hから9
7Fhに、優先度順にスワップ対象ブロックのブロック
アドレスが格納される。
【0098】次に、第2オーダーテーブルについて説明
する。
【0099】第2オーダーテーブルおいて、その先頭の
2バイトの領域(アドレス980h,981h)には、
MBIテーブルブロック、代替ブロック、コンヒィグブ
ロックを除き、ブロック256からブロック511の中
の最小のUWCの値が格納されている。すなわち、代替
ブロック等は書換回数が全く進行していないので、それ
らブロックの書き替え回数は無視される。また、実際に
代替が発生した場合は、その代替ブロックのUWCデー
タの値は、その代替ブロックの実際の書換回数ではな
く、代替元、つまり欠陥ブロックのUWCを譲り受ける
こととする。これは、スワッピング操作の多発による性
能低下を防止するためである。もし、代替ブロックの実
際のUWCデータの値をそのまま採用すると、書換回数
の値が突出して小さなブロックがいきなり登場すること
になり、その代替ブロックをスワッピング被対象とする
スワッピング操作が何度も発生されてしまうことにな
る。
【0100】次の1バイト(アドレス982h)には、
最小UWCの値を持つブロックの総数を示す値が格納さ
れる。
【0101】さらに、次の1バイト(アドレス983
h)には、最小UWC+1の値を持つブロックの総数を
示す値が格納される。以降、アドレス984h〜9FA
hには、最小UWC+2の値を持つブロック総数を示す
データから最小UWC+120の値を持つブロック総数
を示すデータが順次格納される。
【0102】アドレスA00h〜AFFhには、本来の
スワップオーダーテーブルとしての情報が格納されてい
る。すなわち、アドレスA00hには、ブロック256
〜ブロック511の中で最優先度の被スワップ対象のブ
ロックを示す値として、最小UWCの値を有するブロッ
クの物理ブロックアドレスが格納されている。最小UW
Cの値を有するブロックが複数存在する場合には、物理
ブロックアドレスが最も後ろのブロックから順に優先順
位が高くなる。以下、同様にして、アドレスA01hか
らAFFhに、優先度順にスワップ対象ブロックのブロ
ックアドレスが格納される。
【0103】このように、スワップオーダーテーブルに
おいては、スワッピング先となるブロックがその優先度
順に格納されている。このため、このスワップオーダー
テーブルを参照する事により、マイクロプロセッサ14
は、UWCデータのソーティングを行うことなく、スワ
ッピング先を特定する事が可能となる。
【0104】図10には、コンフィグブロックのデータ
格納形式が示されている。
【0105】コンヒィグブロックは、ページ0からペー
ジ15までの16ページを含む1個のブロックから構成
されている。各ページは、256バイトのデータ領域と
8バイトの冗長領域とから構成されている。8バイトの
冗長領域のうちの6バイトには、そのページのデータ領
域に格納されている256バイトのデータに対応するE
CCが格納されている。また、冗長領域の残りの2バイ
トは未使用である。
【0106】コンヒィグブロックのデータ領域には、図
示のように、コンヒィグ情報、CIS情報、ドライブI
D情報が格納されている。
【0107】コンヒィグ情報は、この半導体ディスク装
置10に搭載されているフラッシュEEPROMのチッ
プ数、同時書込み可能な最大チップ数、各チップにおけ
るMBIテーブルブロックの存在位置を示す物理ブロッ
クアドレスなどを定義する。このコンヒィグ情報は半導
体ディスク装置10のパワーオン時にマイクロプロセッ
サ14によって参照され、そのコンヒィグ情報に従った
初期設定処理が行われる。
【0108】CIS情報は、半導体ディスク装置10を
PCMCIA仕様のカードとして使用する場合に、ホス
トシステムに通知されるカード属性情報である。このカ
ード属性情報には、メモリチップの種類、容量、アクセ
スタイムなどの物理的仕様に関する情報と、このカード
がディスク装置であることなどを示す用途に関する情報
が定義されている。このCIS情報は、半導体ディスク
装置10のパワーオン時に、マイクロプロセッサ14に
よってRAM13に転送される。RAM13に転送され
たCIS情報は、ホストシステムからの所定番地の読み
出し要求に応答してホストシステムに転送される。
【0109】ドライブID情報は、半導体ディスク装置
10のドライブ構成を示す情報であり、ここには、内蔵
フラッシュEEPROMに論理的に割り当てられる総セ
クタ数、シリンダ数、ヘッド数、1トラック当たりのセ
クタ数などが定義されている。このドライブID情報
は、ホストシステムからのドライブ識別コマンドに応答
して、マイクロプロセッサ14によってホストシステム
に転送される。
【0110】このように、この実施例においては、ユー
ザデータを格納するためのメモリブロックだけでなく、
管理情報格納のために使用されるMBIテーブルブロッ
クやコンヒィグブロックにおいても、各ページの冗長領
域には、そのページのデータ領域に格納されるデータに
対応したECCが格納されている。したがって、これら
MBIテーブルブロックおよびコンヒィグブロックにお
いても、データ回復能力の高い複雑なECC演算式を利
用することなく通常の簡単なECC演算によってエラー
検出および訂正を行うことが可能となる。
【0111】次に、図13を参照して、RAM13に設
けられるアドレス変換テーブル132の構成について説
明する。
【0112】このアドレス変換テーブル132は、シリ
ンダ番号、ヘッド番号およびセクタ番号によって規定さ
れるホストアドレスを、フラッシュEEPROM11−
1〜11−116をアクセスするための物理メモリアド
レスに変換するためのものであり、このアドレス変換テ
ーブル132はフラッシュEEPROM11−1〜11
−116それぞれのMBIテーブルブロックのアドレス
変換情報に基づいて生成される。
【0113】このアドレス変換テーブル132において
は、ホストアドレスとしては13ビットのブロックセク
タアドレスが使用される。このブロックセクタアドレス
は、前述したように、シリンダ番号、ヘッド番号および
セクタ番号から計算されたセクタの通し番号を示すホス
ト論理アドレス(16ビット)の中の上位13ビットか
ら構成される。また、物理メモリアドレスは、4ビット
のチップ番号アドレスと、9ビットのチップ内物理ブロ
ックアドレスから構成される。4ビットのチップ番号ア
ドレスは、チップ番号#0のフラッシュEEPROM1
1−1からチップ番号#15のフラッシュEEPROM
11−6までの16個のチップのうちの1つを指定す
る。9ビットのチップ内物理ブロックアドレスは、チッ
プ番号アドレスによって指定されたチップ内のブロック
0〜ブロック511の512個のブロックの中の1つを
指定する。物理メモリアドレス(チップ番号アドレス、
チップ内物理ブロックアドレス)は、ホストアドレス順
に格納されている。
【0114】次に、図14を参照して、アドレス変換テ
ーブル132を利用したアドレス変換動作の原理を説明
する。
【0115】まず、ホストシステムから指定されたシリ
ンダ番号、ヘッド番号およびセクタ番号は、マイクロプ
ロセッサ14によって実行されるファームウェアによっ
て16ビット幅のホスト論理アドレスに変換される。次
いで、その16ビット幅のホスト論理アドレスの上位1
3ビットから成るブロックセクタアドレスをインデック
スとしてアドレス変換テーブル132が検索され、ブロ
ックセクタアドレスに対応する4ビット幅のチップ番号
アドレス、および9ビット幅の物理ブロックアドレスが
決定される。
【0116】チップ番号アドレスは、チップ選択のため
に、ファームウェアによってNANDバスインタフェー
ス19のNANDチップナンバレジスタ201にセット
される。また、9ビットの物理ブロックアドレスには、
16ビット幅のホスト論理アドレスの下位3ビットから
成るブロック内セクタアドレスと、1ビット幅の偶数/
奇数ページ指定アドレスと、8ビット幅のカラムアドレ
スがNANDバイインタフェース19内で付加されて、
20ビット幅のメモリアドレス(A20−A0)が生成
される。このメモリアドレス(A20−A0)は、アド
レス指定のために、NANDバスインタフェース19の
NANDデータリード/ライトレジスタ202にセット
される。ユーザデータをリード/ライトするためにホス
トシステムによって実行される半導体ディスク装置10
のアクセスはセクタ単位で行われるので、通常、1ビッ
ト幅の偶数/奇数ページ指定アドレス(A8)と、8ビ
ット幅のカラムアドレス(A7−A0)はどちらもオー
ル“0”である。
【0117】次に、図15を参照して、NANDバスイ
ンタフェース19のECC演算回路21のECC生成/
チェック動作を説明する。
【0118】まず、図15(a)を参照して、ECCの
生成動作を説明する。
【0119】NAND型フラッシュEEPROM11−
1〜11−16に対するデータ書込み時においては、R
AM13のデータバッファ131に格納されているユー
ザデータは、マイクロプロセッサ14によって256バ
イト単位で読み出されて、NANDバスインタフェース
19を介してフラッシュEEPROMのデータレジスタ
に転送される。
【0120】NANDバスインタフェース19において
は、256バイトのユーザデータはECC演算回路21
に送られ、そこでECCを生成するための演算が実行さ
れる。ここで、ECCとしては例えばハミングコードな
どが利用される。
【0121】ECC演算は、256バイトのユーザデー
タだけでなく、実際には、その256バイトのユーザデ
ータと冗長領域の最初の2バイトに格納すべきデータと
から構成される258バイトのデータを対象として行わ
れる。
【0122】例えば、各ブロックの先頭ページに対する
データ書込みの場合には、256バイトのユーザデータ
と2バイトのLWCデータとから構成される258バイ
トのデータがECC演算の対象となる。この2バイトの
LWCデータは、256バイトのユーザデータの転送に
先立って、マイクロプロセッサ14によってLWCレジ
スタ208にセットされている。
【0123】ECC演算回路21は、256バイトのユ
ーザデータとLWCレジスタ208にセットされている
2バイトのLWCデータとから構成される258バイト
のデータを所定のデータ列単位で演算して、6バイトの
ハミングコードECCを順次生成する。これらハミング
コードECCはECCデータレジスタ209〜214に
一時的に保持される。
【0124】ECCの生成処理が完了すると、ECC演
算回路21は、256バイトのユーザデータに後続させ
て、2バイトのLWCデータと6バイトのECCデータ
を、フラッシュEEPROMのデータレジスタに転送す
る。これにより、フラッシュEEPROMのデータレジ
スタには、256バイトのユーザデータ、2バイトのL
WCデータ、および6バイトのECCデータから構成さ
れる1ページ分のデータがセットされる。
【0125】次に、図15(b)を参照して、ECCの
チェック動作を説明する。
【0126】NAND型フラッシュEEPROM11−
1〜11−16からのデータ読み出し時においては、フ
ラッシュEEPROMから読み出される1ページ分のデ
ータがNANDバスインタフェース19に送られる。
【0127】NANDバスインタフェース19において
は、1ページ分のデータから256バイトのユーザデー
タが取り出され、それがRAM13のデータバッファ1
31に送られる。また、その1ページ分のデータはEC
C演算回路21に送られる。
【0128】ECC演算回路21は、まず、1ページ分
のデータからLWCデータを取り出して、それをLWC
レジスタ208にセットし、その後、エラー検出のため
のECCチェック演算を実行する。
【0129】このECCチェック演算においては、EC
C演算回路21は、256バイトのユーザデータと2バ
イトのLWCデータとから構成される258バイトのデ
ータをECC生成処理の場合と同じデータ列単位で演算
して、6バイトのハミングコードECCを順次生成す
る。そして、その生成したハミングコードECCと、フ
ラッシュEEPROMから読み出された1ページ分のデ
ータに含まれているハミングコードECCとをバイト単
位で比較し、一致/不一致を示す比較結果をECCデー
タレジスタ209〜215にセットする。エラ−発生が
ない場合には、ECCデータレジスタ209〜215に
は全て、一致を示すデータ“0”がセットされる。EC
Cデータレジスタ209〜215の内容はマイクロプロ
セッサ14によって参照され、エラーが発生していれ
ば、マイクロプロセッサ14によってデータバッファ1
31上のデータのエラー訂正が行われる。
【0130】次に、マイクロプセッサ14によって実行
されるファームウェアとNANDバスインタフェース1
9の機能分担を明瞭にするために、フラッシュEEPR
OMに対するアクセス制御動作を説明する。
【0131】まず、図16および図17を参照して、フ
ラッシュEEPROMのプログラムサイクルの制御に必
要なファームウェアの処理とNANDバスインタフェー
ス19の動作について説明する。
【0132】図16はプログラムサイクルにおけるファ
ームウェアの処理とNANDバスインタフェース19の
動作を説明するフローチャートであり、図17はプログ
ラムサイクルにおけるフラッシュEEPROMの動作を
示すタイミングチャートである。
【0133】ここでは、あるブロックの先頭ページに、
256バイトのユーザデータ、2バイトのLWCデー
タ、および6バイトのECCデータをライトする場合を
例にとって説明する。
【0134】マイクロプロッセ14によって実行される
ファームウェアは、まず、ライト対象のフラッシュEE
PROMチップに対応するNANDチップレディー/ビ
ジーレジスタ215−1〜215−16の1つを参照し
て、そのライト対象のフラッシュEEPROMチップが
レディーステート(待機中)か否かを確認する(ステッ
プA11)。レディーステートであることを確認する
と、ファームウェアは、NANDチップナンバレジスタ
201をI/Oライトして、そこにライト対象フラッシ
ュEEPROMチップに対応するチップ番号をセットす
る(ステップA12)。
【0135】次いで、ファームウェアは、NANDチッ
プイネーブル制御レジスタ203をI/Oライトして、
そこにチップイネーブル入力(CE)をアクティブにす
ることを指定するCEオンコマンドをセットする(ステ
ップA13)。
【0136】この時、NANDバスインタフェース19
は、NANDチップナンバレジスタ201にセットされ
たチップ番号に対応するチップセレクト信号CS1〜C
S16の1つをアクティブにする(ステップB11)。
このチップセレクト信号はライト対象チップのチップイ
ネーブル入力CE ̄に供給され、これによってライト対
象チップがイネーブル状態に設定される。
【0137】次に、ファームウェアは、NANDコマン
ドラッチイネーブル制御レジスタ204をI/Oライト
して、そこにコマンドラッチイネーブル(CLE)信号
をアクティブにすることを指定するCLEオンコマンド
をセットする(ステップA14)。
【0138】NANDバスインタフェース19は、CL
Eオンコマンドのセットに応答して、コマンドラッチイ
ネーブル信号CLEをアクティブ状態、つまり“H”レ
ベルに設定する(ステップB12)。
【0139】次いで、ファームウェアは、NANDデー
タリード/ライトレジスタ202をI/Oライトして、
そこにシリアルデータ入力コマンド“80h”をセット
する(ステップA15)。NANDバスインタフェース
19は、シリアルデータ入力コマンド“80h”のセッ
トに応答して、ライトイネーブル信号WE ̄をアクティ
ブ状態、つまり“L”レベルに設定し、且つシリアルデ
ータ入力コマンド“80h”を入出力端子I/Oに転送
する(ステップB13)。
【0140】ファームウェアは、NANDアドレスラッ
チイネーブル制御レジスタ205をI/Oライトして、
そこにALEオンコマンドをセットする(ステップA1
6)。NANDバスインタフェース19は、ALEオン
コマンドのセットに応答して、アドレスラッチイネーブ
ル信号ALEをアクティブ状態、つまり“H”レベルに
設定する(ステップB14)。
【0141】次いで、ファームウェアは、NANDデー
タリード/ライトレジスタ202をI/Oライトして、
そこにメモリアドレス(カラムアドレスA7−A0、お
よびページアドレスA20−A8)をセットする(ステ
ップA17)。NANDバスインタフェース19は、ア
ドレスのセットに応答して、ライトイネーブル信号WE
 ̄をアクティブ状態、つまり“L”レベルに設定し、且
つセットされたメモリアドレスを入出力端子I/Oに転
送する(ステップB15)。
【0142】ファームウェアは、このプログラムサイク
ル実行前に予めライト対象ブロックから読み出して+1
カウントアップしておいたLWCデータをLWCレジス
タ208にセットする(ステップA18)。そして、フ
ァームウェアは、ECC開始コマンドをECCスタート
制御レジスタ206にセットし(ステップA19)、そ
の後、ムーブストリング命令の実行によって、データバ
ッファ131からフラッシュEEPROMに256バイ
トのユーザデータを転送する(ステップA20)。
【0143】NANDバスインタフェース19は、EC
C開始コマンドに応答してECC生成のための演算を開
始し、256バイトのユーザデータおよびLWCデータ
に対応する6バイトのECCデータを生成する(ステッ
プB16)。そして、NANDバスインタフェース19
は、256バイトのユーザデータに後続して、2バイト
のLWCデータおよび6バイトのECCデータの転送を
開始する(ステップB17)。これにより、ライト対象
フラッシュEEPROMのデータレジスタには、図17
に示されているように、256バイトのユーザデータ、
2バイトのLWCデータおよび6バイトのECCデータ
が、1ページ分のシリアル入力データ(DIN)として
転送される。
【0144】この後、ファームウェアは、CLEオンコ
マンドを発行した後に、NANDデータリード/ライト
レジスタ202をI/Oライトして、そこにプログラム
コマンド“10h”をセットする(ステップA21)。
NANDバスインタフェース19は、まず、コマンドラ
ッチイネーブル信号CLEをアクティブ状態に設定して
からライトイネーブル信号WE ̄をアクティブ状態に設
定し、且つプログラムコマンド“10h”を入出力端子
I/Oに転送する(ステップB18)。
【0145】このプログラムコマンド“10h”が転送
されると、ライト対象のフラッシュEEPROMにおい
ては、ページライト動作が自動実行される。
【0146】ページライト動作では、データレジスタか
らメモリセルアレイへの1ページ分のページデータ転送
が行われて、データレジスタの256バイトのユーザデ
ータがそのページのデータ領域に書き込まれ、且つデー
タレジスタの2バイトのLWCデータおよび6バイトの
ECCデータがそのページの冗長領域に書き込まれる。
この後、ページライト動作が正常に実行されたことを検
証するためのベリファイ動作が行われる。ベリファイ動
作では、ページライトされたページの内容が読み出さ
れ、それがデータレジスタに保持されていてる内容と比
較される。不一致ならば、ページライトが再試行され
る。ページライトが成功するか、所定回数だけページラ
イトを再試行してもページライトが成功しなかった場合
には、ページライト動作が終了される。
【0147】ページライト動作期間中そのチップからの
レディー/ビジー信号(RDY/BSY)はビジー状態
を示し、ページライト動作が完了するとビジー状態から
レディー状態に戻る。
【0148】複数のチップに対する書き込み動作を同時
実行させる場合には、あるチップのページライト動作実
行中(ビジーステート)の期間を利用して、他のチップ
に対するライトアクセスが実行される。
【0149】この後、ファームウェアは、ライトアクセ
スしたチップに対応するNANDチップレディー/ビジ
ーレジスタの内容によってページライト動作の完了を確
認すると(ステップA22)、NANDデータリード/
ライトレジスタ202をI/Oライトして、そこにステ
ータスリードコマンド“70h”をセットする(ステッ
プA23)。NANDバスインタフェース19は、ステ
ータスリードコマンド“70h”のセットに応答して、
ライトイネーブル信号WE ̄をアクティブ状態、つまり
“L”レベルに設定し、且つステータスリードコマンド
“70h”を入出力端子I/Oに転送し、その後、リー
ドイネーブル信号RE ̄をアクティブ状態、つまり
“L”レベルに設定する(ステップB19)。
【0150】ステータスリードコマンド“70h”が転
送されると、フラッシュEEPROMからはページライ
ト動作が成功したか否かを示すステータスデータが読み
出され、それがNANDデータリード/ライトレジスタ
202にセットされる。
【0151】ファームウェアは、NANDデータリード
/ライトレジスタ202のステータスデータを参照して
ページライト動作が成功したか否かを確認し、成功して
いればライト動作を終了する(ステップA24)。もし
失敗した場合には、代替ブロックとの代替処理などを行
う。
【0152】次に、図18および図19を参照して、フ
ラッシュEEPROMのリードサイクルの制御に必要な
ファームウェアの処理とNANDバスインタフェース1
9の動作について説明する。
【0153】図18はリードサイクルにおけるファーム
ウェアの処理とNANDバスインタフェース19の動作
を説明するフローチャートであり、図19はリードサイ
クルにおけるフラッシュEEPROMの動作を示すタイ
ミングチャートである。
【0154】フラッシュEEPROM11−1〜11−
16のリードサイクルには、ページ単位でデータを読み
出す第1リードサイクルと、各ページの冗長領域のデー
タでけを読み出す第2リードサイクルとがある。
【0155】ここでは、第1リードサイクルで、あるブ
ロックの先頭ページを読み出す場合を説明する。
【0156】マイクロプロッセ14によって実行される
ファームウェアは、まず、リード対象のフラッシュEE
PROMチップに対応するNANDチップレディー/ビ
ジーレジスタ215−1〜215−16の1つを参照し
て、そのリード対象のフラッシュEEPROMチップが
レディーステート(待機中)か否かを確認する(ステッ
プA31)。レディーステートであることを確認する
と、ファームウェアは、NANDチップナンバレジスタ
201をI/Oライトして、そこにリード対象フラッシ
ュEEPROMチップに対応するチップ番号をセットす
る(ステップA32)。
【0157】次いで、ファームウェアは、NANDチッ
プイネーブル制御レジスタ203をI/Oライトして、
そこにチップイネーブル入力(CE)をアクティブにす
ることを指定するCEオンコマンドをセットする(ステ
ップA33)。
【0158】この時、NANDバスインタフェース19
は、NANDチップナンバレジスタ201にセットされ
たチップ番号に対応するチップセレクト信号CS1〜C
S16の1つをアクティブにする(ステップB31)。
このチップセレクト信号はリード対象チップのチップイ
ネーブル入力CE ̄に供給され、これによってリード対
象チップがイネーブル状態に設定される。
【0159】次に、ファームウェアは、NANDコマン
ドラッチイネーブル制御レジスタ204をI/Oライト
して、そこにコマンドラッチイネーブル(CLE)信号
をアクティブにすることを指定するCLEオンコマンド
をセットする(ステップA34)。
【0160】NANDバスインタフェース19は、CL
Eオンコマンドのセットに応答して、コマンドラッチイ
ネーブル信号CLEをアクティブ状態、つまり“H”レ
ベルに設定する(ステップB32)。
【0161】次いで、ファームウェアは、NANDデー
タリード/ライトレジスタ202をI/Oライトして、
そこにリードコマンド“00h”をセットする(ステッ
プA35)。NANDバスインタフェース19は、リー
ドコマンド“00h”のセットに応答して、ライトイネ
ーブル信号WE ̄をアクティブ状態、つまり“L”レベ
ルに設定し、且つリードコマンド“00h”を入出力端
子I/Oに転送する(ステップB33)。
【0162】ファームウェアは、NANDアドレスラッ
チイネーブル制御レジスタ205をI/Oライトして、
そこにALEオンコマンドをセットする(ステップA3
6)。NANDバスインタフェース19は、ALEオン
コマンドのセットに応答して、アドレスラッチイネーブ
ル信号ALEをアクティブ状態、つまり“H”レベルに
設定する(ステップB34)。
【0163】次いで、ファームウェアは、NANDデー
タリード/ライトレジスタ202をI/Oライトして、
そこにメモリアドレス(カラムアドレスA7−A0、お
よびページアドレスA20−A8)をセットする(ステ
ップA37)。NANDバスインタフェース19は、ア
ドレスのセットに応答して、ライトイネーブル信号WE
 ̄をアクティブ状態、つまり“L”レベルに設定し、且
つセットされたメモリアドレスを入出力端子I/Oに転
送する(ステップB35)。
【0164】このメモリアドレスが転送されると、リー
ド対象のフラッシュEEPROMにおいてはページリー
ド動作が実行される。ページリード動作では、メモリア
ドレスで指定されたページに格納されている256バイ
トのユーザデータ、2バイトのLWCデータ、および6
バイトのECCデータが読み出され、それがデータレジ
スタに転送される。このページリード動作期間中は、そ
のチップからのレディー/ビジー信号(RDY/BS
Y)はビジー状態を示し、ページリード動作が完了する
とビジー状態からレディー状態に戻る。
【0165】ファームウェアは、リードアクセスしたチ
ップに対応するNANDチップレディー/ビジーレジス
タの内容によってページリード動作の完了を確認すると
(ステップA38)、ECCチェック開始コマンドをE
CCスタート制御レジスタ206にセットし(ステップ
A39)、その後、ムーブストリング命令を実行して、
データバッファ131からデータバッファ131への2
56バイトのユーザデータ転送を開始する(ステップA
40)。
【0166】このデータ転送においては、NANDバス
インタフェース19から出力されるリードイネーブル信
号RE ̄に同期して、フラッシュEEPROMのデータ
レジスタに保持されている256+8バイトのデータが
1バイト単位でシリアルに読み出される。
【0167】NANDバスインタフェース19は、フラ
ッシュEEPROMから読み出されるデータに対して誤
り検出のためのチェック演算を行い(ステップB3
6)、そのチェック結果をECCデ−タレジスタ209
〜214にセットする(ステップB37)。
【0168】ファームウェアは、ECCチェック演算の
終了を確認すると、ECCデ−タレジスタ209〜21
4の内容を参照して正常なデータをリードできたか否か
を調べる(ステップA41)。もしリードデータにエラ
ーが発生していることが検出された場合は、ファームウ
ェアは、ECCデ−タレジスタ209〜214にセット
されているECCチェック演算結果を用いて、データバ
ッファ131に転送されている256バイトのユーザデ
ータの誤り訂正をデータバッファ131上で実行する。
【0169】このように、リードサイクルにおいては、
フラッシュEEPROMからデータバッファ131への
データ転送時にECCチェックがNANDバスインタフ
ェース19によって自動的に実行される。
【0170】ところで、フラッシュEEPROM11−
1〜11−16の各々は、ページインクリメント機能を
有している。このページインクリメント機能は、データ
レジスタからの1ページ分のデータ読み出しが終了した
時に、自動的に次ぺージのページリードを開始する機能
である。このため、前述した先頭ページのシリアルデー
タ読み出しが終了すると、フラッシュEEPROMは再
びビジー状態となって、2ぺージ目のページリードを開
始する。
【0171】したがって、2ページ目以降のデータ読み
出しについては、ファームウェアおよびNANDバスイ
ンタフェース19は、前述のステップA31〜A37、
B31〜B35のアドレスサイクルを実行する必要はな
く、それぞれ前述のステップA38〜A41、B36,
B37を繰り返すだけで、連続する複数ページを効率よ
く読み出すことができる。
【0172】次に、第2リードサイクルによって、冗長
領域のデータだけを読み出す場合の動作について説明す
る。
【0173】この第2リードサイクルを実行する場合に
必要なファームウェアおよびNANDバスインタフェー
ス19の動作は、第1リードサイクルの場合とほとんど
同じであり、違いは次の2点である。
【0174】(1)図18のステップA35において、
ファームウェアは、コマンド“00h”の代わりにコマ
ンド“50h”を発行する。
【0175】(2)データレジスタからの2バイトのデ
ータ読み出しでリードサイクルのシーケンスが終了す
る。
【0176】このため、LWCデータは第2リードサイ
クルを1回行うだけで読みだすことができるが、ECC
データを読み出す場合には、第2リードサイクルを3回
繰り返すことが必要となる。
【0177】なお、第2リードサイクルにおいて、デー
タレジスタのどの位置からデータを読み出すかは、アド
レスサイクルで設定するカラムアドレスの値によって決
定する事ができる。
【0178】次に、図20および図21を参照して、フ
ラッシュEEPROMのブロックイレーズサイクルの制
御に必要なファームウェアの処理とNANDバスインタ
フェース19の動作について説明する。
【0179】図20はブロックイレーズサイクルにおけ
るファームウェアの処理とNANDバスインタフェース
19の動作を説明するフローチャートであり、図21は
ブロックイレーズサイクルにおけるフラッシュEEPR
OMの動作を示すタイミングチャートである。
【0180】ここでは、ある特定の1ブロックの記憶内
容を消去する場合を例にとって説明する。
【0181】マイクロプロッセ14によって実行される
ファームウェアは、まず、イレーズ対象ブロックを含む
フラッシュEEPROMチップに対応するNANDチッ
プレディー/ビジーレジスタ215−1〜215−16
の1つを参照して、そのイレーズ対象のフラッシュEE
PROMチップがレディーステート(待機中)か否かを
確認する(ステップA51)。レディーステートである
ことを確認すると、ファームウェアは、NANDチップ
ナンバレジスタ201をI/Oライトして、そこにイレ
ーズ対象フラッシュEEPROMチップに対応するチッ
プ番号をセットする(ステップA52)。
【0182】次いで、ファームウェアは、NANDチッ
プイネーブル制御レジスタ203をI/Oライトして、
そこにチップイネーブル入力(CE)をアクティブにす
ることを指定するCEオンコマンドをセットする(ステ
ップA53)。
【0183】この時、NANDバスインタフェース19
は、NANDチップナンバレジスタ201にセットされ
たチップ番号に対応するチップセレクト信号CS1〜C
S16の1つをアクティブにする(ステップB51)。
このチップセレクト信号はイレーズ対象チップのチップ
イネーブル入力CE ̄に供給され、これによってイレー
ズ対象チップがイネーブル状態に設定される。
【0184】次に、ファームウェアは、NANDコマン
ドラッチイネーブル制御レジスタ204をI/Oライト
して、そこにコマンドラッチイネーブル(CLE)信号
をアクティブにすることを指定するCLEオンコマンド
をセットする(ステップA54)。
【0185】NANDバスインタフェース19は、CL
Eオンコマンドのセットに応答して、コマンドラッチイ
ネーブル信号CLEをアクティブ状態、つまり“H”レ
ベルに設定する(ステップB52)。
【0186】次いで、ファームウェアは、NANDデー
タリード/ライトレジスタ202をI/Oライトして、
そこにイレーズコマンド“60h”をセットする(ステ
ップA55)。NANDバスインタフェース19は、イ
レーズコマンド“60h”のセットに応答して、ライト
イネーブル信号WE ̄をアクティブ状態、つまり“L”
レベルに設定し、且つイレーズコマンド“60h”を入
出力端子I/Oに転送する(ステップB53)。
【0187】ファームウェアは、NANDアドレスラッ
チイネーブル制御レジスタ205をI/Oライトして、
そこにALEオンコマンドをセットする(ステップA5
6)。NANDバスインタフェース19は、ALEオン
コマンドのセットに応答して、アドレスラッチイネーブ
ル信号ALEをアクティブ状態、つまり“H”レベルに
設定する(ステップB54)。
【0188】次いで、ファームウェアは、NANDデー
タリード/ライトレジスタ202をI/Oライトして、
そこにメモリアドレス(ブロックアドレスA20−A1
2)をセットする(ステップA57)。NANDバスイ
ンタフェース19は、アドレスのセットに応答して、ラ
イトイネーブル信号WE ̄をアクティブ状態、つまり
“L”レベルに設定し、且つセットされたメモリアドレ
スを入出力端子I/Oに転送する(ステップB55)。
【0189】この後、ファームウェアは、CLEオンコ
マンドを発行した後に、NANDデータリード/ライト
レジスタ202をI/Oライトして、そこにイレーズ開
始コマンド“D0h”をセットする(ステップA5
8)。NANDバスインタフェース19は、まず、コマ
ンドラッチイネーブル信号CLEをアクティブ状態に設
定してからライトイネーブル信号WE ̄をアクティブ状
態に設定し、且つイレーズ開始コマンド“D0h”を入
出力端子I/Oに転送する(ステップB56)。
【0190】このイレーズ開始コマンド“D0h”が転
送されると、イレーズ対象のフラッシュEEPROMに
おいてブロックイレーズ動作およびそのベリファイ動作
が自動実行される。
【0191】ブロックイレーズ動作では、ブロックアド
レスで指定されたブロックの記憶内容だけが消去され
る。このブロックイレーズ動作期間中そのチップからの
レディー/ビジー信号(RDY/BSY)はビジー状態
を示し、ブロックイレーズ動作が完了するとビジー状態
からレディー状態に戻る。
【0192】ファームウェアは、イレーズしたチップに
対応するNANDチップレディー/ビジーレジスタの内
容によってブロックイレーズ動作の完了を確認すると
(ステップA59)、NANDデータリード/ライトレ
ジスタ202をI/Oライトして、そこにステータスリ
ードコマンド“70h”をセットする(ステップA6
0)。NANDバスインタフェース19は、ステータス
リードコマンド“70h”のセットに応答して、ライト
イネーブル信号WE ̄をアクティブ状態、つまり“L”
レベルに設定し、且つステータスリードコマンド“70
h”を入出力端子I/Oに転送し、その後、リードイネ
ーブル信号RE ̄をアクティブ状態、つまり“L”レベ
ルに設定する(ステップB57)。
【0193】ステータスリードコマンド“70h”が転
送されると、フラッシュEEPROMからはブロックイ
レーズ動作が成功したか否かを示すステータスデータが
読み出され、それがNANDデータリード/ライトレジ
スタ202にセットされる。
【0194】ファームウェアは、NANDデータリード
/ライトレジスタ202のステータスデータを参照して
ブロックイレーズ動作が成功したか否かを確認し、成功
していればイレーズサイクルを終了する(ステップA6
1)。もし失敗した場合には、代替ブロックとの代替処
理などを行う。
【0195】なお、ブロックイレーズ開始コマンド“D
0h”の発行前にステップA54〜A57を繰り返し実
行して複数のブロックアドレスを設定すれば、複数ブロ
ックのイレーズを順次行うマルチブロック動作を実行す
ることもできる。
【0196】次に、図22のフローチャートを参照し
て、ホストシステムからライトコマンドが発行された際
に実行される図1の半導体ディスク装置10全体のライ
ト制御動作を説明する。このライト制御動作は、前述し
た各種の管理情報テーブルを利用する事によって行われ
る。
【0197】ホストシステムが外部バスインタフェース
17のコマンドレジスタ176にライトコマンドをセッ
トすると、マイクロプロセッサ14によって実行される
ファームウェアは、まず、そのライトコマンドを受け付
ける(ステップA71)。次いで、ファームウェアは、
ホストシステムからデータバッファ131へのライトデ
ータの転送を開始する(ステップA72)。このデータ
転送は、外部バスインタフェース17のデータレジスタ
173を介して実行される。
【0198】ホストシステムによる半導体ディスク装置
10のアクセスはセクタ単位で行われるので、データバ
ッファ131には少なくとも1セクタ分のライトデータ
が格納される。
【0199】次いで、ファームウェアは、ホストシステ
ムによって指定されたディスクアクセスのためのホスト
アドレス、つまり、セクタ番号、シリンダ番号、および
ヘッド番号をセクタナンバレジスタ171、シリンダレ
ジスタ174、およびドライブ/ヘッドレジスタ175
からそれぞれ読取り、それをフラッシュEEPROM1
1−1〜11−16をアクセスするためのアドレスに変
換する(ステップA73)。このアドレス変換処理にお
いては、図12で説明したように、アドレス変換テーブ
ル132が利用される。このアドレス変換テーブル13
2のアドレス変換情報は、装置10の起動時において、
フラッシュEEPROM11−1〜11−16それぞれ
からリードしたアドレス変換テーブルのアドレス変換情
報に基づいて構築されたものである。
【0200】アドレス変換処理の結果、ライトアクセス
対象のチップ番号、およびライトアクセス対象チップ内
のメモリアドレス(A20−A0)が求められる。
【0201】次に、ファームウェアは、メモリアドレス
(A20−A0)の上位9ビット(A20−A12)で
指定されるライトアクセス対象のブロック(以下、ライ
トブロックと称する)に対する1ブロック分のライトデ
ータを作成するための処理(ステップA74〜A78)
に進む。
【0202】ここでは、ファームウェアは、まず、ライ
トブロック用のヘッダテーブルエリアをRAM13上に
確保する(ステップA74)。次に、ファームウェア
は、ライトブロックの先頭ページからLWCデータをリ
ードする(ステップA75)。このLWCデータのリー
ド処理では、前述したコマンド“50h”を用いた第2
リードサイクルが実行され、これによってライトブロッ
クの先頭ページからLWCデータだけが読み出される。
このLWCデータは、RAM13の空きエリアまたはデ
ータバッファ131に格納される。
【0203】この後、ファームウェアは、ライトブロッ
クに“巻き添え消去”データが存在するか否かを調べる
(ステップA76)。ここで、“巻き添え消去”データ
とはライトブロックに存在するデータの中でホストシス
テムによって書換が要求されてないデータを意味する。
このため、ライトブロック内の全てのページに対する書
込みが要求された場合には“巻き添え消去”データは存
在しないが、ライトブロック内の途中のぺージから書込
みが開始される場合や、ライトデータのデータレングス
が1ブロック(8セクタ)よりも少ない場合などには
“巻き添え消去”データが存在する事になる。
【0204】“巻き添え消去”データが存在する場合に
は、ファームウェアは、コマンド“00h”を用いた第
1リードサイクルを実行することによって、ライトブロ
ックから“巻き添え消去”データを含むページをリード
する(ステップA77)。この“巻き添え消去”データ
を含むページは、RAM13の空きエリアやデータバッ
ファ131に格納される。
【0205】次いで、ファームウェアは、リードした
“巻き添え消去”データのRAM13上の格納位置を示
すRAMアドレスと、ホストシステムからのライトデー
タが格納されているRAM13上の格納位置を示すRA
Mアドレスとに基づいて、ライトブロックに書き込むべ
き1ブロック分のブロックデータに対応するヘッダテー
ブルを作成する。
【0206】すなわち、ファームウェアは、実際にデー
タを結合して1ブロック分のブロックデータを生成する
のではなく、“巻き添え消去”データのRAM13上の
アドレスとライトデータのデータバッファ131上のア
ドレスとをページ番号順に整列して保持するヘッダテー
ブル133を作成し、これによって仮想的なブロックデ
ータを構築する(ステップA78)。
【0207】次いで、ファームウェアは、ライトブロッ
クからリードしたLWCデータの値を+1カウントアッ
プすることにより、そのLWCデータの値を更新する
(ステップA79)。この時、もしLWCデータの値に
桁上り(キャリー)が発生しなければ、ファームウェア
は、ライトブロックに対するライトアクセス処理を実行
する(ステップA80,A81)。
【0208】このライトアクセス処理では、まず、ライ
トブロックに対して図18で説明したブロックイレーズ
サイクルが実行されて、ライトブロックの内容が全て消
去される。次いで、ライトブロックの全ページに対して
図14で説明したプログラムサイクルが実行される。こ
のプログラムサイクルでは、ファームウェアは、まず、
更新したLWCデータをNANDバスインタフェース1
9のLWCレジスタ208にセットし、次いで、ヘッダ
テーブル133に保持されているアドレス順にRAM1
3から256バイト単位で1ブロック分のデータを読み
出し、それをフラッシュEEPROMに転送する。この
ように、ヘッダテーブル133を利用することにより、
ファームウェアはライトデータと“巻き添え消去”デー
タとを区別することなくデータ転送を行う事ができる。
【0209】転送される各256バイトのデータにはN
ANDバスインタフェース19によって自動的にECC
データが付加され、それがライト対象フラッシュEEP
ROMのライトブロックの対応するページに書き込まれ
る。
【0210】一方、LWCデータの値に桁上りが発生し
た場合には、ファームウェアは、スワッピング操作を実
行するか否かを検討するために、以下の処理を行う。
【0211】すなわち、ファームウェアは、まず、第1
リードサイクルを実行することによって、ライト対象の
フラッシュEEPROMからMBIテーブルブロックを
リードする(ステップA82)。リードされたMBIテ
ーブルブロックの内容は、RAM13の空きエリアに格
納される。
【0212】次いで、ファームウェアは、リードしたM
BIテーブルブロックを検索してライトブロックに対応
するUWCデータを検出し、そのUWCデータの値を更
新、つまり+1カウントアップする(ステップA8
3)。MBIテーブルブロックにおいては、図8で説明
したように、UWCデータは物理ブロックアドレス順に
整列されて保持されている。このため、ファームウェア
は、ライトブロックを示す物理ブロックアドレスをイン
デックスとして利用する事により、ライトブロックに対
応するUWCデータを容易に見つける事ができる。
【0213】更新されたUWCデータの値は、MBIテ
ーブルブロックと書換回数管理テーブル134双方に反
映される。
【0214】この後、ファームウェアは、更新されたラ
イトブロックのUWCデータの値をライト対象チップの
最小UWCデータの値、および他の各チップの最小UW
Cデータの値と、順次比較する(ステップA84)。
【0215】ライト対象チップの最小UWCデータの値
としては、ライト対象チップからリードしたMBIテー
ブルブロック内のスワップオーダテーブルに保持されて
いる最小UWCデータの値が利用される。これにより、
RAM13上の書換回数管理テーブル134をUWCデ
ータの小さい順にソーティングするといった処理を行う
ことなく、ライト対象チップの最小UWCデータの値を
容易に知るができる。
【0216】また、他の各チップの最小UWCデータの
値としては、RAM13上の書換回数管理テーブル13
4の値が利用される。この書換回数管理テーブル134
の値を利用することにより、ライト対象チップ以外の他
の全てのチップそれぞれからMBIテーブルブロックを
順次リードする必要が無くなり、効率の良いスワッピン
グ検討処理が実現される。
【0217】次いで、ステップA84の比較結果に基づ
き、ファームウェアは、ライトブロックの更新されたU
WCデータとライト対象チップの最小UWCデータとの
値の差が予め決められたしきい値(α)以上であるか否
かを調べ(ステップA85)、その差がα以上であれ
ば、ライト対象チップ内でのスワッピング操作を行う
(ステップA86)。
【0218】このチップ内スワッピング操作において
は、ファームウェアは、まず、ライト対象チップから被
スワッピング対象のブロックをリードする。この場合、
被スワッピング対象のブロックは最小UWCの値を持つ
ブロックであり、このブロックの物理ブロックアドレス
は、ステップA82でリードしたMBIテーブルブロッ
クに含まれているスワップオーダーテーブル上の被スワ
ッピング優先度NO.1ブロック番号によって指定され
る。したがって、ファームウェアは、UWCデータのソ
ーティングを行うこと無く、被スワッピング対象のブロ
ックを簡単に決定でき、またその被スワッピング対象の
ブロックの物理ブロックアドレスを認識する事ができ
る。
【0219】次に、ファームウェアは、ライトブロック
と被スワッピング対象ブロック間でホストアドレスの入
れ替えを行う。この場合、RAM132上のアドレス変
換テーブル132とライト対象チップからリードしたM
BIテーブルブロック双方ののアドレス変換情報が更新
される。
【0220】次に、ファームウェアは、ライト対象フラ
ッシュEEPROMにおけるライトブロックと被スワッ
ピング対象ブロック間の記憶内容の入れ替えのために、
RAM13上に吸い上げた被スワッピングブロックの内
容をライト対象フラッシュEEPROMのライトブロッ
クに書き込むためのライトアクセスと、フラッシュEE
PROMの被スワッピングブロックにRAM13上の1
ブロック分のライトデータを書き込むためのライトアク
セスを行う。この後、ファームウェアは、ライト対象フ
ラッシュEEPROMにおけるMBIテーブルブロック
の更新のために、ライト対象フラッシュEEPROMに
おけるMBIテーブルブロックにRAM13上の更新さ
れたMBIテーブルブロックの内容を書き込むためのラ
イトアクセスを行う。これら3回のライトアクセスは、
それぞれステップA81で説明した場合と同様の形態で
実行される。
【0221】次に、ステップA86においてライトブロ
ックの更新されたUWCデータとライト対象チップの最
小UWCデータとの値の差がα未満であった場合の処理
について説明する。
【0222】この場合、ファームウェアは、ライトブロ
ックの更新されたUWCデータと他のいずれかのチップ
の最小UWCデータとの値の差が予め決められたしきい
値(α+β)以上であるか否かを調べ(ステップA8
7)、その差がα+β以上であれば、ライト対象チップ
とその最小UWCデータの値を持つチップとの間でのス
ワッピング操作を行う(ステップA88)。
【0223】このチップ間に亙るスワッピング操作にお
いては、ファームウェアは、まず、被スワッピング対象
のブロックを持つチップからMBIテーブルブロックを
RAM13上にリードし、そのMBIテーブルブロック
に含まれているスワップオーダーテーブル上の被スワッ
ピング優先度NO.1ブロック番号を認識する。
【0224】次いで、ファームウェアは、被スワッピン
グ優先度NO.1ブロック番号が示す物理ブロックアド
レスを用いて、その被スワッピング対象チップから被ス
ワッピング対象ブロックをリードする。
【0225】次に、ファームウェアは、ライトブロック
と被スワッピング対象ブロック間でホストアドレスの入
れ替えを行う。この場合、RAM132上のアドレス変
換テーブル132と、ライト対象チップからリードした
MBIテーブルブロックと、被スワッピング対象チップ
からリードしたMBIテーブルブロックのそれぞれのア
ドレス変換情報が更新される。
【0226】次に、ファームウェアは、ライト対象フラ
ッシュEEPROMにおけるライトブロックと被スワッ
ピング対象チップの被スワッピング対象ブロック間の記
憶内容の入れ替えのために、RAM13上に吸い上げた
被スワッピングブロックの内容をライト対象フラッシュ
EEPROMのライトブロックに書き込むためのライト
アクセスと、被スワッピング対象フラッシュEEPRO
Mの被スワッピングブロックにRAM13上の1ブロッ
ク分のライトデータを書き込むためのライトアクセスを
行う。この後、ファームウェアは、ライト対象フラッシ
ュEEPROM被スワッピング対象フラッシュEEPR
OMそれぞれのMBIテーブルブロックを更新するため
に、ライト対象フラッシュEEPROMにおけるMBI
テーブルブロックにRAM13上の更新されたMBIテ
ーブルブロックの内容を書き込むためのライトアクセス
と、被スワッピング対象フラッシュEEPROMにおけ
るMBIテーブルブロックにRAM13上の更新された
MBIテーブルブロックの内容を書き込むためのライト
アクセスとを行う。これら4回のライトアクセスは、そ
れぞれステップA81で説明した場合と同様の形態で実
行される。
【0227】このように、スワッビング操作はチップ
内、又はチップ間で実行され、チップ間スワッピングの
場合はチップ内スワッピングの場合よりも、リードアク
セス操作およびライトアクセス操作がそれぞれ1回ずつ
多く必要となる。
【0228】しかしながら、この実施例では、スワッピ
ングを行うか否かを決定するためのしきい値(α+β)
は、チップ内のスワッピング操作を行う場合のしきい値
(α)よりも大きな値に設定されているので、チップ内
スワッピングに比べチップ間スワッピングの発生頻度を
抑制する事ができる。よって、チップ間スワッピング操
作の多発による性能低下を防止する事ができる。
【0229】ステップA85,およひA87で共に置き
換え回数の差が所定のしきい値よりも小さい場合には、
ファームウェアは、ステップA83で更新されたUWC
データを含むMBIテーブルブロックをライト対象のフ
ラッシュEEPROMに書き込むためのライトアクセス
を行い(ステップA89)、次いで、ライトブロックに
対するライトアクセス処理を実行する。これらライトア
クセスは、それぞれステップA81で説明した場合と同
様の形態で実行される。
【0230】以上のように、LWCデータの桁上がりが
発生しない場合にはスワッピング処理の検討がなされず
に直ぐにライトアクセスが行われるので、桁上がりが発
生した場合よりもデータ書込みに要する全体の時間を短
縮する事ができる。
【0231】LWCデータの値はライトアクセスの度に
その初期値から+1ずつカウントアップされ、そして1
K回に達した時に桁上がりが発生する。このため、ディ
スク製造時や出荷時においてフラッシュEEPROM1
1−1〜11−16に含まれる全てのブロックに書き込
むLWCデータの初期値としては、同一の値ではなく、
それぞれ異なる離散的な値を利用することが好ましい。
この場合、連続ブロックに対するライトアクセスが継続
的に発生したとしても桁上がりが発生する時期がブロッ
ク毎にずれるので、桁上りに起因するスワッピングの検
討処理およびスワッピング処理が集中して発生するとい
う事態を防止する事ができる。
【0232】なお、ここでは、1つのライトブロックに
対する書き込みについて説明したが、ライトデータの格
納位置が連続する複数のライトブロックに亘る場合に
は、それら複数のブロックに対するライトアクセス処理
は並行して実行される。この並行処理は、ライトチャネ
ルと称するこの発明の特徴とするライトアクセス制御処
理を利用することによって実現される。
【0233】以下、図23を参照して、ライトチャネル
を利用したライトアクセス制御処理の原理を説明する。
【0234】ホストシステムから要求されたライトデー
タの書き込み先が複数のライトブロックに亘る場合に
は、それらライトブロック毎に図22のステップA75
〜A78の処理が実行されて、複数個のブロックデータ
(ヘッダテーブル)が順次生成される。前述したように
フラッシュEEPROM11−1〜11−16には、8
セクタ毎にアクセス対象のチップが切り替えられるよう
にセクタ番号がそれらチップを横断して割り当てられて
いるので、複数のブロックデータの書き込み先はそれぞ
れ異なるチップとなる。
【0235】生成されたブロックデータは、3つのライ
トチャネル(A,B,C)に順次割り当てられる。ライ
トチャネルA,B,Cの各々は、ブロックデータとフラ
ッシュEEPROMとを対応付けるための論理的な書込
み制御経路であり、これらライトチャネルA,B,Cは
図示のようなライトチャネル管理テーブルTa,Tb,
Tcによってそれぞれ実現されている。
【0236】ライトチャネル管理テーブルTa,Tb,
Tcにおいては、それぞれ対応するライトチャネルの使
用の有無を示す情報と、ライトアクセス対象のフラッシ
ュEEPROMを示すチップ番号アドレスと、書き込む
べきブロックデータに対応するヘッダテーブル番号が登
録される。
【0237】ここでは、ブロックデータ1〜6が順次生
成され、それらブロックデータ1〜6の書込み先がフラ
ッシュEEPROM11−1〜11−6である場合を想
定する。
【0238】作成されたブロックデータ1〜6は、その
作成された順にその時未使用のライトチャネルに登録さ
れる。ライトチャネルA,B,Cがそれぞれ未使用であ
った場合には、ブロックデータ1がライトチャネルAに
登録され、ブロックデータ2がライトチャネルBに登録
され、そしてブロックデータ3がライトチャネルCに登
録される。
【0239】この場合、ライトチャネルAに対応するラ
イトチャネル管理テーブルTaにおいては、使用中を示
す情報がセットされる共に、フラッシュEEPROM1
1−1を示すチップ番号アドレスと、ブロックデータ1
に対応するヘッダテーブル1を示すヘッダテーブル番号
が格納される。同様にして、ライトチャネルBに対応す
るライトチャネル管理テーブルTbにおいては、使用中
を示す情報がセットされる共に、フラッシュEEPRO
M11−2を示すチップ番号アドレスと、ブロックデー
タ2に対応するヘッダテーブル2を示すヘッダテーブル
番号が格納され、ライトチャネルCに対応するライトチ
ャネル管理テーブルTcにおいては、使用中を示す情報
がセットされる共に、フラッシュEEPROM11−3
を示すチップ番号アドレスと、ブロックデータ3に対応
するヘッダテーブル3を示すヘッダテーブル番号が格納
される。
【0240】このようにしてライトチャネルテーブルT
a,Tb,Tcを作成すると、ファームウェアは、これ
らテーブルTa,Tb,Tcの内容にしたがって次のよ
うなライトアクセス制御を実行する。
【0241】すなわち、ファームウェアは、まず、ライ
トチャネルAを介したライトアクセス処理を行う。この
ライトアクセス処理においては、まず、テーブルTaの
チップ番号アドレスによって指定されるフラッシュEE
PROM11−1がレディー状態であるか否かが、NA
NDチップレディー/ビジーステータスレジスタ215
−1を参照する事によって調べられる。
【0242】レディー状態であれば、テーブルTaによ
って指定されたヘッダテーブル1が参照され、そのヘッ
ダテーブル1の内容に従ってデータバッファ131から
フラッシュEEPROM11−1への1ページ分のデー
タ転送、およびフラッシュEEPROM11−1に対す
るライトコマンドの発行が行われる。これにより、フラ
ッシュEEPROM11−1はレディー状態からビジー
状態に切り替わり、ページライト動作を実行する。
【0243】フラッシュEEPROM11−1がレディ
ー状態からビジー状態に切り替わると、ファームウェア
は、ライトチャネルBを介したライトアクセス処理に移
行する。
【0244】このライトアクセス処理においては、ま
ず、そのテーブルTbのチップ番号アドレスによって指
定されるフラッシュEEPROM11−2がレディー状
態か否かが、NANDチップレディー/ビジーステータ
スレジスタ215−2を参照する事によって調べられ
る。レディー状態であれば、テーブルTbによって指定
されたヘッダテーブル2が参照され、そのヘッダテーブ
ル2の内容に従ってデータバッファ131からフラッシ
ュEEPROM11−2への1ページ分のデータ転送、
およびフラッシュEEPROM11−2に対するライト
コマンドの発行が行われる。これにより、フラッシュE
EPROM11−2はレディー状態からビジー状態に切
り替わり、ページライト動作を実行する。
【0245】フラッシュEEPROM11−2がレディ
ー状態からビジー状態に切り替わると、ファームウェア
は、今度は、ライトチャネルCを介したライトアクセス
処理に移行する。このライトアクセス処理では、まず、
そのテーブルTcのチップ番号アドレスによって指定さ
れるフラッシュEEPROM11−3がレディー状態か
否かが、NANDチップレディー/ビジーステータスレ
ジスタ215−3を参照する事によって調べられる。
【0246】レディー状態であれば、テーブルTcによ
って指定されたヘッダテーブル3が参照され、そのヘッ
ダテーブル3の内容に従ってデータバッファ131から
フラッシュEEPROM11−3への1ページ分のデー
タ転送、およびフラッシュEEPROM11−3に対す
るライトコマンドの発行が行われる。これにより、フラ
ッシュEEPROM11−3はレディー状態からビジー
状態に切り替わり、ページライト動作を実行する。
【0247】フラッシュEEPROM11−3がレディ
ー状態からビジー状態に切り替わると、ファームウェア
は、再びライトチャネルAの制御に戻り、そのライトチ
ャネルAを介したライトアクセス処理を行う。このライ
トアクセス処理においても、そのテーブルTaのチップ
番号アドレスによって指定されるフラッシュEEPRO
M11−1がレディー状態か否か、つまりページライト
動作が終了しているか否かがが調べられる。もしページ
ライト動作が終了していれば、テーブルTaによって指
定されたヘッダテーブル1が参照され、そのヘッダテー
ブル1の内容に従ってデータバッファ131からフラッ
シュEEPROM11−1への次の1ページ分のデータ
転送、およびフラッシュEEPROM11−1に対する
ライトコマンドの発行が行われる。
【0248】一方、フラッシュEEPROM11−1が
ページライト実行中でビジー状態であれば、ファームウ
ェアは、ライトチャネルAからライトチャネルBの制御
に移行し、ライトチャネルBを介したライトアクセス処
理を開始する。このライトアクセス処理においては、テ
ーブルTbのチップ番号アドレスによって指定されるフ
ラッシュEEPROM11−2がレディー状態か否か、
つまりページライト動作が終了しているか否かがが調べ
られる。もしページライト動作が終了していれば、テー
ブルTbによって指定されたヘッダテーブル2が参照さ
れ、そのヘッダテーブル2の内容に従ってデータバッフ
ァ131からフラッシュEEPROM11−2への次の
1ページ分のデータ転送、およびフラッシュEEPRO
M11−2に対するライトコマンドの発行が行われる。
【0249】一方、フラッシュEEPROM11−2が
ページライト実行中でビジー状態であれば、ファームウ
ェアは、ライトチャネルBからライトチャネルCの制御
に移行し、ライトチャネルCを介したライトアクセス処
理を開始する。このライトアクセス処理においては、テ
ーブルTcのチップ番号アドレスによって指定されるフ
ラッシュEEPROM11−3がレディー状態か否か、
つまりページライト動作が終了しているか否かがが調べ
られる。もしページライト動作が終了していれば、テー
ブルTcによって指定されたヘッダテーブル3が参照さ
れ、そのヘッダテーブル3の内容に従ってデータバッフ
ァ131からフラッシュEEPROM11−2への次の
1ページ分のデータ転送、およびフラッシュEEPRO
M11−3に対するライトコマンドの発行が行われる。
【0250】もし、フラッシュEEPROM11−3が
ページライト実行中でビジー状態であれば、ファームウ
ェアは、ライトチャネルCから再びライトチャネルAの
制御に移行し、ライトチャネルAを介したライトアクセ
ス処理を開始する。
【0251】このように、ファームウェアは、ライトチ
ャネルテーブルTa,Tb,Tcを順番にサーチし、ペ
ージライトが終了したチップから順に、次のページライ
ト動作を実行する。
【0252】したがって、フラッシュEEPROMの性
能そのものの差やページライトベリファイによって再試
行されるページライト動作の回数の差などによって、ラ
イトアクセス対象のチップ間でページライトに要する時
間に違いが生じる場合においても、各チップの書込み性
能を最大限引き出す事ができ、ライトアクセスを高速実
行する事ができる。
【0253】そして、あるブロックデータの全ページの
ライクアクセスが終了すると、そのブロックデータが登
録されていたライトチャネルが空きとなり、次のライト
ブロック(ここでは、ブロックデータ4)がその空きチ
ャネルに登録される。
【0254】たとえば、チャネルCを介したブロックデ
ータ3の書込みが一番先に終了すると、そのチャネルC
にブロックデータ4が登録される。この場合、ライトチ
ャネルテーブルTcのチップ番号アドレスは、フラッシ
ュEEPROM11−3を示すアドレスからフラッシュ
EEPROM11−4を示すアドレスに変更され、また
ヘッダテーブル番号も3から4に変更される。そして、
ライトチャネルCを介したフラッシュEEPROM11
−4に対するライトアクセス処理が、ライトチャネル
A,Bを介したフラッシュEEPROM11−1,11
−2に対するライトアクセス処理と並行して行われる。
【0255】なお、ライトチャネルA,B,Cには、ユ
ーザデータを含むブロックだけでなく、MBIブロック
も同様にして登録される。このため、スワッピング検討
処理やスワッピング処理によってMBIテーブルブロッ
クなどの書込みを行う必要が生じた場合でも、その書込
みをユーザデータの書込みと並行して高速に行うことが
可能となる。
【0256】また、ここでは、3つのライトチャネルを
利用する場合を説明したが、ライトチャネルの数は、同
時動作可能な最大チップ数によって決定される。同時動
作可能な最大チップ数は半導体ディスク装置10の最大
消費電力の値を制限するためにコンヒィグ情報によって
予め規定されている。もちろん、ホストシステムからの
要求に応じてコンヒィグ情報を書換え、同時動作可能な
最大チップ数を動的に変更する事も可能である。
【0257】以上説明したように、この実施例において
は、フラッシュEEPROM11−1〜11−16それ
ぞれからの16本のレディー/ビジー信号が独立して受
信される事により、フラッシュEEPROM毎に動作状
態を管理することができる。このため、全てのフラッシ
ュEEPROM11−1〜11−16の動作完了を待つ
ことなく、ライトアクセス対象のフラッシュEEPRO
Mがレディー状態になりさえすれば、そのライトアクセ
ス対象のフラッシュEEPROMに対するライトアクセ
スを開始する事ができる。また、この半導体ディスク装
置10で使用されているフラッシュEEPROMは、ラ
イト動作を自動実行可能なコマンド制御タイプのもので
ある。このため、フォームウェアは、フラッシュEEP
ROMにライトコマンドを発行しさえすれば、その後は
そのライト制御動作から解放される。したがって、ある
フラッシュEEPROMのデータ書き込み動作期間中に
別のフラッシュEEPROMに対するライトアクセスを
行うことが可能になり、複数のフラッシュEEPROM
を並行して動作させる事ができる。よって、データ書込
み速度の向上を図る事ができる。
【0258】また、フラッシュEEPROM11−1〜
11−16に対しては連続するセクタ番号が横断して割
り当てられているので、ホストシステムから連続セクタ
に跨がるライトデータの書込みが要求された場合には、
そのライトデータの書込みを複数のフラッシュEEPR
OMに分散させて実行させることが可能となり、書込み
動作をより効率的に行う事が可能になる。
【0259】さらに、ライトチャネルA,B,Cを利用
することによってページライト動作が終了したチップか
ら順に次のページライト動作が開始させる事ができるよ
うになり、チップ間でページライトに要する時間に違い
が生じる場合においても、内蔵チップの書込み性能を最
大限引き出す事が可能となる。
【0260】
【発明の効果】以上説明したように、この発明によれ
ば、フラッシュEEPROM毎に独立してその動作状態
(レディ−/ビジ−)を検出できるようになり、複数の
フラッシュEEPROMに書込み動作を同時実行させる
ことができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係る半導体ディスク装置
の構成を示すブロック図。
【図2】図1の半導体ディスク装置において使用される
NAND型フラッシュEEPROMの構造を示す図。
【図3】図1の半導体ディスク装置に設けられているI
/Oレジスタ群を示す図。
【図4】図1の半導体ディスク装置におけるメモリマッ
プの一例を示す図。
【図5】図1の半導体ディスク装置に設けられたフラッ
シュEEPROM内の複数ブロックそれぞれの利用形態
を示す図。
【図6】図5に示したブロックの中でユーザデータの格
納に使用されるメモリブロックのデータ格納形式を示す
図。
【図7】図5に示したブロックの中でメモリブロック管
理情報の格納に使用されるMBIテーブルブロックのデ
ータ格納形式を示す図。
【図8】図7のMBIテーブルブロックに格納されるア
ドレス変換およびUWCテーブルの内容を示す図。
【図9】図1の半導体ディスク装置に設けられた複数の
フラッシュEEPROMに対するホストアドレス割り当
ての一例を示す図。
【図10】図8のアドレス変換テーブルに保持されるア
ドレス変換情報の一例を示す図。
【図11】図7のMBIテーブルブロックに格納される
スワップオーダーテーブルの内容を示す図。
【図12】図5に示したブロックの中で図1の半導体デ
ィスク装置のコンヒィグ情報の格納に使用されるコンヒ
ィグブロックのデータ格納形式を示す図。
【図13】図1の半導体ディスク装置のRAM上に設け
られるアドレス変換テーブルの構成を示す図。
【図14】図13のアドレス変換テーブルを利用したホ
ストアドレスからメモリアドレスへの変換処理の原理を
説明するための図。
【図15】図1の半導体ディスク装置に設けられたEC
C演算回路の動作を説明するための図。
【図16】図1の半導体ディスク装置においてフラッシ
ュEEPROMにデータを書き込む場合のファームウェ
アの処理とハードウェアの動作を説明するフローチャー
ト。
【図17】図1の半導体ディスク装置に設けられたフラ
ッシュEEPROMのプログラムサイクルを説明するタ
イミングチャート。
【図18】図1の半導体ディスク装置においてフラッシ
ュEEPROMからデータを読み出す場合のファームウ
ェアの処理とハードウェアの動作を説明するフローチャ
ート。
【図19】図1の半導体ディスク装置に設けられたフラ
ッシュEEPROMのシーケンシャルリードサイクルを
説明するタイミングチャート。
【図20】図1の半導体ディスク装置においてフラッシ
ュEEPROMに格納されたデータを消去する場合のフ
ァームウェアの処理とハードウェアの動作を説明するフ
ローチャート。
【図21】図1の半導体ディスク装置に設けられたフラ
ッシュEEPROMのブロックイレーズサイクルを説明
するタイミングチャート。
【図22】図1の半導体ディスク装置においてホストシ
ステムからのライト要求を受信してからフラッシュEE
PROMをライトアクセスするまでに実行されるファー
ムウェアの処理を説明するフローチャート。
【図23】図1の半導体ディスク装置において複数のフ
ラッシュEEPROMを同時にライトアクセスするため
に実行されるライトチャネルを利用したライトアクセス
制御処理の動作原理を説明するための図。
【符号の説明】
10…半導体ディスク装置、11−1〜11−16…N
AND型フラッシュEEPROM、12…コントロー
ラ、13…RAM、14…マイクロプロセッサ、16…
ROM、17…外部バスインタフェース、19…NAN
Dバスインタフェ−ス、21…ECC演算回路、131
…データバッファ、132…アドレス変換テーブル、1
33…ヘッダテーブル、134…書換回数管理テーブ
ル、Ta,Tb,Tc…ライトチャネルテーブル。
フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G11C 16/06

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 外部からのライトコマンドに応じてデー
    タ書込み動作を自動実行し、そのデータ書込み動作期間
    中にはビジーステートのレディー/ビジー信号を発生す
    る複数のフラッシュEEPROMを内蔵し、ホスト装置
    からのディスクアクセス要求に応じてそれら複数のフラ
    ッシュEEPROMをアクセスする半導体ディスク装置
    において、 前記ホスト装置から転送されるライトデータを格納する
    データバッファと、 前記複数のフラッシュEEPROMから出力される複数
    のレディー/ビジー信号をそれぞれ受信する複数の入力
    ポートを有し、それらレディー/ビジー信号に応じて前
    記複数のフラッシュEEPROMそれぞれのレディー/
    ビジー状態を示す複数のステータスデータを保持するレ
    ディー/ビジー管理手段と、 前記ホスト装置からのライトアクセス要求に応じて、前
    記複数のフラッシュEEPROMをライトアクセスする
    ライトアクセス手段とを具備し、 このライトアクセス手段は、 前記ディスクアクセス要求によって指定されたライトア
    クセス対象のフラッシュEEPROMに対応するステー
    タスデータを参照して、前記ライトアクセス対象フラッ
    シュEEPROMがレディー状態か否かを決定する手段
    と、 前記ライトアクセス対象フラッシュEEPROMがレデ
    ィー状態であることが決定された際、前記ライトアクセ
    ス対象フラッシュEEPROMにライトコマンドを発行
    してデータ書込み動作を実行させる手段とを具備するこ
    とを特徴とする半導体ディスク装置。
  2. 【請求項2】 前記各フラッシュEEPROMは、複数
    のページからそれぞれ構成される複数の消去ブロックを
    有するメモリセルアレイと、外部から転送される1ペー
    ジ分のデータを保持するデータレジスタとを有し、外部
    からのライトコマンドに応答して、データレジスタに転
    送されたデータをメモリセルアレイに書き込むページラ
    イト動作を自動実行するように構成されていることを特
    徴とする請求項1記載の半導体ディスク装置。
  3. 【請求項3】 前記ライトアクセス手段は、前記ライト
    アクセス対象フラッシュEEPROMがレディー状態で
    あることが決定された際、前記データバッファのライト
    データから1ページ分のデータを読み出して前記ライト
    アクセス対象フラッシュEEPROMのデータレジスタ
    に転送する手段を含むことを特徴とする請求項2記載の
    半導体ディスク装置。
  4. 【請求項4】 シリンダ番号、ヘッド番号およびセクタ
    番号によって指定される前記ホスト装置からの論理アド
    レスを、前記複数のフラッシュEEPROMの1つを選
    択するためのチップ番号アドレスおよび選択されたチッ
    プ内のブロックおよびページを指定するためのメモリア
    ドレスを含む物理アドレスに変換するアドレス変換手段
    をさらに具備し、 このアドレス変換手段により、前記複数のフラッシュE
    EPROMには連続した論理アドレス値がそれらチップ
    を横断するように割り当てられることを特徴とする請求
    項1記載の半導体ディスク装置。
  5. 【請求項5】 複数のページからそれぞれ構成される複
    数の消去ブロックを有するメモリセルアレイと、外部か
    ら転送される1ページ分のデータを保持するデータレジ
    スタとをそれぞれ有し、外部からのライトコマンドに応
    じて、データレジスタに転送されたデータをメモリセル
    アレイに書き込むページライト動作を自動実行し、その
    ページライト動作期間中にはビジーステートのレディー
    /ビジー信号を発生する複数のフラッシュEEPROM
    を内蔵し、ホスト装置からのディスクアクセス要求に応
    じてそれら複数のフラッシュEEPROMをアクセスす
    る半導体ディスク装置において、 前記ホスト装置から転送されるライトデータを格納する
    データバッファと、 前記複数のフラッシュEEPROMから出力される複数
    のレディー/ビジー信号をそれぞれ受信する複数の入力
    ポートを有し、それらレディー/ビジー信号に応じて前
    記複数のフラッシュEEPROMそれぞれのレディー/
    ビジー状態を示す複数のステータスデータを保持するレ
    ディー/ビジー管理手段と、 前記ホスト装置からのライトアクセス要求に応じて、前
    記複数のフラッシュEEPROMをライトアクセスする
    ライトアクセス手段とを具備し、 このライトアクセス手段は、 前記ライト要求によって指定されたライトアクセス対象
    の複数のフラッシュEEPRMそれぞれに対応する複数
    ブロック分のブロックライトデータを生成する手段と、 前記ライトアクセス対象の複数のフラッシュEEPRM
    に対して順番にブロックライトデータの1ページ分のデ
    ータ転送およびライトコマンドの発行を実行し、それら
    ライトアクセス対象の複数のフラッシュEEPRMそれ
    ぞれにページライト動作を実行させる手段と、 前記複数のライトアクセス対象フラッシュEEPROM
    にそれぞれ対応するステータスデータを参照して、ライ
    トアクセス対象フラッシュEEPROM毎にページライ
    ト動作の終了の有無を検出する手段と、 この検出手段の検出結果に基づいて、次ページのページ
    ライト動作を実行させるためのデータ転送およびライト
    コマンドの発行を、ページライト動作が終了したフラッ
    シュEEPROMから順次実行する手段とを具備するこ
    とを特徴とする半導体ディスク装置。
JP9512694A 1994-05-09 1994-05-09 半導体ディスク装置 Pending JPH07302176A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9512694A JPH07302176A (ja) 1994-05-09 1994-05-09 半導体ディスク装置
US08/435,854 US5603001A (en) 1994-05-09 1995-05-05 Semiconductor disk system having a plurality of flash memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9512694A JPH07302176A (ja) 1994-05-09 1994-05-09 半導体ディスク装置

Publications (1)

Publication Number Publication Date
JPH07302176A true JPH07302176A (ja) 1995-11-14

Family

ID=14129140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9512694A Pending JPH07302176A (ja) 1994-05-09 1994-05-09 半導体ディスク装置

Country Status (1)

Country Link
JP (1) JPH07302176A (ja)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998003915A3 (en) * 1996-07-19 1998-03-12 Tokyo Electron Ltd Flash memory card
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
WO1998047065A1 (fr) * 1997-04-16 1998-10-22 Sony Corporation Dispositif et procede de commande de support d'enregistrement
US6188879B1 (en) 1998-01-14 2001-02-13 Nec Corporation System and method of testing overall and individual antennas of a switched space diversity receiver
US6253259B1 (en) 1997-06-04 2001-06-26 Sony Corporation System for controlling operation of an external storage utilizing reduced number of status signals for determining ready or busy state based on status signal level
JP2002082829A (ja) * 2000-09-06 2002-03-22 Nec Kofu Ltd 消費電力制御装置及び消費電力制御方法
US6412023B1 (en) 1998-05-21 2002-06-25 Sony Corporation System for communicating status via first signal line in a period of time in which control signal via second line is not transmitted
JP2003036205A (ja) * 2001-07-24 2003-02-07 Matsushita Electric Ind Co Ltd 記憶装置
JP2004516536A (ja) * 2000-11-22 2004-06-03 サンディスク コーポレイション メモリのページサイズおよび/またはブロックサイズとは異なるサイズを有するデータセクタを備えた不揮発性メモリシステムの処理技法
JP2005182983A (ja) * 2003-12-15 2005-07-07 Samsung Electronics Co Ltd バッファメモリを内蔵したフラッシュメモリ装置及びフラッシュメモリシステム
WO2006098212A1 (ja) * 2005-03-15 2006-09-21 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2007048307A (ja) * 2001-09-28 2007-02-22 Lexar Media Inc 不揮発性メモリ制御
WO2008016170A1 (en) * 2006-07-31 2008-02-07 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
JP2008152788A (ja) * 2006-12-18 2008-07-03 Samsung Electronics Co Ltd 不揮発性データ保存装置に備わった仮想ファイルシステムの作業スケジューリング方法及び装置
JP2009211719A (ja) * 2009-06-15 2009-09-17 Toshiba Memory Systems Co Ltd 情報処理システム
US7725706B2 (en) 2004-03-24 2010-05-25 Kabushiki Kaisha Toshiba Microprocessor boot-up controller, nonvolatile memory controller, and information processing system
JP2010152913A (ja) * 1999-09-03 2010-07-08 Lexar Media Inc セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JP2010277678A (ja) * 2009-04-30 2010-12-09 Toshiba Corp 不揮発性半導体記憶装置
JP2011198409A (ja) * 2010-03-19 2011-10-06 Toshiba Information Systems (Japan) Corp 不揮発性メモリ
JP2012532400A (ja) * 2009-06-30 2012-12-13 サンディスク テクノロジィース インコーポレイテッド マルチレベル状態伝達機能を備えるメモリシステムおよびその操作方法
US8341338B2 (en) 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
US8423714B2 (en) 1997-08-07 2013-04-16 Mobilemedia Ideas Llc Storage and reproduction apparatus
JP2013515979A (ja) * 2010-04-12 2013-05-09 株式会社日立製作所 ストレージ装置
US8611154B2 (en) 2008-06-04 2013-12-17 Kabushiki Kaisha Toshiba Semiconductor device
JP2014063511A (ja) * 2008-10-13 2014-04-10 Micron Technology Inc ソリッドステート記憶装置におけるトランスレーションレイヤ
US9710375B2 (en) 2014-05-29 2017-07-18 International Business Machines Corporation Writing an address conversion table for nonvolatile memory wear leveling
US9720772B2 (en) 2015-03-04 2017-08-01 Kabushiki Kaisha Toshiba Memory system, method for controlling magnetic memory, and device for controlling magnetic memory
CN109543476A (zh) * 2018-11-14 2019-03-29 捷德(中国)信息科技有限公司 数据处理方法、装置及存储介质
JP2021152933A (ja) * 2017-06-23 2021-09-30 華為技術有限公司Huawei Technologies Co., Ltd. メモリアクセス技術およびコンピュータシステム

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998003915A3 (en) * 1996-07-19 1998-03-12 Tokyo Electron Ltd Flash memory card
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
WO1998047065A1 (fr) * 1997-04-16 1998-10-22 Sony Corporation Dispositif et procede de commande de support d'enregistrement
US6523105B1 (en) 1997-04-16 2003-02-18 Sony Corporation Recording medium control device and method
US6496879B2 (en) 1997-06-04 2002-12-17 Sony Corporation Data processing apparatus, external storage apparatus, data processing system and data transmitting method
US6253259B1 (en) 1997-06-04 2001-06-26 Sony Corporation System for controlling operation of an external storage utilizing reduced number of status signals for determining ready or busy state based on status signal level
US6681269B2 (en) 1997-06-04 2004-01-20 Sony Corporation Data processing apparatus, external storage apparatus, data processing system and data transmitting method
US8423714B2 (en) 1997-08-07 2013-04-16 Mobilemedia Ideas Llc Storage and reproduction apparatus
US9223539B2 (en) 1997-08-07 2015-12-29 Mobilemedia Ideas Llc Storage and reproduction apparatus
US6188879B1 (en) 1998-01-14 2001-02-13 Nec Corporation System and method of testing overall and individual antennas of a switched space diversity receiver
US6412023B1 (en) 1998-05-21 2002-06-25 Sony Corporation System for communicating status via first signal line in a period of time in which control signal via second line is not transmitted
JP2010152913A (ja) * 1999-09-03 2010-07-08 Lexar Media Inc セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JP2002082829A (ja) * 2000-09-06 2002-03-22 Nec Kofu Ltd 消費電力制御装置及び消費電力制御方法
JP2004516536A (ja) * 2000-11-22 2004-06-03 サンディスク コーポレイション メモリのページサイズおよび/またはブロックサイズとは異なるサイズを有するデータセクタを備えた不揮発性メモリシステムの処理技法
US7032065B2 (en) 2000-11-22 2006-04-18 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US7171513B2 (en) 2000-11-22 2007-01-30 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
JP2003036205A (ja) * 2001-07-24 2003-02-07 Matsushita Electric Ind Co Ltd 記憶装置
JP2007048307A (ja) * 2001-09-28 2007-02-22 Lexar Media Inc 不揮発性メモリ制御
US8301829B2 (en) 2003-12-15 2012-10-30 Samsung Electronics Co., Ltd. Flash memory device and flash memory system including buffer memory
JP2005182983A (ja) * 2003-12-15 2005-07-07 Samsung Electronics Co Ltd バッファメモリを内蔵したフラッシュメモリ装置及びフラッシュメモリシステム
US7725706B2 (en) 2004-03-24 2010-05-25 Kabushiki Kaisha Toshiba Microprocessor boot-up controller, nonvolatile memory controller, and information processing system
US8171281B2 (en) 2004-03-24 2012-05-01 Kabushiki Kaisha Toshiba Microprocessor boot-up controller connected to a processor and NAND flash memory for controlling the boot-up of a computer device
US7702846B2 (en) 2005-03-15 2010-04-20 Panasonic Corporation Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
WO2006098212A1 (ja) * 2005-03-15 2006-09-21 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US7836245B2 (en) 2006-07-31 2010-11-16 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
WO2008016170A1 (en) * 2006-07-31 2008-02-07 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
JP2008152788A (ja) * 2006-12-18 2008-07-03 Samsung Electronics Co Ltd 不揮発性データ保存装置に備わった仮想ファイルシステムの作業スケジューリング方法及び装置
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
US9324653B2 (en) * 2008-06-04 2016-04-26 Kabushiki Kaisha Toshiba Semiconductor device
US8611154B2 (en) 2008-06-04 2013-12-17 Kabushiki Kaisha Toshiba Semiconductor device
US9176868B2 (en) 2008-10-13 2015-11-03 Micron Technology, Inc. Translation layer in a solid state storage device
JP2014063511A (ja) * 2008-10-13 2014-04-10 Micron Technology Inc ソリッドステート記憶装置におけるトランスレーションレイヤ
US9405679B2 (en) 2008-10-13 2016-08-02 Micron Technology, Inc. Determining a location of a memory device in a solid state device
JP2010277678A (ja) * 2009-04-30 2010-12-09 Toshiba Corp 不揮発性半導体記憶装置
US8773889B2 (en) 2009-04-30 2014-07-08 Kabushiki Kaisha Toshiba Semiconductor memory device
US8341338B2 (en) 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
JP4719290B2 (ja) * 2009-06-15 2011-07-06 東芝メモリシステムズ株式会社 情報処理システム
JP2009211719A (ja) * 2009-06-15 2009-09-17 Toshiba Memory Systems Co Ltd 情報処理システム
JP2012532400A (ja) * 2009-06-30 2012-12-13 サンディスク テクノロジィース インコーポレイテッド マルチレベル状態伝達機能を備えるメモリシステムおよびその操作方法
JP2011198409A (ja) * 2010-03-19 2011-10-06 Toshiba Information Systems (Japan) Corp 不揮発性メモリ
US8924659B2 (en) 2010-04-12 2014-12-30 Hitachi, Ltd. Performance improvement in flash memory accesses
JP2013515979A (ja) * 2010-04-12 2013-05-09 株式会社日立製作所 ストレージ装置
US9710375B2 (en) 2014-05-29 2017-07-18 International Business Machines Corporation Writing an address conversion table for nonvolatile memory wear leveling
US9710378B2 (en) 2014-05-29 2017-07-18 International Business Machines Corporation Writing an address conversion table for nonvolatile memory wear leveling
US9720772B2 (en) 2015-03-04 2017-08-01 Kabushiki Kaisha Toshiba Memory system, method for controlling magnetic memory, and device for controlling magnetic memory
JP2021152933A (ja) * 2017-06-23 2021-09-30 華為技術有限公司Huawei Technologies Co., Ltd. メモリアクセス技術およびコンピュータシステム
US11681452B2 (en) 2017-06-23 2023-06-20 Huawei Technologies Co., Ltd. Memory access technology and computer system
CN109543476A (zh) * 2018-11-14 2019-03-29 捷德(中国)信息科技有限公司 数据处理方法、装置及存储介质
CN109543476B (zh) * 2018-11-14 2022-02-22 捷德(中国)科技有限公司 数据处理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US5603001A (en) Semiconductor disk system having a plurality of flash memories
JPH07302176A (ja) 半導体ディスク装置
JP4357304B2 (ja) 外部記憶装置
EP2306321B1 (en) Increasing memory performance in flash memory devices by performing simultaneous write operation to multiple devices
US6757800B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US7944762B2 (en) Non-volatile memory control
US7379334B2 (en) Memory card, semiconductor device, and method of controlling memory card
US9342371B2 (en) Boot partitions in memory devices and systems
US11288019B2 (en) Memory management method and storage controller
US20080082737A1 (en) Memory card and semiconductor device
US7136986B2 (en) Apparatus and method for controlling flash memories
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
KR20030011230A (ko) 비휘발성 기억 장치 및 그의 재기입 제어 방법
JPH07302175A (ja) 半導体ディスク装置
US7657697B2 (en) Method of controlling a semiconductor memory device applied to a memory card
JP2000011677A (ja) フラッシュメモリシステム
JP2000285001A (ja) 半導体フラッシュメモリ装置及びその制御方法
JP2000285688A (ja) 不揮発性半導体記憶装置
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JPH09198201A (ja) 半導体ディスク装置およびその書換回数管理方法
CN117632040B (zh) 数据写入方法、存储器存储装置以及存储器控制电路单元
CN117573208B (zh) 指令信息分配方法及存储器存储装置
CN102236612A (zh) 动态切换分割区方法、记忆卡控制器与记忆卡储存系统
CN117766004A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN118151859A (zh) 存储器控制方法、存储器存储装置及存储器控制器