JP2001243110A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法 - Google Patents

メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法

Info

Publication number
JP2001243110A
JP2001243110A JP2000187184A JP2000187184A JP2001243110A JP 2001243110 A JP2001243110 A JP 2001243110A JP 2000187184 A JP2000187184 A JP 2000187184A JP 2000187184 A JP2000187184 A JP 2000187184A JP 2001243110 A JP2001243110 A JP 2001243110A
Authority
JP
Japan
Prior art keywords
address
flash memory
block
scope
stored
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
JP2000187184A
Other languages
English (en)
Inventor
Yukio Terasaki
幸夫 寺崎
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2000187184A priority Critical patent/JP2001243110A/ja
Priority to US09/740,919 priority patent/US20010012222A1/en
Publication of JP2001243110A publication Critical patent/JP2001243110A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 アドレス変換テーブルに要求される記憶容量
が低減されたメモリコントローラを提供する。 【解決手段】 それぞれアドレス変換情報が格納された
スコープ0〜スコープ3を含むアドレス変換テーブル2
7と、スコープ0〜スコープ3のそれぞれがメモリのい
ずれのエリアに対応するかを示す管理テーブル28とを
備え、ホストアドレスの上位5ビットに基づいていずれ
かのスコープを選択し、選択されたスコープに格納され
たアドレス変換情報に基づいて、ホストアドレスに含ま
れる論理ブロックアドレスを物理ブロックアドレスに変
換する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリコントローラ、
フラッシュメモリシステム及びフラッシュメモリへのア
クセス方法に関し、さらに詳細には、論理アドレスを物
理アドレスに変換するためのアドレス変換テーブルに要
求される記憶容量が低減されたメモリコントローラ及び
フラッシュメモリシステム、並びに、記憶容量が低減さ
れたアドレス変換テーブルを用いたフラッシュメモリへ
のアクセス方法に関する。
【0002】
【従来の技術】近年、メモリカードやシリコンディスク
などに用いられる半導体メモリとして、フラッシュメモ
リが用いられることが多い。フラッシュメモリは、メモ
リセルを消去状態から書込状態に変化させる場合は、こ
れをメモリセル単位で行うことが可能である一方、メモ
リセルを書込状態から消去状態に変化させる場合は、こ
れをメモリセル単位で行うことができず、複数のメモリ
セルからなる所定の消去単位でしかこれを行うことがで
きない。かかる所定の消去単位は、一般に「ブロック」
と呼ばれる。
【0003】このように、フラッシュメモリでは、ブロ
ック単位でしかメモリセルを書込状態から消去状態に変
化させることができないので、既にデータの書き込まれ
たブロックに対し、これと異なる新しいデータを書き込
むためには、一旦、このブロックに含まれるメモリセル
を全て消去状態とし、その後に新しいデータを書き込む
という処理が必要となる。したがって、あるブロックに
格納された古いデータに新しいデータを上書きしようと
する場合、このブロックに含まれる上書き対象外のデー
タが消失するのを防ぐためには、このブロックに含まれ
るデータを、他のブロックに移動させる必要がある。
【0004】このため、あるブロックに格納された古い
データに新しいデータを上書きすべき旨がホストコンピ
ュータから指示されると、当該新しいデータと、このブ
ロックに含まれる上書き対象外のデータが、未使用のブ
ロックに書き込まれるとともに、その後、当該古いデー
タが格納されているブロックに含まれるメモリセルが全
て消去状態とされる。これにより、当該古いデータが格
納されていたブロックは、新たに未使用のブロックとな
る。
【0005】このように、フラッシュメモリでは、ホス
トコンピュータからデータの上書きが指示される度に、
新しいデータ及び上書き対象外のデータを、別のブロッ
クに移動させる必要がある。したがって、ホストコンピ
ュータから与えられる論理アドレスと、当該論理アドレ
スに対応するフラッシュメモリ上の物理アドレスとの関
係は、ホストコンピュータからデータの上書きが指示さ
れる度に動的に変化する。このため、ホストコンピュー
タからフラッシュメモリをアクセスするためには、ホス
トコンピュータから与えられる論理アドレスと、当該論
理アドレスに対応するフラッシュメモリ上の物理アドレ
スとの関係を示す情報が格納されるアドレス変換テーブ
ルが必要となる。
【0006】図13は、従来のフラッシュメモリシステ
ム31を示す概略図である。
【0007】図13に示されるように、フラッシュメモ
リシステム31は、アドレス変換テーブル32及びフラ
ッシュメモリ33によって構成される。
【0008】アドレス変換テーブル32は、それぞれ論
理アドレス0001〜0013が割り当てられた複数の
記憶単位34−1〜34−13によって構成され、これ
ら各記憶単位34−1〜34−13には、それぞれ対応
する物理アドレスが格納されている。
【0009】また、フラッシュメモリ33は、それぞれ
物理アドレス0000〜0012が割り当てられた複数
のブロック35−0〜35−12によって構成され、こ
れら各ブロック35−0〜35−12は、複数のメモリ
セルからなるユーザ領域36と複数のメモリセルからな
る冗長領域37によって構成されている。ユーザ領域3
6には、ユーザデータが格納され、冗長領域37には、
対応する論理アドレスが格納される。なお、これら各ブ
ロック35−0〜35−12は、それぞれ一括消去の単
位である。
【0010】このような構成からなる従来のメモリシス
テム31に対し、ホストコンピュータ(図示せず)から
論理アドレスが供給されると、まず、アドレス変換テー
ブル32を構成する複数の記憶単位34−1〜34−1
3のうち、ホストコンピュータ(図示せず)から供給さ
れた論理アドレスが割り当てられた記憶単位に格納され
た物理アドレスが読み出される。例えば、ホストコンピ
ュータ(図示せず)から供給された論理アドレスが「0
009」であれば、この論理アドレスアドレスが割り当
てられた記憶単位34−9に格納された物理アドレス
「0001」が読み出される。そして、フラッシュメモ
リ33を構成する複数のブロック35−0〜35−12
のうち、アドレス変換テーブル32から読み出された物
理アドレスが割り当てられたブロックがアクセスされ
る。例えば、アドレス変換テーブル32から読み出され
た物理アドレスアドレスが「0001」であれば、この
物理アドレスが割り当てられたブロック35−1がアク
セスされる。
【0011】このように、フラッシュメモリシステムに
おいては、アドレス変換テーブルを用いることによっ
て、ホストコンピュータ5から与えられる論理アドレス
と、当該論理アドレスに対応するフラッシュメモリ上の
物理アドレスとの関係を、動的に変化させることが可能
となる。
【0012】
【発明が解決しようとする課題】しかし、近年、フラッ
シュメモリの記憶容量は徐々に大容量化しており、一括
消去の単位であるブロックの数も徐々に増大している。
このため、従来のフラッシュメモリシステムにおいて
は、フラッシュメモリに含まれるブロック数が増大する
と、これに比例して、アドレス変換テーブルに要求され
る記憶容量が増大するという問題が生じていた。
【0013】しかも、アドレス変換テーブルは、一般
に、フラッシュメモリを制御するメモリコントローラ内
に設けられたSRAM(スタティック・ランダム・アク
セス・メモリ)に格納されるが、SRAMは、アクセス
速度がきわめて速いという利点を有している反面、SR
AMセル1個あたりに必要なトランジスタ数が多いた
め、集積度を高めることが困難であるという欠点があ
る。このため、アドレス変換テーブルに要求される記憶
容量が増大すると、フラッシュメモリを制御するメモリ
コントローラのチップ面積が増大し、結果として、フラ
ッシュメモリシステムのコストの増大をもたらすという
問題があった。
【0014】したがって、本発明の目的は、アドレス変
換テーブルに要求される記憶容量が低減されたメモリコ
ントローラ及びフラッシュメモリシステム、並びに、記
憶容量が低減されたアドレス変換テーブルを用いたフラ
ッシュメモリへのアクセス方法を提供することである。
【0015】
【課題を解決するための手段】本発明のかかる目的は、
ホストコンピュータより供給されるホストアドレスに基
づいて、複数のエリアに分割されたメモリをアクセスす
るメモリコントローラであって、それぞれアドレス変換
情報が格納された複数のスコープを含むアドレス変換テ
ーブルと、前記ホストアドレスの第1の部分に基づいて
前記複数のスコープのいずれかを選択する手段と、前記
選択されたスコープに格納されたアドレス変換情報に基
づいて、前記ホストアドレスの第2の部分を変換アドレ
スに変換する手段と、少なくとも前記変換アドレスに基
づいて前記メモリをアクセスする手段とを備え、前記複
数のスコープに格納されたアドレス変換情報が、それぞ
れ対応するエリアに関わるアドレス変換情報であり、且
つ、前記スコープの数が、前記エリアの数よりも少ない
ことを特徴とするメモリコントローラによって達成され
る。
【0016】本発明によれば、スコープの数がエリアの
数よりも少ないので、アドレス変換テーブルが占有する
記憶容量を低減することができる。
【0017】本発明の好ましい実施態様においては、前
記ホストアドレスの前記第1の部分によって特定される
エリアに関わるアドレス変換情報が前記アドレス変換テ
ーブルに格納されていないことに応答して、前記アドレ
ス変換テーブルに含まれる複数のスコープのいずれかに
格納されたアドレス変換情報を、前記特定されるエリア
に関わるアドレス変換情報に置き換える手段をさらに備
える。
【0018】本発明のさらに好ましい実施態様において
は、前記置き換える手段による置き換えが行われるスコ
ープを、前記ホストコンピュータからのアクセス履歴に
基づき決定する手段をさらに備える。
【0019】本発明のさらに好ましい実施態様によれ
ば、ホストコンピュータからのアクセス履歴に基づい
て、内容が更新されるスコープが決定されるので、アク
セス頻度が低いエリアに関わるアドレス変換情報が格納
されたスコープから順にその内容を更新することが可能
となる。
【0020】本発明の前記目的はまた、フラッシュメモ
リと、ホストコンピュータより供給されるホストアドレ
スに基づいて前記フラッシュメモリをアクセスするメモ
リコントローラとを備え、前記フラッシュメモリがそれ
ぞれ複数のブロックからなる複数のエリアに分割され、
前記メモリコントローラが、それぞれアドレス変換情報
が格納された複数のスコープを含むアドレス変換テーブ
ルと、前記ホストアドレスの第1の部分に基づいて前記
複数のスコープのいずれかを選択する手段と、前記選択
されたスコープに格納されたアドレス変換情報に基づい
て、前記ホストアドレスの第2の部分を物理ブロックア
ドレスに変換する手段と、前記ホストアドレスの第1の
部分に基づいて前記複数のエリアのいずれかを選択する
手段と、前記物理ブロックアドレスに基づいて前記選択
されたエリアに含まれる複数のブロックのいずれかを選
択する手段とを含み、前記アドレス変換テーブルに含ま
れるスコープの数が、前記エリアの数よりも少ないこと
を特徴とするフラッシュメモリシステムにより達成され
る。
【0021】本発明によれば、スコープの数がエリアの
数よりも少ないので、アドレス変換テーブルが占有する
記憶容量を低減することができる。
【0022】本発明の好ましい実施態様においては、前
記フラッシュメモリと前記メモリコントローラとが、同
一の筐体に収容されている。
【0023】本発明のさらに好ましい実施態様において
は、前記筐体がカード形状である。
【0024】本発明の前記目的はまた、m個のエリアに
分割されたフラッシュメモリへのアクセス方法であっ
て、ホストコンピュータより供給されるホストアドレス
を受けるステップと、前記供給されたホストアドレスの
第1の部分に基づいて、アドレス変換テーブルに含まれ
るn個(n<m)のスコープのいずれかを選択するステ
ップと、前記選択されたスコープに含まれるアドレス変
換情報に基づいて、前記ホストアドレスの第2の部分を
変換アドレスに変換するステップと、少なくとも前記変
換アドレスに基づいてフラッシュメモリをアクセスする
ステップとを備えるフラッシュメモリへのアクセス方法
により達成される。
【0025】本発明によれば、スコープの数がエリアの
数よりも少ないので、アドレス変換テーブルが占有する
記憶容量を低減することができる。
【0026】本発明の好ましい実施態様においては、前
記ホストアドレスの前記第1の部分によって特定される
エリアに関わるアドレス変換情報が前記アドレス変換テ
ーブルに格納されていないことに応答して、前記アドレ
ス変換テーブルに含まれるn個のスコープのいずれかに
格納されたアドレス変換情報を、前記特定されるエリア
に関わるアドレス変換情報に置き換えるステップをさら
に備える。
【0027】本発明のさらに好ましい実施態様において
は、前記置き換えるステップによる置き換えが行われる
スコープを、前記ホストコンピュータからのアクセス履
歴に基づき決定するステップをさらに備える。
【0028】本発明のさらに好ましい実施態様によれ
ば、ホストコンピュータからのアクセス履歴に基づい
て、内容が更新されるスコープが決定されるので、アク
セス頻度が低いエリアに関わるアドレス変換情報が格納
されたスコープから順にその内容を更新することが可能
となる。
【0029】
【発明の好ましい実施の形態】以下、添付図面に基づい
て、本発明の好ましい実施態様につき、詳細に説明を加
える。
【0030】図1は、本発明の好ましい実施態様にかか
るフラッシュメモリシステム1を概略的に示すブロック
図である。
【0031】図1に示されるように、フラッシュメモリ
システム1はカード形状であり、4個のフラッシュメモ
リチップ2−0〜2−3と、コントローラ3と、コネク
タ4とが、一つのカード内に集積されて構成される。フ
ラッシュメモリシステム1は、ホストコンピュータ5に
着脱可能に装着されて使用され、ホストコンピュータ5
に対する一種の外部記憶装置として用いられる。ホスト
コンピュータ5としては、文字、音声、あるいは画像情
報等の種々の情報を処理するパーソナルコンピュータや
デジタルスチルカメラをはじめとする各種情報処理装置
が挙げられる。
【0032】各フラッシュメモリチップ2−0〜2−3
は、それぞれ128Mバイト(1Gビット)の記憶容量
を有する半導体チップである。フラッシュメモリシステ
ム1においては、512バイトを1ページとし、これを
最小アクセス単位としている。したがって、これら各フ
ラッシュメモリチップ2−0〜2−3は、それぞれ25
6Kページのアドレス空間を含み、フラッシュメモリチ
ップ2−0〜2−3の合計で、1Mページのアドレス空
間を備えることになる。また、フラッシュメモリシステ
ム1においては、これら4つのフラッシュメモリチップ
2−0〜2−3は、512Mバイト(4Gビット)の記
憶容量を有し、1Mページのアドレス空間を備える一つ
の大きなメモリとして取り扱われる。このため、これら
1Mページからなるアドレス空間から特定のページにア
クセスするためには、20ビットのアドレス情報が必要
となる。したがって、ホストコンピュータ5は、フラッ
シュメモリシステム1に対し、20ビットのアドレス情
報を供給することによって、特定のページに対するアク
セスを行う。以下、ホストコンピュータ5よりフラッシ
ュメモリシステム1に供給される20ビットのアドレス
情報を「ホストアドレス」と呼ぶ。
【0033】コントローラ3は、マイクロプロセッサ6
と、ホストインターフェースブロック7と、SRAMワ
ークエリア8と、バッファ9と、フラッシュメモリイン
ターフェースブロック10と、ECC(エラー・コレク
ション・コード)ブロック11と、フラッシュシーケン
サブロック12とから構成される。これら機能ブロック
によって構成されるコントローラ3は、一つの半導体チ
ップ上に集積されている。
【0034】マイクロプロセッサ6は、コントローラ3
を構成する各機能ブロック全体の動作を制御するための
機能ブロックである。
【0035】ホストインターフェースブロック7は、バ
ス13を介してコネクタ4に接続されており、マイクロ
プロセッサ6による制御のもと、ホストコンピュータ5
とのデータやアドレス情報、ステータス情報、外部コマ
ンド情報の授受を行う。すなわち、フラッシュメモリシ
ステム1がホストコンピュータ5に装着されると、フラ
ッシュメモリシステム1とホストコンピュータ5とは、
バス13、コネクタ4及びとバス14を介して相互に接
続され、かかる状態において、ホストコンピュータ5よ
りフラッシュメモリシステム1に供給されるデータ等
は、ホストインターフェースブロック7を入口としてコ
ントローラ3の内部に取り込まれ、また、コントローラ
3よりホストコンピュータ5に供給されるデータ等は、
ホストインターフェースブロック7を出口としてホスト
コンピュータ5に供給される。
【0036】SRAMワークエリア8は、マイクロプロ
セッサ6によるフラッシュメモリチップ2−0〜2−3
の制御に必要なデータが一時的に格納される作業領域で
あり、複数のSRAMセルによって構成される。
【0037】バッファ9は、フラッシュメモリチップ2
−0〜2−3から読み出されたデータ及びフラッシュメ
モリチップ2−0〜2−3に書き込むべきデータを一時
的に蓄積するバッファである。すなわち、フラッシュメ
モリチップ2−0〜2−3から読み出されたデータは、
ホストコンピュータ5が受け取り可能な状態となるまで
バッファ9に保持され、フラッシュメモリチップ2−0
〜2−3に書き込むべきデータは、フラッシュメモリチ
ップ2−0〜2−3が書き込み可能な状態となるまでバ
ッファ9に保持される。
【0038】フラッシュメモリインターフェースブロッ
ク10は、バス15を介して、フラッシュメモリチップ
2−0〜2−3とのデータやアドレス情報、ステータス
情報、内部コマンド情報の授受を行うとともに、各フラ
ッシュメモリチップ2−0〜2−3に対して対応するチ
ップ選択信号#0〜#3を供給するための機能ブロック
である。チップ選択信号#0〜#3は、ホストコンピュ
ータ5からデータの読み出しまたは書き込みが要求され
た場合、ホストコンピュータ5より供給されるホストア
ドレスの上位2ビットに基づいて、そのいずれかが活性
化される信号である。具体的には、ホストアドレスの上
位2ビットが「00」であればチップ選択信号#0が活
性化され、「01」であればチップ選択信号#1が活性
化され、「10」であればチップ選択信号#2が活性化
され、「11」であればチップ選択信号#3が活性化さ
れる。対応するチップ選択信号が活性化されたフラッシ
ュメモリチップ2−0〜2−3は選択状態となり、デー
タの読み出しまたは書き込みが可能となる。尚、「内部
コマンド」とは、コントローラ3がフラッシュメモリチ
ップ2−0〜2−3を制御するためのコマンドであり、
ホストコンピュータ5がフラッシュメモリシステム1を
制御するための「外部コマンド」と区別される。
【0039】ECCブロック11は、フラッシュメモリ
チップ2−0〜2−3に書き込むデータに付加すべきエ
ラーコレクションコードを生成するとともに、読み出し
データにを付加されたエラーコレクションコードに基づ
いて、読み出しデータに含まれる誤りを訂正するための
機能ブロックである。
【0040】フラッシュシーケンサブロック12は、フ
ラッシュメモリチップ2−0〜2−3とバッファ9との
データの転送を制御するための機能ブロックである。フ
ラッシュシーケンサブロック12は、複数のレジスタ
(図示せず)を備え、マイクロプロセッサ6による制御
のもと、フラッシュメモリチップ2−0〜2−3からの
データの読み出しまたはフラッシュメモリチップ2−0
〜2−3へのデータの書き込みに必要な値がこれらレジ
スタに設定されると、データの読み出しまたは書き込み
に必要な一連の動作を自動的に実行する。
【0041】次に、各フラッシュメモリチップ2−0〜
2−3を構成する各フラッシュメモリセルの具体的な構
造について説明する。
【0042】図2は、フラッシュメモリチップ2−0〜
2−3を構成する各フラッシュメモリセル16の構造を
概略的に示す断面図である。
【0043】図2に示されるように、フラッシュメモリ
セル16は、P型半導体基板17に形成されたN型のソ
ース拡散領域18及びドレイン拡散領域19と、ソース
拡散領域18とドレイン拡散領域19との間のP型半導
体基板17を覆って形成されたトンネル酸化膜20と、
トンネル酸化膜20上に形成されたフローティングゲー
ト電極21と、フローティングゲート電極21上に形成
された絶縁膜22と、絶縁膜22上に形成されたコント
ロールゲート電極23とから構成される。このような構
成を有するフラッシュメモリセル16は、フラッシュメ
モリチップ2−0〜2−3内において、複数個直列に接
続されて、NAND型フラッシュメモリを構成する。
【0044】フラッシュメモリセル16は、フローティ
ングゲート電極21に電子が注入されているか否かによ
って、「消去状態」と「書込状態」のいずれかの状態が
示される。フラッシュメモリセル16が消去状態である
ことは、当該フラッシュメモリセル16にデータ「1」
が保持されていることを意味し、フラッシュメモリセル
16が書込状態であることは、当該フラッシュメモリセ
ル16にデータ「0」が保持されていることを意味す
る。すなわち、フラッシュメモリセル16は、1ビット
のデータを保持することが可能である。
【0045】図2に示されるように、消去状態とは、フ
ローティングゲート電極21に電子が注入されていない
状態を指す。消去状態においては、コントロールゲート
電極23に読み出し電圧が印加されていないときには、
ソース拡散領域18とドレイン拡散領域19との間のP
型半導体基板17の表面にはチャネルが形成されず、し
たがって、ソース拡散領域18とドレイン拡散領域19
とは、P型半導体基板17によって電気的に絶縁され
る。一方、コントロールゲート電極23に読み出し電圧
が印加されると、ソース拡散領域18とドレイン拡散領
域19との間のP型半導体基板17の表面にチャネル
(図示せず)が形成され、これにより、ソース拡散領域
18とドレイン拡散領域19とは、チャネルによって電
気的に接続される。すなわち、コントロールゲート電極
23に読み出し電圧が印加されていない状態では、ソー
ス拡散領域18とドレイン拡散領域19とは電気的に絶
縁され、コントロールゲート電極23に読み出し電圧が
印加された状態では、ソース拡散領域18とドレイン拡
散領域19とは電気的に接続される。
【0046】図3は、書込状態であるフラッシュメモリ
セル16を概略的に示す断面図である。
【0047】図3に示されるように、書込状態とは、フ
ローティングゲート電極21に電子が蓄積されている状
態を指す。フローティングゲート電極21はトンネル酸
化膜20及び絶縁膜22に挟まれているため、一旦、フ
ローティングゲート電極21に注入された電子は、きわ
めて長時間フローティングゲート電極21内にとどま
る。書込状態においては、フローティングゲート電極2
1に電子が蓄積されているので、コントロールゲート電
極23に読み出し電圧が印加されているか否かに関わら
ず、ソース拡散領域18とドレイン拡散領域19との間
のP型半導体基板17の表面にはチャネル24が形成さ
れる。したがって、ソース拡散領域18とドレイン拡散
領域19とは、コントロールゲート電極23に読み出し
電圧が印加されているか否かに関わらず、チャネル24
によって常に電気的に接続状態となる。
【0048】ここで、選択されたフラッシュメモリセル
16が消去状態であるか書込状態であるかは、次のよう
にして読み出すことができる。すなわち、複数個直列に
接続されたフラッシュメモリセル16のうち、選択され
たフラッシュメモリセル16以外の全てのフラッシュメ
モリセル16のコントロールゲート電極23に読み出し
電圧が印加され、この状態において、これらフラッシュ
メモリセル16の直列体に電流が流れるか否かの検出が
行われる。その結果、かかる直列体に電流が流れれば、
選択されたフラッシュメモリセル16が書込状態である
と判断され、かかる直列体に電流が流れなければ、選択
されたフラッシュメモリセル16が消去状態であると判
断される。このようにして、直列体に含まれる任意のフ
ラッシュメモリセル16に保持されたデータが「0」で
あるのか「1」であるのかを読み出すことができる。但
し、NAND型フラッシュメモリにおいては、ひとつの
直列体に含まれる2以上のフラッシュメモリセル16に
保持されたデータを同時に読み出すことはできない。
【0049】また、消去状態であるフラッシュメモリセ
ル16を書込状態に変化させる場合、コントロールゲー
ト電極23に正の高電圧が印加され、これによって、ト
ンネル酸化膜20を介してフローティングゲート電極2
1へ電子が注入される。フローティングゲート電極21
への電子の注入は、FNトンネル電流による注入が可能
である。一方、書込状態であるフラッシュメモリセル1
6を消去状態に変化させる場合、コントロールゲート電
極23に負の高電圧が印加され、これによって、トンネ
ル酸化膜20を介してフローティングゲート電極21に
蓄積された電子が排出される。
【0050】次に、各フラッシュメモリチップ2−0〜
2−3の持つアドレス空間の具体的な構成について説明
する。
【0051】図4は、フラッシュメモリチップ2−0の
アドレス空間の構造を概略的に示す図である。
【0052】図4に示されるように、フラッシュメモリ
チップ2−0のアドレス空間は、エリア0〜エリア7か
らなる8つのエリアに分割される。また、図4には示さ
れていないが、フラッシュメモリチップ2−1〜2−3
も、フラッシュメモリチップ2−0と同様に8つのエリ
アに分割されており、フラッシュメモリチップ2−1
は、エリア8〜エリア15からなる8つのエリアに分割
され、フラッシュメモリチップ2−2は、エリア16〜
エリア23からなる8つのエリアに分割され、フラッシ
ュメモリチップ2−3は、エリア24〜エリア31から
なる8つのエリアに分割されている。これら各エリア0
〜エリア31は、いずれも16Mバイトの記憶容量を有
する。
【0053】さらに、フラッシュメモリチップ2−0を
構成する各エリア0〜エリア7は、それぞれ1024の
ブロックによって構成される。例えば、エリア0は、図
4に示されるようにブロック0〜ブロック1023によ
って構成され、エリア1は、ブロック1024〜ブロッ
ク2047によって構成され、エリア7は、ブロック7
168〜ブロック8191によって構成される。したが
って、図4に示されるように、フラッシュメモリチップ
2−0は、ブロック0〜ブロック8191からなる81
92個のブロックによって構成されることになる。ま
た、図4には示されていないが、フラッシュメモリチッ
プ2−1〜2−3も、フラッシュメモリチップ2−0と
同様に8192個のブロックによって構成され、フラッ
シュメモリチップ2−1は、ブロック8192〜ブロッ
ク16383を有し、フラッシュメモリチップ2−2
は、ブロック16384〜ブロック24575を有し、
フラッシュメモリチップ2−3は、ブロック24576
〜ブロック32767を有する。これら各ブロック0〜
ブロック32767は、いずれも16Kバイトの記憶容
量を有する。
【0054】ここで、上記各ブロック0〜ブロック32
767は、データの消去単位である。すなわち、フラッ
シュメモリチップ2−0〜2−3では、各フラッシュメ
モリセル16ごとに、その状態を書込状態から消去状態
に変化させることはできず、フラッシュメモリセル16
をを書込状態から消去状態に変化させる場合は、当該フ
ラッシュメモリセル16が属するブロックに含まれる全
てのフラッシュメモリセル16が一括して消去状態とさ
れる。逆に、フラッシュメモリチップ2−0〜2−3で
は、各フラッシュメモリセル16ごとに、その状態を消
去状態から書込状態に変化させることは可能である。
【0055】さらに、図4に示されるように、フラッシ
ュメモリチップ2−0を構成する各ブロック0〜ブロッ
ク8191は、それぞれ32のページによって構成さ
れ、各ブロック0〜ブロック8191を構成する32の
ページには、ページアドレスとしてページ0〜ページ3
1が割り当てられる。また、フラッシュメモリチップ2
−1〜2−3を構成する各ブロック8192〜ブロック
32767も、フラッシュメモリチップ2−0を構成す
る各ブロック0〜ブロック8191と同様に、それぞれ
32のページによって構成され、各ブロック8192〜
ブロック32767を構成する32のページには、ペー
ジアドレスとしてページ0〜ページ31が割り当てられ
る。
【0056】これら各ページはデータの読み出し及び書
き込みにおけるアクセス単位であり、図4に示されるよ
うに、ビットb0〜b7からなる8ビットを1バイトと
して、それぞれ512バイトのユーザ領域25と16バ
イトの冗長領域26によって構成される。ユーザ領域2
5は、ホストコンピュータ5より供給されるユーザデー
タが格納される領域であり、冗長領域26は、ECCブ
ロック11によって生成されたエラーコレクションコー
ド等の付加情報が格納される領域である。エラーコレク
ションコードは、対応するユーザ領域25に格納された
データの誤りを訂正するための付加情報であり、ユーザ
領域25に格納されたデータに含まれるデータの誤りが
所定数以下であれば、これを訂正し、正しいデータとす
るために用いられる。
【0057】このような構成からなるフラッシュメモリ
チップ2−0〜2−3に対し、ホストコンピュータ5
は、ホストアドレスをフラッシュメモリシステム1に供
給することにより、特定のページに対して、512バイ
トを1単位としたデータの読み出し及び書き込みを指示
する。このように、各ページは、512バイトのユーザ
領域10と16バイトの冗長領域11からなるので、各
ページは、8×(512バイト+16バイト)=422
4個のフラッシュメモリセルによって構成されることに
なる。
【0058】このような構成からなるフラッシュメモリ
チップ2−0〜2−3は、上述のとおり、1Mページの
アドレス空間を備える一つの大きなメモリとして取り扱
われるので、これら1Mページからなるアドレス空間か
ら特定のページにアクセスするためには、上述のとお
り、20ビットのホストアドレスが用いられる。20ビ
ットのホストアドレスのうち、上位5ビットは、エリア
0〜エリア31からなる32個のエリアのうちいずれか
一のエリアを特定するために用いられ、上位6ビット〜
上位15ビットからなる10ビットは、特定されたエリ
アに含まれる1024個のブロックのうちいずれか一の
ブロックを特定するために用いられ、残りの5ビット
(下位5ビット)は、特定されたブロックに含まれるペ
ージ0〜ページ31からなる32個のページのうちいず
れか一のページを特定するために用いられる。後述する
が、上位5ビットを用いたエリアの特定及び下位5ビッ
トを用いたページの特定は、ホストコンピュータ5から
供給されるホストアドレスによって一義的に決まる一
方、上位6ビット〜上位15ビットからなる10ビット
を用いたブロックの特定はホストアドレスによっては一
義的に決まらない。すなわち、ホストアドレスの上位6
ビット〜上位15ビットからなる10ビットを「論理ブ
ロックアドレス」と呼び、実際にアクセスされるブロッ
クのアドレスを「物理ブロックアドレス」と呼べば、論
理ブロックアドレスと物理ブロックアドレスとは一致せ
ず、後述する「アドレス変換テーブル」にて、論理ブロ
ックアドレスを物理ブロックアドレスに変換した後、物
理ブロックアドレスに基づいて実際にアクセスすべきブ
ロックが特定される。
【0059】ここで、アドレス変換テーブルを用いて論
理ブロックアドレスを物理ブロックアドレスに変換する
必要性について説明する。
【0060】上述のとおり、フラッシュメモリチップ2
−0〜2−3を構成するフラッシュメモリセル16は、
これをメモリセル単位にて消去状態から書込状態へ変化
させることはできる一方、これを書込状態から消去状態
へ変化させることは、メモリセル単位で行うことができ
ず、ブロック単位でしか行うことができない。このた
め、あるページにデータを書き込む際には、そのページ
のユーザ領域25を構成する全てのフラッシュメモリセ
ル16が消去状態となっている必要があり、既に何らか
のデータが書き込まれているページ、すなわち、そのペ
ージのユーザ領域25を構成するフラッシュメモリセル
16が一つでも書込状態となっているページに、これと
異なるデータを直接上書きすることはできない。したが
って、既にデータの書き込まれたページに対し、これと
異なる新しいデータを書き込むためには、一旦、このペ
ージが属するブロックを構成するフラッシュメモリセル
16を全て消去状態とし、その後に新しいデータを書き
込むという処理が必要となる。
【0061】したがって、あるページに格納された古い
データに新しいデータを上書きしようとする場合、この
ページが属するブロックに含まれる他のページに格納さ
れたデータが消失するのを防ぐためには、当該他のペー
ジに格納されたデータを、他のブロックに移動させると
いう処理が必要となる。したがって、ホストアドレスに
含まれる論理ブロックアドレスと、当該論理ブロックア
ドレスに対応するフラッシュメモリチップ2−0〜2−
3上の物理ブロックアドレスとの関係は、ホストコンピ
ュータ5からデータの上書きが指示される度に動的に変
化する。このような理由から、ホストコンピュータ5か
らフラッシュメモリチップ2−0〜2−3をアクセスす
るためには、ホストコンピュータ5から与えられる論理
ブロックアドレスと、当該論理ブロックアドレスに対応
するフラッシュメモリ上の物理ブロックアドレスとの関
係を示す情報が格納されるアドレス変換テーブルが必要
となるのである。アドレス変換テーブルの詳細について
は後述する。
【0062】ここで、各ブロックの先頭ページ(ページ
0)を構成する冗長領域26には、上記エラーコレクシ
ョンコードの他、消去フラグ及び対応論理ブロックアド
レスが格納される。消去フラグ及び対応論理ブロックア
ドレスの詳細については後述するが、消去フラグは、当
該ブロックが消去済みブロック、すなわち、ユーザ領域
25を構成するフラッシュメモリセル16がすべて消去
状態となっているブロックであるか否かを示すフラグで
あり、対応論理ブロックアドレスは、対応する消去フラ
グによって、当該ブロックが消去済みブロックではなく
データが格納されているブロックであることが示されて
いる場合に格納される情報であり、当該ブロックがいか
なる論理ブロックアドレスによりアクセスされるかを示
している。
【0063】次に、SRAMワークエリア8に格納され
る各種作業データについて説明する。SRAMワークエ
リア8には、少なくとも、アドレス変換テーブル27、
管理テーブル28、優先リンク29及び消去済みブロッ
クキュー30が格納される。
【0064】図5は、SRAMワークエリア8に格納さ
れるアドレス変換テーブル27のデータ構造を示す概略
図である。
【0065】図5に示されるように、アドレス変換テー
ブル27は、スコープ0〜スコープ3からなる4つのス
コープによって構成され、これら各スコープ0〜スコー
プ3は、それぞれ1024の物理ブロックアドレス格納
領域によって構成される。例えば、スコープ0は、図5
に示されるように物理ブロックアドレス格納領域0〜物
理ブロックアドレス格納領域1023によって構成され
る。同様に、図5には示されていないが、スコープ1
は、物理ブロックアドレス格納領域1024〜物理ブロ
ックアドレス格納領域2047によって構成され、スコ
ープ2は、物理ブロックアドレス格納領域2048〜物
理ブロックアドレス格納領域3071によって構成さ
れ、スコープ3は、物理ブロックアドレス格納領域30
72〜物理ブロックアドレス格納領域4095によって
構成される。
【0066】これら物理ブロックアドレス格納領域0〜
物理ブロックアドレス格納領域4095には、それぞれ
対応する物理ブロックアドレスが格納され、これによっ
て、スコープ0〜スコープ3は、それぞれ対応するエリ
アに関わるアドレス変換情報を構成する。すなわち、各
スコープ0〜スコープ3を構成する1024個の物理ブ
ロックアドレス格納領域には、それぞれ論理ブロックア
ドレス0〜論理ブロックアドレス1023からなる論理
ブロックアドレスが割り当てられ、これら割り当てられ
た論理ブロックアドレスと、これに格納された物理ブロ
ックアドレスとが、対応関係を有することになる。具体
的には、ホストコンピュータ5から供給された論理ブロ
ックアドレス(ホストアドレスの上位6ビット〜上位1
5ビットからなる10ビット)が「010101010
1B」であれば、論理ブロックアドレスとして「34
1」が割り当てられた物理ブロックアドレス格納領域が
選択され、ここに格納されている物理ブロックアドレ
ス、例えば、格納されている物理ブロックアドレスが
「0000011111B」であれば、物理ブロックア
ドレスとして「31」が読み出され、これにより、論理
ブロックアドレス341から物理ブロックアドレス31
への変換が完了する。
【0067】なお、これらスコープ0〜スコープ3が、
それぞれどのエリアに対応するのかは、後述する管理テ
ーブル28によって示される。ここでは、アドレス変換
テーブル27に含まれるスコープ数(4個)が、フラッ
シュメモリチップ2−0〜2−3に含まれるエリア数
(32個)よりも少ない点に留意されたい。すなわち、
アドレス変換テーブル27は、フラッシュメモリチップ
2−0〜2−3に含まれる全てのエリアに関わるアドレ
ス変換情報が格納されるのではなく、その一部、つまり
4エリア分のアドレス変換情報のみが、それぞれスコー
プ0〜スコープ3に格納される。
【0068】また、これら各物理ブロックアドレス格納
領域0〜物理ブロックアドレス格納領域4095は、そ
れぞれSRAMワークエリア8の10ビットの記憶領域
を使用しており、それぞれには物理ブロックアドレス
が、10ビットのデータによって格納されている。した
がって、アドレス変換テーブル27は、SRAMワーク
エリア8の記憶容量のうち、5.12kバイト(409
60ビット)を占有することとなる。
【0069】アドレス変換テーブル27の生成は、次の
ように行われる。
【0070】フラッシュメモリチップ2−0〜2−3を
構成する各ブロックのうち、データが格納されているブ
ロックの各先頭ページ(ページ0)に含まれる冗長領域
26には、上述のとおり、ECCブロック11によって
生成されたエラーコレクションコードの他、当該ブロッ
クがいかなる論理ブロックアドレスによりアクセスされ
るかを示す「対応論理ブロックアドレス」が含まれてい
る。各ブロックにデータが格納されているか否かは、
「消去フラグ」を参照することにより判断することがで
きるので、マイクロプロセッサ6による制御のもと、消
去フラグによってデータが格納されていることが示され
ているブロックが検索され、データが格納されているこ
とが示されているブロックの先頭ページ(ページ0)に
含まれる冗長領域26に格納された対応論理ブロックア
ドレスが、フラッシュメモリインターフェースブロック
10を介して読み出される。そして、所定のスコープを
構成する物理ブロックアドレス格納領域のうち、読み出
された対応論理ブロックアドレスと同じ論理ブロックア
ドレスが割り当てられた物理ブロックアドレス格納領域
に、かかる対応論理ブロックアドレスを読み出したブロ
ックの物理ブロックアドレスを格納する。例えば、対応
論理ブロックアドレスを読み出したブロックの物理ブロ
ックアドレスが「10」であり、読み出された対応論理
ブロックアドレスが、「123」であれば、論理ブロッ
クアドレスとして「123」が割り当てられた物理ブロ
ックアドレス格納領域に、物理ブロックアドレスとして
「10」が書き込まれる。このようにして、所定のエリ
アを構成する物理ブロックアドレス「10」についての
アドレス変換情報の作成が完了する。
【0071】このような処理が、上記エリアを構成する
ブロックのうち、データが格納されている全てのブロッ
クについて行われ、これにより、上記所定のスコープを
構成する物理ブロックアドレス格納領域に、それぞれ対
応する物理ブロックアドレスが格納されることになる。
【0072】そして、このような処理を所定の4つのエ
リアについて行うことにより、アドレス変換テーブル2
7を構成する4つのスコープを構成する物理ブロックア
ドレス格納領域に、それぞれ対応する物理ブロックアド
レスが格納され、アドレス変換テーブル27の作成作業
が完了する。尚、32個のエリアのうち、どのエリアに
ついてアドレス変換情報を作成するかについては、後述
する管理テーブル28によって定められる。
【0073】次に、SRAMワークエリア8に格納され
る管理テーブル28のデータ構造について説明する。
【0074】図6は、SRAMワークエリア8に格納さ
れる管理テーブル28のデータ構造を示す概略図であ
る。
【0075】図6に示されるように、管理テーブル28
は、エリア番号格納領域0〜エリア番号格納領域3から
なる4つのエリア番号格納領域によって構成される。こ
れら各エリア番号格納領域0〜エリア番号格納領域3
は、それぞれSRAMワークエリア8の1バイトの記憶
領域を使用しており、それぞれにはエリア番号が、5ビ
ットのデータによって格納されている。したがって、管
理テーブル28は、SRAMワークエリア8の記憶容量
のうち、4バイトを占有することとなる。
【0076】管理テーブル28は、アドレス変換テーブ
ル27を構成するスコープ0〜スコープ3が、それぞれ
フラッシュメモリチップ2−0〜2−3を構成するどの
エリアに関わるアドレス変換情報を格納しているかを示
す管理テーブルである。具体的には、エリア番号格納領
域0に格納されたエリア番号は、スコープ0に格納され
ているアドレス変換情報が、当該エリア番号により特定
されるエリアに関わるアドレス変換情報であることを示
し、エリア番号格納領域1に格納されたエリア番号は、
スコープ1に格納されているアドレス変換情報が、当該
エリア番号により特定されるエリアに関わるアドレス変
換情報であることを示し、エリア番号格納領域2に格納
されたエリア番号は、スコープ2に格納されているアド
レス変換情報が、当該エリア番号により特定されるエリ
アに関わるアドレス変換情報であることを示し、エリア
番号格納領域3に格納されたエリア番号は、スコープ3
に格納されているアドレス変換情報が、当該エリア番号
により特定されるエリアに関わるアドレス変換情報であ
ることを示す。
【0077】管理テーブル28の生成は、マイクロプロ
セッサ6による制御のもと、上述したアドレス変換テー
ブル27の生成の際に行われる。
【0078】次に、SRAMワークエリア8に格納され
る優先リンク29のデータ構造について説明する。
【0079】図7は、SRAMワークエリア8に格納さ
れる優先リンク29のデータ構造を示す概略図である。
【0080】図7に示されるように、優先リンク29
は、ポインタ0〜ポインタ3からなる4つのポインタに
よって構成される。これら各ポインタ0〜ポインタ3
は、それぞれSRAMワークエリア8の1バイトの記憶
領域を使用しており、それぞれにはリンク先ポインタ番
号またはデータ「NULL」が格納されている。したが
って、優先リンク29は、SRAMワークエリア8の記
憶容量のうち、4バイトを占有することとなる。
【0081】優先リンク29は、アドレス変換テーブル
27を構成する4つのスコープ(スコープ0〜スコープ
3)の優先順位を示す要素であり、優先リンク29を構
成するポインタ0〜ポインタ3は、それぞれアドレス変
換テーブル27を構成するスコープ0〜スコープ3に対
応している。
【0082】優先リンク29によって、アドレス変換テ
ーブル27を構成する4つのスコープの優先順位を示す
具体的な方法について説明する前に、アドレス変換テー
ブル27を構成する4つのスコープに優先順位を設ける
必要性について説明する。
【0083】上述のとおり、アドレス変換テーブル27
を構成するスコープの数(4スコープ)は、フラッシュ
メモリチップ2−0〜2−3を構成するエリアの数(3
2エリア)よりも少なく、このため、アドレス変換テー
ブル27に展開されるアドレス変換情報は、フラッシュ
メモリチップ2−0〜2−3を構成する全エリアの一部
に関わるアドレス変換情報に限られる。したがって、ア
ドレス変換テーブル27にアドレス変換情報が展開され
ていないエリアに対して、ホストコンピュータ5からア
クセスが要求された場合には、アドレス変換テーブル2
7の内容を更新する必要がある。すなわち、マイクロプ
ロセッサ6は、アドレス変換テーブル27を構成する4
つのスコープの中からいずれか1つのスコープを選び、
その内容を消去して、アクセスが要求されたエリアに関
わるアドレス変換情報を当該スコープ内に新たに展開す
る必要がある。したがって、アドレス変換テーブル27
を構成する4つのスコープの中から、その内容が消去さ
れるべきスコープを選ぶためには、アドレス変換テーブ
ル27を構成する4つのスコープに優先順位を設け、優
先順位の低いスコープから順にその内容を消去する必要
がある。
【0084】かかる理由から、アドレス変換テーブル2
7を構成する4つのスコープには、優先順位が設けら
れ、かかる優先順位を記憶するために優先リンク29が
設けられるのである。
【0085】次に、優先リンク29を用いた、スコープ
0〜スコープ3の優先順位の記憶方法について、図面を
用いて詳細に説明する。
【0086】図8は、優先リンク29によって、優先順
位としてスコープ0→スコープ1→スコープ2→スコー
プ3が記憶される場合を示す図である。
【0087】図8に示されるように、優先順位がスコー
プ0→スコープ1→スコープ2→スコープ3の順である
場合、ポインタ0には、リンク先ポインタ番号として
「1」が格納され、ポインタ1には、リンク先ポインタ
番号として「2」が格納され、ポインタ2には、リンク
先ポインタ番号として「3」が格納され、ポインタ3に
は、データ「NULL」が格納される。
【0088】上述のとおり、優先リンク29を構成する
ポインタ0〜ポインタ3は、それぞれアドレス変換テー
ブル27を構成するスコープ0〜スコープ3に対応して
おり、いずれのポインタにもリンク先ポインタ番号とし
て格納されていないポインタ、すなわち、ポインタ0に
対応するスコープ(スコープ0)が最も優先順位の高い
スコープとなり、以下、当該ポインタ0に格納されたリ
ンク先ポインタ番号「1」により示されるポインタ、す
なわち、ポインタ1に対応するスコープ(スコープ1)
が次に優先順位の高いスコープとなり、当該ポインタ1
に格納されたリンク先ポインタ番号「2」により示され
るポインタ、すなわち、ポインタ2に対応するスコープ
(スコープ2)が次に優先順位の高いスコープとなり、
当該ポインタ2に格納されたリンク先ポインタ番号
「3」により示されるポインタ、すなわち、ポインタ3
に対応するスコープ(スコープ3)が最も優先順位の低
いスコープとなる。これにより、優先順位は、スコープ
0→スコープ1→スコープ2→スコープ3の順となる。
最も優先順位の低いスコープに対応するポインタ3に
は、データ「NULL」が格納されている。
【0089】優先リンク29に、このような優先順位が
記憶されている状態において、ホストコンピュータ5か
ら、例えば、スコープ2に対応するエリアに対するアク
セスがされた場合、以下に説明するように、優先リンク
29によって記憶される優先順位が変更され、いまアク
セスされたスコープ2の優先順位が最も高くなる。
【0090】図9は、優先リンク29によって、優先順
位としてスコープ2→スコープ0→スコープ1→スコー
プ3が記憶される場合を示す図である。
【0091】図9に示されるように、優先順位がスコー
プ0→スコープ1→スコープ2→スコープ3の順である
状態において、スコープ2に対応するエリアに対するア
クセスがされると、マイクロプロセッサ6による制御の
もと、ポインタ1の内容であるリンク先ポインタ番号が
「3」に変更され、ポインタ2の内容であるリンク先ポ
インタ番号が「0」に変更される。かかる動作は、以下
の手順で行われる。
【0092】まず、今アクセスされたスコープのスコー
プ番号「2」と同じ番号がリンク先ポインタ番号として
格納されているポインタ(ポインタ1)の内容が、いま
アクセスされたスコープに対応するポインタ(ポインタ
2)に格納されたポインタ番号「3」に書き換えられ
る。次に、いまアクセスされたスコープに対応するポイ
ンタ(ポインタ2)の内容が、リンク先ポインタ番号と
して現在最も優先順位の高いスコープに対応するポイン
タ番号「0」に書き換えられる。これによって、上述の
とおり、ポインタ1の内容であるリンク先ポインタ番号
が「3」に変更され、ポインタ2の内容であるリンク先
ポインタ番号が「0」に変更される。
【0093】このように内容が書き換えられた優先リン
ク29においても、いずれのポインタにもリンク先ポイ
ンタ番号として格納されていないポインタ、すなわち、
ポインタ2に対応するスコープ(スコープ2)が最も優
先順位の高いスコープとなり、以下、当該ポインタ2に
格納されたリンク先ポインタ番号「0」により示される
ポインタ、すなわち、ポインタ0に対応するスコープ
(スコープ0)が次に優先順位の高いスコープとなり、
当該ポインタ0に格納されたリンク先ポインタ番号
「1」により示されるポインタ、すなわち、ポインタ1
に対応するスコープ(スコープ1)が次に優先順位の高
いスコープとなり、当該ポインタ1に格納されたリンク
先ポインタ番号「3」により示されるポインタ、すなわ
ち、ポインタ3に対応するスコープ(スコープ3)が最
も優先順位の低いスコープとなる。これにより、優先順
位は、スコープ2→スコープ0→スコープ1→スコープ
3の順となる。最も優先順位の低いスコープに対応する
ポインタ3には、データ「NULL」が格納されてい
る。
【0094】このような動作により、いまアクセスされ
たスコープ(スコープ2)の優先順位が最も高くなり、
以降の優先順位は、以前記憶されていた優先順位と同じ
優先順位となる。
【0095】同様にして、優先リンク29に、このよう
な優先順位が記憶されている状態において、ホストコン
ピュータ5から、例えば、スコープ3に対応するエリア
に対するアクセスがされると、ポインタ1の内容である
リンク先ポインタ番号がデータ「NULL」に変更さ
れ、ポインタ3の内容であるリンク先ポインタ番号が
「2」に変更されて、優先順位はスコープ3→スコープ
2→スコープ0→スコープ1に変更される。
【0096】図10は、優先リンク29によって、優先
順位としてスコープ3→スコープ2→スコープ0→スコ
ープ1が記憶される場合を示す図である。
【0097】さて、優先リンク29に、このような優先
順位が記憶されている状態において、ホストコンピュー
タ5から、アドレス変換テーブル27を構成するいずれ
のスコープにもアドレス変換情報が格納されていないエ
リアに対するアクセスがされた場合について説明する。
【0098】ホストコンピュータ5から、アドレス変換
テーブル27を構成するいずれのスコープにもアドレス
変換情報が格納されていないエリアに対するアクセスが
された場合、マイクロプロセッサ6による制御のもと、
現在最も優先順位が低いスコープに格納された内容(ア
ドレス変換情報)が消去され、代わりに、当該スコープ
に、今アクセスが要求されたエリアに関わるアドレス変
換情報が、新たに当該スコープ上に作成される。最も優
先順位が低いスコープの検索は、優先リンク29を構成
するポインタ0〜ポインタ3のうち、データ「NUL
L」が格納されているポインタを探すことにより行われ
る。上述のとおり、優先リンク29の内容が図10に示
される状態にある場合には、「NULL」が格納されて
いるポインタはポインタ1であるので、ポインタ1に対
応するスコープであるスコープ1の優先順位が最も低い
ことが検出される。
【0099】また、アドレス変換テーブル23の内容が
更新される際の、アドレス変換情報の作成方法は上述の
とおりであり、アクセスが要求されたエリアを構成する
ブロックのうち、データが格納されているブロックの各
先頭ページ(ページ0)に含まれる冗長領域26に格納
された対応論理ブロックアドレスが、マイクロプロセッ
サ6による制御のもと、フラッシュメモリインターフェ
ースブロック10を介して順次読み出される。これによ
って、更新されるべきスコープ1上に、アクセスが要求
されたエリアに関わるアドレス変換情報が作成される。
【0100】このようにして、最も優先順位が低いスコ
ープ1に格納されたアドレス変換情報が書き換えられる
と、スコープ1が、現在アクセスが要求されたエリアに
対応するスコープである旨を記憶すべく、マイクロプロ
セッサ6による制御のもと、管理テーブル28の内容が
更新される。さらに、マイクロプロセッサ6による制御
のもと、優先リンク29によって記憶される優先順位が
変更され、いま更新されアクセスされたスコープ1の優
先順位が最も高くなる。
【0101】図11は、優先リンク29によって、優先
順位としてスコープ1→スコープ3→スコープ2→スコ
ープ0が記憶される場合を示す図である。
【0102】図11に示されるように、優先順位がスコ
ープ3→スコープ2→スコープ0→スコープ1の順であ
る状態において、ホストコンピュータ5から、アドレス
変換テーブル27を構成するいずれのスコープにもアド
レス変換情報が格納されていないエリアに対するアクセ
スがされると、マイクロプロセッサ6による制御のも
と、ポインタ0の内容であるデータが「NULL」に変
更され、ポインタ1の内容であるリンク先ポインタ番号
が「3」に変更される。かかる動作は、上述の手順と同
じであるので、重複する説明を省略する。
【0103】これによって、優先順位は、スコープ1→
スコープ3→スコープ2→スコープ0の順となる。最も
優先順位の低いスコープに対応するポインタ0には、デ
ータ「NULL」が格納されている。
【0104】このようにして、優先リンク29は、アク
セス履歴に基づいて各スコープ0〜スコープ3について
の優先順位を定め、これを記憶することができる。
【0105】次に、SRAMワークエリア8に格納され
る消去済みブロックキュー30のデータ構造について説
明する。
【0106】図12は、SRAMワークエリア8に格納
される消去済みブロックキュー30のデータ構造を示す
概略図である。
【0107】図12に示されるように、消去済みブロッ
クキュー30は、キュー0〜キュー7からなる8つのキ
ューによって構成される。これら各キュー0〜キュー7
は、それぞれSRAMワークエリア8の2バイトの記憶
領域を使用しており、それぞれには物理ブロックアドレ
スが、10ビットのデータによって格納されている。し
たがって、消去済みブロックキュー30は、SRAMワ
ークエリア8の記憶容量のうち、16バイトを占有する
こととなる。
【0108】消去済みブロックキュー30を構成するキ
ュー0〜キュー7のうち、キュー0及びキュー1は、ア
ドレス変換テーブル27のスコープ0用のキューであ
り、キュー0及びキュー1には、スコープ0に対応する
エリアに含まれる消去済みブロック、すなわち、ユーザ
領域25を構成する全てのフラッシュメモリセル16が
消去状態となっているブロックの物理ブロックアドレス
が格納される。同様に、キュー2及びキュー3は、スコ
ープ1用のキューであり、キュー2及びキュー3には、
スコープ1に対応するエリアに含まれる消去済みブロッ
クの物理ブロックアドレスが格納され、キュー4及びキ
ュー5は、スコープ2用のキューであり、キュー4及び
キュー5には、スコープ2に対応するエリアに含まれる
消去済みブロックの物理ブロックアドレスが格納され、
キュー6及びキュー7は、スコープ3用のキューであ
り、キュー6及びキュー7には、スコープ3に対応する
エリアに含まれる消去済みブロックの物理ブロックアド
レスが格納される。
【0109】消去済みブロックキュー30の生成は、マ
イクロプロセッサ6による制御のもと、上述したアドレ
ス変換テーブル27の生成の際に行われる。
【0110】すなわち、フラッシュメモリチップ2−0
〜2−3を構成する各ブロックの各先頭ページ(ページ
0)に含まれる冗長領域26には、上述のとおり、当該
ブロックが消去済みブロックであるか否かを示す消去フ
ラグが含まれており、アドレス変換テーブル27が生成
される際、マイクロプロセッサ6による制御のもと、ア
ドレス変換テーブル27にアドレス変換情報が展開され
るべきエリアを構成する各ブロックの各先頭ページ(ペ
ージ0)の冗長領域26に格納された消去フラグの内容
が検索される。かかる検索により、アドレス変換テーブ
ル27にアドレス変換情報が展開されるべき4つのエリ
アそれぞれについて、最大2つの消去済みブロックが検
出され、その物理ブロックアドレスが、対応するスコー
プ用の2つのキューに格納される。
【0111】次に、フラッシュメモリシステム1の動作
について、初期設定動作、データの読み出し動作、デー
タの書き込み動作の順に説明する。
【0112】まず、フラッシュメモリシステム1の初期
設定動作について説明する。
【0113】フラッシュメモリシステム1の初期設定動
作は、フラッシュメモリシステム1がホストコンピュー
タ5に装着された時や、ホストコンピュータ5によりリ
セットが指示された際に実行される。
【0114】フラッシュメモリシステム1の初期設定動
作では、まず、フラッシュメモリチップ2−0〜2−3
を構成するエリア0〜エリア31のうち、最初の4エリ
アであるエリア0〜エリア3に関わるアドレス変換情報
が読み出され、それぞれアドレス変換テーブル27を構
成するスコープ0〜スコープ3に展開される。アドレス
変換テーブル27の作成方法は上述のとおりである。
【0115】次に、マイクロプロセッサ6による制御の
もと、管理テーブル28が作成される。
【0116】上述のとおり、管理テーブル28は、アド
レス変換テーブル27を構成するスコープ0〜スコープ
3が、それぞれフラッシュメモリチップ2−0〜2−3
を構成するどのエリアに関わるアドレス変換情報を格納
しているかを示す管理テーブルであり、初期状態におい
てはスコープ0〜スコープ3には、それぞれエリア0〜
エリア3に関わるアドレス変換情報が格納されるから、
管理テーブル28を構成するエリア番号格納領域0〜エ
リア番号格納領域3には、エリア番号としてそれぞれ
「0」〜「3」が格納される。
【0117】次に、マイクロプロセッサ6による制御の
もと、優先リンク29が作成される。
【0118】上述のとおり、優先リンク29は、アクセ
ス履歴に基づいて各スコープ0〜スコープ3についての
優先順位を定め、これを記憶する要素であるが、初期状
態においては、未だいかなるエリアに対してもアクセス
がされておらず、アクセス履歴に基づいて優先順位を定
めることができない。したがって、フラッシュメモリシ
ステム1の初期設定動作においては、マイクロプロセッ
サ6による制御のもと、優先リンク29を構成する各ポ
インタ0〜ポインタ3には、暫定的に、図8に示される
リンク先ポインタ番号乃至はデータ「NULL」が格納
される。このため、初期設定動作の完了時においては、
優先リンク29により示される優先順位は、スコープ0
→スコープ1→スコープ2→スコープ3の順となる。
【0119】次に、マイクロプロセッサ6による制御の
もと、消去済みブロックキュー30が作成される。
【0120】上述のとおり、消去済みブロックキュー3
0は、各スコープ0〜スコープ3に対応する各エリアに
含まれる消去済みブロックの物理ブロックアドレスを格
納する要素であり、その作成の方法は上述のとおりであ
る。
【0121】以上説明した動作が全て完了し、アドレス
変換テーブル27、管理テーブル28、優先リンク29
及び消去済みブロックキュー30が作成されると、フラ
ッシュメモリシステム1の初期設定動作は終了する。
【0122】尚、フラッシュメモリシステム1の初期設
定動作が行われている間は、コントローラ3はビジー状
態となり、ホストコンピュータ5からデータの読み出し
や書き込みが指示は拒否される。かかるビジー状態は、
フラッシュメモリシステム1の初期設定動作が終了する
と解除される。
【0123】次に、フラッシュメモリシステム1による
データの読み出し動作について説明する。
【0124】フラッシュメモリシステム1によるデータ
の読み出し動作については、ホストコンピュータ5より
供給されたホストアドレスに対応するエリアに関わるア
ドレス変換情報がアドレス変換テーブル27に格納され
ている場合と、格納されていない場合とに分けて説明す
る。
【0125】まず、ホストアドレスに対応するエリアに
関わるアドレス変換情報がアドレス変換テーブル27に
格納されている場合の、フラッシュメモリシステム1に
よるデータの読み出し動作について説明する。
【0126】SRAMワークエリア8に格納されたアド
レス変換テーブル27、管理テーブル28、優先リンク
29及び消去済みブロックキュー30の状態が、上述し
たフラッシュメモリシステム1の初期設定動作が終了し
た直後の状態である場合において、ホストコンピュータ
5より、バス14、コネクタ4及びバス13を介して、
外部コマンドの一種である外部読み出しコマンドととも
にホストアドレスがフラッシュメモリシステム1に供給
されると、これら外部読み出しコマンド及びホストアド
レスは、ホストインターフェースブロック7よりコント
ローラ3内に取り込まれる。ここでは、例として、ホス
トアドレスが「000010000000011001
11B」であるとする。
【0127】外部読み出しコマンド及びホストアドレス
がコントローラ3に供給されると、ホストアドレスによ
り示されるフラッシュメモリチップ2−0〜2−3上の
データをバッファ9に転送させるべく、マイクロプロセ
ッサ6による制御のもと、フラッシュシーケンサブロッ
ク12が有するレジスタ(図示せず)に対する設定がな
される。かかる設定は、次のように行われる。
【0128】まず、マイクロプロセッサ6による制御の
もと、内部コマンドの一種である内部読み出しコマンド
がフラッシュシーケンサブロック12内の所定のレジス
タ(図示せず)に設定される。
【0129】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位2
ビットが抽出され、これがフラッシュシーケンサブロッ
ク12内の所定のレジスタ(図示せず)に設定される。
【0130】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位5
ビットが抽出され、管理テーブル28を構成するエリア
番号格納領域0〜エリア番号格納領域3のうち、エリア
番号としてホストアドレスの上位5ビットと同じ番号が
格納されているエリア番号格納領域が検索される。この
場合、ホストアドレスの上位5ビットは「00001B
(1)」であるから、「00001B(1)」が格納さ
れているエリア番号格納領域は、エリア番号格納領域1
となる。これにより、当該ホストアドレスに関わるアド
レス変換情報が、アドレス変換テーブル27を構成する
スコープ1に格納されていることが判断される。
【0131】次に、マイクロプロセッサ6による制御の
もと、20ビット長のホストアドレスのうち、上位6ビ
ット〜上位15ビットからなる10ビットが抽出され、
アドレス変換テーブル27のスコープ1を構成する10
24個の物理ブロックアドレス格納領域1024〜物理
ブロックアドレス格納領域2047のうち、ホストアド
レスの上記10ビットにより特定される物理ブロックア
ドレス格納領域に格納された物理ブロックアドレスが読
み出される。この場合、ホストアドレスの上記10ビッ
トは「0000000011B(3)」であり、対応す
る物理ブロックアドレス格納領域は3+1番目の物理ブ
ロックアドレス格納領域1027となり、ここに格納さ
れている物理ブロックアドレスが読み出されることとな
る。ここでは、物理ブロックアドレス格納領域1027
に格納されている物理ブロックアドレスが「01010
10101B(341)」であるとする。
【0132】次に、マイクロプロセッサ6による制御の
もと、ホストアドレスのうち、上位6ビット〜上位15
ビットからなる10ビットが、アドレス変換テーブル2
7から読み出された物理ブロックアドレスに置き換えら
れるとともに、上位2ビットが削除され、18ビットの
内部アドレスが生成される。この場合、アドレス変換テ
ーブル27から読み出された物理ブロックアドレスが
「0101010101B」であるから、生成される1
8ビットの内部アドレスは「001010101010
100111B」となる。
【0133】そして、このようにして生成された18ビ
ットの内部アドレスがフラッシュシーケンサブロック1
2内の所定のレジスタ(図示せず)に設定される。
【0134】このようにしてフラッシュシーケンサブロ
ック12に含まれる各種レジスタ(図示せず)に対する
設定が完了すると、フラッシュシーケンサブロック12
による一連の読み出し動作が実行される。フラッシュシ
ーケンサブロック12による一連の読み出し動作は、次
の通りである。
【0135】まず、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納されたホストア
ドレスの上位2ビットに基づき、フラッシュメモリチッ
プ2−0〜2−3のうち、アクセスすべきページが属す
るフラッシュメモリチップに対応するチップ選択信号を
活性化するよう、フラッシュメモリインターフェースブ
ロック10に指示する。この場合、ホストアドレスの上
位2ビットは「00B(0)」であるから、アクセスす
べきページが属するフラッシュメモリチップは、フラッ
シュメモリチップ2−0であり、チップ選択信号#0が
活性化される。これにより、フラッシュメモリチップ2
−0は、データの読み出しが可能な状態となる。一方、
チップ選択信号#1〜#3は、非活性状態が保たれる。
【0136】次に、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納された18ビッ
トの内部アドレス「0010101010101001
11B」を、所定のレジスタ(図示せず)に格納された
内部読み出しコマンドとともにバス15に供給するよ
う、フラッシュメモリインターフェースブロック10に
指示する。バス15に供給された18ビットの内部アド
レス及び内部読み出しコマンドは、フラッシュメモリチ
ップ2−0〜2−3に対し共通に供給されるが、上述の
とおり、チップ選択信号#0は活性状態となっており、
チップ選択信号#1〜#3は非活性状態となっているの
で、バス15に供給された内部アドレス及び内部読み出
しコマンドは、フラッシュメモリチップ2−0に対して
のみ有効となる。
【0137】これにより、フラッシュメモリチップ2−
0は、供給された18ビットの内部アドレス「0010
10101010100111B」に格納されたデータ
の読み出しを実行する。ここで、供給された18ビット
の内部アドレス「00101010101010011
1B」のうち、上位13ビットはブロックを特定し、下
位5ビットは当該ブロック内のページを特定するために
用いられる。この場合、上位13ビットは「00101
01010101B」であり、下位5ビットは「001
11B」であるから、特定されるブロックはブロック1
365となり、特定されるページはページ7となる。す
なわち、フラッシュメモリチップ2−0は、ブロック1
365のページ7に格納されたデータの読み出しを実行
する。かかる読み出し動作においては、ユーザ領域12
に格納されたユーザデータのみならず、冗長領域13に
格納された付加情報も読み出される。
【0138】このようにしてフラッシュメモリチップ2
−0から読み出されたユーザデータ及び付加情報は、バ
ス15を介してフラッシュメモリインターフェースブロ
ック10に供給される。フラッシュメモリインターフェ
ースブロック10がユーザデータ及び付加情報を受け取
ると、フラッシュシーケンサブロック12による制御の
もと、付加情報に含まれるエラーコレクションコードが
抽出され、ユーザデータ及び抽出されたエラーコレクシ
ョンコードがECCブロック11に供給される。ユーザ
データ及びエラーコレクションコードがECCブロック
11に供給されると、ECCブロック11は、エラーコ
レクションコードに基づき、ユーザデータに誤りがある
か否かを判断し、誤りがないと判断すれば、供給された
ユーザデータをそのままバッファ9に格納し、誤りがあ
ると判断されれば、これをエラーコレクションコードに
基づいて訂正し、訂正後のユーザデータをバッファ9に
格納する。このようにしてバッファ9に誤りのないユー
ザデータが格納されると、フラッシュシーケンサブロッ
ク12による一連の読み出し動作が完了する。
【0139】そして、バッファ9に格納されたユーザデ
ータは、マイクロプロセッサ6による制御のもと、ホス
トインターフェースブロック7より、バス13、コネク
タ4及びバス14を介してホストコンピュータ5に供給
される。
【0140】また、マイクロプロセッサ6は、上述のア
クセスがなされたことに応答して、優先リンク29の内
容を更新する。すなわち、優先リンク29を構成する各
ポインタ0〜ポインタ3の現在の内容は、それぞれ
「1」、「2」、「3」及び「NULL」であり、アド
レス変換テーブル27を構成する各スコープの優先順位
は、スコープ0→スコープ1→スコープ2→スコープ3
の順となっているが、上述のアクセスにおいては、スコ
ープ1に対応するエリアに対してアクセスがされたの
で、アクセスされたスコープのスコープ番号「1」と同
じ番号がリンク先ポインタ番号として格納されているポ
インタ(ポインタ0)の内容が、いまアクセスされたス
コープに対応するポインタ(ポインタ1)に格納された
ポインタ番号「2」に書き換えられ、さらに、アクセス
されたスコープに対応するポインタ(ポインタ1)の内
容が、リンク先ポインタ番号として現在最も優先順位の
高いスコープに対応するポインタ番号「0」に書き換え
られる。これにより、優先リンク29を構成する各ポイ
ンタ0〜ポインタ3の現在の内容は、それぞれ「2」、
「0」、「3」及び「NULL」に変更され、アドレス
変換テーブル27を構成する各スコープの優先順位は、
スコープ1→スコープ0→スコープ2→スコープ3の順
となる。
【0141】以上により、一連の読み出し動作が完了す
る。
【0142】次に、ホストアドレスに対応するエリアに
関わるアドレス変換情報がアドレス変換テーブル27に
格納されていない場合の、フラッシュメモリシステム1
によるデータの読み出し動作について説明する。
【0143】ここでは、SRAMワークエリア8に格納
されたアドレス変換テーブル27、管理テーブル28、
優先リンク29及び消去済みブロックキュー30の状態
が、上述の読み出し動作が行われた直後の状態である場
合において、ホストコンピュータ5より、アクセスすべ
きエリアに関わるアドレス変換情報がアドレス変換テー
ブル27に格納されていないホストアドレス、例えば
「11111000001111101010B」が外
部読み出しコマンドとともに供給された場合を例に説明
する。
【0144】外部読み出しコマンド及びホストアドレス
がコントローラ3に供給されると、ホストアドレスによ
り示されるフラッシュメモリチップ2−0〜2−3上の
データをバッファ9に転送させるべく、マイクロプロセ
ッサ6による制御のもと、フラッシュシーケンサブロッ
ク12が有するレジスタ(図示せず)に対する設定がな
される。かかる設定は、次のように行われる。
【0145】まず、マイクロプロセッサ6による制御の
もと、内部読み出しコマンドがフラッシュシーケンサブ
ロック12内の所定のレジスタ(図示せず)に設定され
る。
【0146】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位2
ビットが抽出され、これがフラッシュシーケンサブロッ
ク12内の所定のレジスタ(図示せず)に設定される。
【0147】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位5
ビットを抽出して、管理テーブル28を構成するエリア
番号格納領域0〜エリア番号格納領域3のうち、エリア
番号としてホストアドレスの上位5ビットと同じ番号が
格納されているエリア番号格納領域が検索される。この
場合、ホストアドレスの上位5ビットは「11111B
(31)」であり、「11111B(31)」が格納さ
れているエリア番号格納領域は存在しない。
【0148】このことは、アクセスすべきエリア31に
関わるアドレス変換情報がアドレス変換テーブル27に
格納されていないことを意味する。したがって、アクセ
スすべきエリア31に関わるアドレス変換情報を、アド
レス変換テーブル27に新しく展開する必要があり、か
かる動作は、以下の手順で行われる。
【0149】まず、優先リンク29を構成するポインタ
0〜ポインタ3のうち、データ「NULL」が格納され
ているポインタの検索が行われる。この場合、データ
「NULL」が格納されているポインタは、上述のとお
り、ポインタ3である。データ「NULL」が格納され
ていることは、当該ポインタに対応するスコープの優先
順位が最も低いことを意味するから、この場合、スコー
プ3の優先順位が最も低いと判断することができる。
【0150】スコープ3の優先順位が最も低いと判断さ
れると、スコープ3を構成する物理ブロックアドレス格
納領域2048〜物理ブロックアドレス格納領域307
1の内容が全てSRAMワークエリア8上から消去さ
れ、代わりに、アクセスすべきエリアであるエリア31
に関わるアドレス変換情報がスコープ3上に展開され
る。エリア31に関わるアドレス変換情報がスコープ3
上に展開されると、管理テーブル28を構成するエリア
番号格納領域3の内容が「31」に更新される。これに
よって、スコープ3に格納されたアドレス変換情報が、
エリア31に関わるものであることが示される。
【0151】このようにして、アドレス変換テーブル2
7及び管理テーブル28の内容の更新が完了すると、次
に、マイクロプロセッサ6による制御のもと、20ビッ
ト長のホストアドレスのうち、上位6ビット〜上位15
ビットからなる10ビットが抽出され、アドレス変換テ
ーブル27のスコープ3を構成する1024個の物理ブ
ロックアドレス格納領域3072〜物理ブロックアドレ
ス格納領域4095のうち、ホストアドレスの上記10
ビットにより特定される物理ブロックアドレス格納領域
に格納された物理ブロックアドレスが読み出される。こ
の場合、ホストアドレスの上記10ビットは「0000
011111B(31)」であり、対応する物理ブロッ
クアドレス格納領域は31+1番目の物理ブロックアド
レス格納領域4103となり、ここに格納されている物
理ブロックアドレスが読み出されることとなる。ここで
は、物理ブロックアドレス格納領域4103に格納され
ている物理ブロックアドレスが「1111100000
B(992)」であるとする。
【0152】次に、マイクロプロセッサ6による制御の
もと、ホストアドレスのうち、上位6ビット〜上位15
ビットからなる10ビットが、アドレス変換テーブル2
7から読み出された物理ブロックアドレスに置き換えら
れるとともに、上位2ビットが削除され、18ビットの
内部アドレスが生成される。この場合、アドレス変換テ
ーブル27から読み出された物理ブロックアドレスが
「1111100000B」であるから、生成される1
8ビットの内部アドレスは「111111110000
001010B」となる。
【0153】そして、このようにして生成された18ビ
ットの内部アドレスがフラッシュシーケンサブロック1
2内の所定のレジスタ(図示せず)に設定される。
【0154】このようにしてフラッシュシーケンサブロ
ック12に含まれる各種レジスタ(図示せず)に対する
設定が完了すると、フラッシュシーケンサブロック12
による一連の読み出し動作が実行される。フラッシュシ
ーケンサブロック12による一連の読み出し動作は、次
の通りである。
【0155】まず、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納されたホストア
ドレスの上位2ビットに基づき、フラッシュメモリチッ
プ2−0〜2−3のうち、アクセスすべきページが属す
るフラッシュメモリチップに対応するチップ選択信号を
活性化するよう、フラッシュメモリインターフェースブ
ロック10に指示する。この場合、ホストアドレスの上
位2ビットは「11B(3)」であるから、アクセスす
べきページが属するフラッシュメモリチップは、フラッ
シュメモリチップ2−3であり、チップ選択信号#3が
活性化される。これにより、フラッシュメモリチップ2
−3は、データの読み出しが可能な状態となる。一方、
チップ選択信号#0〜#2は、非活性状態が保たれる。
【0156】次に、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納された18ビッ
トの内部アドレス「1111111100000010
10B」を、所定のレジスタ(図示せず)に格納された
内部読み出しコマンドとともにバス15に供給するよ
う、フラッシュメモリインターフェースブロック10に
指示する。バス15に供給された18ビットの内部アド
レス及び内部読み出しコマンドは、フラッシュメモリチ
ップ2−0〜2−3に対し共通に供給されるが、上述の
とおり、チップ選択信号#3は活性状態となっており、
チップ選択信号#0〜#2は非活性状態となっているの
で、バス15に供給された内部アドレス及び内部読み出
しコマンドは、フラッシュメモリチップ2−3に対して
のみ有効となる。
【0157】これにより、フラッシュメモリチップ2−
3は、供給された18ビットの内部アドレス「1111
11110000001010B」に格納されたデータ
の読み出しを実行する。ここで、供給された18ビット
の内部アドレス「11111111000000101
0B」のうち、上位13ビットはブロックを特定し、下
位5ビットは当該ブロック内のページを特定するために
用いられる。この場合、上位13ビットは「11111
11100000B」であり、下位5ビットは「010
10B」であるから、特定されるブロックはブロック3
2736(フラッシュメモリチップ2−3を構成する8
159番目のブロック)となり、特定されるページはペ
ージ10となる。すなわち、フラッシュメモリチップ2
−3は、ブロック32736のページ10に格納された
データの読み出しを実行する。かかる読み出し動作にお
いては、ユーザ領域12に格納されたユーザデータのみ
ならず、冗長領域13に格納された付加情報も読み出さ
れる。
【0158】このようにしてフラッシュメモリチップ2
−3から読み出されたユーザデータ及び付加情報は、バ
ス15を介してフラッシュメモリインターフェースブロ
ック10に供給される。フラッシュメモリインターフェ
ースブロック10がユーザデータ及び付加情報を受け取
ると、フラッシュシーケンサブロック12による制御の
もと、付加情報に含まれるエラーコレクションコードが
抽出され、ユーザデータ及び抽出されたエラーコレクシ
ョンコードがECCブロック11に供給される。ユーザ
データ及びエラーコレクションコードがECCブロック
11に供給されると、ECCブロック11は、エラーコ
レクションコードに基づき、ユーザデータに誤りがある
か否かを判断し、誤りがないと判断すれば、供給された
ユーザデータをそのままバッファ9に格納し、誤りがあ
ると判断されれば、これをエラーコレクションコードに
基づいて訂正し、訂正後のユーザデータをバッファ9に
格納する。このようにしてバッファ9に誤りのないユー
ザデータが格納されると、フラッシュシーケンサブロッ
ク12による一連の読み出し動作が完了する。
【0159】そして、バッファ9に格納されたユーザデ
ータは、マイクロプロセッサ6による制御のもと、ホス
トインターフェースブロック7より、バス13、コネク
タ4及びバス14を介してホストコンピュータ5に供給
される。
【0160】また、マイクロプロセッサ6は、上述のア
クセスがなされたことに応答して、優先リンク29の内
容を更新する。すなわち、優先リンク29を構成する各
ポインタ0〜ポインタ3の現在の内容は、それぞれ
「2」、「0」、「3」及び「NULL」であり、アド
レス変換テーブル27を構成する各スコープの優先順位
は、スコープ1→スコープ0→スコープ2→スコープ3
の順となっているが、上述のアクセスにおいては、スコ
ープ3に対応するエリアに対してアクセスがされたの
で、アクセスされたスコープのスコープ番号「3」と同
じ番号がリンク先ポインタ番号として格納されているポ
インタ(ポインタ2)の内容が、いまアクセスされたス
コープに対応するポインタ(ポインタ3)に格納された
データ「NULL」に書き換えられ、さらに、アクセス
されたスコープに対応するポインタ(ポインタ3)の内
容が、リンク先ポインタ番号として現在最も優先順位の
高いスコープに対応するポインタ番号「1」に書き換え
られる。これにより、優先リンク29を構成する各ポイ
ンタ0〜ポインタ3の現在の内容は、それぞれ「2」、
「0」、「NULL」及び「1」に変更され、アドレス
変換テーブル27を構成する各スコープの優先順位は、
スコープ3→スコープ1→スコープ0→スコープ2の順
となる。
【0161】次に、フラッシュメモリシステム1による
データの書き込み動作について説明する。
【0162】フラッシュメモリシステム1によるデータ
の書き込み動作については、新規データの書き込み動
作、すなわち現在データが割り当てられていないホスト
アドレスに対して新しくデータを割り当てる動作と、デ
ータの上書き動作、すなわち、現在データが割り当てら
れているホストアドレスに対してこれと異なるデータを
割り当てる動作とに分けて説明する。
【0163】まず、フラッシュメモリシステム1による
新規データの書き込み動作について説明する。
【0164】ここでは、SRAMワークエリア8に格納
されたアドレス変換テーブル27、管理テーブル28、
優先リンク29及び消去済みブロックキュー30の状態
が、上述の2回の読み出し動作が行われた直後の状態で
ある場合において、ホストコンピュータ5より、バス1
4、コネクタ4及びバス13を介して、外部コマンドの
一種である外部書き込みコマンドと、現在データが割り
当てられていないホストアドレス、例えば「00000
111111111100000B」と、当該アドレス
に書き込むべきデータとがフラッシュメモリシステム1
に供給された場合を例に説明する。
【0165】まず、外部書き込みコマンド、ホストアド
レス及び書き込みデータがコントローラ3に供給される
と、マイクロプロセッサ6による制御のもと、当該デー
タがECCブロック11に送出される。当該データの供
給を受けたECCブロック11は、このデータを解析し
てエラーコレクションコードを生成し、これを一時的に
保持する。
【0166】次に、バッファ9に格納されたデータを、
上記ホストアドレスにより示されるフラッシュメモリチ
ップ2−0〜2−3上のページに書き込むべく、マイク
ロプロセッサ6による制御のもと、フラッシュシーケン
サブロック12が有するレジスタ(図示せず)に対する
設定がなされる。かかる設定は、次のように行われる。
【0167】まず、マイクロプロセッサ6による制御の
もと、内部コマンドの一種である内部書き込みコマンド
がフラッシュシーケンサブロック12内の所定のレジス
タ(図示せず)に設定される。
【0168】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位2
ビットが抽出され、これがフラッシュシーケンサブロッ
ク12内の所定のレジスタ(図示せず)に設定される。
【0169】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位5
ビットが抽出され、管理テーブル28を構成するエリア
番号格納領域0〜エリア番号格納領域3のうち、エリア
番号としてホストアドレスの上位5ビットと同じ番号が
格納されているエリア番号格納領域が検索される。この
場合、ホストアドレスの上位5ビットは「00000B
(0)」であるから、「00000B(0)」が格納さ
れているエリア番号格納領域は、エリア番号格納領域0
となる。これにより、当該ホストアドレスに関わるアド
レス変換情報が、アドレス変換テーブル27を構成する
スコープ0に格納されていることが判断される。
【0170】次に、マイクロプロセッサ6による制御の
もと、20ビット長のホストアドレスのうち、上位6ビ
ット〜上位15ビットからなる10ビットが抽出され、
アドレス変換テーブル27のスコープ0を構成する10
24個の物理ブロックアドレス格納領域0〜物理ブロッ
クアドレス格納領域1024のうち、ホストアドレスの
上記10ビットにより特定される物理ブロックアドレス
格納領域に格納された物理ブロックアドレスが読み出さ
れる。この場合、ホストアドレスの上記10ビットは
「1111111111B(1023)」であり、対応
する物理ブロックアドレス格納領域は1023+1番目
の物理ブロックアドレス格納領域1023となり、ここ
に格納されている物理ブロックアドレスが読み出される
こととなる。ここでは、新規データの書き込み動作、す
なわち現在データが割り当てられていないホストアドレ
スに対して新しくデータを割り当てる動作であるので、
当該物理ブロックアドレス格納領域1023には、対応
する物理ブロックアドレスが格納されていない。
【0171】次に、マイクロプロセッサ6による制御の
もと、消去済みブロックキュー30を構成するキュー0
〜キュー7のうち、アドレス変換テーブル27のスコー
プ0用のキューであるキュー0に格納された物理ブロッ
クアドレスが読み出される。ここでは、例えば、キュー
0に格納された物理ブロックアドレスが「000000
0100B(4)」であるとする。上述のとおり、消去
済みブロックキュー30のキュー0に格納された物理ブ
ロックアドレスは、スコープ0に対応するエリア(エリ
ア0)に含まれる消去済みブロック、すなわち、ユーザ
領域25を構成する全てのフラッシュメモリセル16が
消去状態となっているブロックの物理ブロックアドレス
である。
【0172】キュー0に格納された物理ブロックアドレ
ス「0000000100B(4)」が読み出される
と、これがアドレス変換テーブル27のスコープ0の物
理ブロックアドレス格納領域1023に格納されるとと
もに、マイクロプロセッサ6による制御のもと、ホスト
アドレスのうち、上位6ビット〜上位15ビットからな
る10ビットを、キュー0に格納された物理ブロックア
ドレス「0000000100B(4)」に置き換える
とともに、上位2ビットを削除し、18ビットの内部ア
ドレスを生成する。この場合、生成される18ビットの
内部アドレスは「00000000001000000
0B」となる。
【0173】そして、このようにして生成された18ビ
ットの内部アドレスがフラッシュシーケンサブロック1
2内の所定のレジスタ(図示せず)に設定される。
【0174】このようにしてフラッシュシーケンサブロ
ック12に含まれる各種レジスタ(図示せず)に対する
設定が完了すると、フラッシュシーケンサブロック12
による一連の書き込み動作が実行される。フラッシュシ
ーケンサブロック12による一連の書き込み動作は、次
の通りである。
【0175】まず、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納されたホストア
ドレスの上位2ビットに基づき、フラッシュメモリチッ
プ2−0〜2−3のうち、アクセスすべきページが属す
るフラッシュメモリチップに対応するチップ選択信号を
活性化するよう、フラッシュメモリインターフェースブ
ロック10に指示する。この場合、ホストアドレスの上
位2ビットは「00B(0)」であるから、アクセスす
べきページが属するフラッシュメモリチップは、フラッ
シュメモリチップ2−0であり、チップ選択信号#0が
活性化される。これにより、フラッシュメモリチップ2
−0は、データの書き込みが可能な状態となる。一方、
チップ選択信号#1〜#3は、非活性状態が保たれる。
【0176】次に、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納された18ビッ
トの内部アドレス「0000000000100000
00B」を、所定のレジスタ(図示せず)に格納された
内部書き込みコマンドとともにバス15に供給するよ
う、フラッシュメモリインターフェースブロック10に
指示する。バス15に供給された18ビットの内部アド
レス及び内部書き込みコマンドは、フラッシュメモリチ
ップ2−0〜2−3に対し共通に供給されるが、上述の
とおり、チップ選択信号#0は活性状態となっており、
チップ選択信号#1〜#3は非活性状態となっているの
で、バス15に供給された内部アドレス及び内部書き込
みコマンドは、フラッシュメモリチップ2−0に対して
のみ有効となる。
【0177】これにより、フラッシュメモリチップ2−
0は、供給された18ビットの内部アドレス「0010
10101010100111B」に対応するページへ
の書き込みが許可された状態となる。ここで、供給され
た18ビットの内部アドレス「00000000001
0000000B」のうち、上位13ビットはブロック
を特定し、下位5ビットは当該ブロック内のページを特
定するために用いられるので、特定されるブロックはブ
ロック4となり、特定されるページはページ0となる。
【0178】次に、バッファ9に格納されている書き込
みデータが、フラッシュシーケンサブロック12によ
り、フラッシュメモリインターフェースブロック10を
介して、バス15に供給される。バス15に供給された
データも、やはりフラッシュメモリチップ2−0〜2−
3に対し共通に供給されるが、上述のとおり、チップ選
択信号#0が活性状態となっているため、フラッシュメ
モリチップ2−0に対してのみ有効となる。
【0179】このようにして、ブロック4のページ0へ
の書き込みが許可された状態にあるフラッシュメモリチ
ップ2−0に対して、データが供給されると、ブロック
4のページ0のユーザ領域25に当該データが書き込ま
れる。次に、ECCブロック11に一時的に保持されて
いるエラーコレクションコードがフラッシュメモリイン
ターフェースブロック10を介して、バス15に供給さ
れる。ブロック4のページ0への書き込みが許可された
状態にあるフラッシュメモリチップ2−0に対して、エ
ラーコレクションコードが供給されると、ブロック4の
ページ0の冗長領域26にエラーコレクションコードが
書き込まれる。このようにして、フラッシュシーケンサ
ブロック12による一連の書き込み動作が完了する。
【0180】また、マイクロプロセッサ6は、上述のア
クセスがなされたことに応答して、優先リンク29の内
容を更新する。すなわち、優先リンク29を構成する各
ポインタ0〜ポインタ3の現在の内容は、それぞれ
「2」、「0」、「NULL」及び「1」であり、アド
レス変換テーブル27を構成する各スコープの優先順位
は、スコープ3→スコープ1→スコープ0→スコープ2
の順となっているが、上述のアクセスにおいては、スコ
ープ0に対応するエリアに対してアクセスがされたの
で、アクセスされたスコープのスコープ番号「0」と同
じ番号がリンク先ポインタ番号として格納されているポ
インタ(ポインタ1)の内容が、いまアクセスされたス
コープに対応するポインタ(ポインタ0)に格納された
ポインタ番号「2」に書き換えられ、さらに、アクセス
されたスコープに対応するポインタ(ポインタ0)の内
容が、リンク先ポインタ番号として現在最も優先順位の
高いスコープに対応するポインタ番号「3」に書き換え
られる。これにより、優先リンク29を構成する各ポイ
ンタ0〜ポインタ3の現在の内容は、それぞれ「3」、
「2」、「NULL」及び「1」に変更され、アドレス
変換テーブル27を構成する各スコープの優先順位は、
スコープ0→スコープ3→スコープ1→スコープ2の順
となる。
【0181】さらに、マイクロプロセッサ6は、上述の
データ書き込みによって、消去済みブロックキュー30
のキュー0に格納された物理ブロックアドレスが、消去
ブロックではなくなったことに応答して、キュー0に対
応するエリア(エリア0)に含まれる消去ブロックを検
索し、見つかった消去ブロックの物理ブロックアドレス
を新たにキュー0に格納する。
【0182】以上により、一連のデータ書き込み動作が
完了する。
【0183】次に、フラッシュメモリシステム1による
データの上書き動作について説明する。
【0184】以下に詳述するが、フラッシュメモリシス
テム1によるデータの上書き動作においては、上書き対
象のページが含まれるブロック内のデータを、他のブロ
ックに移動させる必要がある。その必要性については、
上述したとおりである。
【0185】ここでは、SRAMワークエリア8に格納
されたアドレス変換テーブル27、管理テーブル28、
優先リンク29及び消去済みブロックキュー30の状態
が、上述の2回の読み出し動作及び1回の書き込み動作
が行われた直後の状態である場合において、ホストコン
ピュータ5より、バス14、コネクタ4及びバス13を
介して、外部書き込みコマンドと、現在データが割り当
てられているホストアドレス、例えば「1100000
0100100111011B」と、当該アドレスに書
き込むべきデータとがフラッシュメモリシステム1に供
給されると、これら外部書き込みコマンド、ホストアド
レス及びデータは、ホストインターフェースブロック7
よりコントローラ3内に取り込まれる。
【0186】外部書き込みコマンド、ホストアドレス及
び書き込みデータがコントローラ3に供給されると、マ
イクロプロセッサ6による制御のもと、当該データがE
CCブロック11に送出される。当該データの供給を受
けたECCブロック11は、このデータを解析してエラ
ーコレクションコードを生成し、これを一時的に保持す
る。
【0187】次に、バッファ9に格納されたデータを、
上記ホストアドレスにより示されるフラッシュメモリチ
ップ2−0〜2−3上のページに書き込むべく、マイク
ロプロセッサ6による制御のもと、フラッシュシーケン
サブロック12が有するレジスタ(図示せず)に対する
設定がなされる。かかる設定は、次のように行われる。
【0188】まず、マイクロプロセッサ6による制御の
もと、内部読み出しコマンド及び内部書き込みコマンド
がフラッシュシーケンサブロック12内の所定のレジス
タ(図示せず)に設定される。
【0189】さらに、マイクロプロセッサ6による制御
のもと、20ビット長のホストアドレスのうち、上位2
ビットが抽出され、これがフラッシュシーケンサブロッ
ク12内の所定のレジスタ(図示せず)に設定される。
【0190】さらに、マイクロプロセッサ6による制御
のもと、転送元の物理ブロックアドレスと、転送先の物
理ブロックアドレスとが、フラッシュシーケンサブロッ
ク12内の所定のレジスタ(図示せず)に設定される。
【0191】転送元の物理ブロックアドレスは、上書き
対象となっているページが属するブロックの物理アドレ
スである。すなわち、転送元の物理ブロックアドレスの
生成においては、まず、マイクロプロセッサ6による制
御のもと、20ビット長のホストアドレスのうち、上位
5ビットが抽出され、管理テーブル28を構成するエリ
ア番号格納領域0〜エリア番号格納領域3のうち、エリ
ア番号としてホストアドレスの上位5ビットと同じ番号
が格納されているエリア番号格納領域が検索される。こ
の場合、ホストアドレスの上位5ビットは「11000
B(24)」であり、「11100B(24)」が格納
されているエリア番号格納領域は存在しない。
【0192】このことは、アクセスすべきエリア24に
関わるアドレス変換情報がアドレス変換テーブル27に
格納されていないことを意味する。したがって、アクセ
スすべきエリア24に関わるアドレス変換情報を、アド
レス変換テーブル27に新しく展開する必要があり、か
かる動作は、以下の手順で行われる。
【0193】まず、マイクロプロセッサ6による制御の
もと、優先リンク29を構成するポインタ0〜ポインタ
3のうち、データ「NULL」が格納されているポイン
タの検索が行われる。この場合、データ「NULL」が
格納されているポインタは、上述のとおり、ポインタ2
である。データ「NULL」が格納されていることは、
当該ポインタに対応するスコープの優先順位が最も低い
ことを意味するから、この場合、スコープ2の優先順位
が最も低いと判断することができる。
【0194】スコープ2の優先順位が最も低いと判断さ
れると、スコープ2を構成する物理ブロックアドレス格
納領域2048〜物理ブロックアドレス格納領域307
1の内容が全てSRAMワークエリア8上から消去さ
れ、代わりに、アクセスすべきエリアであるエリア24
に関わるアドレス変換情報がスコープ2上に展開され
る。エリア24に関わるアドレス変換情報がスコープ2
上に展開されると、管理テーブル28を構成するエリア
番号格納領域2の内容が「24」に更新される。これに
よって、スコープ2に格納されたアドレス変換情報が、
エリア24に関わるものであることが示される。さら
に、消去済みブロックキュー30を構成するキュー0〜
キュー7のうち、スコープ2に対応して設けられたキュ
ー4及びキュー5の内容が消去され、新たに、エリア2
4に含まれる消去済みブロック、すなわち、ユーザ領域
25を構成する全てのフラッシュメモリセル16が消去
状態となっているブロックが検索され、その物理ブロッ
クアドレスが格納される。
【0195】このようにして、アドレス変換テーブル2
7及び管理テーブル28の内容の更新が完了すると、マ
イクロプロセッサ6による制御のもと、20ビット長の
ホストアドレスのうち、上位6ビット〜上位15ビット
からなる10ビットが抽出され、アドレス変換テーブル
27のスコープ2を構成する1024個の物理ブロック
アドレス格納領域2048〜物理ブロックアドレス格納
領域3071のうち、ホストアドレスの上記10ビット
により特定される物理ブロックアドレス格納領域に格納
された物理ブロックアドレスが読み出される。この場
合、ホストアドレスの上記10ビットは「000100
1001B(73)」であり、対応する物理ブロックア
ドレス格納領域は73+1番目の物理ブロックアドレス
格納領域2121となり、ここに格納されている物理ブ
ロックアドレスが読み出されることとなる。ここでは、
物理ブロックアドレス格納領域2121に格納されてい
る物理ブロックアドレスが「1110001111B
(911)」であるとする。これが、転送元の物理ブロ
ックアドレスとなり、フラッシュシーケンサブロック1
2のレジスタ(図示せず)に設定される。
【0196】一方、転送先の物理ブロックアドレスは、
実際にデータが書き込まれるブロックの物理アドレスで
ある。すなわち、転送先の物理ブロックアドレスの生成
においては、まず、マイクロプロセッサ6による制御の
もと、消去済みブロックキュー30を構成するキュー0
〜キュー7のうち、アドレス変換テーブル27のスコー
プ2用のキューであるキュー4に格納された物理ブロッ
クアドレスが読み出される。ここでは、例えば、キュー
4に格納された物理ブロックアドレスが「100000
0000B(512)」であるとする。これが、転送先
の物理ブロックアドレスとなり、フラッシュシーケンサ
ブロック12のレジスタ(図示せず)に設定される。
【0197】このようにしてフラッシュシーケンサブロ
ック12に含まれる各種レジスタ(図示せず)に対する
設定が完了すると、フラッシュシーケンサブロック12
による一連の書き込み動作が実行される。フラッシュシ
ーケンサブロック12による一連の書き込み動作は、次
の通りである。
【0198】まず、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納されたホストア
ドレスの上位2ビットに基づき、フラッシュメモリチッ
プ2−0〜2−3のうち、アクセスすべきページが属す
るフラッシュメモリチップに対応するチップ選択信号を
活性化するよう、フラッシュメモリインターフェースブ
ロック10に指示する。この場合、ホストアドレスの上
位2ビットは「11B(3)」であるから、アクセスす
べきページが属するフラッシュメモリチップは、フラッ
シュメモリチップ2−3であり、チップ選択信号#3が
活性化される。これにより、フラッシュメモリチップ2
−3は、データの読み出しが可能な状態となる。一方、
チップ選択信号#0〜#2は、非活性状態が保たれる。
【0199】次に、フラッシュシーケンサブロック12
は、所定のレジスタ(図示せず)に格納された転送元の
ブロックアドレスから、18ビットの転送元内部アドレ
スを生成する。かかる転送元内部アドレスは、ホストア
ドレスの上位3ビット〜5ビット、転送元のブロックア
ドレス、及び「00000B」を結合して生成され、そ
の値は、「000111000111100000B」
である。
【0200】次に、フラッシュシーケンサブロック12
は、生成された上記転送元内部アドレス「000111
000111100000B」を、所定のレジスタ(図
示せず)に格納された内部読み出しコマンドとともにバ
ス15に供給するよう、フラッシュメモリインターフェ
ースブロック10に指示する。バス15に供給された1
8ビットの転送元内部アドレス及び内部読み出しコマン
ドは、フラッシュメモリチップ2−0〜2−3に対し共
通に供給されるが、上述のとおり、チップ選択信号#3
は活性状態となっており、チップ選択信号#0〜#2は
非活性状態となっているので、バス15に供給された転
送元内部アドレス及び内部読み出しコマンドは、フラッ
シュメモリチップ2−3に対してのみ有効となる。
【0201】これにより、フラッシュメモリチップ2−
3は、供給された18ビットの転送元内部アドレス「0
00111000111100000B」に格納された
データの読み出しを実行する。ここで、供給された18
ビットの転送元内部アドレス「00011100011
1100000B」のうち、上位13ビットはブロック
を特定し、下位5ビットは当該ブロック内のページを特
定するために用いられる。この場合、上位13ビットは
「0001110001111B」であり、下位5ビッ
トは「00000B」であるから、特定されるブロック
はブロック25487となり、特定されるページはペー
ジ0となる。すなわち、フラッシュメモリチップ2−3
は、ブロック25487のページ0に格納されたデータ
の読み出しを実行する。
【0202】このようにしてフラッシュメモリチップ2
−3から読み出されたユーザデータは、バス15を介し
てフラッシュメモリインターフェースブロック10に供
給される。フラッシュメモリインターフェースブロック
10がユーザデータを受け取ると、これがバッファ9に
一時的に格納されるとともに、ECCブロック11に送
出され、新たにエラーコレクションコードの生成が行わ
れる。ECCブロック11にて新たに生成されたエラー
コレクションコードは、ECCブロック11内に一時的
に保持される。
【0203】次に、バッファ9に一時的に格納されたデ
ータの書き込み動作が行われる。
【0204】すなわち、フラッシュシーケンサブロック
12は、所定のレジスタ(図示せず)に格納された転送
先のブロックアドレスから、18ビットの転送先内部ア
ドレスを生成する。かかる転送先内部アドレスは、ホス
トアドレスの上位3ビット〜5ビット、転送先のブロッ
クアドレス、及び「00000B」を結合して生成さ
れ、その値は、「00010000000000000
0B」である。
【0205】次に、フラッシュシーケンサブロック12
は、生成された上記転送先内部アドレス「000100
000000000000B」を、所定のレジスタ(図
示せず)に格納された内部書き込みコマンドとともにバ
ス15に供給するよう、フラッシュメモリインターフェ
ースブロック10に指示する。バス15に供給された1
8ビットの転送先内部アドレス及び内部書き込みコマン
ドは、フラッシュメモリチップ2−0〜2−3に対し共
通に供給されるが、上述のとおり、チップ選択信号#3
のみが活性状態となっているので、バス15に供給され
た転送先内部アドレス及び内部書き込みコマンドは、フ
ラッシュメモリチップ2−3に対してのみ有効となる。
【0206】これにより、フラッシュメモリチップ2−
3は、供給された18ビットの転送先内部アドレス「0
00100000000000000B」に対応するペ
ージへの書き込みが許可された状態となる。ここで、供
給された18ビットの転送先内部アドレス「00010
0000000000000B」のうち、上位13ビッ
トはブロックを特定し、下位5ビットは当該ブロック内
のページを特定するために用いられるので、特定される
ブロックはブロック25088となり、特定されるペー
ジはページ0となる。
【0207】次に、ブロック25487のページ0より
読み出され、バッファ9に一時的に格納されているデー
タが、フラッシュシーケンサブロック12により、フラ
ッシュメモリインターフェースブロック10を介して、
バス15に供給される。バス15に供給されたデータ
も、やはりフラッシュメモリチップ2−0〜2−3に対
し共通に供給されるが、上述のとおり、チップ選択信号
#3が活性状態となっているため、フラッシュメモリチ
ップ2−3に対してのみ有効となる。
【0208】このようにして、ブロック25088のペ
ージ0への書き込みが許可された状態にあるフラッシュ
メモリチップ2−3に対して、データが供給されると、
ブロック25088のページ0のユーザ領域25に上記
データが書き込まれる。次に、ECCブロック11に一
時的に保持されているエラーコレクションコードがフラ
ッシュメモリインターフェースブロック10を介して、
バス15に供給される。ブロック25088のページ0
への書き込みが許可された状態にあるフラッシュメモリ
チップ2−0に対して、エラーコレクションコードが供
給されると、ブロック25088のページ0の冗長領域
26にエラーコレクションコードが書き込まれる。この
ようにして、ブロック25487のページ0から、ブロ
ック25088のページ0へのデータの転送が完了す
る。
【0209】次に、転送元内部アドレスがインクリメン
トされ、新しい転送元内部アドレス「00011100
0111100001B」が生成される。そして、上述
した手順により、新しい転送元内部アドレス「0001
11000111100001B」により示されるペー
ジ(ページ1)のデータが、バッファ9に一時的に格納
される。
【0210】次に、転送先内部アドレスがインクリメン
トされ、新しい転送先内部アドレス「00010000
0000000001B」が生成される。そして、上述
した手順により、バッファ9に一時的に格納されたデー
タが、新しい転送先内部アドレス「000100000
000000000B」により示されるページ(ページ
1)に書き込まれる。このようにして、ブロック254
87のページ1から、ブロック25088のページ1へ
のデータの転送が完了する。
【0211】このような転送動作は、転送元内部アドレ
スの下位5ビットが、ホストアドレスの下位5ビット
「11011B(27)」に一致するまで連続的に行わ
れる。すなわち、転送元内部アドレスがインクリメント
された結果、転送元内部アドレスの下位5ビットが「1
1011B(27)」となり、ホストアドレスの下位5
ビット「11011B(27)」に一致すると、一旦、
転送元内部アドレスを用いた、ブロック25088から
のデータの読み出しが中断される。転送元内部アドレス
の下位5ビットが、ホストアドレスの下位5ビット「1
1011B(27)」に一致すると、フラッシュシーケ
ンサブロック12は、転送先内部アドレスをインクリメ
ントし、得られた新しい転送先内部アドレス「0001
00000000011011B」に対し、ホストコン
ピュータ5より供給され、バッファ9に格納されたデー
タの書き込みを実行する。
【0212】かかるデータの書き込みが完了すると、再
び、転送元内部アドレスがインクリメントされ、新しい
転送元内部アドレス「000111000111111
100B」が生成される。そして、転送元内部アドレス
を用いた、ブロック25088からのデータの読み出し
が再開され、上述した手順により、新しい転送元内部ア
ドレス「000111000111111100B」に
より示されるページ(ページ28)のデータが、バッフ
ァ9に一時的に格納される。
【0213】同様に、転送先内部アドレスがインクリメ
ントされ、新しい転送先内部アドレス「0001000
00000011100B」が生成される。そして、上
述した手順により、バッファ9に一時的に格納されたデ
ータが、新しい転送先内部アドレス「00010000
0000011100B」により示されるページ(ペー
ジ28)に書き込まれる。このようにして、ブロック2
5487のページ28から、ブロック25088のペー
ジ28へのデータの転送が完了する。
【0214】このような転送動作が、ブロック2548
7の最終ページ(ページ31)から、ブロック2508
8の最終ページ(ページ31)へのデータ転送が完了す
るまで行われ、ブロック25487の最終ページ(ペー
ジ31)から、ブロック25088の最終ページ(ペー
ジ31)へのデータ転送が完了すると、フラッシュシー
ケンサブロック12による一連のデータ転送動作が完了
する。
【0215】また、マイクロプロセッサ6は、ブロック
25088の内容がブロック25088に転送されたこ
とに応答して、アドレス変換テーブル23を構成するス
コープ2がエリア24に関わるアドレス変換情報を記憶
していることを示すべく、管理テーブル28のエリア番
号格納領域2に、エリア番号として「24」を格納す
る。
【0216】さらに、マイクロプロセッサ6は、上述の
アクセスがなされたことに応答して、優先リンク29の
内容を更新する。すなわち、優先リンク29を構成する
各ポインタ0〜ポインタ3の現在の内容は、それぞれ
「3」、「2」、「NULL」及び「1」であり、アド
レス変換テーブル27を構成する各スコープの優先順位
は、スコープ0→スコープ3→スコープ1→スコープ2
の順となっているが、上述のアクセスにおいては、スコ
ープ2に対応するエリアに対してアクセスがされたの
で、アクセスされたスコープのスコープ番号「2」と同
じ番号がリンク先ポインタ番号として格納されているポ
インタ(ポインタ1)の内容が、いまアクセスされたス
コープに対応するポインタ(ポインタ2)に格納された
データ「NULL」に書き換えられ、さらに、アクセス
されたスコープに対応するポインタ(ポインタ2)の内
容が、リンク先ポインタ番号として現在最も優先順位の
高いスコープに対応するポインタ番号「0」に書き換え
られる。これにより、優先リンク29を構成する各ポイ
ンタ0〜ポインタ3の現在の内容は、それぞれ「3」、
「NULL」、「0」及び「1」に変更され、アドレス
変換テーブル27を構成する各スコープの優先順位は、
スコープ2→スコープ0→スコープ3→スコープ1の順
となる。
【0217】さらに、マイクロプロセッサ6は、上述の
データ書き込みによって、消去済みブロックキュー30
のキュー4に格納された物理ブロックアドレスが、消去
ブロックではなくなったことに応答して、キュー4に対
応するエリア(エリア24)に含まれる消去ブロックを
検索し、見つかった消去ブロックの物理ブロックアドレ
スを新たにキュー4に格納する。
【0218】以上により、一連のデータ書き込み動作が
完了する。
【0219】このように、本実施態様によるフラッシュ
メモリシステム1では、フラッシュメモリチップ2−0
〜2−3のメモリ空間をエリア0〜エリア31からなる
32のエリアに分割し、エリア0〜エリア31にそれぞ
れ対応するアドレス変換情報の全てをアドレス変換テー
ブル27に格納せず、スコープ0〜スコープ3からなる
4個のスコープのみをアドレス変換テーブル27に格納
しているので、アドレス変換テーブル27に要求される
記憶容量を小さくすることができる。
【0220】尚、本発明は、PCMCIA(Perso
nal Computer Memory Card
International Associatio
n)が発表した統一規格に基づくPCカードとして実現
することが可能である。さらに、近年、半導体素子の高
集積化技術の発展に伴い、より小型化された小型メモリ
カード、例えば、CFA(Compact Flash
Association)が提唱する「Compac
t Flash(サンディスク社の登録商標)」や、S
SFDC Forumの「SmartMedia
((株)東芝の登録商標)」、MultiMedia
Card Associationの提唱する「MMC
(MultiMedia Card)」、ソニー株式会
社が提唱する「メモリースティック(ソニー(株)の商
標)」などに本発明を適用することが可能である。
【0221】本発明は、以上の実施態様に限定されるこ
となく、特許請求の範囲に記載された発明の範囲内で種
々の変更が可能であり、それらも本発明の範囲内に包含
されるものであることはいうまでもない。
【0222】例えば、上記実施態様においては、フラッ
シュメモリシステム1はカード形状であり、4個のフラ
ッシュメモリチップ2−0〜2−3とコントローラ3と
が、一つのカード内に集積されて構成されているが、本
発明にかかるフラッシュメモリシステムがカード形状に
限定されることはなく、他の形状、例えばスティック状
であってもよい。
【0223】また、上記実施態様においては、フラッシ
ュメモリシステム1は、4個のフラッシュメモリチップ
2−0〜2−3とコントローラ3とが、一つのカード内
に集積されて構成されているが、フラッシュメモリチッ
プ2−0〜2−3とコントローラ3とが、同一筐体に集
積されている必要はなく、それぞれ別個の筐体にパッケ
ージングされてもよい。この場合、フラッシュメモリチ
ップ2−0〜2−3がパッケージングされた筐体及びコ
ントローラ3がパッケージングされた筐体には、それぞ
れ他方との電気的及び機械的接続を実現するためのコネ
クタが必要とされ、かかるコネクタによって、フラッシ
ュメモリチップ2−0〜2−3がパッケージングされた
筐体が、コントローラ3がパッケージングされた筐体に
着脱可能に装着される。さらに、フラッシュメモリチッ
プ2−0〜2−3についても、これらが同一筐体に集積
されている必要はなく、それぞれ別個の筐体にパッケー
ジングされてもよい。
【0224】さらに、上記実施態様にかかるフラッシュ
メモリシステム1においては、4個のフラッシュメモリ
チップ2−0〜2−3が備えられ、コントローラ3は、
4個のフラッシュメモリチップ2−0〜2−3に対する
制御を行っているが、本発明にかかるフラッシュメモリ
システムに備えられるフラッシュメモリチップの数や、
本発明にかかるコントローラが制御可能なフラッシュメ
モリチップの数は4個に限定されず、他の数、例えば1
個や8個であってもよい。
【0225】また、上記実施態様にかかるフラッシュメ
モリシステム1においては、各フラッシュメモリチップ
2−0〜2−3は、それぞれ128Mバイト(1Gビッ
ト)の記憶容量を有する半導体チップであるが、各フラ
ッシュメモリチップ2−0〜2−3の記憶容量は128
Mバイト(1Gビット)に限定されず、これとは異なる
容量、例えば32Mバイト(256Mビット)であって
もよい。
【0226】さらに、上記実施態様にかかるフラッシュ
メモリシステム1においては、512バイトを1ページ
とし、これを最小アクセス単位としているが、最小アク
セス単位としては512バイトに限定されず、これとは
異なる容量であってもよい。
【0227】また、上記実施態様にかかるフラッシュメ
モリシステム1においては、4つのフラッシュメモリチ
ップ2−0〜2−3を1Mページのアドレス空間を備え
る一つの大きなメモリとして取り扱っているが、これら
4つのフラッシュメモリチップ2−0〜2−3を一つの
大きなメモリとして取り扱う必要はなく、これら4つの
フラッシュメモリチップ2−0〜2−3をそれぞれ別個
のメモリとして取り扱ってもよい。
【0228】さらに、上記実施態様にかかるフラッシュ
メモリシステム1においては、フラッシュメモリチップ
2−0〜2−3を構成する各フラッシュメモリセル16
が、1ビットのデータを保持しているが、フローティン
グゲート電極21に注入すべき電子の量を複数段階に制
御することによって、2ビット以上のデータを保持可能
に構成してもよい。
【0229】また、上記実施態様にかかるフラッシュメ
モリシステム1においては、各フラッシュメモリチップ
2−0〜2−3を8個のエリアに分割しているが、エリ
ア数は8個には限定されず、他の数、例えば、4個や1
6個であってもよい。すなわち、各フラッシュメモリチ
ップ2−0〜2−3を分割するエリア数は、少なければ
少ないほど、アドレス変換テーブル27の更新頻度が低
くなりアクセス速度の低下が防止されるという利点があ
る一方、各スコープを構成する物理ブロックアドレス格
納領域の数が増大し、SRAMワークエリア8に必要と
される記憶容量が増大するという欠点があり、多ければ
多いほど、各スコープを構成する物理ブロックアドレス
格納領域の数が減少しSRAMワークエリア8に必要と
される記憶容量を低減することができるという利点があ
る一方、アドレス変換テーブル27の更新頻度が高くな
りアクセス速度が低下するという欠点がある。したがっ
て、各フラッシュメモリチップ2−0〜2−3の分割数
は、要求されるアクセス速度及びSRAMワークエリア
8の記憶容量に基づいて決定すればよい。
【0230】さらに、上記実施態様にかかるフラッシュ
メモリシステム1においては、各ブロックを32個のペ
ージによって構成しているが、各ブロックを構成するペ
ージ数は32個には限定されず、他の数、例えば、16
個や64個であってもよい。
【0231】また、上記実施態様にかかるフラッシュメ
モリシステム1においては、アドレス変換テーブル27
をスコープ0〜スコープ3からなる4つのスコープによ
って構成しているが、アドレス変換テーブル27を構成
するスコープの数は4つには限定されず、他の数、例え
ば、2つや8つであってもよい。すなわち、アドレス変
換テーブル27を構成するスコープの数は、少なければ
少ないほどSRAMワークエリア8に必要とされる記憶
容量を低減することができるという利点がある一方、ア
ドレス変換テーブル27の更新頻度が高くなりアクセス
速度が低下するという欠点があり、アドレス変換テーブ
ル27を構成するスコープの数は、多ければ多いほどア
ドレス変換テーブル27の更新頻度が低くなりアクセス
速度の低下が防止されるという利点がある一方、SRA
Mワークエリア8に必要とされる記憶容量が増大すると
いう欠点がある。したがって、アドレス変換テーブル2
7を構成するスコープの数は、要求されるアクセス速度
及びSRAMワークエリア8の記憶容量に基づいて決定
すればよい。
【0232】さらに、上記実施態様にかかるフラッシュ
メモリシステム1においては、アドレス変換テーブル2
7構成するスコープ0〜スコープ3の優先順位を優先リ
ンク29によって決定しているが、各スコープ0〜スコ
ープ3の優先順位の決定方法としてはこれに限定され
ず、他の方法、例えば、各スコープ0〜スコープ3ごと
にアクセス数をカウントするカウンタを設け、これらカ
ウンタのカウント値に基づいて各スコープ0〜スコープ
3の優先順位を決定してもよい。
【0233】また、上記実施態様にかかるフラッシュメ
モリシステム1においては、消去済みブロックキュー3
0を8個のキューによって構成し、各スコープに対して
2個のキューを割り当てているが、各スコープに対して
割り当てられるキューの数としては2個に限定されず、
他の数、例えば、1個や4個であってもよい。
【0234】さらに、上記実施態様にかかるフラッシュ
メモリシステム1においては、各ブロックの先頭ページ
(ページ0)を構成する冗長領域26に、消去フラグが
設けられ、消去フラグによって当該ブロックが消去済み
ブロックである否かを判断可能としているが、冗長領域
26に消去フラグを設けることは、本発明においては必
須ではなく、例えば、消去フラグを冗長領域26に設け
ることなく、消去済みブロックの対応論理ブロックアド
レスをオール1(1023)とすることによって、当該
ブロックが消去済みブロックであることを表示してもよ
い。
【0235】また、本発明において、手段とは、必ずし
も物理的手段を意味するものではなく、各手段の機能が
ソフトウエアによって実現される場合も包含する。さら
に、一つの手段の機能が二以上の物理的手段により実現
されても、二以上の手段の機能が一つの物理的手段によ
り実現されてもよい。
【0236】
【発明の効果】以上説明したように、本発明によれば、
アドレス変換テーブルに要求される記憶容量が低減され
たメモリコントローラ及びフラッシュメモリシステム、
並びに、記憶容量が低減されたアドレス変換テーブルを
用いたフラッシュメモリへのアクセス方法を提供するこ
とができる。
【図面の簡単な説明】
【図1】図1は、本発明の好ましい実施態様にかかるフ
ラッシュメモリシステム1を概略的に示すブロック図で
ある。
【図2】図2は、フラッシュメモリチップ2−0〜2−
3を構成する各フラッシュメモリセル16の構造を概略
的に示す断面図である。
【図3】図3は、書込状態であるフラッシュメモリセル
16を概略的に示す断面図である。
【図4】図4は、フラッシュメモリチップ2−0のアド
レス空間の構造を概略的に示す図である。
【図5】図5は、SRAMワークエリア8に格納される
アドレス変換テーブル27のデータ構造を示す概略図で
ある。
【図6】図6は、SRAMワークエリア8に格納される
管理テーブル28のデータ構造を示す概略図である。
【図7】図7は、SRAMワークエリア8に格納される
優先リンク29のデータ構造を示す概略図である。
【図8】図8は、優先リンク29によって、優先順位と
してスコープ0→スコープ1→スコープ2→スコープ3
が記憶される場合を示す図である。
【図9】図9は、優先リンク29によって、優先順位と
してスコープ2→スコープ0→スコープ1→スコープ3
が記憶される場合を示す図である。
【図10】図10は、優先リンク29によって、優先順
位としてスコープ3→スコープ2→スコープ0→スコー
プ1が記憶される場合を示す図である。
【図11】図11は、優先リンク29によって、優先順
位としてスコープ1→スコープ3→スコープ2→スコー
プ0が記憶される場合を示す図である。
【図12】図12は、SRAMワークエリア8に格納さ
れる消去済みブロックキュー30のデータ構造を示す概
略図である。
【図13】図13は、従来のフラッシュメモリシステム
31を示す概略図である。
【符号の説明】
1 フラッシュメモリシステム 2−0〜2−3 フラッシュメモリチップ 3 コントローラ 4 コネクタ 5 ホストコンピュータ 6 マイクロプロセッサ 7 ホストインターフェースブロック 8 SRAMワークエリア 9 バッファ 10 フラッシュメモリインターフェースブロック 11 ECCブロック 12 フラッシュシーケンサブロック 13〜15 バス 16 フラッシュメモリセル 17 P型半導体基板 18 ソース拡散領域 19 ドレイン拡散領域 20 トンネル酸化膜 21 フローティングゲート電極 22 絶縁膜 23 コントロールゲート電極 24 チャネル 25 ユーザ領域 26 冗長領域 27 アドレス変換テーブル 28 管理テーブル 29 優先リンク 30 消去済みブロックキュー 31 フラッシュメモリシステム 32 アドレス変換テーブル 33 フラッシュメモリ 34−1〜34−13 記憶単位 35−0〜35−12 ブロック 36 ユーザ領域 37 冗長領域

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 ホストコンピュータより供給されるホス
    トアドレスに基づいて、複数のエリアに分割されたメモ
    リをアクセスするメモリコントローラであって、それぞ
    れアドレス変換情報が格納された複数のスコープを含む
    アドレス変換テーブルと、前記ホストアドレスの第1の
    部分に基づいて前記複数のスコープのいずれかを選択す
    る手段と、前記選択されたスコープに格納されたアドレ
    ス変換情報に基づいて、前記ホストアドレスの第2の部
    分を変換アドレスに変換する手段と、少なくとも前記変
    換アドレスに基づいて前記メモリをアクセスする手段と
    を備え、前記複数のスコープに格納されたアドレス変換
    情報が、それぞれ対応するエリアに関わるアドレス変換
    情報であり、且つ、前記スコープの数が、前記エリアの
    数よりも少ないことを特徴とするメモリコントローラ。
  2. 【請求項2】 前記ホストアドレスの前記第1の部分に
    よって特定されるエリアに関わるアドレス変換情報が前
    記アドレス変換テーブルに格納されていないことに応答
    して、前記アドレス変換テーブルに含まれる複数のスコ
    ープのいずれかに格納されたアドレス変換情報を、前記
    特定されるエリアに関わるアドレス変換情報に置き換え
    る手段をさらに備えることを特徴とする請求項1に記載
    のメモリコントローラ。
  3. 【請求項3】 前記置き換える手段による置き換えが行
    われるスコープを、前記ホストコンピュータからのアク
    セス履歴に基づき決定する手段をさらに備えることを特
    徴とする請求項2に記載のメモリコントローラ。
  4. 【請求項4】 フラッシュメモリと、ホストコンピュー
    タより供給されるホストアドレスに基づいて前記フラッ
    シュメモリをアクセスするメモリコントローラとを備
    え、前記フラッシュメモリがそれぞれ複数のブロックか
    らなる複数のエリアに分割され、前記メモリコントロー
    ラが、それぞれアドレス変換情報が格納された複数のス
    コープを含むアドレス変換テーブルと、前記ホストアド
    レスの第1の部分に基づいて前記複数のスコープのいず
    れかを選択する手段と、前記選択されたスコープに格納
    されたアドレス変換情報に基づいて、前記ホストアドレ
    スの第2の部分を物理ブロックアドレスに変換する手段
    と、前記ホストアドレスの第1の部分に基づいて前記複
    数のエリアのいずれかを選択する手段と、前記物理ブロ
    ックアドレスに基づいて前記選択されたエリアに含まれ
    る複数のブロックのいずれかを選択する手段とを含み、
    前記アドレス変換テーブルに含まれるスコープの数が、
    前記エリアの数よりも少ないことを特徴とするフラッシ
    ュメモリシステム。
  5. 【請求項5】 前記フラッシュメモリと前記メモリコン
    トローラとが、同一の筐体に収容されていることを特徴
    とする請求項3または4に記載のフラッシュメモリシス
    テム。
  6. 【請求項6】 前記筐体がカード形状であることを特徴
    とする請求項5に記載のフラッシュメモリシステム。
  7. 【請求項7】 m個のエリアに分割されたフラッシュメ
    モリへのアクセス方法であって、ホストコンピュータよ
    り供給されるホストアドレスを受けるステップと、前記
    供給されたホストアドレスの第1の部分に基づいて、ア
    ドレス変換テーブルに含まれるn個(n<m)のスコー
    プのいずれかを選択するステップと、前記選択されたス
    コープに含まれるアドレス変換情報に基づいて、前記ホ
    ストアドレスの第2の部分を変換アドレスに変換するス
    テップと、少なくとも前記変換アドレスに基づいてフラ
    ッシュメモリをアクセスするステップとを備えるフラッ
    シュメモリへのアクセス方法。
  8. 【請求項8】 前記ホストアドレスの前記第1の部分に
    よって特定されるエリアに関わるアドレス変換情報が前
    記アドレス変換テーブルに格納されていないことに応答
    して、前記アドレス変換テーブルに含まれるn個のスコ
    ープのいずれかに格納されたアドレス変換情報を、前記
    特定されるエリアに関わるアドレス変換情報に置き換え
    るステップをさらに備えることを特徴とする請求項7に
    記載のフラッシュメモリへのアクセス方法。
  9. 【請求項9】 前記置き換えるステップによる置き換え
    が行われるスコープを、前記ホストコンピュータからの
    アクセス履歴に基づき決定するステップをさらに備える
    ことを特徴とする請求項8に記載のフラッシュメモリへ
    のアクセス方法。
JP2000187184A 1999-12-20 2000-06-22 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法 Pending JP2001243110A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000187184A JP2001243110A (ja) 1999-12-20 2000-06-22 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
US09/740,919 US20010012222A1 (en) 1999-12-20 2000-12-19 Memory controller for flash memory system and method for accessing flash memory device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP36039399 1999-12-20
JP11-360393 1999-12-20
JP2000187184A JP2001243110A (ja) 1999-12-20 2000-06-22 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法

Publications (1)

Publication Number Publication Date
JP2001243110A true JP2001243110A (ja) 2001-09-07

Family

ID=26581103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000187184A Pending JP2001243110A (ja) 1999-12-20 2000-06-22 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法

Country Status (2)

Country Link
US (1) US20010012222A1 (ja)
JP (1) JP2001243110A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925012B2 (en) * 1991-11-26 2005-08-02 Renesas Technology Corp. Storage device employing a flash memory
JP2006107379A (ja) * 2004-10-08 2006-04-20 Sony Corp 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2008040723A (ja) * 2006-08-04 2008-02-21 Tdk Corp メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2011242833A (ja) * 2010-05-14 2011-12-01 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9158678B2 (en) 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
JP2016522942A (ja) * 2013-05-13 2016-08-04 クアルコム,インコーポレイテッド 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3848039B2 (ja) * 1999-09-06 2006-11-22 株式会社リコー インターネットファクシミリゲートウェイ装置およびその制御方法
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP3459609B2 (ja) * 2000-03-17 2003-10-20 三洋電機株式会社 ライトキャッシュ回路、ライトキャッシュ回路を備えた記録装置、およびライトキャッシュ方法
DE60218121T2 (de) * 2001-12-11 2007-05-31 Matsushita Electric Industrial Co. Limited, Kadoma IC-Karte und Datenverarbeitungsverfahren dafür
US7136986B2 (en) * 2002-11-29 2006-11-14 Ramos Technology Co., Ltd. Apparatus and method for controlling flash memories
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
TWI326028B (en) * 2006-11-20 2010-06-11 Silicon Motion Inc Method for flash memory data management
JP4967680B2 (ja) * 2007-01-23 2012-07-04 ソニー株式会社 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US8725927B2 (en) * 2008-10-15 2014-05-13 Micron Technology, Inc. Hot memory block table in a solid state storage device
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
KR101678911B1 (ko) * 2010-03-12 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
US9146856B2 (en) 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
KR20150093004A (ko) * 2014-02-06 2015-08-17 삼성전자주식회사 불휘발성 저장 장치의 동작 방법 및 불휘발성 저장 장치를 액세스하는 컴퓨팅 장치의 동작 방법
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
EP3133604B1 (en) * 2015-08-17 2020-11-11 Harman Becker Automotive Systems GmbH Method and device for fail-safe erase of flash memory
US10235397B1 (en) 2016-09-30 2019-03-19 EMC IP Holding Company LLC Trees and graphs in flash memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184320B2 (en) 1991-11-26 2007-02-27 Renesas Technology Corp. Storage device employing a flash memory
US7006386B2 (en) 1991-11-26 2006-02-28 Renesas Technology Corp. Storage device employing a flash memory
US6925012B2 (en) * 1991-11-26 2005-08-02 Renesas Technology Corp. Storage device employing a flash memory
US7715243B2 (en) 1991-11-26 2010-05-11 S4, Inc. Storage device employing a flash memory
US7064995B2 (en) 1991-11-26 2006-06-20 Renesas Technology Corp. Storage device employing a flash memory
US7082510B2 (en) 1991-11-26 2006-07-25 Renesas Technology Corp. Storage device employing a flash memory
US7123519B2 (en) 1991-11-26 2006-10-17 Renesas Technology Corp. Storage device employing a flash memory
US7154805B2 (en) 1991-11-26 2006-12-26 Renesas Technology Corp. Storage device employing a flash memory
US8031536B2 (en) 1991-11-26 2011-10-04 S4, Inc. Storage device employing a flash memory
US7002851B2 (en) 1991-11-26 2006-02-21 Renesas Technology Corp. Storage device employing a flash memory
JP2006107379A (ja) * 2004-10-08 2006-04-20 Sony Corp 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP4715155B2 (ja) * 2004-10-08 2011-07-06 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP4710753B2 (ja) * 2006-08-04 2011-06-29 Tdk株式会社 メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2008040723A (ja) * 2006-08-04 2008-02-21 Tdk Corp メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2011242833A (ja) * 2010-05-14 2011-12-01 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8316208B2 (en) 2010-05-14 2012-11-20 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US9158678B2 (en) 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
JP2016522942A (ja) * 2013-05-13 2016-08-04 クアルコム,インコーポレイテッド 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法

Also Published As

Publication number Publication date
US20010012222A1 (en) 2001-08-09

Similar Documents

Publication Publication Date Title
JP4256600B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2001243110A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
JP3905037B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3921174B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US6434658B1 (en) Memory device operable with a small-capacity buffer memory and having a flash memory
US5905993A (en) Flash memory card with block memory address arrangement
US5598370A (en) Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same
US7136986B2 (en) Apparatus and method for controlling flash memories
KR20030011230A (ko) 비휘발성 기억 장치 및 그의 재기입 제어 방법
JP2002278781A (ja) 記憶装置、記憶装置制御方法及びプログラム
WO1999030239A1 (fr) Memoire et procede d'acces
JPH09282862A (ja) メモリカード
JP3621051B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2001344148A (ja) ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法
JP4248772B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4233213B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4220690B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4316824B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP3999959B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2004078907A (ja) 記憶装置、メモリ管理方法及びプログラム
JP4042898B2 (ja) メモリコントローラ及びこれを備えるメモリシステム並びにフラッシュメモリの制御方法
EP1804166A2 (en) Memory device and information processing apparatus
JPH06175917A (ja) フラッシュメモリ
JP2004252746A (ja) 記録媒体の記録制御方法、記録制御装置および電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081209