JP5220747B2 - 不揮発性記憶装置および不揮発性記憶システム - Google Patents

不揮発性記憶装置および不揮発性記憶システム Download PDF

Info

Publication number
JP5220747B2
JP5220747B2 JP2009525280A JP2009525280A JP5220747B2 JP 5220747 B2 JP5220747 B2 JP 5220747B2 JP 2009525280 A JP2009525280 A JP 2009525280A JP 2009525280 A JP2009525280 A JP 2009525280A JP 5220747 B2 JP5220747 B2 JP 5220747B2
Authority
JP
Japan
Prior art keywords
storage device
address
nonvolatile storage
boot
partition
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.)
Active
Application number
JP2009525280A
Other languages
English (en)
Other versions
JPWO2009016832A1 (ja
Inventor
利行 本多
昌之 外山
雅浩 中西
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009525280A priority Critical patent/JP5220747B2/ja
Publication of JPWO2009016832A1 publication Critical patent/JPWO2009016832A1/ja
Application granted granted Critical
Publication of JP5220747B2 publication Critical patent/JP5220747B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置、および、不揮発性記憶装置と不揮発性記憶装置に対してデータの書き込み・読み出しを行うホスト装置を有する不揮発性記憶システムに関する。
近年、書き換え可能な不揮発性メモリであるNANDタイプのフラッシュメモリを搭載した不揮発性記憶装置としてのメモリーカードは、デジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。メモリーカード市場の拡大は、メモリーカードを取り扱うホスト装置の市場の拡大を意味している、つまり近年メモリーカードを取り扱うインターフェースを持ったホスト装置が増加していることを意味する。
また別の観点で、ホスト装置は開発及び製品化サイクルを短縮するために、ホスト装置に搭載しているマイコンのプログラムコードを、従来使用していた書き換え出来ない不揮発性メモリであるROMから、書き換え可能な不揮発性メモリに格納するようになってきている。書き換え可能な不揮発性メモリにプログラムコードを格納することで、バージョンアップや不具合発生時の修正に対して早期に対応することが可能になるメリットがあるからである。
しかし、書き換え可能な不揮発性メモリの中で現在最もビット単価の安価なNANDタイプのフラッシュメモリは、従来使用していたROMでは必要のなかった誤り訂正の技術やウェアレベリング等の新たな技術が必要になる。ウェアレベリングは、NANDタイプのフラッシュメモリ内部のブロックの書き換え回数を均一化する処理である。
そこで、ホスト装置に新たにNANDタイプのフラッシュメモリを制御するための技術を搭載するのではなく、既に備えているメモリーカードとのインターフェースを利用する手法も用いられるようになってきている。この場合には、既にホスト装置が備えているメモリーカードとのインターフェースを利用して、メモリーカードをホスト装置に直接実装し、ホスト装置に搭載しているマイコンのプログラムコードを直接実装したメモリーカードに格納する。
図17〜19を用いて不揮発性記憶システムについて説明する。図17は従来の不揮発性記憶システムのブロック図である。図17の不揮発性記憶システムでは、電源投入後にホスト装置1702は不揮発性記憶装置1701から電源投入後の処理のためのプログラムコード(ブートコード)を読み出すことでシステムを起動する。
図17において不揮発性記憶装置1701は、ホスト装置1702から論理アドレスで指定されるデータを書き込み・読み出し可能なメモリーカードである。不揮発性記憶装置1701はコントローラ1703とフラッシュメモリ1704からなる。フラッシュメモリ1704はホスト装置1702からの書き込みデータを不揮発で記憶するためのメモリセルアレイを備えた不揮発性メモリである。コントローラ1703は不揮発性記憶装置1701内部全体の制御を行うとともに、ホスト装置1702とのインターフェースとフラッシュメモリ1704とのインターフェースを持つ。
コントローラ1703は、プロセッサ1705とホストIF(インターフェース)1706とフラッシュメモリIF(インターフェース)1707と論理物理アドレス変換テーブル1708とバッファメモリ1709を有している。
プロセッサ1705はコントローラ1703内部全体の制御を行う。ホストIF1706はホスト装置1702から書き込み・読み出しされるデータや、書き込み・読み出しの動作を指示に関わるコマンドのインターフェースを制御する。フラッシュメモリIF1707はフラッシュメモリ1704へのデータの書き込みやフラッシュメモリ1704からのデータの読み出しを制御する。論理物理アドレス変換テーブル1708は、不揮発性記憶装置1701内部においてウェアレベリングの機能を実現するために、不揮発性記憶装置1701とホスト装置1702とのインターフェースでデータの書き込み・読み出しにおいて使用されるアドレス(以下、論理アドレスという)と、フラッシュメモリ1704のアドレス(以下、物理アドレスという)との対応を示すテーブルである。バッファメモリ1709はホスト装置1702からの書き込みデータをフラッシュメモリ1704に書き込む前に一時的にデータを保持し、またホスト装置1702への読み出しデータをフラッシュメモリ1704から読み出して一時的に保持する揮発性のメモリである。
ホスト装置1702には少なくともプロセッサ1711とメインメモリ1712と不揮発性記憶装置IF(インターフェース)1713を備える。プロセッサ1711はホスト装置1702内部全体の制御を行う。また、プロセッサ1711は不揮発性記憶装置1701にデータを書き込み、不揮発性記憶装置1701からデータを読み出すための、論理アドレスを決定する機能を持つ。メインメモリ1712は不揮発性記憶装置1701から読み出したプログラムコードや、その他のデータを格納するための揮発性のメモリである。不揮発性記憶装置IF1713は不揮発性記憶装置1701へデータの書き込み・読み出しを行うためのデータや、書き込み・読み出し動作を指示するためのインターフェースを制御する。不揮発性記憶装置IF1713は論理アドレスを指定してデータの書き込み・読み出しを行う。
図18を用いて従来の不揮発性記憶システムにおけるプログラムコードのデータの読み出しについて説明する。図18はホスト装置1702と不揮発性記憶装置1701間における電源投入後からブートコード読み出しまでのシーケンス図である。
最初にホスト装置1702が不揮発性記憶装置1701に電圧を印加すると、コントローラ1703の初期化、及びその後の不揮発性記憶装置の初期化を行う。まずプロセッサ1705はコントローラ1703の初期化(コントローラ初期化)を行う。このコントローラ初期化とは、コントローラ各部の図示しないレジスタをリセットし、フラッシュメモリ1704の種別や個数の認識をして、不揮発性記憶装置1701としての容量や特性に関する情報をフラッシュメモリ1704の特定領域のデータを読み出すことで認識する処理である。コントローラ初期化に要する時間は数ms以内の短い時間である。コントローラが初期化を終えることで、不揮発性記憶装置1701はホスト装置1702と相互に通信を行うことが可能になる。
ステップ1801でホスト装置1702は不揮発性記憶装置IF1713を介して不揮発性記憶装置1701に初期化コマンドを発行する。ホスト装置1702から送られる初期化コマンドは不揮発性記憶装置1701を初期化するためのコマンドである。不揮発性記憶装置1701の初期化とは、コントローラ内部のプロセッサ1705がフラッシュメモリIF1707を介してフラッシュメモリ1704から管理情報を読み出して、その読み出した管理情報を基に、論理物理アドレス変換テーブル1708を完成させることである。不揮発性記憶装置1701の初期化を完了するために要する時間は、実時間で数100ms程度を要する。不揮発性記憶装置1701の初期化が完了することで、ホスト装置1702は不揮発性記憶装置1701に対して論理アドレスを指定してデータの書き込み・読み出しを行うことが可能になる。
ステップ1801でホスト装置1702より発行される初期化コマンドを受けて不揮発性記憶装置1701では、コントローラ初期化が完了していればホスト装置1702に対してレスポンスを返し、まだコントローラ初期化が完了していなければレスポンスを返さない。ステップ1801の初期化コマンドに対して不揮発性記憶装置1701からレスポンスが返らないことで、ホスト装置1702は不揮発性記憶装置1701がまだコントローラ初期化を終えていないことを認識することが出来る。
ホスト装置1702は不揮発性記憶装置1701を初期化するために、不揮発性記憶装置1701からレスポンスが返ってくるまで不揮発性記憶装置1701に対して初期化コマンドを発行する必要がある。ここではステップ1802で再度初期化コマンドを発行する。ステップ1802の初期化コマンドを受けたときに不揮発性記憶装置1701内部のコントローラ1703の初期化が終了していれば、プロセッサ1705はホストIF1706を介して初期化コマンドに対してステップ1803でレスポンスを返す。
ホスト装置1702はステップ1803で不揮発性記憶装置1701からレスポンスが帰ってくることで、不揮発性記憶装置1701内部のコントローラ1703の初期化が完了し、不揮発性記憶装置1701の初期化が開始されていることを認識することが出来る。
コントローラ初期化の完了を認識したホスト装置1702は、ステップ1804で初期化完了確認のコマンドを発行し、不揮発性記憶装置IF1713から不揮発性記憶装置1701に伝送する。これに対して不揮発性記憶装置1701の初期化処理が完了していなければ、プロセッサ1705はホスト装置1702に対してステップ1805で初期化未完のレスポンスを返す。不揮発性記憶装置1701の初期化処理が完了するまでの期間はステップ1804とステップ1805のコマンドとレスポンスを複数回繰り返す。
不揮発性記憶装置1701は数百msの時間(T1)を費やして論理物理アドレス変換テーブル1708の作成し、初期化処理が完了していれば、ホスト装置1702からのステップ1806の初期化完了確認コマンドに対してステップ1807で初期化完了のレスポンスを返す。
ホスト装置1702は不揮発性記憶装置1701からステップ1807で初期化完了のレスポンスを受けることで、不揮発性記憶装置1701に論理アドレスを指定したデータの読み出し・書き込みが可能なことを認識する。次にホスト装置1702はステップ1808で論理アドレスを指定してブートコードの読み出しを行う。不揮発性記憶装置1701はステップ1809でブートコードをホスト装置1702に出力する。
ホスト装置1702はステップ1809で読み出されたブートコードをメインメモリ1712にロードすることで不揮発性記憶システムを起動することが出来る。
図19に、図18のシーケンス図に対応する不揮発性記憶装置1701内のホスト装置1702に対する処理のフローチャートを示す。電源投入後からコントローラ初期化が完了するまでの状態は、不揮発性記憶装置1701内部の処理のみであるので図示していない。ステップ1801の初期化コマンドは、このコントローラの初期化前にホスト装置1702より不揮発性記憶装置1701に発行される。電源投入後に不揮発性記憶装置1701内部でコントローラ初期化が完了すると、判定1901でのホスト装置1702からのコマンド入力待ちの状態になる。不揮発性記憶装置1701はホスト装置1702から初期化コマンドが入力されるまで判定1901で待ち続ける。ステップ1802で初期化コマンドが不揮発性記憶装置1701に発行されると、判定1901で初期化コマンドと判定し状態1902へと遷移し、状態1902でステップ1802の初期化コマンドに対するステップ1803のレスポンスを返す。また不揮発性記憶装置1701ではホスト装置1702の初期化コマンドを受けて不揮発性記憶装置1701内部の初期化処理を開始する。不揮発性記憶装置1701内部における初期化処理の開始および初期化処理についてはフローチャートに図示していない。
次に判定1903へと遷移して、初期化完了確認コマンドがあるか、それ以外のコマンドがあるかを判定する。初期化完了確認コマンド以外のコマンドがあれば判定1903で、ホスト装置1702から初期化完了確認コマンドが発行されるのを待ち続ける。
ホスト装置1702はステップ1804で初期化完了確認コマンドを不揮発性記憶装置1701に発行する。それを受けて不揮発性記憶装置1701は判定1904へと遷移する。
判定1904で不揮発性記憶装置1701の初期化が完了していないときには状態1905に遷移する。ステップ1905に対応するステップ1805で初期化未完を表すレスポンスを返して、判定1903へと戻る。ホスト装置1702は不揮発性記憶装置1701から初期化未完のレスポンスを受けることで不揮発性記憶装置1701がまだ論理アドレスを指定した読み出し・書き込みが出来ないことを認識する。
不揮発性記憶装置1701の初期化を終えているときには、判定1904から状態1906に遷移する。ステップ1806の初期化完了コマンドを受けて、状態1906に対応するステップ1807で初期化完了のレスポンスを返す。ホスト装置1702は不揮発性記憶装置1701から初期化完了のレスポンスを受けることで不揮発性記憶装置101Aに論理アドレスを指定したデータの読み出し・書き込みが可能であることを認識する。図19に示したフローチャートではこれで初期化を完了するが。初期化を完了した後で、ステップ1808でホスト装置1702はブートコード読み出しコマンドを発行し、ステップ1809でブートコードを読み出してシステムを起動する。
特開昭62−221034
しかし、メモリーカードの不揮発性記憶装置にブートプログラムを格納した従来の不揮発性記憶システムでは、ROMと比較して、電源投入後にデータ読み出しが可能となるまでの時間、即ち初期化時間が長いという課題がある。初期化時間は主に論理物理アドレス変換テーブルを作成するために必要な時間である。初期化時間が長いとホスト装置の電源投入後からブートコードを読み始めるまでの時間がかかり、起動するまでの時間が長くなるという課題がある。
この課題を解決するために、本発明の不揮発性記憶装置は、コントローラと不揮発性メモリとを有し、外部ホストからアクセス可能なデータを前記不揮発性メモリに記憶する不揮発性記憶装置であって、前記アクセス可能なデータは、複数のパーティションに分割され、前記複数のパーティションは少なくとも1つのブートパーティションを含み、前記コントローラは、電源投入後にブートパーティションにアクセス可能な第1の状態と、前記複数のパーティションの中の任意のパーティションにアクセス可能な第2の状態と、をとり、前記第1の状態から前記第2の状態に遷移する際に、前記遷移が完了したか否かを外部ホストに通知する手段を有するものである。
ここで外部ホストからの前記ブートパーティションにアクセスを要求するコマンドの発行を受けて、前記不揮発性記憶装置が前記第1の状態であるか否かを外部ホストに通知するようにしてもよい。
ここで外部ホストからの前記ブートパーティション以外のパーティションにアクセスを要求するコマンドの発行を受けて、前記不揮発性記憶装置が前記第2の状態であるか否かを外部ホストに通知するようにしてもよい。
ここで前記ブートパーティションは予め外部ホストより不揮発性記憶装置に対して発行するコマンドによって決定されているようにしてもよい。
ここで前記ブートパーティションには、外部ホストのためのブートコードが格納されているようにしてもよい。
ここで前記コントローラはさらに、外部ホストから指定されるアドレス情報を前記不揮発性メモリのアドレスである物理アドレスに変換するブートコードアドレス変換テーブルを備え、前記第1の状態において、前記外部ホストから指定されるアドレス情報を、前記ブートアドレス変換テーブルを用いて前記不揮発性メモリの物理アドレスに変換することで、前記ブートパーティションにアクセス可能とするようにしてもよい。
ここで前記コントローラは、さらに不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリのアドレスである物理アドレスに変換する論理物理アドレス変換テーブルを備え、前記第2の状態において、前記外部ホストから指定される論理アドレスを、前記論物変換テーブルを用いて前記不揮発性メモリの物理アドレスに変換することで、前記任意のパーティションにアクセスするようにしてもよい。
ここで前記ブートコードアドレス情報は、パーティションを特定する番号としてもよい。
ここで前記ブートコードアドレス変換部は、前記パーティションを特定する番号を対応する前記パーティションの先頭の論理アドレスのデータが格納されている物理アドレスに変換するようにしてもよい。
この課題を解決するために、本発明の不揮発性記憶システムは、不揮発性記憶装置とホスト装置からなる不揮発性記憶システムであって、前記不揮発性記憶装置は、前述に記載の不揮発性記憶装置である。
この課題を解決するために、本発明の不揮発性記憶装置は、コントローラと不揮発性メモリからなる不揮発性記憶装置であって、前記不揮発性メモリは、メモリセルアレイを備え、不揮発性記憶装置の外部から読み出し・書き込みを行うデータを前記メモリセルアレイで記憶し、前記コントローラは、不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリのアドレスである物理アドレスに変換する論理物理アドレス変換部と、外部から指定されるブートコードアドレス情報を前記不揮発性メモリのアドレスである物理アドレスに変換するブートコードアドレス変換部を備え、前記論理物理アドレス変換部が使用可能な状態では、外部から論理アドレスを指定することでデータの読み出し・書き込みが可能であり、外部から論理アドレスを指定することでアクセス可能な領域を第1の領域として、電源投入後に前記論理物理アドレス変換部が使用可能になる前に、前記第1の領域の所定の一部分の領域に対して、外部からブートコードアドレス情報を指定することでデータの読み出しが可能であるものでもよい。
ここで、外部から指定される論理アドレスが複数のパーティションに分割されていてもよい。
ここで、前記ブートコードアドレス情報が、前記パーティションを特定する番号であってもよい。
ここで、前記ブートコードアドレス変換部が前記パーティションを特定する番号を、対応する前記パーティションの先頭の論理アドレスのデータが格納されている物理アドレスに変換してもよい。
ここで、前記ブートコードアドレス変換部が、前記ブートコードアドレス情報と前記物理アドレスとを1対1関数で変換してもよい。
ここで、前記ブートコードアドレス変換部が、前記物理アドレスを前記ブートコードアドレス情報に変換する逆変換機能を備え、前記逆変換機能で得られる前記ブートコードアドレス情報を外部に通知してもよい。
ここで、前記ブートコードアドレス変換部は、前記論理アドレスの0を前記論理物理アドレス変換部で変換して得られる物理アドレスをブートコードアドレス情報に変換してもよい。
また、この課題を解決するために、不揮発性記憶装置とホスト装置からなる不揮発性記憶システムであって、前記不揮発性記憶装置は、コントローラと不揮発性メモリからなる不揮発性記憶装置であって、前記不揮発性メモリは、メモリセルアレイを備え、不揮発性記憶装置の外部から読み出し・書き込みを行うデータを前記メモリセルアレイで記憶し、前記コントローラは、不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリのアドレスである物理アドレスに変換する論理物理アドレス変換部と、外部から指定されるブートコードアドレス情報を前記不揮発性メモリのアドレスである物理アドレスに変換するブートコードアドレス変換部を備え、前記論理物理アドレス変換部が使用可能な状態では、外部から論理アドレスを指定することでデータの読み出し・書き込みが可能であり、外部から論理アドレスを指定することでアクセス可能な領域を第1の領域として、電源投入後に前記論理物理アドレス変換部が使用可能になる前に、前記第1の領域の所定の一部分の領域に対して、外部からブートコードアドレス情報を指定することでデータの読み出しが可能であるものであってもよい。
ここで、外部から指定される論理アドレスが複数のパーティションに分割されていてもよい。
ここで、前記ブートコードアドレス情報が、前記パーティションを特定する番号であってもよい。
ここで、前記ブートコードアドレス変換部が前記パーティションを特定する番号を、対応する前記パーティションの先頭の論理アドレスのデータが格納されている物理アドレスに変換してもよい。
ここで、前記ブートコードアドレス変換部が、前記ブートコードアドレス情報と前記物理アドレスとを1対1関数で変換してもよい。
ここで、前記ブートコードアドレス変換部が、前記物理アドレスを前記ブートコードアドレス情報に変換する逆変換機能を備え、前記逆変換機能で得られる前記ブートコードアドレス情報を外部に通知してもよい。
ここで、前記ブートコードアドレス変換部は、前記論理アドレスの0を前記論理物理アドレス変換部で変換して得られる物理アドレスをブートコードアドレス情報に変換してもよい。
本発明によれば、不揮発性記憶装置にデータを読み出し・書き込みが行える第2の状態になる前に、第2の状態で読み出し・書き込みが行える領域の所定の一部分の領域ではあるが、読み出しが可能な状態である第1の状態を取ることによって、ホスト装置が不揮発性記憶装置に対して電源投入後により早くブートコードであるプログラムコードのデータの読み出すことが可能となる。これによって、不揮発性記憶システムの起動を早く行うことが出来る。
図1は発明の第1の実施の形態である不揮発性記憶システムの構成を示す図である。 図2は本発明の第1の実施の形態である不揮発性記憶システムのブートコード読み出しシーケンス図である。 図3は本発明の第1の実施の形態である不揮発性記憶システムの不揮発性記憶装置内のフローチャート図である。 図4は本発明の第1の実施の形態である不揮発性記憶システムのブートコードアドレス通知のシーケンス図である。 図5は本発明の第1の実施の形態である不揮発性記憶システムのアドレス変換の概要図である。 図6は本発明の第2の実施の形態である不揮発性記憶システムのブートコードアドレス通知のシーケンス図である。 図7は本発明の第3の実施の形態である不揮発性記憶システムの構成を示す図である。 図8は本発明の第3の実施の形態である不揮発性記憶システムのパーティション管理テーブルの構成を示す図である。 図9は本発明の第3の実施の形態である不揮発性記憶システムのブートコード読み出しシーケンス図である。 図10は本発明の第3の実施の形態である不揮発性記憶システムのホスト装置内のフローチャート図である。 図11は本発明の第4の実施の形態である不揮発性記憶システムの構成を示す図である。 図12は本発明の第4の実施の形態である不揮発性記憶システムのパーティション領域テーブルの構成を示す図である。 図13は本発明の第4の実施の形態である不揮発性記憶システムのアドレス変換の概要図である。 図14は本発明の第4の実施の形態である不揮発性記憶システムのアドレス変換の概要図である。 図15は本発明の第4の実施の形態である不揮発性記憶システムのブートコード読み出しシーケンス図である。 図16は本発明の第4の実施の形態である不揮発性記憶システムの不揮発性記憶装置内のフローチャート図である。 図17は従来の不揮発性記憶システムの不揮発性記憶装置内の構成を示す図である。 図18は従来の実施の形態である不揮発性記憶システムのブートコード読み出しシーケンス図である。 図19は従来の実施の形態である不揮発性記憶システムの不揮発性記憶装置内のフローチャート図である。
符号の説明
101A,101B,101C 不揮発性記憶装置
102A,102B,102C ホスト装置
103A,103B,103C コントローラ
104 フラッシュメモリ
105 プロセッサ
106 ホストIF
107 フラッシュメモリIF
108 論理物理アドレス変換テーブル
109 バッファメモリ
110 アドレススクランブル部
111 プロセッサ
112 メインメモリ
113 不揮発性記憶装置IF
114 LBA指定アクセス部
115 BBA指定アクセス部
116 ブート部アドレス決定部
117 LBA−ブート部変換テーブル
121 パーティション管理テーブル
122 モード決定部
123 パーティション領域テーブル
124 PN指定アクセス部
1701 不揮発性記憶装置
1702 ホスト装置
1703 コントローラ
1704 フラッシュメモリ
1705 プロセッサ
1706 ホストIF
1707 フラッシュメモリIF
1708 論理物理アドレス変換テーブル
1709 バッファメモリ
1711 プロセッサ
1712 メインメモリ
1713 不揮発性記憶装置IF
(第1の実施の形態)
以下、添付の図面を参照し、本発明の第1の実施の形態による不揮発性記憶装置システムについて説明する。
図1に本実施の形態の不揮発性記憶システムの構成を示す。不揮発性記憶システムは、電源投入後にホスト装置102Aが不揮発性記憶装置101Aから電源投入後の処理のためのプログラムコード(ブートコード)を読み出すことで起動する。
1.不揮発性記憶装置の構成
図1において不揮発性記憶装置101Aはホスト装置102Aから論理アドレスで指定されるデータを書き込み・読み出し可能なメモリーカードである。また、不揮発性記憶装置101Aはホスト装置102Aから論理アドレスで指定可能なアドレス領域の、全てでなく一部の領域に対してブートブロックアドレスを指定してのデータの読み出しも可能である。ブートブロックアドレスについては後で詳述する。不揮発性記憶装置101Aはコントローラ103Aとフラッシュメモリ104を有している。フラッシュメモリ104はホスト装置102Aからの書き込みデータを不揮発で記憶するためのメモリセルアレイを備えた不揮発性メモリである。コントローラ103Aは不揮発性記憶装置101A内部全体の制御を行うとともに、ホスト装置102Aとのインターフェースとフラッシュメモリ104とのインターフェースを持つ。
コントローラ103Aは、プロセッサ105とホストIF(インターフェース)106とフラッシュメモリIF(インターフェース)107と論理物理アドレス変換テーブル108とバッファメモリ109とアドレススクランブル部110を有している。
プロセッサ105はコントローラ103A内部全体の制御を行う。ホストIF106はホスト装置102Aに書き込まれ、ホスト装置102Aから読み出されるデータや、書き込み・読み出しの動作指示に関わるコマンドのインターフェースを制御する。フラッシュメモリIF107はフラッシュメモリ104へのデータの書き込みやフラッシュメモリ104からのデータの読み出しを制御する。論理物理アドレス変換テーブル108は、ホスト装置102Aが指定する論理アドレスをフラッシュメモリ104のアドレスである物理アドレスに変換するテーブルである。バッファメモリ109はホスト装置102Aからの書き込みデータをフラッシュメモリ104に書き込む前に一時的にデータを保持するため、またホスト装置102Aへの読み出しデータをフラッシュメモリ104から読み出して一時的に保持するための揮発性のメモリである。アドレススクランブル部110は、所定の1対1関数(逆関数の存在する関数)で物理アドレスをブートブロックアドレスに変換する機能を有するとともに、所定の1対1関数の逆関数でブートブロックアドレスを物理アドレスに変換する機能も有するブートブロックアドレス変換テーブルである。ブートブロックアドレスとはブートコードが格納されたアドレス情報である。アドレススクランブル部110はホスト装置102Aがブートブロックアドレスを指定してデータの読み出しを行うときに、ブートブロックアドレスをフラッシュメモリ104の物理アドレスに変換する、もしくはホスト装置102Aに通知するためにフラッシュメモリ104の物理アドレスをブートブロックアドレスに変換する。
なお、ここでは不揮発性記憶装置101A外部から指定する論理アドレスとフラッシュメモリ104の物理アドレスとの対応を論理物理アドレス変換テーブル108で行うが、論理アドレスと物理アドレスの変換の例としてはWO2005/022393やWO2005/106673で開示されている仕組みを用いても構わない。
2.ホスト装置の構成
ホスト装置102Aは少なくともプロセッサ111とメインメモリ112と不揮発性記憶装置IF(インターフェース)113とブート部アドレス決定部116とLBA−ブート部変換テーブル117を有する。上記以外にもユーザが入力を行うためにキーボードやポインティングデバイス、ユーザに対する出力である液晶ディスプレイやスピーカー、(全て図示せず)等の種々のユーザインターフェース部がある。プロセッサ111はホスト装置102A内部全体の制御を行う。また、制御を行ううえで必要なデータを不揮発性記憶装置101Aに書き込み、読み出しを行うための論理アドレスを決定する機能を持つ。メインメモリ112は不揮発性記憶装置101Aから読み出したプログラムコード等を格納するための揮発性のメモリである。不揮発性記憶装置IF113は、LBA指定アクセス部114とBBA指定アクセス部115を有し、不揮発性記憶装置101Aへ読み出し・書き込みを行うためのデータや、読み出し・書き込み動作を指示するためのインターフェースを制御するものである。また、不揮発性記憶装置IF113のLBA指定アクセス部114は、論理ブロックアドレス(LBA)を指定したデータの書き込み・読み出しをするときに使用され、BBA指定アクセス部115はブートブロックアドレス(BBA)を指定したデータの読み出しにおいて使用される。ブート部アドレス決定部116はプロセッサ111が決定した論理アドレスをブートブロックアドレスに変換する機能を有する、その際にはLBA−ブート部変換テーブル117を使用する。LBA−ブート部変換テーブル117は不揮発性記憶装置101Aに書き込まれているホスト装置102Aのブートコードの論理アドレスに対応するブートブロックアドレスの対応を示すテーブルであり、不揮発性の記憶素子によって構成される。
図2を用いて本実施の形態の不揮発性記憶システムにおけるプログラムコードのデータの読み出しについて説明する。図2はホスト装置102Aと不揮発性記憶装置101A間における電源投入後の初期化におけるシーケンス図である。
最初にホスト装置102Aが不揮発性記憶装置101Aに電圧を印加すると、プロセッサ105はコントローラ103Aの初期化(コントローラ初期化)を行う。このコントローラ初期化とは、コントローラ各部の図示しないレジスタをリセットし、コントローラ103Aに接続されているフラッシュメモリ104の種別や個数の認識をして、不揮発性記憶装置101Aとしての容量や特性に関する情報をフラッシュメモリ104の特定領域のデータを読み出すことで認識する処理である。コントローラ初期化に要する時間は数ms以内の短い時間である。コントローラ初期化を終えることで、不揮発性記憶装置101Aはホスト装置102Aと相互に通信を行うことが可能になる。コントローラ103Aの初期化を終えた状態を、不揮発性記憶装置101Aの第1の状態とする。第1の状態ではフラッシュメモリ104の特定の領域からデータの読み出しを行うことが可能である。
さて、ステップ201でホスト装置102Aは不揮発性記憶装置IF113を介して不揮発性記憶装置101Aに初期化コマンドを発行する。ホスト装置102Aから送られる初期化コマンドは不揮発性記憶装置101Aを初期化するためのコマンドである。不揮発性記憶装置101Aの初期化とは、コントローラ内部のプロセッサ105がフラッシュメモリIF107を介してフラッシュメモリ104から管理情報を読み出して、その管理情報を基に、論理物理アドレス変換テーブル108を完成させることである。不揮発性記憶装置101Aの初期化を完了するために要する時間は、実時間で数100ms程度を要する。不揮発性記憶装置101Aの初期化が完了することで、ホスト装置102Aは不揮発性記憶装置101Aに対して論理アドレスを指定してデータの書き込み・読み出しを行うことが可能になる。不揮発性記憶装置101Aの初期化を終えた状態を、不揮発性記憶装置101Aの第2の状態とする。
不揮発性記憶装置101Aは、ステップ201でホスト装置102Aより発行される初期化コマンドを受けると、不揮発性記憶装置101Aが第1の状態にあればホスト装置102Aに対してレスポンスを返し、まだ第1の状態になっていなければレスポンスを返さない。初期化コマンドに対して不揮発性記憶装置101Aからレスポンスが返らなければ、ホスト装置102Aは不揮発性記憶装置101Aがまだ第1の状態になっていない、即ちコントローラ103Aの初期化が終わっていないことを認識することが出来る。
ホスト装置102Aは不揮発性記憶装置101Aを初期化するために、不揮発性記憶装置101Aからレスポンスが返ってくるまで不揮発性記憶装置101Aに対して初期化コマンドを発行する必要がある。ホスト装置102Aはステップ202で再度初期化コマンドを発行する。ステップ202の初期化コマンドを受けたときにコントローラ103Aの初期化が終了して第1の状態であれば、プロセッサ105は初期化コマンドに対してステップ203でホストIF106を介してレスポンスを返す。不揮発性記憶装置101Aではホスト装置1702の初期化コマンドを受けて不揮発性記憶装置101A内部の初期化処理を開始する。
ホスト装置102Aはステップ203で不揮発性記憶装置101Aからレスポンスが返ってくることで、不揮発性記憶装置101A内部のコントローラ103Aの初期化が完了して第1の状態になっていることを認識することが出来る。
この第1の状態ではプロセッサ105は接続されているフラッシュメモリ104の種別や個数を認識できているので、読み出しを行うフラッシュメモリ104の物理アドレスが決定できればフラッシュメモリIFを介してフラッシュメモリ104からデータを読み出すことは可能である。
不揮発性記憶装置101Aが第1の状態にあることを認識したホスト装置102Aは、ステップ204でブートコード読み出しのためにブートブロックアドレスを指定してデータの読み出しコマンドを発行する。そのために、ホスト装置102Aのプロセッサ111は不揮発性記憶装置101Aに書き込んだブートコードのデータに対応する論理アドレス(以下、ブート部論理アドレスという)を決定する。プロセッサ111はブート部アドレス決定部116にブート部論理アドレスを送る。ブート部アドレス決定部116はプロセッサ111から送られた論理アドレスであるブート部論理アドレスを、LBA−ブート部変換テーブル117を用いてブートブロックアドレスに変換する。以降、ブート部論理アドレスに対応するブートブロックアドレスをブート部ブートブロックアドレスという。プロセッサ111はブート部アドレス決定部116から得られるブート部ブートブロックアドレスを不揮発性記憶装置IF113へと送る。プロセッサ111から与えられるブート部ブートブロックアドレスを用いてBBA指定アクセス部115は不揮発性記憶装置101Aに対してブートブロックアドレスを指定して読み出しコマンドを発行する。このブートブロックアドレスはコントローラ103Aの内部でフラッシュメモリ104の物理アドレスに変換することができる。このステップ204のタイミングでは不揮発性記憶装置101A内部において初期化処理が終了している必要はない。
ステップ204のブートコードの読み出しコマンドを受けて、不揮発性記憶装置101Aのプロセッサ105では、まずステップ205でレスポンスをホスト装置102Aに返す。そして一旦不揮発性記憶装置101Aの初期化処理である論理物理アドレス変換テーブル108の作成を中断して、ステップ204の読み出しコマンドで指示されるブート部ブートブロックアドレスをアドレススクランブル部110に送る。アドレススクランブル部110ではブート部ブートブロックアドレスをフラッシュメモリ104の対応する物理アドレス(以下、ブート部物理アドレス)に変換する。プロセッサ105はブート部物理アドレスを指定してフラッシュメモリIF107を介してフラッシュメモリ104からブートコードを読み出してバッファメモリ109に一時保持し、その後ステップ206でホスト装置102Aに対してブートコードを出力する。
ホスト装置102Aのプロセッサ111はステップ206で読み出されるブートコードを不揮発性記憶装置IF113を介してメインメモリ112に転送する。プロセッサ111はメインメモリ112に転送されたブートコードを使用することでホスト装置102Aを起動する。
以上のブートコード読み出しシーケンスによると、電源投入後にコントローラ103Aの初期化が完了した第1の状態であれば、第2の状態になっていなくても、ホスト装置102Aは不揮発性記憶装置101Aからのブートコードを読み出すことが可能となる。これは、ホスト装置102Aはブートコードが書き込まれた論理アドレスに対応する物理アドレスに直接対応付けが可能な情報であるブートブロックアドレスを指定して不揮発性記憶装置101Aに読み出しコマンドを発行することで、不揮発性記憶装置101A内部において論理物理アドレス変換テーブル108の作成完了を待つことなく、フラッシュメモリ104からデータを読み出すことが可能となるからである。アドレススクランブル部110でのブートブロックアドレスと物理アドレスとの直接対応付けについては後述する。
なお、不揮発性記憶装置101Aのプロセッサ105はステップ206でホスト装置102Aにブートコードを出力した後は、中断した初期化を再開する。
以降、ステップ207でホスト装置102Aは不揮発性記憶装置IF113から初期化完了確認のコマンドの発行を行う。不揮発性記憶装置101A側の初期化処理が完了しておらず第1の状態であれば、ホスト装置102Aに対してステップ208で初期化未完のレスポンスを返す。
ホスト装置102Aはステップ208で返されるレスポンスが初期化未完の通知であれば、ステップ209で再度初期化完了確認のコマンドの発行を行う。不揮発性記憶装置101Aは、初期化処理が完了し、第2の状態にあれば、不揮発性記憶装置101Aはホスト装置102Aからの初期化完了確認のコマンドに対して、ステップ210で初期化完了のレスポンスを返す。ホスト装置102Aは初期化完了のレスポンスにより論理アドレスを指定したデータの書き込み・読み出しが可能になったことを認識する。
図3に、図2のシーケンス図に対応する不揮発性記憶装置101A内のホスト装置102Aに対する処理のフローチャートを示す。ステップ201の初期化コマンドは、コントローラ103Aの初期化前にホスト装置102Aより不揮発性記憶装置101Aに発行される。電源投入後からコントローラ103Aの初期化が完了するまでの状態は、不揮発性記憶措置101内部の処理のみであるので図示していない。電源投入後に不揮発性記憶装置101A内部でコントローラ103Aの初期化が完了すると、第1の状態となり、判定301でのホスト装置102Aからのコマンド入力待ちの状態になる。不揮発性記憶装置101Aはホスト装置102Aから初期化コマンドが入力されるまで判定301で待ち続ける。ステップ202で初期化コマンドが不揮発性記憶装置101Aに発行されると、判定301で初期化コマンドと判定し状態302へと遷移し、状態302で初期化コマンドに対するレスポンス(ステップ203)を返す。また不揮発性記憶装置101Aではホスト装置102Aの初期化コマンドを受けて不揮発性記憶装置101A内部の初期化処理を開始する。不揮発性記憶装置101A内部における初期化処理の開始および初期化処理についてはフローチャートに図示していない。
次に判定303,304へと遷移して、ブートブロックアドレス指定の読み出しコマンドか、初期化完了確認コマンドか、それともそれら以外のコマンドかを判定する。判定303でブートブロックアドレス指定の読み出しコマンドであると判定したら状態305へと遷移する。判定304で初期化完了確認コマンドであると判定したら判定307へと遷移する。それら以外のコマンドであればブートブロックアドレス(BBA)指定の読み出しコマンドか、初期化完了確認コマンドが発行されるのを待ち続ける。
ここでは、まずブートコードを早期に読み出すために、ホスト装置102Aがステップ204でブートブロックアドレス指定の読み出しコマンドを発行する場合、即ち判定303から状態305に遷移した場合について説明する。プロセッサ105はホストIF106を介して入力されたコマンドがブートブロックアドレス指定の読み出しコマンドであることを認識して、レスポンス(ステップ205)を返すとともに、状態302以後から開始していた不揮発性記憶装置101A内部の初期化処理を一時中断する。そして、指定されたブートブロックアドレスをアドレススクランブル部110でフラッシュメモリ104の物理アドレスに変換する。プロセッサ105は物理アドレスをフラッシュメモリIF107に指定することでフラッシュメモリ104からブートコードを読み出してバッファメモリ109へと転送する。そして中断していた不揮発性記憶装置101A内部の初期化処理を再開して状態306へと遷移する。
状態306はステップ206に対応し、不揮発性記憶装置101Aは、ホストIF106を介してバッファメモリ109にあるブートコードをホスト装置102Aへと転送する。このようにホスト装置102Aはブートブロックアドレス指定の読み出しコマンドを実行することで、不揮発性記憶装置101A内部の初期化処理が終了していなくても、ブートコードを読み出すことができる。ホスト装置102Aのプロセッサ111は読み出したブートコードをメインメモリ112へとロードしてホスト装置102Aの起動を行う。不揮発性記憶装置101Aは状態306が終了すると判定303,304へと戻る。
ブートコードを読み出した後は、ホスト装置102Aはステップ207で初期化完了確認コマンドを不揮発性記憶装置101Aに発行する。それを受けて不揮発性記憶装置101Aは判定307へと遷移する。
不揮発性記憶装置101Aが第1の状態にあるときには、判定307で初期化が完了していないと判断して、状態308に遷移する。状態308に対応するステップ208で初期化未完を表すレスポンスを返して判定303へ戻る。ホスト装置102Aは不揮発性記憶装置101Aから初期化未完のレスポンスを受けることで不揮発性記憶装置101Aがまだ第2の状態になっておらず、即ち論理アドレスを指定した読み出し・書き込みが出来ないことを認識する。
不揮発性記憶装置101Aの初期化を終えて第2の状態になっているときには、ステップ209の初期化完了コマンドを受けて、判定307より状態309へと遷移して、ステップ210で初期化完了のレスポンスを返す。ホスト装置102Aは不揮発性記憶装置101Aから初期化完了のレスポンスを受けることで不揮発性記憶装置101Aが既に第2の状態になっており、論理アドレスを指定したデータの読み出し・書き込みが可能であることを認識する。
つまりホスト装置102Aは不揮発性記憶装置101Aの初期化完了を確認するために、複数回の初期化完了確認コマンドを発行する必要とする可能性がある。不揮発性記憶装置101A内部では論理物理アドレス変換テーブル108の作成を含む初期化処理が完了するまではホスト装置102Aに対して初期化完了を通知しない。従って、ホスト装置102Aは不揮発性記憶装置101Aに対して論理アドレスを指定してデータの読み出しを行うためには、不揮発性記憶装置101Aの初期化の完了を待つ必要があり、読み出しまでに時間がかかる。一方ブートブロックアドレス指定の読み出しであれば、ホスト装置102Aは不揮発性記憶装置101Aの初期化完了を待つことなくデータの読み出しが可能である。
ホスト装置102Aは不揮発性記憶装置101Aへの電源投入後に不揮発性記憶装置101Aからブートコードを読み出すが、このブートコードはホスト装置102Aまたは、ホスト装置102Aとは異なる他のホスト装置によって予め不揮発性記憶装置101Aに対して書き込まれたデータである。ここではホスト装置102Aが不揮発性記憶装置101Aにブートコードを書き込む際の処理について説明する。
図4はブートコードの書き込みとブートブロックアドレス通知のシーケンス図である。これは前述したブートブロックアドレスを指定しての読み出しの準備に相当する。ブートブロックアドレス通知とは、不揮発性記憶装置101Aがブートコードのデータの存在する物理アドレスを、物理アドレスと直接対応付けできる情報であるブートブロックアドレスに変換して、ホスト装置102Aに通知する処理である。
まずステップ401で、ホスト装置102Aのプロセッサ111は不揮発性記憶装置IF113のLBA指定アクセス部114を介して、不揮発性記憶装置101Aに対して論理アドレスを指定した書き込みコマンドを発行する。不揮発性記憶装置101Aはステップ402で書き込みコマンドを認識したことを表すレスポンスをホスト装置102Aに返す。次にステップ403でステップ401の書き込みコマンドに対応するブートコードのデータを不揮発性記憶装置101Aに転送する。不揮発性記憶装置101Aでは、ステップ403で転送されるブートコードのデータをホストIF106からバッファメモリ109に維持し、更にフラッシュメモリIF107を介してフラッシュメモリ104に書き込む。詳細説明は省略するが、不揮発性記憶装置101Aへのデータの書き込みに際してプロセッサ105は論理物理アドレス変換テーブル108の情報を更新するとともに、そのコピーをバックアップデータとなるようフラッシュメモリ104にも書き込む。
プロセッサ105はフラッシュメモリ104へのブートコードの書き込みが完了したら、ステップ404でホスト装置102Aに書き込みが完了したことを通知する。
不揮発性記憶装置101Aへのブートコードのデータの書き込みが完了したら、ホスト装置102Aは転送したブートコードが書き込まれたフラッシュメモリ104の物理アドレスに直接関連付けられるブートブロックアドレスを取得するために、ステップ405でブートブロックアドレス取得コマンド(BBA取得コマンド)を発行する。プロセッサ105は、BBA取得コマンドを受けると、直前に書き込みを行った論理アドレス(ここではステップ401でホスト装置102Aに指定された論理アドレス)を基にして、対応する物理アドレスを論理物理アドレス変換テーブル108から取得する。さらにプロセッサ105は得られた物理アドレスを基にして対応するブートブロックアドレスをアドレススクランブル部110から取得する。
そしてステップ406でプロセッサ105はホストIF106を介してブートブロックアドレスをホスト装置102Aに出力する。ホスト装置102Aでは不揮発性記憶装置101Aから得られたブートブロックアドレスと、ステップ401で指示した論理アドレスの対応を不揮発性メモリであるLBA−ブート部変換テーブル117に記憶する。
こうすることでホスト装置102Aはブートコードのデータを書き込んだ論理アドレスに対応するブートブロックアドレスを取得して、記憶することが出来る。図2のステップ204では、このシーケンスで記憶したブートブロックアドレスを使用している。
図5はアドレス変換の概略図である。図5において左側の論理マップはホスト装置102AのLBA指定アクセス部114でアクセス可能な不揮発性記憶装置101Aの論理ブロックアドレスの範囲である。右側のブートブロックアドレスはホスト装置102AのLBA−ブート部変換テーブル117に記憶され、BBA指定アクセス部115でアクセス可能な不揮発性記憶装置101Aに対するブートブロックアドレスである。このブートブロックアドレスの個数はホスト装置102AのLBA−ブート部変換テーブル117に記憶できる個数だけ許容される。中央の物理マップは不揮発性記憶装置101Aのフラッシュメモリ104の物理ブロックアドレスのマップである。
図5において、左側の論理マップから中央の物理マップへは論理物理アドレス変換テーブル108によって対応付けられている。この際に、物理マップの容量よりも論理マップの容量のほうが少ないので、論理物理アドレス変換テーブル108では対応付けられない物理アドレスがある。これは例えば、データが消去済みの物理ブロックの物理アドレスが相当する。右側のブートブロックアドレスから物理アドレスへの変換はアドレススクランブル部110で行う。
以上のように不揮発性記憶装置101Aへのデータのアクセスは、LBA指定アクセス部114を使用したアクセスと、LBA指定アクセス部114によってアクセスできる領域の一部分の領域(LBA−ブート部変換テーブル117で記憶可能な容量)にしかアクセスできないBBA指定アクセス部115を使用したアクセスがある。
なお、BBA指定アクセス部115からのアクセスでは不揮発性記憶装置101Aからデータは読み出せるが、以下の理由によりデータの書き込みは行えない。
(1)不揮発性記憶装置101Aの初期化処理を終えないフラッシュメモリ101の全物理ブロックから消去済みの物理アドレスを知ることができない。
(2)データの書き込みは論理物理アドレス変換テーブル108の更新を伴うが、この変換テーブルが完成していない状態では更新を行えない。
以上のようにして本実施の形態の不揮発性記憶システムにおいては、データを読み出し、書き込みが行える第2の状態になる前に、第2の状態で読み出し・書き込みが行える領域の一部分の領域からデータを読み出せる第1の状態を取ることによって、ホスト装置102Aが不揮発性記憶装置101Aに対して電源投入後により早期にプログラムコードの読み出すことが可能となる。これによって、不揮発性記憶システムの起動を早く行うことが出来る。
(第2の実施の形態)
本発明に係る不揮発性記憶システムの第2の実施の形態である不揮発性記憶装置システムについて説明する。第2の実施の形態において不揮発性記憶システムの構成については図1と同じであるので、説明を省略する。また、プログラムコードのデータの読み出し方法についても図2、3と同じであるので説明を省略する。アドレス変換の概略図であるが第1の実施の形態と同様であるので、説明は省略する。
第2の実施の形態では第1の実施の形態に比べてブートブロックアドレス指定の読み出しのための準備である、ブートブロックアドレス通知のシーケンスが異なる。図6に、ブートブロックアドレス通知のシーケンス図を示す。
ホスト装置102Aは不揮発性記憶装置101Aへの電源投入後に不揮発性記憶装置101Aからブートコードを読み出すが、このブートコードはホスト装置102Aまたは、ホスト装置102Aとは異なる他のホスト装置によって予め不揮発性記憶装置101Aに対して書き込まれたデータである。ここでは不揮発性記憶装置101Aにブートコードが書き込まれた状態で、ホスト装置102Aが読み出すブートブロックアドレス処理について説明する。
第1の実施の形態と同様に、初期化処理を早めるためにブートコードが書き込まれたフラッシュメモリ104の物理アドレスに直接関連付けられるブートブロックアドレスを取得しておく必要がある。そこでまずステップ601で、論理アドレスを指定してブートブロックアドレス取得コマンド(BBA取得コマンド)を発行する。ホストIF106を介してBBA取得コマンドを受けたプロセッサ105は、指定される論理アドレス(ここではステップ601でホスト装置102Aに指定された論理アドレス)を基にして、対応する物理アドレスを論理物理アドレス変換テーブル108から取得する。さらにプロセッサ105は得られた物理アドレスに対応するブートブロックアドレスをアドレススクランブル部110から取得する。
そしてステップ602でプロセッサ105はホストIF106を介してブートブロックアドレスをホスト装置102Aに出力する。ホスト装置102Aでは不揮発性記憶装置101Aから得られたブートブロックアドレスと、ステップ601で指示した論理アドレスの対応をLBA−ブート部変換テーブル117の不揮発性メモリに記憶する。こうすることでホスト装置102Aはブートコードのデータを書き込んだ論理アドレスに対応するブートブロックアドレスを取得して、記憶することが出来る。
以上のようにして本実施の形態の不揮発性記憶システムにおいては、データを読み出し、書き込みが行える第2の状態になる前に、第2の状態で読み出し・書き込みが行える領域の一部分の領域からデータを読み出せる第1の状態を取ることによって、ホスト装置102Aが不揮発性記憶装置101Aに対して電源投入後により早期にプログラムコードの読み出すことが可能となる。これによって、不揮発性記憶システムの起動を早く行うことが出来る。
なお、一般的にブートコードは論理アドレスの先頭である論理アドレスの0に配置されることが多い。従ってホスト装置102Aは、不揮発性記憶装置101Aから得るブートブロックアドレスの情報を論理アドレスの0に固定しても十分に有用である。従って、図6での論理アドレスを指定してのブートブロックアドレス取得コマンドを、論理アドレスを指定出来ず、必ず論理アドレス0に対応するブートブロックアドレスを得ることの出来るコマンドとすると、本実施の形態の効果を大きく損なうことなく、コマンド定義等のシステムの構成を簡略化することが出来る。
(第3の実施の形態)
本発明の第3の実施の形態に係る不揮発性記憶システムについて説明する。図7は本実施の形態の不揮発性記憶システムの構成を示す。なお、図7において図1の不揮発性記憶システムと同じ機能ブロックについては同じ番号を付しており、ここでは説明を省略する。第3の実施の形態においてホスト装置102Bは不揮発性記憶装置101Bを複数のパーティションに分割して使用することが可能な不揮発性記憶システムに対応している。
図7において、不揮発性記憶装置101B内部のコントローラ103Bにはコントローラ103Aの各ブロックに加えて、パーティション管理テーブル121が新たに加わっている。
パーティション管理テーブル121は論理アドレスとパーティションとの対応を管理するためのテーブルである。
図7において、ホスト装置102B内部に図1のホスト装置102Aからモード決定部122が新たに加わっている。モード決定部122は、ホスト装置102Bに備えられた図示しないユーザインターフェース部、又は周辺装置構成確認部からの入力信号によって設定すべきモードを決定するものである。
ユーザインターフェース部は、例えば外部に設けられたスイッチやGUIを使用した選択入力の機能を有する。例えば、不揮発性記憶システムを使用しているユーザが通常行うホスト装置102Bの起動とは異なる診断モードでの起動を指示している場合には、モード決定部122は診断モードで起動することをプロセッサ111に通知する。また、例えばホスト装置102Bに付属する周辺装置の構成が、以前に起動した状態とは異なっているという情報が周辺装置構成確認部を介して入力されている場合には、モード決定部122は周辺機器確認モードで動作することをプロセッサ111に通知する。
不揮発性記憶システムの不揮発性記憶装置101Bは、通常行うホスト装置102Bの起動のためのブートプログラムが格納されているブートパーティションと、例えば診断モードや周辺機器確認モード用のブートプログラムが格納されている複数のブートパーティション、及びその他のパーティションを備える。
パーティション管理テーブル121はパーティション番号に対して先頭の論理アドレスの番号を示すテーブルである。図8は不揮発性記憶装置101Bの論理マップとパーティションの関係と対応するパーティション管理テーブル121について示している。論理マップに示されるように、論理物理アドレス変換テーブル108で登録されている論理アドレス0から999までのアドレスに対応して、論理アドレスの0から199までがパーティション0、論理アドレスの200からがパーティションの1、論理アドレスの900から999までがパーティションのnであるとする。パーティション管理テーブル121はパーティション番号0には先頭論理アドレス0が、パーティション番号1には先頭論理アドレス200が、パーティション番号nには先頭論理アドレス900がそれぞれ登録される。プロセッサ105は論理物理アドレス変換テーブル108とパーティション管理テーブル121から、不揮発性記憶装置101Bに複数備える各パーティションがどのように構成されているかを認識することが出来る。
図9を用いて本実施の形態の不揮発性記憶システムにおけるプログラムコードのデータの読み出しについて説明する。図9はホスト装置102Bと不揮発性記憶装置101B間における電源投入後の初期化におけるシーケンス図であり、図9において図2と同じシーケンスについては図2と同じ番号を付している。ここで初期化コマンドはブートパーティションにアクセスを要求するコマンドとなっっている。
図9においてホスト装置102Bは不揮発性記憶装置101Bを初期化するために、不揮発性記憶装置101Bからレスポンスが返ってくるまで不揮発性記憶装置101Bに対して初期化コマンドを発行する(ステップ201,202)。図2の動作と異なるのは、ホスト装置102Bの初期化コマンド後における不揮発性記憶装置101Bからの読み出しである。ステップ203で、不揮発性記憶装置101Bからホスト装置102Bに対してレスポンスがあったときに、ホスト装置102Bの処理について図10を用いて説明する。
図10はホスト装置102Bのブートブロックアドレス決定フローである。図10のステップ1001で、モード決定部122は、ユーザインターフェース部や周辺装置構成確認部から入力される情報を基に、起動モードを決定する。次にステップ1002でプロセッサ111は、モード決定部122が決定した起動モードに対応するプログラムコードが格納されているパーティションを決定する。次にステップ1003でプロセッサ111は決定したパーティションのプログラムコードであるパーティションブートコードが格納されている論理アドレス、即ちパーティションブートコードの論理アドレス(LBA)を決定する。次にステップ1004でプロセッサ111はステップ1003で決定したこの論理アドレスをブート部アドレス決定部116に送る。ブート部アドレス決定部116はこの論理アドレスを、LBA−ブート部変換テーブル117を用いてパーティションブートコードのブートブロックアドレス(BBA)に変換する。
ホスト装置102Bは図9のステップ904において、以上のようにして決定されたパーティションのブートブロックアドレスを指定して読み出しコマンドを不揮発性記憶装置101Bに発行する。
そして、不揮発性記憶装置101Bはステップ906で指定されたパーティションのブートコードを出力する。ステップ906で読み出されるパーティションブートコードを用いて、ホスト装置102Bのプロセッサ111は対応する起動モードに応じたホスト装置102Bの起動処理を行う。
ここでのパーティションブートコードの読み出しはブートブロックアドレスを指定しての読み出しであるので、実施の形態1と同様に不揮発性記憶装置101Bが第1の状態で読み出すことができる。
なお、不揮発性記憶装置101Bのプロセッサ105はステップ206でホスト装置102Bにブートコードを出力した後は、中断した初期化を再開する。
以降、ステップ207でホスト装置102Bは不揮発性記憶装置IF113から初期化完了確認のコマンドの発行を行う。不揮発性記憶装置101B側の初期化処理が完了しておらず第1の状態であれば、ホスト装置102Bに対してステップ208で初期化未完のレスポンスを返す。ここで初期化確認コマンドはブートパーティション以外のパーティションにアクセスを要求するコマンドとなっている。
ホスト装置102Bはステップ208で返されるレスポンスが初期化未完の通知であれば、ステップ209で再度初期化完了確認のコマンドの発行を行う。論理物理変換テーブル108の作成を終え、不揮発性記憶装置101Bの初期化処理が完了し、第2の状態にあれば、不揮発性記憶装置101Bはホスト装置102Bからの初期化完了確認のコマンドに対して、ステップ210で初期化完了のレスポンスを返す。ホスト装置102Bは初期化完了のレスポンスにより論理アドレスを指定したデータの書き込み・読み出しが可能になったことを認識する。
図9のシーケンス図に対応する不揮発性記憶装置101B内のホスト装置102Bに対する処理のフローチャートは図3と同じであり、説明を省略する。また、図9のステップ904で行う読み出しコマンドで指定するブートブロックアドレスを不揮発性記憶装置101Bからホスト装置102Bに通知する仕組みは図6と同じであり、説明を省略する。その後に第2の状態となれば不揮発性記憶装置101Bは全てのパーティションの全ての論理アドレスのデータが読み出し・書き込み可能になる。
以上の様に、第3の実施例の不揮発性記憶システムにおいて、不揮発性記憶装置101Bは複数のパーティションに分割して使用可能であり、またホスト装置102Bはホスト装置102Bの起動モードに応じて複数のパーティションからひとつを選択して、選択したパーティションからブートコードを読み出す。第2の状態の前に、パーティションのブートコードの読み出しのみが可能な第1の状態を取ることによって、ホスト装置102Bが不揮発性記憶装置101Bに対して電源投入後により早期に起動モードに応じたプログラムコードのデータの読み出しが可能となる。これによって、不揮発性記憶システムを起動モードに応じて早く起動することが出来る。
(第4の実施の形態)
本発明の第4の実施の形態に係る不揮発性記憶システムについて説明する。図11は、本実施の形態の不揮発性記憶システムの構成を示す。なお、図11において図1および図7の不揮発性記憶システムと同じ機能ブロックについては同じ番号を付しており、個々では説明を省略する。第4の実施の形態においては第3の実施の形態と同様に、ホスト装置102Cは不揮発性記憶装置101Cを複数のパーティションに分割して使用することが可能な不揮発性記憶システムに対応している。
図11において、不揮発性記憶装置101C内部のコントローラ103Cにパーティション領域テーブル123が、図7のコントローラ103Cから新たに追加になっている機能ブロックであり、アドレススクランブル部110が削除されている。パーティション領域テーブル123は、パーティション管理テーブル121で登録されている論理アドレスに対応する物理アドレスを、パーティション番号に対応付けて管理しているテーブルである。このテーブルは、ブートコードが格納されている物理アドレスも管理しているので、実施の形態1〜3のアドレススクランブル部110と同じく、ブートコードアドレス変換テーブルに相当している。本願発明においてパーティション番号と各パーティションの先頭論理アドレスに対応する物理アドレスの情報は、コントローラの初期化を行ううえで欠かせない情報である。従って、パーティション領域テーブル123は不揮発性のメモリで構成されるか、または揮発性のメモリで構成するときには不揮発性記憶であるフラッシュメモリ104の特定の物理アドレス位置に書き込んでおくことで、電源投入後に早期に読み出してパーティション領域テーブル123を正しい情報に出来ることが望ましい。
ホスト装置102Cでは不揮発性記憶装置IF113にPN(パーティションナンバー)指定アクセス部124が図7から新たに追加になっており、BBA指定アクセス部115が削除されている。また、ブート部アドレス決定部116と不揮発性メモリで構成されていたLBA−ブート部変換テーブル117が削除されている。PN指定アクセス部124は不揮発性記憶装置101Cに対するパーティション番号を指定してデータを読み出すときに用いられるアクセス部である。
図12にパーティション領域テーブル123の構成を示す。パーティション領域テーブル123はパーティション番号と、そのパーティションの先頭論理アドレスが書き込まれている物理アドレスとの対応を示している。ここではパーティション番号0のパーティションの先頭論理アドレスのデータが書き込まれている物理アドレスが456で、パーティション番号1のパーティションの先頭論理アドレスのデータが書き込まれている物理アドレスが789で、パーティション番号nのパーティションの先頭論理アドレスのデータが書き込まれている物理アドレスが123である場合について示している。ここで先頭論理アドレスに限定されることなく、先頭からの複数の論理アドレスに対応する物理アドレスを記憶しておいてもよい。
図13はアドレス変換の概略図である。図13において左側の論理マップはホスト装置102CのLBA指定アクセス部114でアクセス可能な不揮発性記憶装置101Cの論理アドレス範囲である。左側の論理マップから中央の物理マップへは論理物理アドレス変換テーブル108で対応付けられている。右側のパーティション番号はホスト装置102CのPN指定アクセス部124で読み出し可能な不揮発性記憶装置101Cのパーティションの番号である。右側のパーティション番号はパーティション領域テーブル123により中央の物理マップに対応付けられている。以上のように、パーティション領域テーブル123は論理物理アドレス変換テーブル108で管理されている領域の一部分に対してパーティション番号からアクセスできるようにしている。
図14には図13に示されるパーティション領域テーブル123の対応が、パーティション管理テーブル121と論理物理アドレス変換テーブル108を使用することでも対応付けられることを示している。図14において左側のパーティション番号と各パーティションの先頭論理アドレスとの関係はパーティション管理テーブル121より与えられる。図8に示したように、パーティション番号0には論理アドレス0が、パーティション番号1には論理アドレス200が、パーティション番号nには論理アドレス900が対応付けられている。こうして得られる各パーティションの先頭論理アドレスを論理物理アドレス変換テーブル108で物理アドレスに変換すると、論理アドレス0には物理アドレス456が、論理アドレス200には物理アドレス789が、論理アドレス900には物理アドレス123が対応する。結果パーティション番号0には物理アドレス456が、パーティション番号1には物理アドレス789が、パーティション番号nには物理アドレス123が対応する。これは図12、13で示されるパーティション領域テーブル123での変換に対応する。
図15を用いて本実施の形態の不揮発性記憶システムにおける起動モードに応じたパーティションのプログラムコードのデータの読み出しについて説明する。図15はホスト装置102Cと不揮発性記憶装置101C間における電源投入後の初期化におけるシーケンス図である。
最初にホスト装置102Cが不揮発性記憶装置101Cに電圧を印加すると、プロセッサ105はコントローラ103Cの初期化(コントローラ初期化)を行う。このコントローラ初期化とは、コントローラ各部に存在する図示しないレジスタをリセットし、コントローラ103Cに接続されているフラッシュメモリ104の種別や個数の認識をして、不揮発性記憶装置101Cとしての容量や特性に関する情報をフラッシュメモリ104の特定領域のデータを読み出すことで認識する処理である。コントローラ初期化に要する時間は数ms以内の短い時間である。パーティション領域テーブル123を揮発性メモリで構成している時には、このコントローラ初期化の期間にフラッシュメモリ104からデータを読み出して正しい状態にする。コントローラの初期化を終えることで、不揮発性記憶装置101Cはホスト装置102Cと相互に通信を行うことが可能になる。またこの状態ではフラッシュメモリの特定の領域からデータの読み出しを行うことが可能である。このコントローラ103Cの初期化を終えた状態を、不揮発性記憶装置101Cの第1の状態とする。
ステップ1501でホスト装置102Cは不揮発性記憶装置IF113を介して不揮発性記憶装置101Cに不揮発性記憶装置101Cを初期化するための初期化コマンドを発行する。不揮発性記憶装置101Cの初期化とは、コントローラ内部のプロセッサ105がフラッシュメモリIF107を介してフラッシュメモリ104からデータを読み出して、その読み出したデータを基に、論理物理アドレス変換テーブル108を完成させることである。不揮発性記憶装置101Cの初期化を完了するために要する時間は、実時間で数100ms程度を要する。不揮発性記憶装置101Cの初期化が完了することで、ホスト装置102Cは不揮発性記憶装置101Cに対して論理アドレスを指定してデータの書き込み、不揮発性記憶装置101Cからデータの読み出しが可能になる。この不揮発性記憶装置101Cの初期化を終えた状態を、不揮発性記憶装置101Cの第2の状態とする。
ステップ1501でホスト装置102Cより発行される初期化コマンドを受けて不揮発性記憶装置101Cでは、コントローラ初期化が完了して不揮発性記憶装置101Cが第1の状態にあればホスト装置102Cに対してレスポンスを返し、まだ第1の状態になっていなければレスポンスを返さない。ステップ1501の初期化コマンドに対して不揮発性記憶装置101Cからレスポンスが返らないことで、ホスト装置102Cは不揮発性記憶装置101Cがまだ第1の状態になっていない、即ちコントローラ103Cの初期化が終わっていないことを認識することが出来る。
ホスト装置102Cは不揮発性記憶装置101Cを初期化するために、不揮発性記憶装置101Cからレスポンスが返ってくるまで不揮発性記憶装置101Cに対して初期化コマンドを発行する必要がある。ここでは、ステップ1502で再度初期化コマンドを発行する。ステップ1502の初期化コマンドを受けたときに不揮発性記憶装置101C内部のコントローラ103Cの初期化が終了していれば、プロセッサ105はステップ1502の初期化コマンドに対してステップ1503でホストIF106を介してレスポンスを返す。また不揮発性記憶装置101Cではホスト装置102Cの初期化コマンドを受けて不揮発性記憶装置101C内部の初期化処理を開始する。
ホスト装置102Cはステップ1503で不揮発性記憶装置101Cからレスポンスが返ってくることで、不揮発性記憶装置101C内部のコントローラ103Cの初期化が完了して第1の状態になっていることを認識することが出来る。この不揮発性記憶装置101Cの第1の状態では限られた領域からのみデータの読み出しが可能となる。
不揮発性記憶装置が第1の状態にあることを認識したホスト装置102Cのプロセッサ111は、モード決定部122より指定される起動モードに対応するプログラムコードが格納されているパーティションを決定する。そしてステップ1504で起動モードに応じ、PN指定アクセス部124を介してパーティションナンバー指定での読み出しコマンドを発行する。このステップ1504のタイミングでは不揮発性記憶装置101C内部において初期化処理が終了している必要はない。
ステップ1504のパーティションナンバー指定での読み出しコマンドを受けて、不揮発性記憶装置101Cのプロセッサ105は、まずステップ1505でレスポンスをホスト装置102Cに返す。そして一旦プロセッサ105は論理物理アドレス変換テーブル108の作成を中断して、パーティションナンバーを指定しての読み出しコマンドで指示されるパーティション番号からパーティション領域テーブル123を参照して対応するフラッシュメモリ104のブート部物理アドレスに変換する。プロセッサ105はブート部物理アドレスを指定してフラッシュメモリ104からブートコードのデータを読み出して一時バッファメモリ109に保持し、その後ステップ1506でホスト装置102Cに対してブートコードを出力する。
ホスト装置102Cのプロセッサ111は不揮発性記憶装置IF113を介して読み出されるブートコードをメインメモリ112に転送する。プロセッサ111はメインメモリ112に転送されたブートコードを使用することでホスト装置102Cを起動する。
以上のブートコードのデータ読み出しシーケンスによると、ホスト装置102Cは不揮発性記憶装置101Cからのブートコードの読み出しを電源投入後のコントローラ103Cの初期化が完了した第1の状態で、第2の状態になることを待つことなく、実行することが可能となっている。これは、ホスト装置102Cは起動モードに対応するパーティションの番号を指定して不揮発性記憶装置101Cに読み出しコマンドを発行することで、パーティション領域テーブル123を使用して、パーティションの番号をブート部物理アドレスに変換し、フラッシュメモリ104からデータを読み出すことができるからである。
なお、ステップ1506でホスト装置102Cにブートコードを出力した後は、不揮発性記憶装置101Cのプロセッサ105は中断した初期化を再開する。
ステップ1507以降の処理は従来と同様である。ステップ1507でホスト装置102Cは不揮発性記憶装置IF113から初期化完了確認のコマンドの発行を行う。不揮発性記憶装置101C側の初期化処理が完了しておらず第1の状態であれば、ホスト装置102Cに対してステップ1508で初期化未完のレスポンスを返す。
ホスト装置102Cはステップ1508で初期化未完のレスポンスが返されれば、ステップ1509で再度初期化完了確認のコマンドの発行を行う。不揮発性記憶装置101Cの初期化処理が完了して第2の状態にあれば、ホスト装置102Cから不揮発性記憶装置101Cへの初期化完了確認のコマンドに対して、ステップ1510で不揮発性記憶装置101Cはホスト装置102Cへ初期化完了のレスポンスを返す。不揮発性記憶装置101Cは初期化完了のレスポンスを返すことで論理アドレスを指定したデータの書き込み・読み出しが可能になったことをホスト装置102Cに通知する。
図16に、図15のシーケンス図に対応する不揮発性記憶装置101C内のホスト装置102Cに対する処理のフローチャートを示す。図3と同じ判定・処理を行う箇所には図3と同じ番号を付しており、説明を省略する。
ホスト装置102Cよりステップ1504のパーティションナンバー指定の読み出しコマンドが発行された場合に、プロセッサ105はステップ1603でホストIF106を介して入力されたコマンドがパーティションナンバー指定の読み出しコマンドであることを認識する。このとき状態1605に進み、ステップ1505のレスポンスを返すとともに、状態302から開始していた不揮発性記憶装置101C内部の初期化処理を一時中断する。そして、指定されたパーティション番号をパーティション領域テーブル123でフラッシュメモリ104の物理アドレスに変換する。そしてその物理アドレスをフラッシュメモリIF107に指定することでフラッシュメモリ104から指定されたパーティションに対応するブートコードを読み出してバッファメモリ109へと転送する。更に状態306でデータをホスト装置102Cに出力する。そして中断していた不揮発性記憶装置101C内部の初期化処理を再開して状態1603へと遷移する。
以上のようにして本願発明の不揮発性記憶システムの不揮発性記憶装置101Cにおいては、不揮発性記憶装置101Cにデータを読み出し・書き込みが行える第2の状態になる前に、第2の状態で読み出し・書き込みが行える領域の一部分の領域ではあるが、読み出しが可能な状態である第1の状態を取ることによって、ホスト装置102Cが不揮発性記憶装置101Cに対して電源投入後により早期に起動モードに対応するパーティションのプログラムコードのデータの読み出すことが可能となる。これによって、不揮発性記憶システムの起動を早く行うことが出来る。
なお、本願発明では図13に示すように、第2の状態で使用可能な論理物理アドレス変換テーブル108で対応付けられている領域の一部分の領域について、第1の状態でパーティション領域テーブル123を使用して読み出す場合について説明した。第2の状態でアクセス可能な領域であれば、論理物理アドレス変換テーブル108で対応付けられていなくとも構わない。第1の状態ではブートコードを読み出すので、第2の状態ではより信頼性・機密性の高い別のアドレス変換手段を用いて読み出し・書き込みをするようにしてもよい。
また、本願発明では図13で示すように、各パーティションの先頭論理アドレスについて、パーティション領域テーブル123を用いて物理アドレスに変換する場合について説明した。本実施の形態では特定のパーティションについて、先頭からの複数の論理アドレスについて物理アドレスに変換するテーブルを有しても構わない。この場合そのパーティションに含まれる全ての論理アドレスについての物理アドレスであってもよい。第2の状態で使用可能な論理物理アドレス変換テーブル108を作成するよりも十分早く第1の状態への初期化が行える場合であれば、本願発明の効果を得ることが出来る。
本発明では、不揮発性記憶装置にシステムを起動するためのプログラムコードを格納した不揮発性記憶システムにおいて、システムの起動を高速に行うことが出来るユーザ利便性の高い不揮発性記憶システムに有用である。

Claims (10)

  1. コントローラと不揮発性メモリとを有し、外部ホストからアクセス可能なデータを前記不揮発性メモリに記憶する不揮発性記憶装置であって、
    前記アクセス可能なデータは、
    複数のパーティションに分割され、
    前記複数のパーティションは少なくとも1つのブートパーティションを含み、
    前記コントローラは、
    電源投入後にブートパーティションにアクセス可能な第1の状態と、
    前記複数のパーティションの中の任意のパーティションにアクセス可能な第2の状態と、をとり、
    前記第1の状態から前記第2の状態に遷移する際に、前記遷移が完了したか否かを外部ホストに通知する手段を有する不揮発性記憶装置。
  2. 外部ホストからの前記ブートパーティションにアクセスを要求するコマンドの発行を受けて、前記不揮発性記憶装置が前記第1の状態であるか否かを外部ホストに通知する請求項1に記載の不揮発性記憶装置。
  3. 外部ホストからの前記ブートパーティション以外のパーティションにアクセスを要求するコマンドの発行を受けて、前記不揮発性記憶装置が前記第2の状態であるか否かを外部ホストに通知する請求項1に記載の不揮発性記憶装置。
  4. 前記ブートパーティションは予め外部ホストより不揮発性記憶装置に対して発行するコマンドによって決定されている請求項1から3のいずれかに記載の不揮発性記憶装置。
  5. 前記ブートパーティションには、外部ホストのためのブートコードが格納されている請求項4に記載の不揮発性記憶装置。
  6. 前記コントローラはさらに、
    外部ホストから指定されるアドレス情報を前記不揮発性メモリのアドレスである物理アドレスに変換するブートコードアドレス変換テーブルを備え、
    前記第1の状態において、前記外部ホストから指定されるアドレス情報を、前記ブートアドレス変換テーブルを用いて前記不揮発性メモリの物理アドレスに変換することで、前記ブートパーティションにアクセス可能とする請求項2に記載の不揮発性記憶装置。
  7. 前記コントローラは、さらに
    不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリのアドレスである物理アドレスに変換する論理物理アドレス変換テーブルを備え、
    前記第2の状態において、前記外部ホストから指定される論理アドレスを、前記論物変換テーブルを用いて前記不揮発性メモリの物理アドレスに変換することで、前記任意のパーティションにアクセスする請求項3に記載の不揮発性記憶装置。
  8. 前記ブートコードアドレス情報は、パーティションを特定する番号である請求項6に記載の不揮発性記憶装置。
  9. 前記ブートコードアドレス変換部は、前記パーティションを特定する番号を対応する前記パーティションの先頭の論理アドレスのデータが格納されている物理アドレスに変換する請求項8に記載の不揮発性記憶装置。
  10. 不揮発性記憶装置とホスト装置からなる不揮発性記憶システムであって、
    前記不揮発性記憶装置は、
    請求項1〜9のいずれかに記載の不揮発性記憶装置である不揮発性記憶システム。
JP2009525280A 2007-07-31 2008-07-30 不揮発性記憶装置および不揮発性記憶システム Active JP5220747B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009525280A JP5220747B2 (ja) 2007-07-31 2008-07-30 不揮発性記憶装置および不揮発性記憶システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007198564 2007-07-31
JP2007198564 2007-07-31
JP2009525280A JP5220747B2 (ja) 2007-07-31 2008-07-30 不揮発性記憶装置および不揮発性記憶システム
PCT/JP2008/002039 WO2009016832A1 (ja) 2007-07-31 2008-07-30 不揮発性記憶装置および不揮発性記憶システム

Publications (2)

Publication Number Publication Date
JPWO2009016832A1 JPWO2009016832A1 (ja) 2010-10-14
JP5220747B2 true JP5220747B2 (ja) 2013-06-26

Family

ID=40304074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009525280A Active JP5220747B2 (ja) 2007-07-31 2008-07-30 不揮発性記憶装置および不揮発性記憶システム

Country Status (3)

Country Link
US (1) US8527691B2 (ja)
JP (1) JP5220747B2 (ja)
WO (1) WO2009016832A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
DE102009032821A1 (de) * 2008-10-28 2010-04-29 Giesecke & Devrient Gmbh Speichermedium mit unterschiedlichen Zugriffsmöglichkeiten
TWI379234B (en) * 2008-12-09 2012-12-11 Phison Electronics Corp Motherboard, storage device and controller thereof and booting method
US8874824B2 (en) * 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US8464020B2 (en) 2009-12-07 2013-06-11 Panasonic Corporation Non-volatile storage device, host device, storage system, data communication method and program
JP5077385B2 (ja) * 2010-04-15 2012-11-21 株式会社デンソー 車両用ナビゲーション装置
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US9129124B2 (en) * 2012-04-12 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamic provisioning of virtual systems
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
TWI454914B (zh) * 2012-08-29 2014-10-01 Memoright Corp A Method of Improving Speed ​​of Starting Speed ​​Based on Flash Memory
CN102854824A (zh) * 2012-09-07 2013-01-02 温州聚诚电力科技有限公司 智能控制器
WO2014049798A1 (ja) * 2012-09-27 2014-04-03 富士通株式会社 変換装置、変換方法、および情報処理システム
US9383924B1 (en) * 2013-02-27 2016-07-05 Netapp, Inc. Storage space reclamation on volumes with thin provisioning capability
US9477484B2 (en) * 2013-07-23 2016-10-25 Samsung Electronics Co., Ltd. System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
KR102159963B1 (ko) * 2013-07-23 2020-09-28 삼성전자 주식회사 컴퓨터 시스템의 부팅 가속을 위한 시스템 및 방법
KR102456490B1 (ko) * 2016-01-12 2022-10-20 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
KR102387461B1 (ko) 2017-07-24 2022-04-15 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 이의 동작 방법
TWI645296B (zh) 2017-10-17 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
US10802734B2 (en) * 2018-09-28 2020-10-13 Western Digital Technologies, Inc. Method for fast boot read
US10915329B2 (en) * 2019-02-24 2021-02-09 Winbond Electronics Corporation Delayed reset for code execution from memory device
US11551731B2 (en) 2020-05-28 2023-01-10 Stmicroelectronics International N.V. Memory circuit arrangement for accurate and secure read
US20210373908A1 (en) * 2020-05-29 2021-12-02 Micron Technology, Inc. Data techniques for system boot procedures
US11861370B2 (en) * 2021-08-27 2024-01-02 Micron Technology, Inc. Automotive boot optimization by utilizing multiple phases of boot-up procedures

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003065210A1 (fr) * 2002-01-31 2003-08-07 Matsushita Electric Industrial Co., Ltd. Appareil de traitement d'informations, appareil de gestion de memoire, procede de gestion de memoire et procede de traitement d'informations
JP2005107938A (ja) * 2003-09-30 2005-04-21 Casio Comput Co Ltd コンピュータの起動システム及びデータ記憶装置
JP2006221807A (ja) * 2006-04-10 2006-08-24 Toshiba Corp 不揮発性半導体記憶装置のアクセス方法
JP2007501450A (ja) * 2003-08-01 2007-01-25 シンビアン ソフトウェア リミテッド コンピュータ装置のデータにアクセスする方法
JP2008065725A (ja) * 2006-09-11 2008-03-21 Hagiwara Sys-Com:Kk Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
WO2008117520A1 (ja) * 2007-03-28 2008-10-02 Panasonic Corporation メモリコントローラ、不揮発性メモリシステムおよびホスト装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221034A (ja) 1986-03-20 1987-09-29 Toshiba Corp 演算制御装置
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
JP3806077B2 (ja) 2002-08-26 2006-08-09 株式会社東芝 メモリカード認識システム、容量切り替え型メモリカード・ホスト機器、容量切り替え型メモリカード、記憶容量設定方法及び記憶容量設定プログラム
US8001325B2 (en) 2004-01-09 2011-08-16 Sandisk Corporation Memory card that supports file system interoperability
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
US20080162858A1 (en) * 2007-01-03 2008-07-03 Freescale Semiconductor, Inc. Hardware-based memory initialization with software support

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003065210A1 (fr) * 2002-01-31 2003-08-07 Matsushita Electric Industrial Co., Ltd. Appareil de traitement d'informations, appareil de gestion de memoire, procede de gestion de memoire et procede de traitement d'informations
JP2007501450A (ja) * 2003-08-01 2007-01-25 シンビアン ソフトウェア リミテッド コンピュータ装置のデータにアクセスする方法
JP2005107938A (ja) * 2003-09-30 2005-04-21 Casio Comput Co Ltd コンピュータの起動システム及びデータ記憶装置
JP2006221807A (ja) * 2006-04-10 2006-08-24 Toshiba Corp 不揮発性半導体記憶装置のアクセス方法
JP2008065725A (ja) * 2006-09-11 2008-03-21 Hagiwara Sys-Com:Kk Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
WO2008117520A1 (ja) * 2007-03-28 2008-10-02 Panasonic Corporation メモリコントローラ、不揮発性メモリシステムおよびホスト装置

Also Published As

Publication number Publication date
US8527691B2 (en) 2013-09-03
JPWO2009016832A1 (ja) 2010-10-14
WO2009016832A1 (ja) 2009-02-05
US20100169558A1 (en) 2010-07-01

Similar Documents

Publication Publication Date Title
JP5220747B2 (ja) 不揮発性記憶装置および不揮発性記憶システム
US7234049B2 (en) Computer system with NAND flash memory for booting and storage
KR101546072B1 (ko) 반도체 디스크 장치, 그것을 포함하는 컴퓨팅 시스템, 그리고 그것의 동작 방법
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
CN110032403B (zh) 存储器装置与电子装置的启动程序加载方法
KR101562973B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
US6754765B1 (en) Flash memory controller with updateable microcode
CN100446126C (zh) 使用多个命令周期的闪存存储器访问
JP2004220557A (ja) シリアルフラッシュメモリにおける直接実行のための制御装置及びその方法、これを用いたフラッシュメモリチップ
JP2007213571A (ja) 新奇的なメモリアーキテクチャ内の直接メモリアクセスを用いてシステムを起動する方法
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JPWO2008117520A1 (ja) メモリコントローラ、不揮発性メモリシステムおよびホスト装置
KR20130111622A (ko) 확장 기능이 용이하게 설정될 수 있는 메모리 시스템
US9158476B2 (en) Method for switching operation mode, memory controller and memory storage apparatus
JP2008009874A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP6543122B2 (ja) 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム
JP2006120082A (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JP6753257B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2009230548A (ja) 情報処理装置と情報処理方法およびストレージシステム
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
TWI431530B (zh) 嵌入式系統及其程式更新方法
CN101604253A (zh) 计算机系统及启动方法
KR102429346B1 (ko) 메모리 업그레이드 시스템 및 방법
JP2008027326A (ja) システムコントローラ、該システムコントローラを有するフラッシュメモリシステム、フラッシュメモリモジュールの制御方法
KR100950936B1 (ko) 다수의 드라이브가 구현될 수 있는 솔리드 스테이트드라이브

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110617

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120207

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130306

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250