(57)【要約】【課題】  従来のシステムにおいては、複数のパラレルフラッシュＩＣをバス接続してアクセスの高速化を行っているため、複数のパラレルフラッシュＩＣをバス接続してアクセスの高速化を行っているため、バス配線が複雑になり、基板の小型化が出来ないとともに、ノイズの問題が大きかった。【解決手段】  複数のシリアルフラッシュメモリと、前記シリアルフラッシュメモリにアクセス可能な複数のシリアルメモリインタフェースを有し、前記シリアルフラッシュメモリのセクタ消去を行う場合、セクタの消去情報およびセクタデータのバックアップを異なるシリアルフラッシュメモリのセクタに書き込む。【選択図】  図３
2008065610.tif 000002
【特許請求の範囲】
【請求項１】
複数のシリアルフラッシュメモリと、前記シリアルフラッシュメモリにアクセス可能な複数のシリアルメモリインタフェースを有し、
前記シリアルフラッシュメモリのセクタ消去を行う場合、セクタの消去情報およびセクタデータのバックアップを異なるシリアルフラッシュメモリのセクタに書き込むことを特徴とするメモリアクセス方法。
【請求項２】
請求項１記載の情報処理装置において
電源投入時、複数のシリアルフラッシュメモリ内の、バックアップ情報を読み込み、バックアップ情報内に書込み中または消去中であることを示すデータがある場合、指定されたシリアルフラッシュメモリ内のバックアップデータを、指定のセクタ領域に書き込むことを特徴とするメモリアクセス方法。
【請求項３】
請求項１記載の通信装置において
電源投入後、１つのシリアルフラッシュメモリ内の起動情報を基に、複数のシリアルフラッシュメモリ内の起動メモリを、内部メモリの指定の領域に転送することを特徴とするメモリアクセス方法。
【請求項４】
請求項３記載の通信装置において
前記起動メモリを内部メモリに転送後、起動メモリのプログラム情報を基に、メインプログラムを複数のシリアルフラッシュメモリより読込、システムの初期化および動作を行うことを特徴とするメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公衆回線やＬＡＮ等のネットワークに接続可能であり、回線を介して画像データを送受信可能かつ受信した画像データをフラッシュメモリに高速でバックアップ可能な小型の情報端末のメモリアクセス方法に関する。
【背景技術】
【０００２】
従来は、特開平１０−１８７３５９のように、フラッシュメモリ毎に転送用のバスを有し、コントローラで複数のフラッシュメモリへのアクセスを可能にすることで、書込み動作時のアクセス速度の高速化を行うことが知られている。
【０００３】
また、特開２００３−２５６２７３においては、ＦＩＦＯ／ＤＭＡＣを用いて、小規模の回路でライト／イレース処理が高速に可能なメモリアクセス方法が知られている。
【０００４】
また、特開２００３−１４１０９６のようにフラッシュメモリからのプログラムを読み込むことで、ＣＰＵの端子数を大幅に削減可能となることが知られている。
【特許文献１】特開平１０−１８７３５９号公報
【特許文献２】特開２００３−２５６２７３号公報
【特許文献３】特開２００３−１４１０９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法においては特開平１０−１８７３５９、特開２００３−２５６２７３ともライト／イレースの高速化を可能にしているが、複数のフラッシュメモリを用いた場合に、同時に複数のフラッシュメモリをライト／イレースしている時に、システムのロックや電源ダウンが発生した場合、データが消えてしまうという問題がある。
【０００６】
また、特開２００３−１４１０９６では、システムの小型化は可能になるが、１つのシリアルフラッシュを用いたデータ転送を行う場合、システムが大きくなるほどメインＲＡＭへのデータ転送に時間がかかるようになり、電源投入時にユーザーが機器を使用できるまで長時間待たせてしまい使い勝手の悪いシステムとなってしまう。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置のメモリアクセス方法は、
複数のシリアルフラッシュメモリと、前記シリアルフラッシュメモリにアクセス可能な複数のシリアルメモリインタフェースを有し、
前記シリアルフラッシュメモリのセクタ消去を行う場合、セクタの消去情報およびセクタデータのバックアップを異なるのシリアルフラッシュメモリのセクタに書き込む。
【０００８】
電源投入時、複数のシリアルフラッシュメモリ内の、バックアップ情報を読み込み、バックアップ情報内に書込み中または消去中であることを示すデータがある場合、指定されたシリアルフラッシュメモリ内のバックアップデータを、指定のセクタ領域に書き込む。
【０００９】
電源投入後、１つのシリアルフラッシュメモリ内の起動情報を基に、複数のシリアルフラッシュメモリ内の起動メモリを、内部メモリの指定の領域に転送する。
【００１０】
前記起動メモリを内部メモリに転送後、起動メモリのプログラム情報を基に、メインプログラムを複数のシリアルフラッシュメモリより読込、システムの初期化および動作を行う。
【発明の効果】
【００１１】
以上説明したように、本発明の情報端末におけるメモリアクセス方法では、複数のシリアルフラッシュメモリを用いて、複数のセクタに対し、読み出し,消去,書込み処理を並列に行うことで、高速な書込み処理を行うことが出来るとともに、書込みや消去中のシステムロックや電源ダウンに対しても、データが確実にバックアップされる信頼性の高いシステムを提供できる。
【００１２】
また、電源投入時においても、並列にプログラムを読み込むことを可能にすることで、起動時間が短くなりユーザの操作性が向上する。
【発明を実施するための最良の形態】
【００１３】
次に、本発明の実施の形態について説明する。
【００１４】
図１は、本発明の形態を説明するシステム構成である。
【００１５】
以下にシリアルフラッシュを3個用いて構成した場合の、システムについて説明する。
【００１６】
１００は本発明のメインＡＳＩＣ（Ａｐｐｒｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、ＣＰＵ,モデム,画像処理等の機能を1chipに内蔵したICである。詳細は図2において説明を行う。
【００１７】
１０１〜１０３はシリアルフラッシュメモリ（以下ＳＦＭ）である。本フラッシュメモリ内部は、起動時のプログラムおよび書込み／消去時に使用するリザーブセクタ、ＦＡＸや留守番電話、画像データを記憶するバックアップエリアより構成される。
【００１８】
ＳＦＭ１０１〜１０３はそれぞれがＡＳＩＣ１０１とＴＸ，ＲＸ，ＣＬＫ，ＣＳが接続され、任意のタイミングで制御が可能である。
【００１９】
ＭＡＩＮＣＬＫ１０２は、ＡＳＩＣ１００内部で使用する高速の基準ＣＬＫを生成するクロック源である。
【００２０】
ＲＴＣＣＬＫ１０５は通信記録等の時間情報を生成するための基準クロックを生成するクロック源である。
【００２１】
表示部１０６はＳＴＮやＴＦＴ等のＬＣＤ表示部、バックライト部、オンフックキーや設定キー等のキー入力部より構成され、ＵＩ（ユーザーインタフェース）を実現する。
【００２２】
センサ１０７は、原稿／記録紙や記録部１１０で用いるインクの有無の検出、モータ駆動時のエンコーダ出力の検出を行う。
【００２３】
回線制御部１０８は、公衆回線１０１を収容するためのインタフェースであり、アナログ回線の場合、局交換機の電話回線（以後、加入者線と称す）に接続され、ダイオードによる全波整流回路により構成され、回線電圧の極性を一致させるための極性一致回路、回路局交換機の加入者線に接続され、局交換機からの呼出信号を検出するリンガー検出回路、ハンドセット１１６または表示部１０６のオフフックキーの押下によるのオフフック操作が行われると回線ループを形成するとともに、局に対してダイヤルパルスを送出するフックスイッチ回路、２線−４線変換を行うためのトランス回路で構成されている。
【００２４】
読取部１０９はＣＣＤあるいは密着型センサアレイ等の周知の原稿読取手段であり、ＡＳＩＣ１００からのクロック、タイミング信号に同期して、読み取ったデータのアナログ出力を行う。
【００２５】
記録部１１０は感熱型、熱転写型プリンタ、あるいはレーザービームプリンタ、インクジェットプリンタ等の周知の印字手段を備えた記録部であり、ＡＩＣ１００内部の画像処理部で処理された画像データを印字データとして印字を行う。
【００２６】
モータドライバ１１１は、ＡＳＩＣ１００からの制御でＤＣモータ１１２やステッピングモータ（以下ＳＰモータ）１１３を駆動し、読取処理や記録処理を行う。
【００２７】
無線部１１４は制御データおよび音声信号を所定のフレームにくみ上げ変調し無線送信可能な形式に変換してアンテナに送ると共に、アンテナより無線受信した情報より復調されたデータを取り出し、制御データおよび音声データで構成される無線フレームを分解し、制御データはＡＳＩＣ１００に出力し、アナログ信号はアナログスイッチ回路１１５に出力する。
【００２８】
１１５はアナログスイッチ回路でありＡＳＩＣ１００からの制御により回線制御部１０８、ハンドセット１１６のアナログ入出力信号を、モデム部や無線部、スピーカ１１７への入出力の切り替えを行う。また、内部にアッテネータを有しアナログ信号のレベルを変換することが可能である。
【００２９】
１１６はハンドセットであり音声の入出力を行う。１１７はスピーカであり着信音や記憶した音声データの出力およびＦＡＸ通信時のモニタを行う。
【００３０】
図２は図１に示すＡＳＩＣ１００の内部構成を示した図面である。
【００３１】
図１および図２を用いてハード構成の説明を行う。
【００３２】
ＣＰＵ２００は、データバス２１５を介して各部との信号の入力を行い、この入力した信号に応じてデータバス２１５に接続された各構成要素を制御する。すなわち、ＣＰＵ２００はＢｏｏｔＲＯＭ２１６により起動し、周辺ブロックを初期化した後、ＳＦＭ１０１〜１０３に格納された処理プログラムを、メモリ制御部２１３を介してＳＤＲＡＭ２１４の所定の領域に転送する。
【００３３】
処理プログラム転送後は、ＣＰＵ２００はＳＤＲＡＭ２１４のプログラムを基に各種制御を行う。
【００３４】
割り込み制御部２０１はモデム２０５やシリアルメモリｉ／ｆ２０７等の内部割込みや無線部１１４等の外部割込みを検出し、優先順位に従って、ＣＰＵに対して割り込みをかける。
【００３５】
ＣＬＫ制御部２０２はＭＡＩＮＣＬＫ１０４の基準クロックを基に、ＰＬＬにより周波数を逓倍し、ＣＰＵで使用するＣｏｒｅＣＬＫ，メモリ制御部２１３で使用するＢｕｓＣＬＫ、周辺部で使用する周辺ＣＬＫを生成する。
【００３６】
ＡＤＣ（アナログ・デジタル・コンバータ）２０３は、記録部１１０やモータドライバ１１１からのアナログ情報を基に、アナログ信号をデジタル化し、温度制御を可能にする。
【００３７】
外部Ｉ／Ｏ２０６は、回線制御部１０８の直流閉結、パルス制御や着信信号検出処理の入出力を行う。また、表示部１０６、モータドライバ１１１、無線部１１４のリセット制御を行う。
【００３８】
表示制御部２０６は、ＬＣＤコントローラや表示部１０６のキースキャンデータの送受信を行うコントローラより構成される。ＬＣＤコントローラの画像メモリは、ＳＤＲＡＭ２１４により構成される。
【００３９】
シリアルメモリｉ／ｆ２０７はＳＦＭ１０１〜１０３にアクセスするための回路である。詳細は図３にて説明する。
【００４０】
ＡＲＢ２０８はアービタであり、画像処理系の高速バス２１６と通常データ処理用バス２１５間のバスデータの制御を行う。
【００４１】
読取ｉ／ｆ２０９は、ＡＤコンバータとタイミング回路より構成され、読取部１０９へのタイミング信号およびＣＬＫを出力し、ＣＬＫに同期して出力されるアナログ信号を、ＡＤコンバータでデジタルに変換し、読取のタイミング信号に同期させて、画像データを画像処理部２１０に転送する。
【００４２】
画像処理部２１０はシェーディング補正、γ補正や拡大・縮小等の画像処理を行い、メモリ制御部２１３を介して、ＳＤＲＡＭ２１４のプリントバッファ部にデータを転送する。
【００４３】
モータ制御部２１１は、モータドライバ１１１の制御を行い、読取処理時は、ＳＰモータ１１３の動作と読取ｉ／ｆ２０９の読取動作のタイミングをとり読取処理を行う。また、記録時は記録部ｉ／ｆ２１２へのデータ転送と、記録部ＣＲモータ１１２の同期処理を行い、印字処理を行う。
【００４４】
メモリ制御部２１３は、通常バス２１５と記録／画像処理用バス２１６を貸しいての、ＳＤＲＡＭ２１４へのメモリアクセスの制御を行う。
【００４５】
ＳＤＲＡＭ２１４は動作用のプログラム、記録／画像データのバッファ、ファクシミリおよび留守番電話のバッファ、ＬＣＤコントローラの画像メモリ、その他ワーク用のメモリとして使用される。
【００４６】
ＢｏｏｔＲＯＭ２１５は小容量のROMである。電源投入後、SFM１０１〜１０３のプログラムデータをSDRAM２１４に展開するまでのプログラムが内蔵されている。一旦、システムが起動後は、本ＢｏｏｔＲＯＭを使用せず、ＳＤＲＡＭ２１４を用いてプログラムが処理される。
【００４７】
CPUバス２１５は、CPUが周辺ブロックの制御およびデータの入出力を行うためのバスである。
【００４８】
画像データバス２１６は、画像処理部２１０が画像データを高速で転送するためのバスである。
【００４９】
ＢｏｏｔＲＯＭ２１７は、電源投入時ＣＰＵ２００が外部のシリアルフラッシュメモリ１０１〜１０３より起動メモリデータをＳＤＲＡＭ２１４に転送するためのプログラムを搭載した小容量のメモリである。
【００５０】
図３は本システムにおける、シリアルメモリｉ／ｆ２０７の詳細のブロック図である。
【００５１】
図1、図２、図３を用いて本ブロックの制御を説明する。
【００５２】
シリアル制御ブロック３００は以下のブロックより構成される。
【００５３】
シリアル制御部３０１は、ＣＰＵ２００の制御によりＳＦＭ１０１へのＣＬＫの転送速度、送受信データの切換制御、ＦＩＦＯのステータスの表示処理、チップセレクト信号の出力制御処理を行う。
【００５４】
シリアル制御部３０１は送受信のデータレジスタを有し、送信データは送信レジスタに書き込まれると、書込みのタイミングでＦＩＦＯ回路に出力される。受信したデータは、ＦＩＦＯを介して受信レジスタに出力され、読み出しタイミングで、ＦＩＦＯにデータがあると、受信レジスタのデータが送られる。
【００５５】
ＦＩＦＯ回路３０２は送受信共用であり、シリアル制御部３０１の送受信の設定を切換えることで、データ送信時は出力用のＦＩＦＯ、データ受信時は入力用のＦＩＦＯに設定される。
【００５６】
Ｐ／Ｓ３０３はデータ送信時に使用され、ＦＩＦＯ回路からのデータを受けて、パラレルデータをシリアルデータに変換して、ＣＬＫ制御部３０５より出力されるＣＬＫに同期して、シリアルフラッシュ１０１に出力される。
【００５７】
Ｓ／Ｐ３０４はデータ受信時に使用され、ＣＬＫに同期してシリアルフラッシュ１０１より出力されるデータを、シリアル−パラレル変換を行い、ＦＩＦＯ回路３０２に出力する。
【００５８】
ＣＬＫ制御回路３０５は、シリアル制御部３０１の制御により、入力される、周辺ＣＬＫ３０８を分周して、シリアルフラッシュ１０１へのＣＬＫを生成する。
【００５９】
上記のようにシリアルメモリｉ／ｆ２０７は同様のシリアル制御ブロック（３１０，３２０）を3つ搭載し、シリアル制御部（３０１，３１１，３２１）をポーリング制御しながらデータの転送処理を行う。
【００６０】
図１２は１つのシリアルフラッシュを用いて、1セクタを書き換える場合の処理を示す。
【００６１】
図７〜９は本実施例の複数のセクタを書き換える場合の処理を示すフローチャートである。
【００６２】
以下、図１〜４、図７〜９を用いて本実施の形態の動作を説明する。
【００６３】
ＣＰＵ２００は、ＳＦＭ１０１の複数のセクタデータを変更する必要があることを検出した場合、変更前のデータのバックアップを行うため、ＳＦＭ１０１の変更するセクタの内容を読み込む。
【００６４】
この時シリアル制御部３０１を送信にセットし、ＣＳを下げて送信レジスタに読取コマンドおよびアドレス情報を書き込む。該処理後、ＦＩＦＯ回路３０２のステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３０１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０１からのデータを受信する（Ｓ１０１）。
【００６５】
該処理が終了すると、ＣＰＵ２００はフラグセクタ１を消去するため、シリアル制御部３１１を送信にセットし、ＣＳを下げて送信レジスタに消去コマンドと消去アドレスを書き込む。
【００６６】
該処理後、シリアル制御部３１１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３１１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０２からのフラグセクタの消去完了の検出を行う（Ｓ１０２）。
【００６７】
該処理後、ＣＰＵ２００はバックアップセクタ１を消去するためシリアル制御部３２１を送信にセットし、ＣＳ信号を下げて送信レジスタにセクタ消去コマンドとアドレス情報を書き込む。
【００６８】
該処理後、シリアル制御部３２１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３２１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０３からのバックアップセクタの消去完了の検出を行う（Ｓ１０３）。
【００６９】
ＣＰＵ２００は、シリアル制御部３０１のＦＩＦＯステータスを監視しながらＳＦＭ１０１のデータを読み出し、読み出したデータを、メモリ制御部２１３を介してＳＤＲＡＭ２１４の所定の領域に書き込む。上記処理を繰り返し1セクタ分のデータを読み出したことを検出すると（Ｓ１０４）、ＣＰＵ２００はＳＤＲＡＭ２１４にバックアップデータ１読込完了したことを示すフラグをセットし（Ｓ１１５）、フラグのセットが完了すると、フラグセクタ1の消去が完了したかの検出を行う。（Ｓ１０５）
バックアップデータ１の読込が完了していない場合（Ｓ１０４）、シリアル制御部３１１を送信にセットし、送信レジスタにＳＦＭ１０２のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３１１を受信に設定し、ＳＦＭ１０２のフラグセクタ１の消去が完了したかの検出を行う（Ｓ１０５）。ＣＰＵ２００は、フラグセクタ１の消去が完了したことを受信レジスタのデータをもとに検出すると、ＳＤＲＡＭ２１４にフラグセクタ１消去完了したことをしめすフラグをセットし（Ｓ１１４）、フラグのセットが完了すると、バックアップセクタ１の消去が完了したかの検出を行う（Ｓ１０６）。
【００７０】
フラグセクタ１の消去が完了していない場合（Ｓ１０５）、シリアル制御部３２１を送信にセットし、送信レジスタにＳＦＭ１０３のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３２１を受信に設定し、ＳＦＭ１０３のバックアップセクタ１の消去が完了したかの検出を行う（Ｓ１０６）。ＣＰＵ２００は、バックアップセクタ１の消去が完了したことを受信レジスタのデータをもとに検出すると、ＳＤＲＡＭ２１４にバックアップセクタ１消去完了したことをしめすフラグをセットし（Ｓ１０７）、フラグのセットが完了すると、ＳＤＲＡＭ２１４のフラグを読み込み、全てのフラグがセットされたか検出を行う（Ｓ１０８）。ＣＰＵ２００はセットされていないフラグがあることを検出すると、再度データの読込、消去を行う処理を継続する（Ｓ１０４）。
【００７１】
ＣＰＵ２００はＳＤＲＡＭ２１４の、フラグデータを読み、全てのフラグがセットされていることを検出すると（Ｓ１０８）、ＳＤＲＡＭ２１４に退避した、バックアップデータ１をＳＦＭ１０３の消去が完了した、バックアップセクタ１に書き込むための処理を開始する。ＣＰＵ２００はシリアル制御部３２１を送信にセットし、送信レジスタに、書込みコマンド、アドレス情報、ＳＤＲＡＭ２１４に退避した、バックアップデータを書込みＳＦＭ１０３にデータの書込みを行う。ＣＰＵ２００はＦＩＦＯ回路のステータスを監視しながら、バックアップしたデータを全てＳＦＭ１０３のバックアップセクタに書込みを行う（Ｓ１０９）。
【００７２】
バックアップしていたデータ１の書込みを開始すると、ＣＰＵ２００は、バックアップデータ２を読み込む処理を開始する。シリアル制御部３０１を送信にセットし、ＣＳを下げて送信レジスタに読取コマンドおよびアドレス情報を書き込む。該処理後、ＦＩＦＯ回路３０２のステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３０１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０１からのデータ２のデータを読み込む処理を開始する（Ｓ１１０）。
【００７３】
ＣＰＵ２００は該処理後、シリアル制御部３２１の送信レジスタに所定数のデータを書込み後、ステータス確認コマンドを書き込む。その後ＦＩＦＯ回路のステータスを監視し、送信データの出力が完了すると、シリアル制御部３２１を受信にセットし、ＳＦＭ１０３の書込みが完了したことを示す、応答を受信する（Ｓ１１１）。ＳＦＭ１０３の応答が、データ書込み完了を示すと、ＣＰＵ２００はＳＤＲＡＭ２１４のフラグエリアに、バックアップデータ1を書込み完了したことを示すフラグをセットする（Ｓ１１７）。
【００７４】
ＣＰＵ２００はバックアップデータ１のＳＦＭ１０３への書込みが完了していない場合、バックアップデータ２のＳＦＭ１０１からの読込処理を継続する。ＦＩＦＯ回路の受信ステータスを監視しながら、所定のＢｙｔｅ数バックアップデータ２の読込およびＳＤＲＡＭ２への書込みが完了すると（Ｓ１１２）、ＣＰＵ２００はＳＤＡＭ２１４のバックアップデー２読込完了フラグをセットする（Ｓ１１６）。その後ＣＰＵ２００は、バックアップデータ１書込み完了およびバックアップデータ２読込完了フラグがセットされているかを検出し、フラグが完全にセットされていなければ、再度書込み処理または、読込処理を継続する（Ｓ１１３）。ＣＰＵ２００は全てのフラグがセットされていることを検出すると、ＣＰＵ２００はデータ１セクタを書き換え中であることを示すフラグをＳＦＭ１０２に書き込む処理を行う。書込み中フラグデータ１を書き込むため、シリアル制御部３１１を送信にセットし、ＣＳを下げて送信レジスタに書込みコマンドと書込みアドレス、フラグ1セットデータを書き込む。該処理後、シリアル制御部３１１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３１１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０２からのフラグデータ１書込み完了の検出を行う（Ｓ２０１）。
【００７５】
該処理後、ＣＰＵ２００はバックアップセクタ２を消去するためシリアル制御部３２１を送信にセットし、ＣＳ信号を下げて送信レジスタにセクタ消去コマンドとアドレス情報を書き込む。
【００７６】
該処理後、シリアル制御部３２１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３２１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０３からのバックアップセクタ２の消去完了の検出を行う（Ｓ２０２）。
【００７７】
該処理後、ＣＰＵ２００は書込みセクタ１を消去するためシリアル制御部３０１を送信にセットし、ＣＳ信号を下げて送信レジスタにセクタ消去コマンドとアドレス情報を書き込む。
【００７８】
該処理後、シリアル制御部３０１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３０１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０１からの書込みセクタ１の消去完了検出を行う（Ｓ２０３）。
【００７９】
ＣＰＵ２００は該処理後、シリアル制御部３１１の送信レジスタに、ステータス確認コマンドを書き込む。その後ＦＩＦＯ回路のステータスを監視し、送信データの出力が完了すると、シリアル制御部３１１を受信にセットし、ＳＦＭ１０２の書込みが完了したことを示す、応答を受信する（Ｓ２０４）。ＳＦＭ１０２の応答が、データ書込み完了を示すと、ＣＰＵ２００はＳＤＲＡＭ２１４のフラグエリアに、データセクタ1書き換え中を示すフラグの書込みを完了したことを示すフラグをセットする（Ｓ２１７）。フラグのセットが完了すると、バックアップセクタ２の消去が完了したかの検出を行う（Ｓ２０５）。
【００８０】
データセクタ１書き換え中フラグの書込みが完了していない場合（Ｓ２０４）、シリアル制御部３２１を送信にセットし、送信レジスタにＳＦＭ１０３のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３２１を受信に設定し、ＳＦＭ１０３のバックアップセクタ２の消去が完了したかの検出を行う（Ｓ２０５）。
【００８１】
ＣＰＵ２００は、バックアップセクタ２の消去が完了したことを受信レジスタのデータをもとに検出すると、ＳＤＲＡＭ２１４にバックアップセクタ２消去完了したことをしめすフラグをセットする（Ｓ２１８）。
【００８２】
バックアップセクタ２の消去が完了していない場合（Ｓ２０５）、シリアル制御部３０１を送信にセットし、送信レジスタにＳＦＭ１０１のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３０１を受信に設定し、ＳＦＭ１０１のデータ書込みセクタ１の消去が完了したかの検出を行う（Ｓ２０６）。
【００８３】
バックアップセクタ２の消去が完了していない場合（Ｓ２０５）、シリアル制御部３０１を送信にセットし、送信レジスタにＳＦＭ１０１のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３０１を受信に設定し、ＳＦＭ１０１のデータセクタ１の消去が完了したかの検出を行う（Ｓ２０６）。ＣＰＵ２００は、データセクタ１の消去が完了したことを受信レジスタのデータをもとに検出すると、ＳＤＲＡＭ２１４にデータセクタ１消去完了したことを示すフラグをセットし（Ｓ２０７）、フラグのセットが完了すると、ＳＤＲＡＭ２１４のフラグを読み込み、全てのフラグがセットされたか検出を行う（Ｓ２０８）。ＣＰＵ２００はセットされていないフラグがあることを検出すると、再度データの読込、消去を行う処理を継続する（Ｓ２０４）。
【００８４】
ＣＰＵ２００はＳＤＲＡＭ２１４の、フラグデータを読み、全てのフラグがセットされていることを検出すると（Ｓ２０８）、ＳＤＲＡＭ２１４にセットされている新規データ１を、ＳＦＭ１０１の消去が完了したデータセクタ１に書き込むための処理を開始する。ＣＰＵ２００はシリアル制御部３０１を送信にセットし、送信レジスタに、書込みコマンド、アドレス情報、ＳＤＲＡＭ２１４にセットした、新規データ１を書込みＳＦＭ１０１にデータの書込みを行う。ＣＰＵ２００はＦＩＦＯ回路のステータスを監視しながら、バックアップしたデータを全てＳＦＭ１０１のバックアップセクタに書込みを行う（Ｓ２０９）。
【００８５】
該処理後ＣＰＵ２００は、ＳＤＲＡＭ２１４に退避した、バックアップデータ２をＳＦＭ１０３の消去が完了した、バックアップセクタ２に書き込むための処理を開始する。ＣＰＵ２００はシリアル制御部３２１を送信にセットし、送信レジスタに、書込みコマンド、アドレス情報、ＳＤＲＡＭ２１４に退避した、バックアップデータ２を書込みＳＦＭ１０３にデータの書込みを行う。ＣＰＵ２００はＦＩＦＯ回路のステータスを監視しながら、バックアップしたデータ２を全てＳＦＭ１０３のバックアップセクタに書込みを行う（Ｓ２１０）。
【００８６】
該処理が終了すると、ＣＰＵ２００はフラグセクタ２を消去するため、シリアル制御部３１１を送信にセットし、ＣＳを下げて送信レジスタに消去コマンドと消去アドレスを書き込む。
【００８７】
該処理後、シリアル制御部３１１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３１１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０２からのフラグセクタの消去完了の検出を行う（Ｓ２１１）。
【００８８】
ＣＰＵ２００は該処理後、シリアル制御部３０１の送信レジスタに所定数のデータを書込み後、ステータス確認コマンドを書き込む。その後ＦＩＦＯ回路のステータスを監視し、送信データの出力が完了すると、シリアル制御部３０１を受信にセットし、ＳＦＭ１０１の書込みが完了したことを示す、応答を受信する（Ｓ２１２）。
【００８９】
ＳＦＭ１０３の応答が、データ書込み完了を示すと、ＣＰＵ２００はＳＤＲＡＭ２１４のフラグエリアに、セクタ１新規データ１の書込み完了したことを示すフラグをセットする（Ｓ２１９）。
【００９０】
ＣＰＵ２００は新規データ１のＳＦＭ１０１への書込みが完了していない場合（Ｓ２１２）、シリアル制御部３２１の送信レジスタに所定数のデータを書込み後、ステータス確認コマンドを書き込む。その後ＦＩＦＯ回路のステータスを監視し、送信データの出力が完了すると、シリアル制御部３２１を受信にセットし、ＳＦＭ１０３の書込みが完了したことを示す、応答を受信する（Ｓ２１３）。ＳＦＭ１０３の応答が、バックアップデータ２書込み完了を示すと、ＣＰＵ２００はＳＤＲＡＭ２１４のフラグエリアに、バックアップデータ２を書込み完了したことを示すフラグをセットする（Ｓ２２０）。
【００９１】
フラグのセットが完了すると、フラグセクタ２の消去が完了したかの検出を行う。（Ｓ２１４）
バックアップデータ２への書込みが完了していない場合（Ｓ２１３）、シリアル制御部３１１を送信にセットし、送信レジスタにＳＦＭ１０２のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３１１を受信に設定し、ＳＦＭ１０２のフラグセクタ２の消去が完了したかの検出を行う（Ｓ２１４）。ＣＰＵ２００は、フラグセクタ２の消去が完了したことを受信レジスタのデータをもとに検出すると、ＳＤＲＡＭ２１４にフラグセクタ２消去完了したことをしめすフラグをセットし（Ｓ２１５）、フラグのセットが完了すると、全てのフラグセットが完了したかの検出を行い（Ｓ２１６）、セクタ２書き換え中であることを示すフラグをセットする処理を行う。
【００９２】
ＣＰＵ２００は、書込み中フラグデータ２を書き込むため、シリアル制御部３１１を送信にセットし、ＣＳを下げて送信レジスタに書込みコマンドと書込みアドレス、フラグ1セットデータを書き込む。該処理後、シリアル制御部３１１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３１１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０２からのフラグデータ２書込み完了の検出を行う（Ｓ３０１）。
【００９３】
該処理後、ＣＰＵ２００は書込みセクタ２を消去するためシリアル制御部３０１を送信にセットし、ＣＳ信号を下げて送信レジスタにセクタ消去コマンドとアドレス情報を書き込む。
【００９４】
該処理後、シリアル制御部３０１のＦＩＦＯのステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３０１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０１からの書込みセクタ２の消去完了検出を行う（Ｓ３０２）。
【００９５】
ＣＰＵ２００は該処理後、シリアル制御部３１１の送信レジスタに、ステータス確認コマンドを書き込む。その後ＦＩＦＯ回路のステータスを監視し、送信データの出力が完了すると、シリアル制御部３１１を受信にセットし、ＳＦＭ１０２の書込みが完了したことを示す、応答を受信する（Ｓ２０４）。ＳＦＭ１０２の応答が、データ書込み完了を示すと、ＣＰＵ２００はＳＤＲＡＭ２１４のフラグエリアに、データセクタ２書き換え中を示すフラグの書込みを完了したことを示すフラグをセットする（Ｓ３１１）。フラグのセットが完了すると、新規書込みセクタ２の消去が完了したかの検出を行う（Ｓ３０４）。
【００９６】
データセクタ２書き換え中フラグの書込みが完了していない場合（Ｓ３０３）、シリアル制御部３０１を受信に設定し、送信レジスタにＳＦＭ１０１のステータスを監視するためのコマンドを書込み、ＦＩＦＯステータスを監視し、コマンドの送信が完了すると、シリアル制御部３０１を受信に設定し、ＳＦＭ１０１のデータセクタ２の消去が完了したかの検出を行う（Ｓ３０４）。ＣＰＵ２００は、データセクタ２の消去が完了したことを受信レジスタのデータをもとに検出すると、ＳＤＲＡＭ２１４にデータセクタ２消去完了したことを示すフラグをセットし（Ｓ３０５）、フラグのセットが完了すると、ＳＤＲＡＭ２１４のフラグを読み込み、全てのフラグがセットされたか検出を行う（Ｓ３０６）。ＣＰＵ２００はセットされていないフラグがあることを検出すると、再度データの書込み完了の検出、セクタ消去を行う処理を継続する（Ｓ３０４）。
【００９７】
ＣＰＵ２００はＳＤＲＡＭ２１４の、フラグデータを読み、全てのフラグがセットされていることを検出すると（Ｓ３０６）、ＳＤＲＡＭ２１４にセットされている新規データ２を、ＳＦＭ１０１の消去が完了したデータセクタ２に書き込むための処理を開始する。ＣＰＵ２００はシリアル制御部３０１を送信にセットし、送信レジスタに、書込みコマンド、アドレス情報、ＳＤＲＡＭ２１４にセットした、新規データ２を書込みＳＦＭ１０１にデータの書込みを行う。ＣＰＵ２００はＦＩＦＯ回路のステータスを監視しながら、バックアップしたデータを全てＳＦＭ１０１のバックアップセクタに書込みを行う（Ｓ３０７）。
【００９８】
ＣＰＵ２００は該処理後、シリアル制御部３０１の送信レジスタに所定数のデータを書込み後、ステータス確認コマンドを書き込む。その後ＦＩＦＯ回路のステータスを監視し、送信データの出力が完了すると、シリアル制御部３０１を受信にセットし、ＳＦＭ１０１の書込みが完了したことを示す、応答を受信する（Ｓ３０８）
ＳＦＭ１０１の応答が、データ書込み完了を示すと、ＣＰＵ２００はＳＤＲＡＭ２１４のフラグエリアに、セクタ２新規データ２の書込み完了したことを示すフラグをセットする（Ｓ３０９）。
【００９９】
ＣＰＵ２００は、フラグのセットが完了すると、全てのフラグセットが完了したかの検出を行い（Ｓ３１０）、全てのフラグがセットされていない場合、データ２の書込み処理を継続する。
【０１００】
上記の処理を変更するセクタの数だけ繰り返すことで効率よくシリアルフラッシュデータへの書込みを行う。
【０１０１】
上記処理により、データ転送時間は図１１の１つのシリアルフラッシュメモリを用いるよりも半分以下の転送時間で処理が可能となる。
【０１０２】
図５，６は本実施例のシリアルフラッシュメモリ１０１〜１０３の内部メモリマップおよびＳＤＲＡＭ２１４のメモリマップを示す。
【０１０３】
以下、図５、６、図１０を用いて本実施の形態の動作を説明する。
【０１０４】
ＣＰＵ２００は電源が投入またはシステムリセットが入ったことを検出すると、ＣＰＵバス２１５を介してＢｏｏｔＲＯＭにアクセスし、シリアルフラッシュメモリ１０１〜１０３にアクセス可能にするために、シリアル制御部３０１，３１１，３２１の初期化処理を行い、初期値の設定、転送速度設定等を行う（Ｓ４０１）。
【０１０５】
シリアル制御部の初期化が完了すると、ＣＰＵ２００はシリアル制御部３０１を送信にセットし、ＣＳを下げて送信レジスタに読取コマンドおよびアドレス情報（０ｘ００００００）を書き込む。該処理後、ＦＩＦＯ回路３０２のステータスを監視し、送信処理が完了したことを検出すると、シリアル制御部３０１に受信コマンドを書込み、ＦＩＦＯ回路を受信に設定しＳＦＭ１０１からのデータを受信する。
【０１０６】
ＣＰＵ２００は、受信レジスタを読取、ＳＦＭ１０１の起動情報より、起動メモリ１、起動メモリ２、起動メモリ３（図５参照）のアドレス情報およびＳＤＲＡＭ内のアドレスマップ情報を読み出す。さらに、ＳＦＭ１０１〜ＳＦＭ１０３に記憶されている、Ｍａｉｎ１、Ｍａｉｎ２、Ｍａｉｎ３のＭａｉｎメモリのアドレス情報も同時に読み出し、内部レジスタに記憶する（Ｓ４０２）。
【０１０７】
該処理が完了すると、ＣＰＵ２００は読み出したアドレス情報を本に、シリアル制御部３０１，３１１，３２１を用いて、ＳＦＭ１０１，１０２，１０３内の、起動メモリ１，２，３の内容を、受信したアドレスマップ情報に基づきＳＤＲＡＭ２１４に転送を開始する（Ｓ４０３）。
【０１０８】
ＣＰＵ２００は、シリアル制御部３０１の受信レジスタの状態を監視し、ＳＦＭ１０１内の起動メモリ１（６４Ｋｂｙｔｅ）のＳＤＲＡＭ２１４のアドレス空間（０ｘ０００００〜０ｘ０ＦＦＦＦ）にデータ転送を完了したか検出を行う（Ｓ４０４）。
【０１０９】
ＣＰＵ２００が起動メモリ１の転送が完了したことを検出すると、内部レジスタ内に、起動メモリ１転送完了フラグをセットする（Ｓ４０９）。
【０１１０】
起動メモリ１の転送が完了してない場合（Ｓ４０４）、ＣＰＵ２００はシリアル制御部３１１の受信レジスタの状態を監視し、ＳＦＭ１０２内の起動メモリ２（６４Ｋｂｙｔｅ）のＳＤＲＡＭ２１４のアドレス空間（０ｘ１００００〜０ｘ１ＦＦＦＦ）にデータ転送を完了したか検出を行う（Ｓ４０５）。
【０１１１】
ＣＰＵ２００が起動メモリ２の転送が完了したことを検出すると、内部レジスタ内に、起動メモリ２転送完了フラグをセットする（Ｓ４１０）。
【０１１２】
起動メモリ２の転送が完了してない場合（Ｓ４０５）、ＣＰＵ２００はシリアル制御部３２１の受信レジスタの状態を監視し、ＳＦＭ１０２内の起動メモリ３（６４Ｋｂｙｔｅ）のＳＤＲＡＭ２１４のアドレス空間（０ｘ２００００〜０ｘ２ＦＦＦＦ）にデータ転送を完了したか検出を行う（Ｓ４０６）。
【０１１３】
ＣＰＵ２００が起動メモリ３の転送が完了したことを検出すると、内部レジスタ内に、起動メモリ３転送完了フラグをセットする（Ｓ４１１）。
【０１１４】
該処理後、ＣＰＵ２００は起動メモリ１〜３のデータ転送が完了したかどうか内部レジスタの転送完了フラグのチェックを行い（Ｓ４０７）、全てのフラグがセットされていない場（Ｓ４０８）、再度起動メモリが転送完了するか確認を行う（Ｓ４０４）。
【０１１５】
ＣＰＵ２００は、内部レジスタ確認後全ての転送メモリの転送フラグがセットされていることを確認すると、ＢｏｏｔＲＯＭ２１７を参照した制御から、ＳＤＲＡＭ２１４に展開した起動プログラムを基に動作を開始し、周辺ブロック（割り込み制御部２０１、モデム２０５、表示制御部２０６等）の初期化を行うとともに（Ｓ４０８）、周辺ブロックを動作させるためのMａｉｎプログラムをＳＦＭ１０１〜１０３よりＳＤＲＡＭ２１４に展開する。同時に、留守番電話情報、受信ファクシミリデータ、他の画像データも同時にSDRAM214に展開する。本処理も、プログラムのＳ４０４〜Ｓ４０６のように複数のメモリを順次読み込むことにより転送を行う。
【０１１６】
ＣＰＵ２００はＳＤＲＡＭ２１４へのメインプログラムの転送が完了すると（Ｓ５０１）、メインプログラムを基に動作を開始し、シリアル制御部３１１を制御して、シリアルフラッシュメモリ１０２中のフラグセクタ（リザーブセクタ２）内の情報を読み込む（Ｓ５０２）。
【０１１７】
このフラグセクタ中に、書き込み中、消去中を示すフラグが立っていた場合（Ｓ５０３）、シリアル制御部３１１を制御してフラグセクタ中のセクタ番号情報を読み取り、ＳＤＲＡＭ２１４にセクタ番号を記憶する。該処理が完了するとシリアル情報部３２１を制御してバックアップセクタに記憶されている、バックアップデータを読み出し、ＳＤＲＡＭ２１４の不具合があると考えられるメモリ領域に書き込む（Ｓ５０４）。
【０１１８】
該処理完了後、ＳＤＲＡＭ２１４内の変更データを正規のバックアップメモリであるＳＦＭ１０１に、シリアル制御部３０１を制御してバックアップデータを記憶する（Ｓ５０５）。
【０１１９】
該処理が終了すると、スタンバイに移行して動作を続ける。
【０１２０】
本実施例においては、内部に小容量のＢｏｏｔＲＯＭ２１７を搭載したが、従来例のように直接外部のシリアルフラッシュメモリにアクセスを行い起動し、Ｍａｉｎメモリ１，２，３のデータをＳＤＲＡＭ２１４に展開して動作することも容易に考えられる。
【図面の簡単な説明】
【０１２１】
【図１】本情報処理装置のシステム構成図
【図２】本発明で用いるＡＳＩＣ１００の内部構成図
【図３】本発明のシリアルメモリＩ／Ｆ２０７の内部構成図
【図４】本発明のセクタ書き換え時の処理図
【図５】本発明で用いるシリアルフラッシュメモリ１０１〜１０３の内部メモリ構成
【図６】本発明で用いるＳＤらＭ２１４の内部メモリマップ
【図７】本発明の情報処理装置における、シリアルフラッシュメモリへのアクセス方法を示すフローチャート
【図８】本発明の情報処理装置における、シリアルフラッシュメモリへのアクセス方法を示すフローチャート
【図９】本発明の情報処理装置における、シリアルフラッシュメモリへのアクセス方法を示すフローチャート
【図１０】本発明の情報処理装置における、シリアルフラッシュメモリへのアクセス方法を示すフローチャート
【図１１】１つのシリアルフラッシュメモリを用いて、同様の処理を行った場合の制御
【図１２】従来例のセクタ書き換え時の処理図
【符号の説明】
【０１２２】
２００  ＣＰＵ
２０２  割り込み制御部
２０２  ＣＬＫ制御部
２０３  ＡＤＣ
２０４  外部Ｉ／Ｏ
２０５  モデム
２０６  表示制御部
２０７  シリアルメモリＩ／Ｆ
２０８  ＡＲＢ
２０９  読取Ｉ／Ｆ
２１０  画像処理部
２１１  モータ制御部
２１２  記録部Ｉ／Ｆ
２１３  メモリ制御部
２１４  ＳＤＲＡＭ
【図１】
2008065610.tif 000003
【図２】
2008065610.tif 000004
【図３】
2008065610.tif 000005
【図４】
2008065610.tif 000006
【図５】
2008065610.tif 000007
【図６】
2008065610.tif 000008
【図７】
2008065610.tif 000009
【図８】
2008065610.tif 000010
【図９】
2008065610.tif 000011
【図１０】
2008065610.tif 000012
【図１１】
2008065610.tif 000013
【図１２】
2008065610.tif 000014