(57)【要約】【課題】組み込み系コンピューティングシステムを構築するための、より改良されたNAND型フラッシュメモリデバイスの提供。及び該デバイスを用いたコンピューティングシステムの起動方法の提供。【解決手段】NAND型フラッシュメモリからのブートローダの読み出しを、NAND型フラッシュメモリデバイスの内部機能により自律的に実行し、読み出したブートローダを、ホストCPUの内部メモリバスと直結するデバイス内のSRAMにロードする。ホストは、SRAMにロードされたブートローダの情報に基づきUSBインターフェースからOSをシステムメモリにロードし、システムを起動する。【選択図】  図２
2008065725.tif 000002
【特許請求の範囲】
【請求項１】
ホストICと別個独立に構成され、該ホストICと協働して一のコンピューティングシステムを構築するNAND型フラッシュメモリデバイスであって、
該NAND型フラッシュメモリデバイスは、
管理領域と、ブートローダとOSを格納してなるユーザデータ領域とを有するNAND型フラッシュメモリと、ホストシステムの読出し指令に対応して前記NAND型フラッシュメモリからデータの読み出しを行うコントローラからなり、
該コントローラは、
1）ホストとUSBプロトコルに基づき通信を行なうUSBインターフェースと、
2) NAND型フラッシュメモリと通信を行うNANDインターフェースを含み、該NANDインターフェースを介してNAND型フラッシュメモリからデータを読み出すためのアドレス、コマンド及び制御信号を出力するハードウエアシーケンサと、
3）CPUを有し、ホストから読み出し指定されたアドレスからNAND型フラッシュメモリにアクセスすべき物理ブロックアドレスを割り出し、これを前記ハードウエアシーケンサにプログラムするとともに、本コントローラを統括的に制御するメインファームウエアと、
4) 前記USBインターフェースを介しホストに出力するデータを一時格納する読み出しデータ格納用RAMと、
5)メモリバス方式によってホストの内部メモリバスと直結されてなるSRAMと、
6)バッファメモリーを有し、前記読み出しデータ格納用RAM及び前記SRAMに前記バッファメモリーを介して格納するデータ及び前記読み出しデータ格納用RAMから該バッファメモリーを介して読み出すデータの緩衝制御を行うバッファマネージャーと、
7)NAND型フラッシュメモリから読み出されたデータにエラーがないか判定するECC  DECORDERと、
8)前記ECC  DECORDERによりデータエラーが発見された場合に、当該エラーを訂正するCORRECTORと、
を有し、
システムに電源投入後、メインファームウエアの機能に基づき、前記NAND型フラッシュメモリに格納されてなるブートローダが、前記SRAMにロードされるよう構成されてなることを特徴とするNAND型フラッシュメモリデバイス。
【請求項２】
NAND型フラッシュメモリに格納されているブートローダのSRAMへのロードは、管理領域に予め格納されている前記ブートローダのアドレス情報に基づき、メインファームウエアがハードウエアシーケンサにこれを実行させるものであることを特徴とする請求項１に記載のNAND型フラッシュメモリデバイス。
【請求項３】
NAND型フラッシュメモリからSRAMにブートローダのロードが完了したときに、バッファマネージャーからホストに対し、該ロード完了を示すレディー信号が送信されるよう構成されてなる請求項1記載のNAND型フラッシュメモリデバイス。
【請求項４】
NAND型フラッシュメモリに、ホストが利用するその他のデータを格納してなることを特徴とする請求項１記載のNAND型フラッシュメモリデバイス。
【請求項５】
ホストと、これとは別個独立に構成されてなるNAND型フラッシュメモリデバイスからなるコンピューティングシステムのブート方法であって、
電源投入後、NANDフラッシュメモリに格納されているブートローダの読み出しを、NAND型フラッシュメモリデバイス自体の機能に基づき自律的に実行し、
読み出したブートローダを、NAND型フラッシュメモリ内のSRAMにロードし、
ホストCPUが、その内部メモリバスから直接的に前記SRAMにアクセスし、前記ロードされたブートローダの情報に基づき、NAND型フラッシュメモリに格納されているOSの読み出しを、ホスト- NAND型フラッシュメモリデバイス間のUSBインターフェースを介してNAND型フラッシュメモリデバイスに対して指令し、読み出したOSを、前記USBインターフェースを通じてシステムメモリにロードし、当該コンピューティングシステムを起動することを特徴とするコンピューティングシステムの起動方法。
【請求項６】
ホストCPUの前記SRAMへのアクセスは、NAND型フラッシュメモリからSRAMにブートローダのロードが完了したときに、ホストと通信を行なうNAND型フラッシュメモリデバイスのバッファマネージャーからホストに対し該ロード完了を示すレディー信号が送信されたことを条件に実行されることを特徴とする請求項５記載のコンピューティングシステムの起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストICと協働して一のコンピューティングシステムを構築するNAND型フラッシュメモリデバイス及び該デバイスを利用したコンピューティングシステムの起動方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（PC）の場合、そのコンピュータに内蔵してなるハードディスク（HDD）にOSを格納しておき、電源投入時に、システムの初期化が行なわれ、CPU内のキャッシュメモリーやROMに格納されてなるブートローダ（ブートプログラム若しくはブートコードともいう）が起動し、CPUはこのブートローダの情報に基づきHDDからシステムメモリにOSをロードし、これを起動している（先行技術１）。
【０００３】
また、PCの他、各種産業機器では、コアCPUを有するホストをワンチップICで構成し、これとは別個独立にブートローダとOSを格納したICを構成し、これを前記ホストICと協働させて一のコンピューティングシステムを構成している（先行技術２）。このようなシステムは一般に組み込みシステムと称され、又、ホストICと協働させるための外付けのICは一般に組み込みデバイスとも呼ばれている。
【０００４】
先行技術２の一例として、特開2003-271391号に開示されているものがある。その要旨は、同公報の図２及び段落0026乃至段落0038に開示されているが、以下、その概略を本願の図1を用いて説明する。尚図１では、上記公報で使用されている符号をそのまま引用し、該符号に’をつけて説明する。
【０００５】
システムに電源が投入され初期化が行なわれると、ブートストラッパ25’が、外付けのNANDフラッシュメモリ18’からブートコードを読み出し、システムバス17’を介して、内部RAM26’に格納する。すると、ホストのメモリコントローラ14’がブートコードに基づき、NANDインターフェースを介して、NANDフラッシュメモリ18’に格納されているOSを読み出し、システムバス17’を通じてシステムメモリ19’（DRAM）にロードする。これによりOS即ちコンピュータシステムが起動する。
【０００６】
このシステムの問題点は以下の通りである。
（１）まず、NANDフラッシュメモリから読み出されるコードデータには書き込み時のデータエラーの存在を無視することができず、従って、エラー訂正回路（ERROR  CORRECTING  CIRCUIT）をホスト側に組み込む必要がある。一般に組み込み系デバイスの場合は、デバイス設計者側とホスト設計者側が異なる場合があり、必ずしもホストIC設計者側がメモリの詳細を周知していない場合もある。よってNAND型フラッシュメモリを扱う上では、それを周知しているデバイス提供側がエラー訂正回路をデバイスICに組み入れることが、開発効率の点で有益である。
【０００７】
（２）また、ブートコードを内部メモリ26’にロードするブートストラッパをホスト側に組み込んでおり、この場合、NAND型フラッシュメモリにおける当該ブートローダを格納しているアドレス情報等、デバイス側の情報と種々併せこみを行なわなければならないといった煩雑さがある。
【０００８】
（３）さらには、ホスト21’にブートコードを格納する記憶手段（内部RAM２６’）を設ける必要がある。
【特許文献１】特開2003-271391号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は上記問題点に鑑みなされたもので、その目的とするところは、より簡易な方法で組み込み系のコンピューティングシステムを構築するための改良されたNAND型フラッシュメモリデバイス、及び該デバイスを用いたコンピューティングシステムの起動方法の提供にある。さらには、システム性能を最適化しうるNAND型フラッシュメモリデバイスの提供にある。その他、本発明の目的は、明細書、特許請求の範囲の各請求項の記載から自ずと明らかとなろう。  
【課題を解決するための手段】
【００１０】
本発明は、上記課題の解決にあたり、ブートローダの読み出しを、ホストに組み込まれたブートストラッパのルーティンプログラムに依らず、あくまでデバイスの内部機能により自律的にこれを実行するよう構成してなる。これにより、ホストＩＣの制作工数が大幅に軽減される。
【００１１】
NANDフラッシュメモリから読み出されたブートローダは、ホストCPUの内部メモリバスと直結するデバイス内のSRAMにロードされる。これにより、ホストにブートローダを読み出す手段（ブートストラッパ）やブートローダを格納する内部メモリが不要となるとともに、ホストCPUは特別なインターフェースを介すことなく、内部バスから直接SRAMにアクセスしてブートローダの情報を容易に確認できる。
【００１２】
ところで、ブートローダには、NAND型フラッシュメモリに格納したOSの所在（アドレス）などの情報が記載されている。ホストCPUは、ブートローダの内容を確認すると、その情報に基づき、USBインターフェースを介して、デバイスに対しOSの読み出しを指令する。フラッシュメモリから読み出されたOSは、USBインターフェースを介しシステムメモリにロードされ、その後システムが起動する。
【００１３】
さらに具体的には、前記した課題の解決は、本発明が以下に上位概念から下位概念に亙り列挙する新規な特徴的構成を採用することにより達成される。
【００１４】
本発明デバイスの第１の特徴は、ホストICと別個独立に構成され、該ホストICと協働して一のコンピューティングシステムを構築するNAND型フラッシュメモリデバイスであって、該NAND型フラッシュメモリデバイスは、管理領域と、ブートローダとOSを格納してなるユーザデータ領域とを有するNAND型フラッシュメモリと、ホストシステムの読出し指令に対応して前記NAND型フラッシュメモリからデータの読み出しを行うコントローラからなり、該コントローラは、1）ホストとUSBプロトコルに基づき通信を行なうUSBインターフェースと、2) NAND型フラッシュメモリと通信を行うNANDインターフェースを含み、該NANDインターフェースを介してNAND型フラッシュメモリからデータを読み出すためのアドレス、コマンド及び制御信号を出力するハードウエアシーケンサと、3）CPUを有し、ホストから読み出し指定されたアドレスからNAND型フラッシュメモリにアクセスすべき物理ブロックアドレスを割り出し、これを前記ハードウエアシーケンサにプログラムするとともに、本コントローラを統括的に制御するメインファームウエアと、4) 前記USBインターフェースを介しホストに出力するデータを一時格納する読み出しデータ格納用RAMと、5)メモリバス方式によってホストの内部メモリバスと直結されてなるSRAMと、6)バッファメモリーを有し、前記読み出しデータ格納用RAM及び前記SRAMに前記バッファメモリーを介して格納するデータ及び前記読み出しデータ格納用RAMから該バッファメモリーを介して読み出すデータの緩衝制御を行うバッファマネージャーと、7)NAND型フラッシュメモリから読み出されたデータにエラーがないか判定するＥＣＣ  ＤＥＣＯＲＤＥＲと、8)前記ＥＣＣ  ＤＥＣＯＲＤＥＲによりデータエラーが発見された場合に、当該エラーを訂正するＣＯＲＲＥＣＴＯＲとを有し、システムに電源投入後、メインファームウエアの機能に基づき、前記NAND型フラッシュメモリに格納されてなるブートローダが、前記SRAMにロードされるNAND型フラッシュメモリデバイスの構成採用にある。
【００１５】
本発明デバイスの第２の特徴は、NAND型フラッシュメモリに格納されているデータのSRAMへのロードは、管理領域に予め格納されているブートローダのアドレス情報に基づき、メインファームウエアがハードウエアシーケンサにこれを実行させるNAND型フラッシュメモリデバイスの構成採用にある。
【００１６】
本発明デバイスの第３の特徴は、NAND型フラッシュメモリからSRAMにブートローダのロードが完了したときに、バッファマネージャーからホストに対し、該ロード完了を示すレディー信号が送信されるよう構成されてなるNAND型フラッシュメモリデバイスの構成採用にある。
【００１７】
本発明デバイスの第4の特徴は、NAND型フラッシュメモリに、ホストが利用するその他のデータを格納してなるNAND型フラッシュメモリデバイスの構成採用にある。
【００１８】
本発明方法の第１の特徴は、ホストと、これとは別個独立に構成されてなるNAND型フラッシュメモリデバイスからなるコンピューティングシステムのブート方法であって、電源投入後、NANDフラッシュメモリに格納されているブートローダの読み出しを、NAND型フラッシュメモリデバイス自体の機能に基づき自律的に実行し、読み出したブートローダを、NAND型フラッシュメモリ内のSRAMにロードし、ホストCPUが、その内部メモリバスから直接的に前記SRAMにアクセスし、前記ロードされたブートローダの情報に基づき、NAND型フラッシュメモリに格納されているOSの読み出しを、ホスト- NAND型フラッシュメモリデバイス間のUSBインターフェースを介してNAND型フラッシュメモリデバイスに対して指令し、読み出したOSを、前記USBインターフェースを通じてシステムメモリにロードし、当該コンピューティングシステムを起動するコンピューティングシステムの起動方法の構成採用にある。
【００１９】
本発明方法の第２の特徴は、ホストCPUの前記SRAMへのアクセスは、NAND型フラッシュメモリからSRAMにブートローダのロードが完了したときに、ホストと通信を行なうNAND型フラッシュメモリデバイスのバッファマネージャーからホストに対し、該ロード完了を示すレディー信号が送信されたことを条件に実行されるコンピューティングシステムの起動方法の構成採用にある。
【発明を実施するための最良の形態】
【００２０】
以下、本発明が適用されたNAND型フラッシュメモリデバイスの実施例について説明する。尚、本発明の実施の形態は、下記の実施例に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【００２１】
本発明のデバイス１は、図２に示すように、ブートローダ等、所定のデータを格納してなるNAND型フラッシュメモリ１１と、これを統括的に制御するコントローラ１２とからなる。NAND型フラッシュメモリ１１には、図３に示すように、管理領域１１−１の他、ユーザデータ領域を有し、ユーザデータ領域は、例えば、第１乃至第３の領域で構成され（１１−２乃至１１−４）、順に、ブートローダ、OS、その他のデータ（例えばコンテンツデータ）が格納されている。管理領域１１−１には、各物理ブロックの論理ブロックアドレスとの関係の他、ブートローダの所在するアドレスとコントローラ１２がその動作設定を行なうためのパラメータ等が書き込まれている。
【００２２】
また、デバイス１はホスト２からの指令に基づき、NAND型フラッシュメモリ１１に格納しているデータを外部に出力するためのUSBインターフェース１２１を有している。
【００２３】
以下、システム１０が起動している状態において、ホスト２がNAND型フラッシュメモリ１１に格納されているデータを読み出し、USBインターフェース１２１を介して外部（ホスト２）に出力させる原則的手順について説明する。
【００２４】
（データの読み出し）
ホスト２のデバイスドライバ２３は、USBインターフェース２４を介し、NAND型フラッシュメモリ１１に格納されているデータを読み出すためのコマンドを出力する。読み出し命令（コマンド）は、アドレスと命令コードで生成される。データはページ単位で読み出すことができる。
【００２５】
メインファームウエア１２０はCPU１２００を有し、本NAND型フラッシュメモリデバイス１を統括的に制御するものである。ROM１２０１には前記統括制御に必要な各種プログラムが格納されている。RAM１２０２は、CPU１２００の作業領域として使用される。
【００２６】
ホスト２からデータの読み出し命令を受けると、CPU１２００は、データを読み出すべきNAND型フラッシュメモリのアドレスを、ハードウエアシーケンサにプログラムする。ホスト２から指令されるアドレスは、NAND型フラッシュメモリの論理ブロックアドレスであるため、CPU1１２００は論理ブロック-物理ブロック変換テーブル（以下、「アドレス変換テーブルという」）に基づき物理ブロックアドレスに変換したものをプログラムする。このアドレス変換テーブルは、管理領域１１-１あるいはデータ書き込み時に予めROM１２０１に記憶させておいてものを、RAM１２０２に展開して使用することができる。ハードウエアシーケンサ１２３は、その有するNANDインターフェース１２３１を介し、NAND型フラッシュメモリ１１からデータを読み出す。
【００２７】
ハードウエアシーケンサ１２３は、８ビット（１Ｂｙｔｅ）ずつ、１ページ、即ち１ＥＣＣセクター単位（メインデータ５１６Ｂｙｔｅ＋エラーチェックコード１２Ｂｙｔｅの計５２８Ｂｙｔｅ）のデータを読み出す。読み出された１ＥＣＣセクター単位のデータは、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ部１２４に、８ビットずつ順に送出される。
【００２８】
ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ部１２４は、そのＤＥＣＯＲＤＥＲにより、前記１ＥＣＣセクターのデータに含まれるエラーチェックコード１２Ｂｙｔｅを用い、そのメインデータ（５１２Ｂｙｔｅ）にエラーがないか確認する。
【００２９】
確認後、前記５１２Ｂｙｔｅのメインデータは、８ビットずつ、そのままハードウエアシーケンサ１２３に戻され、バッファマネージャー１２２を介してＲＡＭ１２５に格納される。
【００３０】
RAM１２５は、1ページ、即ち、１ＥＣＣセクター単位のメインデータを記憶するだけの容量を有している。２値小ブロックの場合は５１２Ｂｙｔｅであり、多値大ブロックの場合はその４倍、即ち２０４８Ｂｙｔｅである。尚、バッファマネージャー１２２は図示しないバッファメモリーを有し、前記データ格納用RAM１２５に前記バッファメモリーを介して格納され若しくは前記データ格納用RAM１２５から該バッファメモリーを介して読み出されるデータの緩衝制御を行う。
【００３１】
ハードウエアシーケンサ１２３からバッファマネージャー１２２に対しては、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４からハードウエアシーケンサ１２３に戻されたデータを、１６ビットデータで順次転送する。バッファマネージャー１２２からRAM１２５に対しても１６ビットでデータを送出する。
【００３２】
前記、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４のＤＥＣＯＲＤＥＲによるチェックの結果、もしデータエラー（ＥＣＣエラー）が発見された場合は、その旨がハードウエアシーケンサ１２３に通知される。このエラー検出は、ハードウエアシーケンサ１２３のMPU（ファームウエア１２３０内／図示せず）が行ってもよいし、メインファームウエア１２０のCPU１２００が行ってもよい。MPUで行う場合は、エラーチェックの高速化を図ることができる。エラーチェック中、ハードウエアシーケンサ１２３はNAND型フラッシュメモリ１１からのデータ読み出しを停止する。
【００３３】
データエラーがあると、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４は、そのＣＯＲＲＥＣＴＯＲによりデータを訂正し、訂正データをバッファマネージャー１２２に送出する。そしてバッファマネージャー１２２は、訂正データをRAM１２５に格納するとともに（先に格納したデータの上書き）、当該データに、ホスト２に対する出力がＯＫであることを示すフラグを設定する。
【００３４】
一方データエラーがないことが判明した場合は、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ１２４からハードウエアシーケンサ１２３にその旨通知され、ハードウエアシーケンサ１２３は、これを受けてＤａｔａ  ＯＫの通知をバッファマネージャー１２２に対して行ない、ハードウエアシーケンサ１２３は、ホスト２に対する出力がＯＫであることを示す前記フラグを設定する。
【００３５】
ホスト２に対する出力がＯＫであることを示すフラグは、２値小ブロックの場合も多値大ブロックの場合も、１ページ、即ち１ＥＣＣセクター単位（正確にはそのメインデータ単位）で設定される。
【００３６】
データ出力ＯＫのフラグが設定され、RAM１２５に格納したデータがホスト２に出力可能になると、バッファマネージャー１２２はUSBインターフェース１２１に、ＲＥＡＤＹ信号を送る。そして、USBインターフェース１２１は、RAM１２５に一時格納されているデータを、USBインターフェース２４に出力し、該データは、ホスト２内のＲＡＭ２６にロードされる。以上述べた、デバイス１に対するデータ読み出し、デバイス１から出力されたデータのロードは、予定されたデータの読み出しが完了するまで続行される。
【００３７】
尚、本デバイス１は、NAND型フラッシュメモリ１１とコントローラ１２を、一のＬＳＩパッケージに同梱して構成し得るが、別個に構成してもよい。
【００３８】
又、ＥＣＣ  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲ部１２４のＥＣＣ  ＥＮＤＥＣは、ＥＣＣ  ＤＥＣＯＲＤＥＲの他、ＥＣＣ  ＥＮＣＯＲＤＥＲを含むが、これはデータの書き込み時に冗長領域にエラーチェックコードを書き込むためのものである。
【００３９】
（システムの起動）
以上、ホスト２がデバイス１のUSBインターフェース１２１を介してNAND型フラッシュメモリ１１からデータを読み出す原則的手順について説明したが、以下、本発明デバイス１において、コンピューティングシステム１０に電源が投入されてから、該システムが起動するまでの具体的手順に基づき説明する。
【００４０】
図３は、NAND型フラッシュメモリ１１に格納されているデータ構造例である。
NAND型フラッシュメモリ１１の管理領域１１-１には、ブートローダなど、後述するSRAM１２６に送出すべきデータの所在（アドレス）が予め書き込まれている。ホスト２及び本デバイス１を含むコンピューティングシステム１０に電源が投入されると、本デバイス１に電源が供給される。コントローラ１２は初めに管理領域１１-１に記載されているデバイス１に関する種々の情報を入手する必要があるため、メインファームウエア１２０のCPU１２００は、ハードウエアシーケンサ１２３に、管理領域１１-１からデバイス１に関する情報を読み出させ、これをRAM１２０２にロードする。
【００４１】
この情報には、ブートローダが格納されているアドレスの情報（第１領域１１-２のアドレス情報）が含まれているので、次にこのアドレスをハードウエアシーケンサ１２３にプログラムしてブートローダを読み出す。ハードウエアシーケンサ１２３によって読み出されたブートローダは、上記原則的読み出し手順に則りＥＣＣエラーのチェックを受け、その後バッファマネージャー１２３に接続されているSRAM１２６にロードされる。ブートローダをSRAM１２６にロードすべきことは、予め、メインファームウエア１２０のROM１２０１に書き込んでおけばよい。
【００４２】
ブートローダには、NAND型フラッシュメモリ１１における、OSが格納されているアドレス（第２領域１１-３のアドレス情報）他、必要なデータが記憶されている。
【００４３】
SRAM１２６は、メモリバスインターフェース方式（NORインターフェース方式ともいう）によりホスト２の内部メモリバス２２と直結されている。SRAM１２６にブートローダがロードされると、ホスト２のCPU２５は、前記メモリバス方式でSRAM１２６にアクセスし、そこに格納されているブートローダを読み出す。これは、システムに電源が投入されて後、SRAM１２６にブートローダがロードされるまでの時間を予め測定しておき、SRAM１２６に自動的にアクセスするようプログラムしておけばよい。また他の方法として、NAND型フラッシュメモリ１１の第１領域１１-２からブートローダの読み出し及びSRAM１２６へのロードを完了したときに、バッファマネージャー１２２から、該ロード完了を示すレディー信号をホスト２に送ることによって実行してもよい。この場合のレディー信号の送信は、ブートローダの最終アドレスデータの読み出しが完了したときに実行する。このようにすれば、システム性能を最適化することができる。
【００４４】
メモリコントローラ２７はブートローダの情報をもとに、USBインターフェース２４からUSBインターフェース１２１を介して、デバイス１に対し、NAND型フラッシュメモリ１１の第２領域１１-３に格納してあるOSの読み出し命令を実行する。この読み出しは、上述したデータの読み出し手順に基づき実行される。
【００４５】
読み出されたOSは、ホスト２の内部メモリバス２２に接続されたシステムメモリ４（DRAMで構成し得る）にロード（コピー）される。
【００４６】
システムメモリ４へのOSのロードが完了すると、CPU２５がシステムメモリ４をアクセスすることにより、OSプログラムが実行され、コンピューティングシステム１０が起動する。尚、OSプログラムはそのすべてを一度にロードしてもよいし、都度必要なものをロードしてもよいことは言うまでもない。尚、システムメモリ４は、ホスト２内に設けてもよい。
【００４７】
さらに、NAND型フラッシュメモリ１１のユーザデータ領域に第３領域１１-４を設け、その他のデータ、例えば、NAVIマップデータや、辞書データ、音楽データなど、ホスト２が使用する各種のコンテンツを格納してもよい。また、ホスト２とは異なる別個独立の外部装置（例えばＰＣ）とコントローラ１２間をインターフェースする第2のUSBインターフェースを本デバイス１に設け、これを介して当該外部装置からＯＳやその他のデータを更新するようにしてもよい。このように構成すれば、コンテンツ提供メーカ（本デバイス１の提供者）は、任意のコンテンツを容易に格納及び更新し、ホストメーカに提供できる。
【００４８】
（効果）
以上のように、本発明のデバイスは、ECC  ＥＮＤＥＣ／ＣＯＲＲＥＣＴＯＲを設けるとともに、システムの初期化後に初めに実行されるブートローダの読み出しをデバイス自体が自律的に行なうようにしたので、ホストICの制作工数を大幅に削減できる。
【００４９】
また、ブートローダをデバイスのSRAMにロードし、ホストCPUがその内部メモリバスで直接アクセスできるようにしたので、ホスト側にブートローダをロードするための内部ROMも不要である。また、OSの読み出しは、汎用のUSBインターフェースで実行されるから、先行技術２（特許文献１）が引用した米国特許第5,535,357号のようなNANDインターフェースロジックとNORインターフェースロジックを用いることによる読み出し速度の低下や大型化、高コストの問題を解決しうる。
さらに、ホストCPUのSRAMへのアクセスを、デバイスからのレディー信号の送信があったことを条件に実行すれば、ECCチェックのためSRAMにブートローダがロード完了するまでの個別具体的なタイムラグに 柔軟に対応でき、システムの誤動作を回避するとともにブート時間の最適化を図ることができる。
【図面の簡単な説明】
【００５０】
【図１】NAND型フラッシュメモリにブートローダを格納した従来のコンピューティングシステムの一例である。
【図２】本発明NAND型フラッシュメモリデバイスの実施形態例である。
【図３】NAND型フラッシュメモリに格納されたデータ構造例である。
【符号の説明】
【００５１】
１  NAND型フラッシュメモリデバイス
２  ホスト
３  システムメモリ
１０  コンピューティングシステム
１１  NAND型フラッシュメモリ
１２  コントローラ
２２  内部メモリバス
２３  デバイスドライバ
２４  USBインターフェース（ホスト側）
２５  CPU
２６  RAM
２７  メモリコントローラ
１２０  メインファームウエア
１２１  USBインターフェース（デバイス側）
１２２  バッファマネージャー
１２３  ハードウエアシーケンサ
１２４  ECC  ENDEC／CORRECTOR
１２５  読み出しデータ格納用RAM
１２６  SRAM
【図１】
2008065725.tif 000003
【図２】
2008065725.tif 000004
【図３】
2008065725.tif 000005