(57)【要約】      （修正有）【課題】ＣＰＵが直接アドレスを指定して読み出せない外部記憶装置上の起動プログラムを読み出して実行でき、起動用ＲＯＭを不要とする。【解決手段】起動時に、ＣＰＵ１が所定の起動アドレスにアクセスしたとき、起動制御回路５が外部記憶装置インタフェース４を制御して、外部記憶装置２に格納されている起動プログラムを読み込んで外部記憶装置バッファ６へ転送し、その外部記憶装置バッファ６を起動アドレスを含むアドレス空間に割り当てる。その後、ＣＰＵ１がそのアドレス空間にアクセスして、外部記憶装置バッファ６から起動プログラムを読み込んで実行する。【選択図】        図１
2004240897.tif 000002
【特許請求の範囲】
【請求項１】
起動時に特定のアドレスにアクセスするＣＰＵと、該ＣＰＵの起動プログラムを任意の領域に格納した外部記憶装置と、該外部記憶装置に接続した外部記憶装置インタフェースと、該外部記憶装置インタフェースに接続した外部記憶装置バッファおよび起動制御回路とを備え、
該起動制御回路が、起動時に前記外部記憶装置インタフェースを制御して前記起動プログラムを前記外部記憶装置の任意の領域から前記外部記憶装置バッファへ転送した後、その外部記憶装置バッファを前記特定のアドレスを含んだアドレス空間に割り当てる機能を有し、
前記ＣＰＵが、該アドレス空間にアクセスして前記外部記憶装置バッファから前記起動プログラムを読み込む機能を有することを特徴とする制御装置。
【請求項２】
請求項１記載の制御装置において、
前記外部記憶装置が脱着自在な記憶媒体を用いるものであることを特徴とする制御装置。
【請求項３】
請求項１または２記載の制御装置において、
前記ＣＰＵがアクセスするアドレスと前記起動制御回路が前記外部記憶装置をアクセスする領域との関係を変更するためのテーブルを格納するメモリを設け、
前記ＣＰＵがアクセスするアドレスに対して、前記起動制御回路が前記起動プログラムを前記外部記憶装置バッファへ転送するために前記外部記憶装置をアクセスする領域を自由に変更し得るようにしたことを特徴とする制御装置。
【請求項４】
請求項３記載の制御装置において、
前記テーブルを格納するメモリが、前記外部記憶装置の前記起動プログラムを格納した領域以外の領域であることを特徴とする制御装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の制御装置において、
前記起動制御回路は、起動時に前記外部記憶装置から前記外部記憶装置バッファへの前記起動プログラムの転送を行わないように切り換える手段を有することを特徴とする制御装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の制御装置において、
それぞれ任意の領域に前記起動プログラムを格納した複数の外部記憶装置を備え、
前記起動制御回路は、前記複数の外部記憶装置のいずれかから前記起動プログラムの前記外部記憶装置バッファへの転送を実行したときに不具合が発生した場合には、他の外部記憶装置のいずれかから前記起動プログラムを前記外部記憶装置バッファへ転送する機能を有することを特徴とする制御装置。
【請求項７】
請求項１乃至６のいずれか一項に記載の制御装置において、
前記外部記憶装置は複数種類の外部記憶装置インタフェースを接続し、該複数種類の外部記憶装置インタフェースのいずれかを、起動時に外部から選択する手段を設けたことを特徴とする制御装置。
【請求項８】
起動時に特定のアドレスにアクセスするＣＰＵと、該ＣＰＵの起動プログラムを任意の領域に格納した外部記憶装置と、該外部記憶装置に接続した外部記憶装置インタフェースと、該外部記憶装置インタフェースに接続した外部記憶装置バッファおよび起動制御回路とを備えた制御装置において、
起動時に、前記起動制御回路が前記外部記憶装置インタフェースを制御して、前記起動プログラムを前記外部記憶装置の任意の領域から前記外部記憶装置バッファへ転送した後、その外部記憶装置バッファを前記特定のアドレスを含んだアドレス空間に割り当て、
その後、前記ＣＰＵが、該アドレス空間にアクセスして前記外部記憶装置バッファから前記起動プログラムを読み込んでそれを実行することを特徴とするＣＰＵの起動方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複写機やプリンタ等の画像形成装置をはじめ各種電子機器に設けられるＣＰＵを備えた制御装置と、そのＣＰＵの起動方法に関する。
【０００２】
【従来の技術】
複写機やプリンタ等の画像形成装置など種々の電子機器の制御部（制御装置）には大抵ＣＰＵ（中央処理装置）が搭載されており、その判断機能および処理機能によって電子機器全体の動作を制御している。
ところで、このようなＣＰＵは、電源投入時またはリセット時などの起動時に、予め決められた特定のアドレス（以下、「起動アドレス」と云う）にアクセスして起動プログラム（ブートプログラムとも云う）を読み出し、それを最初の命令として実行した後、引き続く命令を順次実行するのが一般的である。
【０００３】
そのため従来は、電子機器を制御する制御プログラムに起動プログラムを読み出すための起動アドレスを入れておく場合が多い。また、制御プログラムと起動プログラムとを別々に作成し、その起動プログラムを専用に設けた起動用ＲＯＭ（ＢＩＯＳ−ＲＯＭ）のような不揮発性メモリに予め格納しておく場合もある。
図７は、従来の電子機器の制御装置におけるＣＰＵの起動に関わる部分の一例を示すブロック図であり、ＣＰＵ１０１は、バス１０７を介してメモリ（ＲＡＭ）１０３および起動用ＲＯＭ１０８と相互に接続している。また、バス１０７および外部記憶装置インタフェース１０４を介して外部記憶装置１０２と接続している。
【０００４】
その外部記憶装置１０２は、複数種類の制御プログラムや処理データなどを記憶している。また、メモリ（ＲＡＭ）１０３は、ＣＰＵ１０１がプログラムを実行するのに必要なワーキングエリアを形成し、外部記憶装置１０２に記憶した制御プログラムや処理データの中からＣＰＵ１０１が比較的すぐに実行するものを一時的に格納する。一方、起動用ＲＯＭ１０８は、フラッシュ型のＥＰＲＯＭまたはＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリであり、起動プログラムを格納する。このメモリ１０３と起動用ＲＯＭ１０８は、一般にその領域がアドレス空間で分けられている。
【０００５】
図８は、メモリ１０３と起動用ＲＯＭ１０８のアドレス空間を概念的に示す説明図である。なお、アドレス空間１１１がメモリ１０３のアドレス空間であり、アドレス空間１１２が起動用ＲＯＭ１０８のアドレス空間である。
ＣＰＵ１０１は、起動時に、メモリアドレス１０９内にある予め決められた起動アドレス１１０にアクセスし、起動用ＲＯＭ１０８に格納されている起動プログラムを読み込んで実行する。
【０００６】
その後、ＣＰＵ１０１は、ハードウェアの初期化を行い、外部記憶装置インタフェース１０４を制御して、予め外部記憶装置１０２に記憶している複数の制御プログラムや処理データの中から起動プログラムに続く制御プログラムを選択してメモリ（ＲＡＭ）１０３に読み出す。
そして、この起動プログラムの実行に引き続き、そのメモリ１０３に読み出した制御プログラムを読み込んで実行することにより、電子機器を制御する。
【０００７】
しかし、このような起動用ＲＯＭを用いてＣＰＵの起動を行う制御装置では、起動プログラムに異常が発生した時や起動プログラムをバージョンアップする時には、起動用ＲＯＭチップを新しいものに取り替えるか、メーカなどで行う書換サービスを受ける必要があり、大変手間がかかっていた。
また、電子機器の中には、ＲＯＭの内容を書き換えるソフトウェアを用いて自システム上で起動プログラムの書換処理を行うことができるもの（パーソナルコンピュータなど）もあるが、書換処理中に電源断などの異常が発生するとシステムが復旧できないため故障の危険性が高く、起動プログラムのバックアップなど煩雑な作業が必要となっていた。
【０００８】
そこで、例えば特許文献１に見られるように、起動プログラム（ブートプログラム）を予め起動用ＲＯＭ（ＢＩＯＳ−ＲＯＭ）に格納しておき、ＣＰＵの起動時に起動用ＲＯＭの記憶データが正常か否かを判別し、起動用ＲＯＭの記憶データに異常を検知したときに外部記憶装置（フロッピディスクドライブ）から起動プログラムを読み込んで復旧させるようにしたパーソナルコンピュータがある。
このパーソナルコンピュータの場合、ＣＰＵは先ず起動用ＲＯＭの起動プログラムを実行し、その後に外部記憶装置に格納されている必要なプログラムを読み込んで実行する。
【０００９】
また、例えば特許文献２に見られるように、メモリカードおよびメモリカードインタフェース（Ｉ／Ｆ）を備え、起動用ＲＯＭに格納した内部ブートプログラムとメモリカードに格納した外部ブートプログラムとを切り換えることにより、そのどちらからでも起動できるようにしたデータ処理装置もある。
このデータ処理装置の場合には、メモリカードの外部ブートプログラムを電源投入直後に直接実行できるため、内部ブートプログラムが正常に動作しない場合でも起動することができ、外部記憶装置内の各種プログラムを実行することができる。
【００１０】
【特許文献１】
特開平５−２１６６３９号公報
【特許文献２】
特開平８−１７１４８３号公報
【００１１】
【発明が解決しようとする課題】
しかしながら、上記特許文献１に記載されているようなＣＰＵ起動手段を有する制御装置では、ＣＰＵは先ず起動用ＲＯＭの起動プログラムを実行するため、起動プログラムを格納した起動用ＲＯＭが必要であるという問題点があった。
また、上記特許文献２に記載されているようなＣＰＵ起動手段を有する制御装置では、起動用ＲＯＭおよびメモリカードへのアクセスがバスを介してＣＰＵから転送されたアドレスを取り込むことにより行われるため、メモリカードが直接アドレスを指定して読み込み可能な形態をとっていなければならないという問題点があった。つまり、アドレスによって直接アクセスすることができない外部記憶装置に起動プログラムを格納しても、そこからは起動できないという問題点があった。
【００１２】
この発明は上記の問題点に鑑みてなされたものであり、ＣＰＵを備えた各種電子機器の制御装置において、ＣＰＵが直接アドレスを指定して読み出すことができない外部記憶装置に格納した起動プログラムを読み出して実行できるようにすると共に、外部記憶装置に格納した起動プログラムを読み出すためのプログラムおよびそのプログラムを格納する起動用ＲＯＭを不要にすることを目的とする。
【００１３】
【課題を解決するための手段】
この発明による制御装置は、上記の目的を達成するため、起動時に特定のアドレスにアクセスするＣＰＵと、そのＣＰＵの起動プログラムを任意の領域に格納した外部記憶装置と、その外部記憶装置に接続した外部記憶装置インタフェースと、その外部記憶装置インタフェースに接続した外部記憶装置バッファおよび起動制御回路とを備えている。
そして、その起動制御回路が、起動時に上記外部記憶装置インタフェースを制御して上記起動プログラムを上記外部記憶装置の任意の領域から上記外部記憶装置バッファへ転送した後、その外部記憶装置バッファを上記特定のアドレスを含んだアドレス空間に割り当てる機能を有し、上記ＣＰＵが、そのアドレス空間にアクセスして上記外部記憶装置バッファから上記起動プログラムを読み込む機能を有する。
上記外部記憶装置が、脱着自在な記憶媒体を用いるものであると便利である。
【００１４】
また、上記ＣＰＵがアクセスするアドレスと上記起動制御回路が上記外部記憶装置をアクセスする領域との関係を変更するためのテーブルを格納するメモリを設け、上記ＣＰＵがアクセスするアドレスに対して、上記起動制御回路が上記起動プログラムを上記外部記憶装置バッファに転送するために上記外部記憶装置をアクセスする領域を自由に変更し得るようにすることもできる。
上記テーブルを格納するメモリは、上記外部記憶装置の上記起動プログラムを格納した領域以外の領域であってもよい。
さらに、上記起動制御回路は、起動時に上記外部記憶装置から上記外部記憶装置バッファへの上記起動プログラムの転送を行わないように切り換える手段を有することもできる。
【００１５】
また、これらの制御装置において、それぞれ任意の領域に上記起動プログラムを格納した複数の外部記憶装置を備え、上記起動制御回路が、その複数の外部記憶装置のいずれかから上記起動プログラムの上記外部記憶装置バッファへの転送を実行したときに不具合が発生した場合には、他の外部記憶装置のいずれかから上記起動プログラムを上記外部記憶装置バッファへ転送する機能を有するようにするとよい。
あるいはまた、上記外部記憶装置は複数種類の外部記憶装置インタフェースを接続し、その複数種類の外部記憶装置インタフェースのいずれかを、起動時に外部から選択する手段を設けるとよい。
【００１６】
この発明による制御装置におけるＣＰＵの起動方法は、起動時に特定のアドレスにアクセスするＣＰＵと、そのＣＰＵの起動プログラムを任意の領域に格納した外部記憶装置と、その外部記憶装置に接続した外部記憶装置インタフェースと、その外部記憶装置インタフェースに接続した外部記憶装置バッファおよび起動制御回路とを備えた制御装置において、次のようにしてＣＰＵを起動させる。
起動時に、上記起動制御回路が上記外部記憶装置インタフェースを制御して、上記起動プログラムを上記外部記憶装置の任意の領域から上記外部記憶装置バッファへ転送した後、その外部記憶装置バッファを上記特定のアドレスを含んだアドレス空間に割り当てる。
その後、上記ＣＰＵが、該アドレス空間にアクセスして上記外部記憶装置バッファから上記起動プログラムを読み込んでそれを実行する。
【００１７】
【発明の実施の形態】
以下、この発明の実施の形態を図面に基づいて説明する。
〔第１の実施形態〕
図１は、この発明による制御装置の第１の実施形態におけるＣＰＵの起動に関わる部分の構成を示すブロック図である。
この制御装置は、バス７を介して相互に接続したＣＰＵ１、メモリ（ＲＡＭ）３、外部記憶装置インタフェース４、および起動制御回路５を備えている。さらに、その外部記憶装置インタフェース４に接続した外部記憶装置２と、外部記憶装置インタフェース４および起動制御回路５の双方に接続した外部記憶装置バッファ６を備えている。なお、この外部記憶装置インタフェース４と起動制御回路５と外部記憶装置バッファ６の３つのブロックは相互に接続している。
【００１８】
この制御装置において、バス７，ＣＰＵ１，メモリ（ＲＡＭ）３はこの発明に特有のものではなく、図７に示した従来のバス１０７，ＣＰＵ１０１，メモリ（ＲＡＭ）１０３と同様に、既存のものを任意に適用できる。よって、これらの詳細な説明は省略する。
また、外部記憶装置インタフェース４は外部記憶装置２の入出力装置であり、一般的なハードディスクインタフェースまたはＰＣＭＣＩＡメモリインタフェースなどである。
【００１９】
一方、外部記憶装置２は、この制御装置あるいはこれによって制御される電子機器に内蔵するかあるいは外付けされる記憶装置であり、従来の外部記憶装置１０２と同様に複数種類の制御プログラムや処理データを記憶しているが、ＣＰＵ１の起動プログラムを任意の領域に格納している点が従来と異なる。なお、外部記憶装置２に使用する記憶媒体の具体例については後述する。
また、外部記憶装置バッファ６は、データ処理のために一時的に利用されるキャッシュメモリなどの一般的な半導体メモリであり、起動制御回路５は、例えば予め定められた順序に従って後述する制御の各段階を逐次進めるシーケンサ（マイクロプログラムのようなもの）などである。
【００２０】
なお、起動制御回路５としては、上述のシーケンサの代りに、その制御を論理回路で構築したカスタムＬＳＩなどのＡＳＩＣ（特定用途向けＩＣ）を用いてもよい。その場合には、起動制御回路５と外部記憶装置インタフェース４を１個のＬＳＩに集積することもできるため、部品数を削減でき、コストを低減することができる。
このように、この発明による制御装置では、ＣＰＵの起動用ＲＯＭを設けず、起動制御回路５および外部記憶装置バッファ６を設けている点が従来の制御装置と大きく異なる。
【００２１】
次に、この図１に示した制御装置によるＣＰＵ起動時の動作、すなわちこの発明によるＣＰＵの起動方法の第１の実施形態について、図２および図３も参照して説明する。図２は、図１に示したメモリ３と外部記憶装置バッファ６のアドレス空間を概念的に示す説明図であり、図３は、同じくそのアドレス空間における外部記憶装置の起動プログラムを格納した割り当て領域とＣＰＵがアクセスするアドレスとの関係を示す説明図である。
この制御装置のアドレス空間は、図２に示すように、メモリ（ＲＡＭ）３に割り当てられたアドレス空間１１と、その他のアドレス空間１２とからなる。
ＣＰＵ１は、起動時以外の通常制御の場合は、図７に示した従来の制御装置と同様に動作する。つまり、メモリアドレス１０の中でアドレス空間１１内にある任意のアドレスをプログラムなどによって指定することによりメモリ３へアクセスし、そこに格納されている各種制御プログラムや処理データなどを読み込んで、判断や処理を実行する。
【００２２】
一方、起動時には、ＣＰＵ１はメモリアドレス１０内の予め決められた特定のアドレス（起動アドレス）にアクセスし、その起動アドレス１３を含むアドレス空間１２ａから起動プログラムを読み込んで実行しようとする。
しかし、この制御装置には起動用ＲＯＭがないため、ＣＰＵ１は、従来の起動用ＲＯＭを備えた制御装置のように、その起動用ＲＯＭから起動プログラムを読み込むことができない。さらに、アドレス空間１２ａにはメモリ３が割り当てられていないため、ＣＰＵ１はメモリ３からプログラムを読み込むこともできない。
【００２３】
そこでこの制御装置では、起動時にはまず、起動制御回路５が外部記憶装置インタフェース４を自動的に制御して、予め外部記憶装置２の図３に示す割り当て領域２０に格納されている起動プログラムの内、外部記憶装置バッファ６のメモリサイズに応じた大きさの領域（例えばメモリ領域２１）に格納されている分の起動プログラムを読み込んで外部記憶装置バッファ６へ転送する。
この起動プログラムの転送が完了した後、起動制御回路５は、外部記憶装置バッファ６を起動アドレス１３を含むアドレス空間１２ａに割り当てる。これが図２の（ａ）に示す状態である。
ここで、起動アドレスの後の数字「１３」は単なる符号であり、実際のアドレスの番号ではない。以下の説明における他のアドレスに付した数字も同様に単なる符号である。
【００２４】
その後、ＣＰＵ１はその起動アドレス１３からのアドレス空間１２ａにアクセスして、外部記憶装置バッファ６から起動プログラムを読み込んで、それを実行する。そして、ＣＰＵ１がアドレス空間１２ａの範囲内で外部記憶装置バッファ６から読み込んだ起動プログラムを実行している間に、起動制御回路５は外部記憶装置２から残りの領域（メモリ領域２２〜２６）の起動プログラムを順次読み込んで外部記憶装置バッファ６へ転送し、それをアドレス空間１２内のアドレス空間１２ａ以外のアドレス空間に順次割り当てるので、ＣＰＵ１はそれを順次読み込んで、起動プログラムの実行を継続することができる。
【００２５】
この例では、ＣＰＵ１がアドレス空間１２内でアドレス空間１２ａの範囲外をアクセスした場合、つまり起動プログラムが未だ読み込まれていないアドレス空間、すなわち外部記憶装置バッファ６のバッファサイズを越えたアドレス空間をアクセスした場合は、起動制御回路５は再び外部記憶装置インタフェース４を自動的に制御して、外部記憶装置２の残りの領域（メモリ領域２２〜２６）の一つから起動プログラムを読み込んで外部記憶装置バッファ６へ転送する。
このとき、ＣＰＵ１がアクセスするアドレスと、外部記憶装置２の割り当て領域の各メモリ領域との関係は図３に示すようになる。その詳細については後述する。
【００２６】
そして、外部記憶装置バッファ６への起動プログラムの残りの一部分の転送が完了した後、起動制御回路５はその外部記憶装置バッファ６をアドレス空間１２内の新たなアドレス空間（例えば図３における処理アドレス１４から始まるアドレス空間）に割り当てる。それによって、ＣＰＵ１がそのアドレス空間にアクセスして、外部記憶装置バッファ６からその新た転送された分の起動プログラムを読み込んで、それを実行することができる。
【００２７】
このように、ＣＰＵ１がアクセスするアドレスに応じて、外部記憶装置２の各メモリ領域２１〜２６に格納している起動プログラムを順次外部記憶装置バッファ６へ転送し、その外部記憶装置バッファ６をＣＰＵ１が順次アクセスする処理中アドレス１４，１５，１６，１７，１８の何れかを含んだアドレス空間へ割り当てることを繰返し実行することにより、ＣＰＵ１は、順次その処理中アドレスから始まるアドレス空間にアクセスして、外部記憶装置バッファ６に順次転送される起動プログラムを読み込んで、起動動作を継続して実行できる。
【００２８】
図２の（ｂ）は、このようにしてＣＰＵ１が処理中アドレス１７から始まるアドレス空間１２ｅにアクセスして、外部記憶装置バッファ６から起動プログラムを読み込むときの状況を示している。
なお、起動制御回路５が外部記憶装置インタフェース４を制御して、予め外部記憶装置２に記憶されている複数の制御プログラムや処理データの中から起動プログラムに続く制御プログラムを選択してメモリ３に転送すれば、起動プログラムの実行終了後に、ＣＰＵ１は引き続きメモリ３に転送された制御プログラムを読み込んで実行することができる。つまり、前述した通常制御に移ることができる。
【００２９】
ここで、図３に示したＣＰＵ１がアクセスするアドレスと外部記憶装置２の割り当て領域との関係について説明する。
外部記憶装置２は、任意の領域である割り当て領域２０に起動プログラムを格納している。その割り当て領域２０は、この例ではメモリ領域２１〜２６の６ブロックに分けられており、ＣＰＵ１がアクセスする起動アドレス１３および処理中アドレス１４〜１８に対して、メモリ領域２１およびメモリ領域２２〜２６がそれぞれ１対１の関係で対応づけられている。
つまり、ＣＰＵ１が起動アドレス１３または処理中アドレス１４〜１８のいずれかにアクセスした場合に、それに対応するメモリ領域２１またはメモリ領域２２〜２６に格納した起動プログラムが外部記憶装置バッファ６に転送される。
【００３０】
なお、メモリ領域２１〜２６の各々の大きさ（メモリサイズ）は、外部記憶装置バッファ６のメモリサイズに応じて任意に設定する。このとき、メモリ領域２１〜２６の大きさが外部記憶装置バッファ６のメモリサイズ以下になるようにする。一方、割り当て領域２０の大きさは、起動用プログラムのプログラムサイズに応じた大きさになる。よって、割り当て領域２０内のメモリ領域のブロック数は、起動用プログラムのプログラムサイズおよび各メモリ領域の大きさの双方に応じて異なる。
例えば、この図３に示す例では、起動プログラムを格納するのにメモリ領域２１〜２６の６ブロックを使用しているが、それに限るものではない。また、メモリ３のアドレス空間１１と割り当て領域２０との比率も図３に示すものに限らない。
【００３１】
なお、図２に示したアドレス空間１２を割り当て領域２０と略同じ大きさにし、起動アドレス１３を含むアドレス空間１２ａ、およびそれぞれ処理中アドレス１４〜１８の何れかを含む個々のアドレス空間をそれぞれメモリ領域２１〜２６の各々と略同じ大きさにすると、メモリアドレス１０内で無駄なアドレス空間を生じることなく、効率的にＣＰＵ１を起動することができる。
また、外部記憶装置２内の割り当て領域２０の格納位置については、図３に示すような先頭位置または最後尾位置に限るものではなく、各種制御プログラムおよび処理データを格納している領域以外の領域であれば、何処に格納してもよい。
【００３２】
以上説明した第１の実施形態によれば、ＣＰＵ１が直接アドレスを指定してアクセスができない外部記憶装置２に起動プログラムを格納しておいても、ＣＰＵ１は外部記憶装置バッファ６を介してその起動プログラムを読み込んで、起動動作を実行することができるので、従来必要であった起動用ＲＯＭなどの不揮発性メモリが不要になり、制御装置のコスト低減を図ることができる。
さらに、起動プログラムを外部記憶装置２に格納するので、起動プログラムの書換処理が簡単にできる。よって、起動プログラムに不具合が生じた場合やバージョンアップが必要になった場合に便利である。
【００３３】
また、外部記憶装置インタフェース４と起動制御回路５を１個のＬＳＩに集積する（ＡＳＩＣ化）ことが容易にできるため、部品数を削減でき、さらにコストを低減することができる。
上述の説明では、外部記憶装置２は記憶媒体と区別せずに説明したが、実際には外部記憶装置本体と記憶媒体とからなり、その記憶媒体としては、例えば、ＳＤカードやメモリスティック等の半導体メモリ，ハードディスク，光ディスク，光磁気ディスク，フレキシブルディスクなど、いずれのものを使用してもよい。したがって、外部記憶装置を搭載した各種電子機器のほぼ全てにこの発明を適用することができ、それによって同様な効果を得ることができる。
【００３４】
ところで、このような外部記憶装置には、その記憶媒体が、例えばハードディスクなどのように電子機器から容易に取り外せないものと、例えば光ディスクやメモリスティックなどのように脱着自在な記憶媒体であって、電子機器の外部記憶装置本体（例えば光ディスクドライブ装置）から容易に取り外せるものとがある。
パーソナルコンピュータなどのように、外部記憶装置へのプログラムの書き込みが可能な電子機器の制御装置の場合は、外部記憶装置２としてその記憶媒体が電子機器から容易に取り外せないものを使用しても問題ない。しかし、外部記憶装置へのプログラムの書き込みができない画像形成装置などの電子機器の制御装置の場合には、外部記憶装置を電子機器から取り外した後、専用の書き込み装置を用いて起動プログラムの格納処理あるいは書換処理を行って、再度その外部記憶装置を電子機器に装着する必要がある。
なお、汎用規格の外部記憶装置インタフェースを用いれば、既存の書き込み装置を用いて外部記憶装置への起動プログラムの格納処理や書換処理を行うことができる。
【００３５】
一方、外部記憶装置として、その記憶媒体を電子機器から容易に取り出せるものを使用した場合、つまり脱着自在な記憶媒体を使用する場合は、その記憶媒体のみを電子機器から取り出して、他の電子機器を用いて起動プログラムの格納処理あるいは書換処理を行うことができる。
この場合、記憶媒体を電子機器の外部記憶装置本体から取り出し、それを他の電子機器（例えばパーソナルコンピュータなど）の外部記憶装置本体にセットして起動プログラムの格納処理を行った後、再度その記憶媒体を元の電子機器に戻せばよい。
したがって、このような外部記憶装置を使用すれば、専用の書き込み装置が不要になり、記憶媒体への起動プログラムの格納あるいは書換処理を簡単に行うことができる。
【００３６】
しかも、記憶媒体への起動プログラムの格納あるいは書換処理を他の電子機器を用いて行うので、万一処理中に電源断などの異常が発生して処理が失敗しても、電子機器の制御装置の機能に影響が出ない。
つまり、従来は起動用ＲＯＭの書換処理に失敗すると、制御装置の動作が停止して復旧できなくなる危険性があったが、上述の場合には、外部記憶装置の記憶媒体への起動プログラムの格納あるいは書換処理に失敗しても、制御装置が動作不能になったりすることはない。したがって、バックアップシステムがなくても、ユーザが安心して起動プログラムの格納処理や書換処理を行えるという利点がある。
【００３７】
そして、外部記憶装置の記憶媒体への起動プログラムの格納処理あるいは書換処理を失敗したときには、再びそれらの処理を行うことにより、外部記憶装置の記憶媒体に正しい起動プログラムを格納して、ＣＰＵに正しい起動動作をさせることができる。
なお、このような外部記憶装置の着脱可能な記憶媒体としては、上述した光ディスクに限るものではなく、例えば、フレキシブルディスクやマイクロディスクなどを用いてもよい。また、ＳＤカード，メモリスティック，コンパクトフラッシュ（登録商標）ディスク，スマートメディアといったフラッシュメモリを用いた半導体記憶装置も適している。
【００３８】
〔第２の実施形態〕
次に、この発明の第２の実施形態について図４および図３を参照して説明する。
図４は、この発明による制御装置の第２の実施形態におけるＣＰＵの起動に関わる部分の構成を示すブロック図である。そてて、この図４において、図１と同じ部分には同一符号を付してあり、それらの説明を省略する。
この第２の実施形態において、図１によって説明した第１の実施形態と異なる点は、読み込み位置変換テーブル８を格納した不揮発性ＲＡＭなどのメモリを起動制御回路５に接続している点だけである。
この読み込み位置変換テーブル８は、ＣＰＵ１がアクセスするアドレスと、起動制御回路５が外部記憶装置２をアクセスする領域との関係を変更するためのテーブルであり、外部記憶装置２のメモリ領域の領域番号とを１対１に対応づけする対応表のデータでって、アドレスを入力したときに領域番号のデータを出力するものである。
【００３９】
例えば、ＣＰＵ１がアクセスするアドレスに対して、起動制御回路５が外部記憶装置２をアクセスする領域との関係が図３に示しようになっていた場合、この読み込み位置変換テーブル８には、ＣＰＵ１がアクセスする起動アドレス１３および処理中アドレス１４〜１８に対して、外部記憶装置２のメモリ領域２１〜２６の領域番号（例えば♯２１〜♯２６）をそれぞれ対応させている。
さて、この読み込み位置変換テーブル８は、ユーザがメモリへの格納処理を行うことによって自由に設定でき、その書換処理を行うことによって自由に変更することもできる
【００４０】
したがって、起動プログラムを格納するメモリ領域２１〜２６が外部記憶装置２の割り当て領域２０の中で順番に並んでいる必要がなくなり、外部記憶装置２における起動プログラムの格納位置も固定する必要がなくなる。
つまり、たとえメモリ領域２１〜２６が順不同に並んでいても、起動制御回路５は、ＣＰＵ１がアクセスしたアドレスによって読み込み位置変換テーブル８を参照して、外部記憶装置２内のアクセスすべきメモリ領域の領域番号を知ることができるので、そのメモリ領域にアクセスしてそこに格納された起動プログラムを読み込んで、外部記憶装置バッファ６に転送することができる。
【００４１】
従って、第２の実施例によれば、起動時にＣＰＵ１がアクセスするアドレス空間と、起動制御回路５がアクセスする外部記憶装置２のメモリ領域との関係を自由に対応づけることができるため、外部記憶装置２のメモリ領域中で起動プログラムを格納する複数のメモリ領域を１箇所に集めたり、領域番号順に並べて連続的に起動プログラムを格納する必要がなくなる。さらに、その格納位置を固定する必要もない。よって、外部記憶装置２のファイルシステム形式に沿って起動プログラムを自由に格納することが出来る。
なお、この読み込み位置変換テーブル８は、ＣＰＵ１がアクセスするアドレスと外部記憶装置２の起動プログラムを格納した領域とを対応づけるだけではなく、同様にＣＰＵ１がアクセスするアドレスと外部記憶装置２の各種制御プログラムおよび処理データなどを格納した領域とも対応づけるようにすると便利である。
【００４２】
ところで、この読み込み位置変換テーブル８は、上述したように不揮発性ＲＡＭ等による専用のメモリを設けてそこに格納してもよいが、この制御装置に本来必要なメモリ（ＲＡＭ）３と共通化してもよい。さらに、後述するメモリ（ＲＡＭ）９と共通化してもよい。
読み込み位置変換テーブル８をＲＡＭに格納する場合、アドレスを外部記憶装置バッファ６のメモリサイズに相当するビット数分シフトし、その値を次にＣＰＵ１がアクセスすべきアドレスとすることができる。データには外部記憶装置２の領域番号を格納する。
【００４３】
なお、読み込み位置変換テーブル８を格納するメモリはＲＡＭに限るものではなく、他の記憶装置または記憶媒体を用いてもよい。
例えば、この読み込み位置変換テーブル８を外部記憶装置２に格納するようにしてもよい。このとき、外部記憶装置２の起動プログラム，各種制御プログラム，処理データなどを格納する領域以外の空き領域に読み込み位置変換テーブル８を格納すればよい。それによって、余分なメモリを使用する必要がなくなり、制御装置のコストアップにならない。
【００４４】
〔第３の実施形態〕
次に、この発明の第３の実施形態について図５および図６を参照して説明する。
図５は、その制御装置のＣＰＵの起動に関わる部分の構成を示す図１および図４と同様なブロック図であり、それらの各図と同じ部分には同一の符号を付して、それらの説明は省略する。図６は、図５に示したメモリ９と外部記憶装置バッファ６のアドレス空間を概念的に示す図２と同様な説明図である。
この第３の実施形態の構成は、図４に示した第２の実施形態の構成と似ているが、メモリ（ＲＡＭ）３の代りにメモリ（ＲＡＭ）９を起動制御回路１９を介してバス７に接続している点が異なる。
また、起動制御回路１９は、外部記憶装置２から起動プログラムを外部記憶装置バッファへ転送する機能（起動プログラム転送機能と称す）を外部からの信号により設定／解除する切換手段を備えてる。
【００４５】
したがって、この制御装置では、切換手段によって起動プログラム転送機能が設定されていれば、前述した第１および第２の実施形態と同様に、起動時に起動制御回路１９が外部記憶装置インタフェース４を介して外部記憶装置２へのアクセスを実行し、そこに格納されている起動プログラムを読み込んで外部記憶装置バッファ６へ転送し、それをＣＰＵ１がアクセスしたアドレスを含むアドレス空間に割り当てる。
よって、このときのメモリアドレス１０は、通常の制御動作用のメモリ（ＲＡＭ）９に割り当てられたアドレス空間１１と、ＣＰＵ１がアクセスするアドレスに応じて外部記憶装置バッファ６が割り当てられるアドレス空間１２とに、明確に区切られている。この状態を図６の（ａ）に示す。
【００４６】
その後、全ての起動プログラムの読み込みが終了して起動プログラムの実行が完了する直前（ＣＰＵ１が通常制御動作に移行する直前）に、起動プログラムが起動制御回路１９の切換手段に切り換え指示を出し、起動プログラム転送機能を解除して、起動制御回路１９による外部記憶装置インタフェース４を介した外部記憶装置２へのアクセスを禁止させる。
それによって、ＣＰＵ１が通常制御動作に移行した後は、ＣＰＵ１がアドレス空間１２にあるアドレスにアクセスしても、起動制御回路５は外部記憶装置２から起動プログラムを外部記憶装置バッファ６に転送する動作を行わない、そのため、アドレス空間１２を外部記憶装置バッファ６以外に割り当てることができる。
さらに、メモリ９が起動制御回路１９に接続しているので、起動制御回路１９がアドレス空間１２の割り当てを外部記憶装置バッファ６からメモリ９に切り換えれば、メモリアドレス１０の全てのアドレス空間をメモリ９に割り当てて使用することができる。この状態を図６の（ｂ）に示す。
【００４７】
つまり、前述した第１および第２の実施形態では、アドレス空間１２を起動のときのみに使用して通常制御に移行した後は使用しないのに対し、この第３の実施形態では、アドレス空間１２を起動時と通常制御時の両方に使用できるので、利用効率が向上する。
なお、第１〜第３の実施形態では外部記憶装置が１台の場合について説明したが、それに限るものでは無い。複数の外部記憶装置をそれぞれ外部記憶装置インタフェースを介してバスに接続してもよく、さらに、その中の任意の外部記憶装置（何台でもよい）にそれぞれ起動プログラムを格納するようにしてもよい。
【００４８】
このように複数の外部記憶装置に起動プログラムを格納しておけば、起動制御回路がそれらのうちのいずれかの外部記憶装置から起動プログラムを読み込んで外部記憶装置バッファに転送する際に不具合が発生しても、起動制御回路が他のいずれかの外部記憶装置をアクセスするように切り換えることにより、別の外部記憶装置から起動プログラムを読み込んで、外部記憶装置バッファに転送することができる。
【００４９】
このようにすれば、例えば主の外部記憶装置の電源を入れ忘れるなどしてそれが稼動していない場合や、その外部記憶装置の起動プログラムを格納した場所が破損してその起動プログラムを読み出せないような場合などでも、別の外部記憶装置から起動プログラムを外部記憶装置バッファに転送でき、ＣＰＵがその起動プログラムを読み込んで起動することができ、外部記憶装置の異常によってＣＰＵが起動しないという事態を回避することができる。
【００５０】
また、第１〜第３の実施形態では外部記憶装置に１台の外部記憶装置インタフェースを接続したがそれに限るものではなく、複数の外部記憶装置インタフェースを接続してもよい。
そして、その複数の外部記憶装置インタフェ−スの中から任意のものを起動時に起動制御回路によって、あるいは外部から選択できるようにしてもよい。
この場合、外部記憶装置インタフェースに不具合が生じても、他の外部記憶装置インタフェースに切り換えて、起動制御回路が外部記憶装置にアクセスできるようにすることができるため、外部記憶装置インタフェースの異常によってＣＰＵが起動できなくなるという事態を回避することができる。
【００５１】
【発明の効果】
以上説明してきたように、この発明による制御装置およびそのＣＰＵの起動方法によれば、ＣＰＵが直接アドレスを指定してアクセスができない外部記憶装置に格納した起動プログラムを読み込んで起動できる。
そのため、従来必要であった起動用ＲＯＭが不要になり、部品数を削減してコストを安くすることができる。さらに、従来のように起動プログラムを起動用ＲＯＭに格納する場合と比較して、起動プログラムの格納処理や書換処理が容易になる。
【図面の簡単な説明】
【図１】この発明による制御装置の第１の実施形態におけるＣＰＵの起動に関わる部分の構成を示すブロック図である。
【図２】図１に示したメモリ３と外部記憶装置バッファ６のアドレス空間を概念的に示す説明図である。
【図３】同じく、そのアドレス空間における外部記憶装置２の起動プログラムを格納した割り当て領域とＣＰＵ１がアクセスするアドレスとの関係を示す説明図である。
【図４】この発明による制御装置の第２の実施形態におけるＣＰＵの起動に関わる部分の構成を示すブロック図である。
【図５】この発明による制御装置の第３の実施形態におけるＣＰＵの起動に関わる部分の構成を示すブロック図である。
【図６】図５に示したメモリ９と外部記憶装置バッファ６のアドレス空間を概念的に示す説明図である。
【図７】従来の電子機器の制御装置におけるＣＰＵの起動に関わる部分の構成を示すブロック図である。
【図８】図７に示したメモリ（ＲＡＭ）１０３と起動用ＲＯＭ１０８のアドレス空間を概念的に示す説明図である。
【符号の説明】
１：ＣＰＵ        ２：外部記憶装置
３，９：メモリ（ＲＡＭ）
４：外部記憶装置インタフェース
５，１９：起動制御回路
６：外部記憶装置バッファ        ７：バス
８：読み込み位置変換テーブル
１０：メモリアドレス    １１，１２：アドレス空間
１３：起動アドレス      １４〜１８：処理中アドレス
２０：割り当て領域
２１〜２６：外部記憶装置内のメモリ領域
【図１】
2004240897.tif 000003
【図２】
2004240897.tif 000004
【図３】
2004240897.tif 000005
【図４】
2004240897.tif 000006
【図５】
2004240897.tif 000007
【図６】
2004240897.tif 000008
【図７】
2004240897.tif 000009
【図８】
2004240897.tif 000010