(57)【特許請求の範囲】
【請求項１】
制御プログラムをデータ格納領域に格納し、ローダープログラムを前記データ格納領域よりビットエラーの少ないファーストブロックに格納しているＮＡＮＤ型フラッシュメモリと、
揮発性メモリと、
前記ローダープログラムを実行することにより前記データ格納領域に格納されている前記制御プログラムを前記揮発性メモリに書き込む実行手段とを有することを特徴とする情報処理装置。
【請求項２】
前記ＮＡＮＤ型フラッシュメモリは、前記ローダープログラムによって読み込むデータに発生するエラーを検出して訂正するエラー訂正プログラムを前記ファーストブロックに更に格納し、
前記実行手段は前記ローダープログラムによって前記制御プログラムを前記揮発性メモリに書き込む際に、前記データ格納領域から読み込んだ制御プログラムについて前記エラー訂正プログラムを実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＮＡＮＤ型フラッシュメモリは前記ファーストブロックに、前記揮発性メモリと前記実行手段とを初期化する初期化プログラムを更に格納し、
前記実行手段は前記初期化プログラムによって前記実行手段と前記揮発性メモリとを初期化した後に、前記データ格納領域に記憶されているローダープログラムによって前記制御プログラムを前記揮発性メモリに書き込むことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ＮＡＮＤ型フラッシュメモリは、前記データ格納領域に前記制御プログラムを書き換えるための書き換えプログラムを格納し、
前記実行手段は、前記書き換えプログラムを実行することにより、前記ファーストブロックは書き換えずに前記データ格納領域の前記制御プログラムを書き換えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記実行手段は、前記書き換えプログラムが前記ファーストブロック、データ格納領域以外の領域に格納されていた場合、前記書き換えプログラムを実行することにより、前記領域は書き換えずに、前記制御プログラムが格納されているデータ格納領域を書き換えることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ローダープログラムは、前記ファーストブロックから前記揮発性メモリに転送され、前記実行手段により前記揮発性メモリ上で実行されることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記実行手段は前記ＮＡＮＤ型フラッシュメモリに格納されているローダープログラムにアクセスをすることで、前記ローダープログラムを実行することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
命令コードを格納するための命令バッファと、
前記実行手段が前記ＮＡＮＤ型フラッシュメモリのプログラムを当該実行手段にフェッチするために前記ＮＡＮＤ型フラッシュメモリにアクセスをする際に、前記命令バッファに対象の命令コードが存在する場合は、前記命令バッファから対象の命令コードを読み出して前記実行手段に出力し、前記命令バッファ内に対象の命令コードが存在しない場合は、その命令コードを含む１ページの命令コードを前記ＮＡＮＤ型フラッシュメモリから前記命令バッファに転送し、前記命令バッファから対象の命令コードを読み出して前記実行手段に出力する不揮発性メモリ制御手段と、を更に有することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
データを格納するためのデータバッファと、
前記実行手段に指定された前記ＮＡＮＤ型フラッシュメモリのデータを前記データバッファに転送する不揮発性メモリ制御手段と、を更に有することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記実行手段が直接アクセスしない前記ＮＡＮＤ型フラッシュメモリの領域を当該実行手段にマッピングしないことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
データ又は命令コードを格納するためのデータ命令兼用バッファと、
前記データ命令兼用バッファの初期状態は命令バッファとして使用し、前記実行手段が前記ＮＡＮＤ型フラッシュメモリのプログラムを当該実行手段にフェッチするためにアクセスをする際に、前記データ命令兼用バッファ内に対象の命令コードが存在する場合は、前記データ命令兼用バッファから対象の命令コードを読み出して前記実行手段に出力し、前記データ命令兼用バッファ内に対象の命令コードが存在しない場合は、その命令コードを含む１ページの命令コードを前記ＮＡＮＤ型フラッシュメモリから前記データ命令兼用バッファに転送し、前記データ命令兼用バッファから対象の命令コードを読み出して前記実行手段に出力し、さらに前記データ命令兼用バッファがデータバッファに切り替えられた際は、前記実行手段に指定された前記ＮＡＮＤ型フラッシュメモリのデータを前記データバッファに転送する不揮発性メモリ制御手段と、を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項１２】
データ格納用のデータバッファと、
データ及び命令コード格納用のデータ命令兼用バッファと、
前記ＮＡＮＤ型フラッシュメモリ上でプログラムが実行されているときは、前記データ命令兼用バッファを命令バッファとして使用し、前記揮発性メモリ上でプログラムが実行されているときは、前記データ命令兼用バッファをデータバッファとして使用する不揮発性メモリ制御手段と、を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
前記揮発性メモリは、ＤＲＡＭであることを特徴とする請求項１に記載の情報処理装置。
【請求項１４】
ローダープログラムを読み出しエラーが発生しないファーストブロックに格納し、制御プログラムを読み出しエラーが発生する可能性のある領域に格納するＮＡＮＤ型フラッシュメモリと、
揮発性メモリと、
前記ローダープログラムを実行することにより前記領域に格納されている制御プログラムを前記揮発性メモリに書き込み、前記揮発性メモリ上で前記制御プログラムを実行する実行手段とを有することを特徴とする情報処理装置。
【請求項１５】
制御プログラムをデータ格納領域に格納し、ローダープログラムを前記データ格納領域よりビットエラーの少ないファーストブロックに格納しているＮＡＮＤ型フラッシュメモリと、揮発性メモリとを有する情報処理装置における情報処理方法であって、
前記ローダープログラムを実行することにより前記データ格納領域に格納されている制御プログラムを前記揮発性メモリに書き込むステップと、
前記揮発性メモリ上に書き込まれた制御プログラムを実行するステップとを有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関するものである。
【背景技術】
【０００２】
従来、マイクロプロセッサのプログラムコードを格納可能であり、その格納内容を電気的に書き換えることが可能なメモリとしてＮＯＲ型のフラッシュメモリが使われている（例えば、特許文献１を参照）。
【０００３】
一方、データストレージ用として使用されているＮＡＮＤ型フラッシュメモリは非常に安価である。
【０００４】
【特許文献１】特開平07-093980号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の技術では、ＮＯＲ型フラッシュメモリが高価であるという課題があった。
【０００６】
またＮＡＮＤ型フラッシュメモリはその構造上の問題から稀にビットエラーが発生するという問題がある。そのため発生したエラーに対してＥＣＣ等のエラー訂正が必要であり、ハードウェアによるエラー訂正は、エラー訂正アルゴリズムが複雑なため大規模な回路を必要とした。また、書き換え回数を制限することによりある領域(ファーストブロック)のみビットエラーが発生しないことが保証されているが、ファーストブロックは８ＫＢ程度と容量が小さくプログラムの格納には不十分な容量であった。さらにＮＡＮＤ型フラッシュメモリはランダムアクセスが非常に遅くプログラムを実行させるとパフォーマンスが低下する等の課題が存在した。
【０００７】
本発明の目的は、安価なＮＡＮＤ型フラッシュメモリからのブートを可能にし、情報処理装置のコストの低減を図ることである。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、制御プログラムをデータ格納領域に格納し、ローダープログラムを前記データ格納領域よりビットエラーの少ないファーストブロックに格納しているＮＡＮＤ型フラッシュメモリと、揮発性メモリと、前記ローダープログラムを実行することにより前記データ格納領域に格納されている前記制御プログラムを前記揮発性メモリに書き込む実行手段とを有することを特徴とする。
【発明の効果】
【０００９】
ローダープログラムは、ＮＡＮＤ型フラッシュメモリにおいてデータ格納領域よりビットエラーの少ないファーストブロックに格納する。制御プログラムは、ＮＡＮＤ型フラッシュメモリのファーストブロック以外のデータ格納領域に格納する。これにより、安価なＮＡＮＤ型フラッシュメモリからの信頼性のあるブートを可能にし、情報処理装置のコストを下げることができる。
【発明を実施するための最良の形態】
【００１０】
以下添付図面を参照して、本発明に係る好適な実施形態を、印刷装置を例に詳細に説明する。
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態の特徴を最もよく表わす図面であり、同図において、１００は印刷装置（情報処理装置）、２００はホストコンピュータである。ホストコンピュータ２００は、印刷装置１００に接続され、印刷装置１００を制御する。
【００１２】
以下、印刷装置１００の構成を説明する。１０１は印刷装置１００全体の制御を司るＣＰＵ、１０２は電気的消去及び書き込み可能なＮＡＮＤ型フラッシュメモリ（不揮発性メモリ）、１０３はダイナミックランダムアクセスメモリ(ＤＲＡＭ)、１０４はＣＰＵ１０１と各機能ブロックのインターフェースを行なうＣＰＵインターフェース部、１０５はＮＡＮＤ型フラッシュメモリ１０２のアクセス制御を行なうＮＡＮＤフラッシュ制御部、１０６はＤＲＡＭ１０３のアクセス制御を行なうＤＲＡＭ制御部、１０７はホストコンピュータ２００と通信を行なうホストインターフェース部、１０８はビットマップ画像を生成する画像展開部、１０９はＤＲＡＭ１０３上に展開された画像データをシリアルのビデオ信号に変換するビデオインターフェース部、１２０はプリンタエンジンである。
【００１３】
不揮発性メモリ１０２は、例えばＮＡＮＤ型フラッシュメモリであり、電源を切っても記憶した内容が保存されるメモリである。揮発性メモリ１０３は、例えばＤＲＡＭであり、電源が入っているときだけ記憶した内容が保存されるメモリである。
【００１４】
図２にはＮＡＮＤ型フラッシュメモリ１０２に格納されているプログラムコードを示す。ＮＡＮＤ型フラッシュメモリ１０２は、読み出しデータエラーが発生しない高信頼性の領域１と、読み出しデータエラーが発生する可能性がある低信頼性の領域２と、同じく読み出しデータエラーが発生する可能性がある低信頼性の領域３とに分割し、各々の領域には以下のプログラムコードを格納する。
【００１５】
領域１：
・ＣＰＵ及びＤＲＡＭのハードウェア初期化プログラム
・領域２／領域３に格納されているプログラムコードをＤＲＡＭ上に書き込むためのローダープログラム
・ＥＣＣによるエラー訂正プログラム
【００１６】
領域２：
・領域３（印刷装置制御プログラム）書き換えプログラム
【００１７】
領域３：
・印刷装置制御プログラム
【００１８】
上記ローダープログラムは、領域２及び３に格納されているプログラムコードをＤＲＡＭ１０３上にコピーする。エラー訂正プログラムは、ＥＣＣにより、データ読み込み時のデータエラーを検出し、データエラーを訂正する。上記のローダープログラム及びエラー訂正プログラムは組であり、ローダープログラムは、エラー訂正プログラムを含む。
【００１９】
印刷装置制御プログラム書き換えプログラムは、領域３の印刷装置制御プログラムを書き換えるためのプログラムである。ＣＰＵは、書き換えプログラムを実行することにより、領域１及び領域２は書き換えず、印刷装置制御プログラムが格納されている領域３のみ書き換える。なお、書き換えプログラムは、領域２ではなく、領域１に格納してもよい。
【００２０】
ＮＡＮＤ型フラッシュメモリ１０２において、領域１及び領域２は書き換え不可の領域であり、領域３は書き換え可能な領域である。なお、ＮＡＮＤ型フラッシュメモリ１０２は、メモリセルアレイと５２８バイトのデータレジスタから構成されており、データのリードライトはメモリセルアレイと直接行なうことはなく、必ずデータレジスタを介して行なわれる。例えば０番地のデータをリードする場合、０番地のデータを含む１ページ分(５２８バイト)のデータがデータレジスタに転送された後、読み出される。従って、データレジスタの更新が発生するアクセスはこの転送のための時間が必要でありアクセス時間がかかってしまうという特徴がある。
【００２１】
そこで、領域１のプログラムは分岐命令を少なくする等、できるだけデータレジスタの更新が発生しないようにプログラミングされている。
【００２２】
なお、上記プログラムコードは前もってＲＯＭプログラマー(図示せず)等により格納されるものとする。
【００２３】
また、ＣＰＵインターフェース部１０４は、ＮＡＮＤ型フラッシュメモリ１０２の各領域とＤＲＡＭ１０３の領域を図４に示すようにＣＰＵ１０１にマッピングする。そしてそのデフォルト状態でＣＰＵのブートアドレスを上記領域１に割り当てるように動作する。
【００２４】
そして上記図１の構成におけるＣＰＵ１０１からのアクセス動作を説明する。印刷装置１００の電源が投入され、リセットが解除されたら、ＣＰＵ１０１は最初のプログラムフェッチを行なうためにＣＰＵインターフェース部１０４に対してブートアクセスを発生する。ＣＰＵインターフェース部１０４はアドレスをデコードし、ブートアドレスと判断するとＮＡＮＤフラッシュ制御部１０５に対してリードアクセスを発行する。ＮＡＮＤフラッシュ制御部１０５はこれを受信しＮＡＮＤ型フラッシュメモリ１０２に対してリードアクセスする。そしてリードデータを受信しＣＰＵ１０１にデータを送信する。また、ＣＰＵ１０１がＤＲＡＭ１０３にアクセスする場合はＣＰＵインターフェース部１０４がＤＲＡＭ制御部１０６にアクセスし、ＤＲＡＭ制御部１０６では、ホストインターフェース１０７等のＤＭＡアクセスとの調停を行い、ＤＲＡＭ１０３にアクセスする。
【００２５】
次に上記構成における動作を図３のフローチャートにて説明する。
印刷装置の電源が投入され、リセットが解除されたら、ＣＰＵ１０１はブートアクセスにより、ＮＡＮＤ型フラッシュメモリ１０２上の領域１に格納されているＣＰＵ及びＤＲＡＭの初期化プログラムを実行し、ＣＰＵ及びＤＲＡＭの初期化を行なう（Ｓ３０１）。
【００２６】
次に領域１に格納されているローダープログラムを実行し、ＮＡＮＤ型フラッシュメモリ１０２上の領域２と領域３に格納されているプログラムコードをＤＲＡＭ１０３にコピーする。もし領域２／領域３のコードの読み出し時にデータエラーを検出した場合は、エラー訂正プログラムによりエラー訂正を行なう（Ｓ３０２）。
【００２７】
次にＤＲＡＭ１０３上の「印刷装置制御プログラム」が書き込まれた領域にジャンプし、印刷装置の制御を開始する（Ｓ３０３）。
【００２８】
そして印刷装置の制御中にＮＡＮＤ型フラッシュメモリ１０２の領域３「印刷装置制御プログラム」の書き換え要求があった場合は（Ｓ３０４）、ＤＲＡＭ１０３上の「印刷装置制御プログラム書き換えプログラム」が書き込まれた領域にジャンプし、ＮＡＮＤ型フラッシュメモリ１０２の領域３の書き換えを実行する（Ｓ３０５）。
【００２９】
（第２の実施形態）
ＮＡＮＤ型フラッシュメモリは、内部データレジスタの更新を伴うアクセスが発生した場合に、非常にアクセススピードが遅くなってしまうという特徴があり、上記第１の実施形態では、領域２及び領域３の内容をＤＲＡＭにコピーするローダープログラムはＮＡＮＤ型フラッシュメモリ上で直接実行される。するとＣＰＵのフェッチによるアクセスと領域２及び領域３を読み出すアクセスが交互に発生し、それら各々は別の領域であるため内部データレジスタが頻繁に更新されることでアクセススピードが遅くなり、ローダープログラムの実行が遅くなってしまう。第２の実施形態はこの課題を解決する方法である。
【００３０】
図５に本発明の第２の実施形態における動作を表すフローチャートを示す。第１の実施形態と同じ動作をする箇所は同じ符号で示しており、第１の実施形態（図３）のステップＳ３０２が第２の実施形態ではステップＳ５０１及びＳ５０２に代わる。
【００３１】
ＣＰＵ及びＤＲＡＭの初期化後、ＣＰＵ１０１はＮＡＮＤ型フラッシュメモリ１０２上の「ローダープログラム」をＤＲＡＭ１０３に書き込む（Ｓ５０１）。
【００３２】
「ローダープログラム」が書き込まれたＤＲＡＭ１０３上の領域にジャンプし、ローダープログラムを実行し、領域２と領域３に格納されているプログラムをＤＲＡＭ１０３上に書き込む。なおデータを読み出し時にエラーが発生した場合は、エラー訂正を行なう（Ｓ５０２）。
【００３３】
以降のステップは第１の実施形態と同じである。
【００３４】
このような動作にすると領域２及び領域３の読み出し時においてＣＰＵ１０１がＮＡＮＤ型フラッシュメモリ１０２にフェッチサイクルを発生させないため内部データレジスタの更新が５２８バイトごとにしか発生しないため、ローダープログラムの実行が高速になる。
【００３５】
（第３の実施形態）
図６に、本発明の第３の実施形態のブロック図を示す。
第１の実施形態と同じ機能モジュールは同じ番号で示している。６０１は命令コード格納用の命令バッファであり、ＮＡＮＤ型フラッシュメモリ１０２の１ページ(５１２バイト)分の容量をもつメモリである。６０２は第１の実施形態のＮＡＮＤフラッシュ制御部にこの命令バッファ６０１の制御機能が追加されたものである。
【００３６】
次にＮＡＮＤフラッシュ制御部６０２の動作を図７のフローチャートを用いて説明する。
ＮＡＮＤフラッシュ制御部６０２はＣＰＵ１０１から命令フェッチアクセスを受信する（Ｓ７０１）と要求された命令コードが命令バッファ６０１に存在するかどうかを判別する（Ｓ７０２）。
【００３７】
存在するときは、命令バッファ６０１から要求された命令コードを読み出し、ＣＰＵ１００に対して返信する（Ｓ７０４）。
【００３８】
存在しないときは、ＮＡＮＤ型フラッシュメモリ１０２から当該命令コードを含む１ページ分のデータを読み出し、命令バッファ６０１に格納する（Ｓ７０３）。そして命令バッファ６０１から要求された命令コードを読み出し、ＣＰＵ１０１に対して返信する（Ｓ７０４）。
【００３９】
このように動作することで、ＣＰＵの命令フェッチ動作が高速になる。また、１ページ(２５６バイト)以内であれば、分岐命令を使用しても高速動作が維持できる。
【００４０】
（第４の実施形態）
図８に、本発明の第４の実施形態のブロック図を示す。
【００４１】
第３の実施形態と同じ機能モジュールは同じ番号で示している。８０１はデータ格納用のデータバッファであり、ＮＡＮＤ型フラッシュメモリ１０２の１ページ(５２８バイト)分の容量をもつメモリである。８０２は第３の実施形態のＮＡＮＤフラッシュ制御部６０２にＮＡＮＤ型フラッシュメモリ１０２から１ページ(５２８バイト)分のデータをＤＭＡでデータバッファ８０１に転送する制御機能が追加されたものである。
【００４２】
ＮＡＮＤ型フラッシュメモリ１０２のデータ格納領域(領域２及び領域３)はデータであるためＣＰＵ１０１に直接マッピングする必要はない。また直接マッピングするとＮＡＮＤ型フラッシュメモリ１０２の容量がＣＰＵ１０１のアドレス空間に限定されてしまう。
【００４３】
そこでＣＰＵ１０１にマッピングするのはデータバッファ８０１の容量分とし、ＮＡＮＤ型フラッシュメモリ１０２へのデータアクセスは必ずデータバッファ８０１を介して行なうことで間接的にマッピングする。ＣＰＵ１０１が直接アクセスしないＮＡＮＤ型フラッシュメモリ１０２の領域はＣＰＵにマッピングされない。
【００４４】
次に本実施形態の動作を図９のフローチャートを用いて説明する。
ＣＰＵ１０１はＮＡＮＤフラッシュ制御部８０２内のアドレスカウントレジスタ(図示せず)に開始アドレスを設定する（Ｓ９０１，Ｓ９０２）。
【００４５】
ＣＰＵ１０１はＮＡＮＤフラッシュ制御部８０２に対してＤＭＡページリードを起動する（Ｓ９０３，Ｓ９０４）。
【００４６】
ＮＡＮＤフラッシュ制御部８０２はＮＡＮＤ型フラッシュメモリ１０２より５２８バイトリードし、データバッファ８０１に格納（転送）する（Ｓ９０５）。
【００４７】
また、その間、ＣＰＵ１０１はＤＭＡページリードの終了を待つ（Ｓ９０６）。
【００４８】
ＮＡＮＤフラッシュ制御部８０２はＤＭＡページリードが終了したら転送終了フラグをセットしＣＰＵ１０１に終了を知らせる（Ｓ９０７）。
【００４９】
ＣＰＵ１０１はＤＭＡページリードの終了したら、リードしたデータにデータエラーがないかをチェックし（Ｓ９０８）、データエラーがあった場合はデータバッファ８０１内でエラーを訂正する（Ｓ９０９）。
【００５０】
ＣＰＵ１０１はデータバッファ８０１内のデータ本体５１２バイトを順次読み出しＤＲＡＭ１０３に転送する（Ｓ９１０）。
【００５１】
このように動作することで、マッピングの問題が解決できるばかりでなく、データバッファ８０１からの読み出しになり、データアクセス動作の高速化が可能となる。
【００５２】
（第５の実施形態）
図１０に、本発明の第５の実施形態のブロック図を示す。
【００５３】
第４の実施形態と同じ機能モジュールは同じ番号で示している。１００１はデータ及び命令コード格納用のデータ命令兼用バッファであり、第３の実施形態における命令バッファ６０１と第４の実施形態におけるデータバッファ８０１の機能を切り替え可能にしたバッファである。
【００５４】
データ命令兼用バッファ１００１の初期状態は命令バッファとして使用し、データ命令兼用バッファ１００１がデータバッファに切り替えられた際は、データバッファとして使用する。
【００５５】
プログラムをＤＲＡＭ１０３にコピーし、そこにジャンプしてＤＲＡＭ１０３上のプログラムを実行中は、命令用のバッファは必要なくなる。そこで命令バッファをデータバッファに切り替えて使用することでコストの上昇を抑えることが可能となる。
【００５６】
（第６の実施形態）
図１１に、本発明の第６の実施形態のブロック図を示す。
【００５７】
第４及び第５の実施形態と同じ機能モジュールは同じ番号で示している。本実施形態はデータ命令兼用バッファ１００１とデータバッファ８０１を持つ。ＮＡＮＤ型フラッシュメモリ１０２上でプログラムを実行しているときはデータ命令兼用バッファ１００１を命令バッファとして使用し、ＤＲＡＭ１０３上でプログラムを実行しているときはデータ命令兼用バッファ１００１をデータバッファとして使用する。要するにＤＲＡＭ１０３上でプログラムを実行しているときはデータバッファを２個使用することとなる。ＮＡＮＤ型フラッシュメモリ１０２は内部データレジスタの更新を伴うアクセスが発生した場合に非常にアクセススピードが遅くなってしまうという特徴があるため、ＮＡＮＤ型フラッシュメモリ１０２からデータ転送を待っている間に別のバッファからＤＲＡＭ１０３へのデータ転送が可能となる。
【００５８】
図１２のフローチャートに示すように、ＮＡＮＤフラッシュ制御部８０２がＤＭＡページリードによってＮＡＮＤ型フラッシュメモリ１０２からデータ命令兼用バッファ１００１にデータ転送しているとき（Ｓ１２１１）はＣＰＵ１０１がデータバッファ８０１からＤＲＡＭ１０３へのデータ転送を行い（Ｓ１２０１）、ＮＡＮＤフラッシュ制御部８０２がＤＭＡページリードによってＮＡＮＤ型フラッシュメモリ１０２からデータバッファ８０１にデータ転送しているとき（Ｓ１２１２）はＣＰＵ１０１がデータ命令兼用バッファ１００１からＤＲＡＭ１０３へのデータ転送を行う（Ｓ１２０２）という動作をする。
【００５９】
このように動作することでコスト上昇を抑えた高速データ転送が可能となる。
【００６０】
以上のように、第１〜第６の実施形態において、ＮＡＮＤ型フラッシュメモリは、書き換え回数を制限することにより領域１(ファーストブロック)のみデータエラーが発生しないことが保証されている。
【００６１】
ハードウェア初期化プログラム及びローダープログラムは、書き換え不可又は書き換え回数が少ないので、ＮＡＮＤ型フラッシュメモリ１０２において領域２及び領域３より信頼性が高い領域１に格納する。印刷装置制御プログラムは、書き換え可能又は書き換え回数が多いので、ＮＡＮＤ型フラッシュメモリ１０２の信頼性の低い領域３に格納する。これにより、ＮＯＲ型フラッシュメモリに比べ、安価なＮＡＮＤ型フラッシュメモリ１０２からの信頼性のあるブートを可能にし、印刷装置のコストを下げることができる。
【００６２】
マイクロプロセッサ（ＣＰＵ）のプログラムコードをＮＡＮＤ型フラッシュメモリに格納し、格納されたコードを直接フェッチすることが可能となり、印刷装置のコストを下げることができる。
【００６３】
本実施形態は、印刷装置１００等のコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６４】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施形態を表わすブロック図である。
【図２】本発明の第１の実施形態のＮＡＮＤ型フラッシュメモリの格納内容を示す図である。
【図３】本発明の第１の実施形態の動作を示すフローチャートである。
【図４】本発明の第１の実施形態のＣＰＵのマッピング内容を示す図である。
【図５】本発明の第２の実施形態の動作を示すフローチャートである。
【図６】本発明の第３の実施形態を表わすブロック図である。
【図７】本発明の第３の実施形態の動作を示すフローチャートである。
【図８】本発明の第４の実施形態を表わすブロック図である。
【図９】本発明の第４の実施形態の動作を示すフローチャートである。
【図１０】本発明の第５の実施形態を表わすブロック図である。
【図１１】本発明の第６の実施形態を表わすブロック図である。
【図１２】本発明の第６の実施形態の動作を示すフローチャートである。
【符号の説明】
【００６６】
１０１  ＣＰＵ
１０２  ＮＡＮＤ型フラッシュメモリ
１０３  ＤＲＡＭ
１０４  ＣＰＵインターフェース部
１０５，６０２，８０２  ＮＡＮＤフラッシュ制御部
１０６  ＤＲＡＭ制御部
６０１  命令バッファ
８０１  データバッファ
１００１  データ命令兼用バッファ
【図１】
0004745613.tif 000002
【図２】
0004745613.tif 000003
【図３】
0004745613.tif 000004
【図４】
0004745613.tif 000005
【図５】
0004745613.tif 000006
【図６】
0004745613.tif 000007
【図７】
0004745613.tif 000008
【図８】
0004745613.tif 000009
【図９】
0004745613.tif 000010
【図１０】
0004745613.tif 000011
【図１１】
0004745613.tif 000012
【図１２】
0004745613.tif 000013