(57)【要約】【課題】コンピュータの起動システムにおける製造コストを削減する。【解決手段】コンピュータの起動システム１００は、コンピュータシステムのブートプログラムコードを、周辺デバイス５１の制御レジスタ５１ａの初期値として設定しており、コンピュータの電源が投入されると、周辺デバイス５１内の制御レジスタ５１ａからブートプログラムコードが読み出され、ブートプログラムの実行が開始される。そして、ＣＰＵ４１を含むシステムの初期化、フラッシュメモリ２及びＤＲＡＭ３の初期化が行われ、フラッシュメモリ２に格納されているメインプログラムコードがＤＲＡＭ３に転送される。ブートプログラムの実行が終了すると、制御レジスタ５１ａの設定値が、機能ブロック５１ｂの動作仕様に合わせて書き換えられ、制御レジスタ５１ａの設定値に従って、機能ブロック５１ｂの動作が行われる。【選択図】図４
2005107938.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムの動作を制御する制御部と、前記制御部により実行される制御プログラムを格納するシリアル型の不揮発性メモリと、所定の処理を実行するための集積回路を備えるコンピュータの起動システムにおいて、
前記集積回路は、前記所定の処理を実行するための設定値を格納する制御レジスタを有し、
前記集積回路の制御レジスタは、コンピュータシステムの起動プログラムを当該制御レジスタの初期値として格納し、
前記制御部は、コンピュータシステムの起動時、前記制御レジスタに格納された前記初期値を読み出すことにより、前記起動プログラムを実行することを特徴とするコンピュータの起動システム。
【請求項２】
前記制御レジスタは、コンピュータシステムの起動動作の終了後に、当該レジスタの設定値を、前記初期値から前記所定の処理を実行するための設定値に書き換えることを特徴とする請求項１に記載のコンピュータの起動システム。
【請求項３】
コンピュータシステムの動作を制御する制御部と、前記制御部により実行されるコンピュータシステムの制御プログラム及び起動プログラムを格納するシリアル型の不揮発性メモリと、所定の処理を実行するための集積回路を備えるコンピュータの起動システムであって、
前記集積回路は、コンピュータシステムの起動時に、前記起動プログラムの一部を格納する内蔵メモリを有し、
前記制御部は、コンピュータシステムの起動時、前記シリアル型の不揮発性メモリから前記起動プログラムを読み出して、当該起動プログラムの一部を、前記集積回路の内蔵メモリに転送し、転送先の内蔵メモリ上で、当該起動プログラムを実行することを特徴とするコンピュータの起動システム。
【請求項４】
前記制御部は、コンピュータシステムの起動動作の終了後に、前記集積回路の内蔵メモリに、前記所定の処理を実行するための設定値を書き込むことを特徴とする請求項３に記載のコンピュータの起動システム。
【請求項５】
コンピュータに接続され、コンピュータによってデータを読み書きされるデータ記憶装置であって、
電源投入時にデータ記憶装置に記憶されているデータを消去して初期化する初期化手段を備え、
前記初期化手段は、前記記憶されているデータを、前記コンピュータによって実行可能なプログラムコードに初期化することを特徴とするデータ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの起動システム及びデータ記憶装置に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）、メモリ及びその周辺デバイスから構成されるデジタルカメラ、携帯端末等のコンピュータでは、メモリーカード等の外部記録媒体を使用しなくてもある程度の容量のデータを保存することが可能であることから、プログラムを格納するための不揮発性メモリとして、プログラム格納に適したパラレル型フラッシュメモリの代わりに、大容量のデータ格納に適したシリアル型フラッシュメモリが使用されることが多い。
【０００３】
一般に、ＮＡＮＤ型、ＡＮＤ型のフラッシュメモリに代表されるシリアル型の不揮発性メモリは、容量単価が安く、消去や書込み速度が速いことから、ＮＯＲ型のフラッシュメモリに代表されるパラレル型の不揮発性メモリよりも大容量化に適している。しかしながら、シリアル型の不揮発性メモリは、ブロック単位での読み書きしかできないため、ランダムアクセスが非常に遅いという欠点がある。
【０００４】
ＣＰＵが直接アクセスするプログラム用メモリは、ランダムアクセスを高速で行う必要があるため、シリアル型の不揮発性メモリをプログラム格納用のメモリとして使用する場合には、電源投入直後に、ブートプログラム（起動プログラム）によって、シリアル型の不揮発性メモリに格納されたプログラムデータを、ＤＲＡＭ（Dynamic Random Access Memory）等の高速でのランダムアクセスが可能な揮発性メモリに全て転送してから、転送先のメモリ上でプログラムを実行させる必要がある（例えば、特許文献１及び特許文献２参照。）。
【０００５】
図８に、プログラム格納用メモリとしてシリアル型のフラッシュメモリを用いたコンピュータの起動システム３００の構成を示す。起動システム３００は、図８に示すように、ブートＲＯＭ１、フラッシュメモリ２、ＤＲＡＭ３、ＣＰＵ４、周辺デバイス５により構成される。図８において、フラッシュメモリ２は、シリアル型の不揮発性メモリであり、ＤＲＡＭ３は、パラレル型の揮発性メモリである。
【０００６】
ブートＲＯＭ１は、不揮発性メモリであり、コンピュータシステムを立ち上げるためのブートプログラム（起動プログラム）を格納する。フラッシュメモリ２は、システムを動作させるためのメインプログラムを格納する。ブートＲＯＭ１、フラッシュメモリ２及びＤＲＡＭ３は、ＣＰＵ４のアドレス空間にマッピングされている。ＣＰＵ４は、チップセレクト信号ＣＳ０、ＣＳ１、ＣＳ２をアサートすることによって各々のメモリを選択し、選択されたメモリに対して、制御信号及びアドレス信号１０により、データの読み出し動作、書き込み動作等の制御を行う。各メモリから読み出されたデータは、データバス１１を経由して指定された転送先に転送される。なお、ここで「アサートする」とは、信号や論理を有効にすることをいい、上記では、各チップセレクト信号のうち処理を行う対象のＩＣを有効にすることをいう。
【０００７】
周辺デバイス５は、画像処理等の機能を有する集積回路であり、内部動作を制御するための各種設定値を記憶するレジスタ及びメモリを備える。周辺デバイス５は、ＣＰＵ４により、チップセレクト信号ＣＳ３がアサートされると、制御信号及びアドレス信号１０に従って、読み出し、書き込み等の処理を行う。
【０００８】
図９に、起動システム３００におけるフラッシュメモリ２及びＤＲＡＭ３のアドレスマップを示す。コンピュータの電源が投入されると、ＣＰＵ４によって、リセットベクタアドレスにマッピングされているチップセレクト信号ＣＳ０がアサートされ、ブートＲＯＭ１のスタートアドレスからブートプログラムの実行が開始される。
【０００９】
ブートプログラムに従って、ＣＰＵ４を含むシステムの初期化、フラッシュメモリ２及びＤＲＡＭ３の初期化が行われた後、フラッシュメモリ２に格納されているメインプログラムコードがＤＲＡＭ３に転送される。転送終了後、ブートプログラムの実行アドレスが、ＤＲＡＭ３に転送されたメインプログラムのスタートアドレスにジャンプされ、ブートプログラムの実行が終了する。ブートプログラムの実行が終了すると、ＤＲＡＭ３上のメインプログラムの実行が開始され、システムが動作する。
【００１０】
なお、図８の起動システム３００では、ブートプログラムを格納するメモリとして、ＲＯＭを用いる例を示したが、周辺デバイス５がＡＳＩＣ（Application Specific Integrated Circuit）等の集積回路であって、汎用メモリの搭載が可能である場合には、周辺デバイス５内にブートプログラム格納用のＲＯＭが内蔵される場合もある。
【００１１】
シリアル型のフラッシュメモリの中には、起動直後に、コマンド・アドレス等のシリアル型特有の制御を行わなくても、ＲＯＭアクセスと同様の制御で、特定のブロックに格納されているデータを読み出すオートリード機能を有するものがある。図１０に、オートリード機能を有するフラッシュメモリを用いたコンピュータの起動システム４００の構成を示す。起動システム４００を構成する各部のうち、図８に示した起動システム３００と同一の構成部分には、同一の符号を付している。
【００１２】
起動システム４００は、図１０に示すように、オートリード機能を有するフラッシュメモリ２０、ＤＲＡＭ３、ＣＰＵ４０、周辺デバイス５により構成されている。フラッシュメモリ２０は、オートリード機能を有し、特定ブロックに、ブートプログラムコード（ブートプログラムのプログラムコード）を格納している。
【００１３】
図１１に、起動システム４００におけるフラッシュメモリ２０及びＤＲＡＭ３のアドレスマップを示す。コンピュータの電源が投入されると、ＣＰＵ４０によって、リセットベクタアドレスにマッピングされているチップセレクト信号ＣＳ０がアサートされ、フラッシュメモリ２０に格納されたブートデータが、先頭データから順番にシーケンシャルに読み出され、ブートプログラムの実行が開始される。以降の動作は、起動システム３００の動作と同様である。
【特許文献１】特開平１０−２０７７１２号公報
【特許文献２】特開平１１−２１９２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来の起動システムには以下のような問題があった。
図８に示した起動システム３００では、ブートプログラムを格納するための専用の不揮発性メモリ（ブートＲＯＭ１又は集積回路内のＲＯＭ）を搭載しなければならないため、システム全体の製造コストが高くなってしまうという問題があった。また、図１０に示した起動システム４００では、フラッシュメモリ２２に格納されたブートプログラムを、先頭データからシーケンシャルにしか読み出せないため、分岐命令を使用することができなかった。従って、例えば、ＤＲＡＭのように、初期化にある程度複雑なシーケンスが必要なメモリにプログラムを転送する場合、全てのプログラムデータを転送できない可能性があった。
【００１５】
本発明の課題は、コンピュータの起動システムにおける製造コストを削減し、シリアル型不揮発性メモリに起動プログラムを格納している場合でも、分岐命令を使用可能にすることである。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、請求項１に記載の発明は、コンピュータシステムの動作を制御する制御部と、前記制御部により実行される制御プログラムを格納するシリアル型の不揮発性メモリと、所定の処理を実行するための集積回路を備えるコンピュータの起動システムにおいて、前記集積回路は、前記所定の処理を実行するための設定値を格納する制御レジスタを有し、前記集積回路の制御レジスタは、コンピュータシステムの起動プログラムを当該制御レジスタの初期値として格納し、前記制御部は、コンピュータシステムの起動時、前記制御レジスタに格納された前記初期値を読み出すことにより、前記起動プログラムを実行することを特徴としている。
【００１７】
また、請求項２に記載の発明のように、請求項１に記載のコンピュータの起動システムにおいて、前記制御レジスタは、コンピュータシステムの起動動作の終了後に、当該レジスタの設定値を、前記初期値から前記所定の処理を実行するための設定値に書き換えるようにしてもよい。
【００１８】
請求項３に記載の発明は、コンピュータシステムの動作を制御する制御部と、前記制御部により実行されるコンピュータシステムの制御プログラム及び起動プログラムを格納するシリアル型の不揮発性メモリと、所定の処理を実行するための集積回路を備えるコンピュータの起動システムであって、前記集積回路は、コンピュータシステムの起動時に、前記起動プログラムの一部を格納する内蔵メモリを有し、前記制御部は、コンピュータシステムの起動時、前記シリアル型の不揮発性メモリから前記起動プログラムを読み出して、当該起動プログラムの一部を、前記集積回路の内蔵メモリに転送し、転送先の内蔵メモリ上で、当該起動プログラムを実行することを特徴としている。
【００１９】
また、請求項４に記載の発明のように、請求項３に記載のコンピュータの起動システムにおいて、前記制御部は、コンピュータシステムの起動動作の終了後に、前記集積回路の内蔵メモリに、前記所定の処理を実行するための設定値を書き込むようにしてもよい。
【００２０】
請求項５に記載の発明は、コンピュータに接続され、コンピュータによってデータを読み書きされるデータ記憶装置であって、電源投入時にデータ記憶装置に記憶されているデータを消去して初期化する初期化手段を備え、前記初期化手段は、前記記憶されているデータを、前記コンピュータによって実行可能なプログラムコードに初期化することを特徴としている。
【発明の効果】
【００２１】
請求項１に記載の発明によれば、所定の処理を実行するための集積回路の制御レジスタに、コンピュータシステムの起動プログラムを当該制御レジスタの初期値として格納し、コンピュータシステムの起動時、前記制御レジスタに格納された前記初期値を読み出して起動プログラムを実行するようにしたことにより、起動プログラムを格納するための専用のメモリを搭載する必要がなくなり、起動システムの製造コストを削減することができる。
【００２２】
請求項３に記載の発明によれば、コンピュータシステムの起動時、シリアル型の不揮発性メモリから起動プログラムを読み出して、当該起動プログラムの一部を、集積回路の内蔵メモリに転送し、転送先の内蔵メモリ上で、当該起動プログラムを実行するようにしたことにより、シリアル型の不揮発性メモリにコンピュータシステムの起動プログラムを格納していても、分岐命令の使用が可能になる。また、集積回路の内蔵メモリを、起動プログラムの一部を格納するメモリとして使用できるようにしたため、起動プログラムを格納するための専用のメモリを搭載する必要がなくなり、起動システムの製造コストを削減することができる。
【００２３】
請求項５に記載の発明によれば、電源投入時にデータ記憶装置に記憶されているデータを消去して、コンピュータによって実行可能なプログラムコードに初期化することにより、データ記録装置を非常に効率的に使用することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
【００２５】
（実施形態１）
図１〜図４を参照して、本発明に係る実施形態１について詳細に説明する。まず、本実施形態１のシステム構成を説明する。
【００２６】
図１に、実施形態１のコンピュータの起動システム１００の構成を示す。起動システム１００は、デジタルカメラ、携帯電話等のコンピュータに搭載され、図１に示すように、フラッシュメモリ２、ＤＲＡＭ３、ＣＰＵ４１、周辺デバイス５１により構成される。
【００２７】
フラッシュメモリ２は、シリアル型の不揮発性メモリであり、コンピュータシステムを動作させるためのメインプログラム（制御プログラム）と、各種プログラムの実行に必要なデータ等を格納する。ＤＲＡＭ３は、パラレル型の揮発性メモリであり、フラッシュメモリ２から転送されたメインプログラムを展開する。フラッシュメモリ２及びＤＲＡＭ３は、ＣＰＵ４のアドレス空間にマッピングされている。
【００２８】
ＣＰＵ４１は、制御信号及びアドレス信号１０により、フラッシュメモリ２、ＤＲＡＭ３、周辺デバイス５１の制御レジスタ５１ａにおける読み出し動作、書き込み動作を制御する。各メモリから読み出されたデータは、データバス１１を経由して指定された転送先に転送される。
【００２９】
例えば、ＣＰＵ４１は、コンピュータシステムが起動されると、リセットベクタアドレスにマッピングされているチップセレクト信号ＣＳ０をアサートすることにより、周辺デバイス５１の制御レジスタ５１ａを選択し、制御レジスタ５１ａからブートプログラムコード（ブートプログラムのプログラムコード）を読み出して、ブートプログラムを実行する。
【００３０】
また、ＣＰＵ４１は、チップセレクト信号ＣＳ１をアサートすることにより、フラッシュメモリ２を選択し、フラッシュメモリ２における読み出し動作、書き込み動作を制御する。具体的には、ＣＰＵ４１は、フラッシュメモリ２からメインプログラムを読み出して、ＤＲＡＭ３に転送させる。
【００３１】
ＣＰＵ４１は、チップセレクト信号ＣＳ２をアサートすることにより、ＤＲＡＭ３を選択し、ＤＲＡＭ３における読み出し動作、書き込み動作を制御する。具体的には、ＣＰＵ４１は、ＤＲＡＭ３上に展開されたメインプログラムを読み出して実行する。
【００３２】
周辺デバイス５１は、画像処理等の機能を有する集積回路であり、制御レジスタ５１ａ及び機能ブロック５１ｂを備える。制御レジスタ５１ａは、制御信号及びアドレス信号１０に従って、読み出し、書き込み等の処理を行う。制御レジスタ５１ａは、下記図２の説明にて述べるように、初期値がブートプログラムコードになるように設定されており、ＣＰＵ４１によりブートプログラムコードが読み出された後、メインプログラムに従って、機能ブロック５１ｂの動作仕様に合わせて設定値を書き換える。機能ブロック５１ｂは、制御レジスタ５１ａに設定された値に従って動作する。
【００３３】
図２に、制御レジスタ５１ａの内部の、あるアドレスに対応した記憶部（以下、「１バイトレジスタ」という。）の詳細な構成を示す。図２は、データバス１１が８ビットのバス幅を有する場合の例である。制御レジスタは、図２に示すような１バイトレジスタを複数個有しており、ブートプログラムのプログラムコードを格納するのに充分な容量のレジスタを有しているものとする。制御レジスタ５１ａの内部の１バイトレジスタは、図２に示すように、８個のフリップフロップにより構成されている。各フリップフロップは、リセット信号が、それぞれのフリップフロップのセット端子若しくはリセット端子に接続されることにより１又は０にリセットされる。ここで、この各フリップフロップは、リセットベクタアドレスから順にこの制御レジスタ５１ａの記憶内容を読み出したときに、ちょうどブートプログラムのプログラムコードとなっているように、あらかじめリセット信号のセット／リセット端子への配線が調整されている。図２では、上位ビットＤout［７］から順に、１０１００１１０、すなわち「Ａ６Ｈ」の８ビットのデータが設定されるようになっている例を示している。
【００３４】
次に、本実施形態１における動作について説明する。
図３のフローチャート及び図４のアドレスマップを参照して、起動システム１００により実行されるシステム起動処理について説明する。
【００３５】
コンピュータの電源が投入されると、ＣＰＵ４１によって、リセットベクタアドレスにマッピングされているチップセレクト信号ＣＳ０がアサートされ、周辺デバイス５１内の制御レジスタ５１ａからブートＲＯＭコードが読み出され、ブートプログラムの実行が開始される（ステップＳ１）。ここで、本実施形態においては、周辺デバイス５１内の制御レジスタ５１ａの、所定のアドレスのレジスタ（以下「実行開始アドレス」という。）から順に、ブートプログラムコードが読み出されて、ブートプログラムが実行されるようにするために、リセットベクタアドレスとして周辺デバイス５１内の制御レジスタ５１ａ内の、上記所定の実行開始アドレスを記憶しているように構成されている。
【００３６】
ブートプログラムの実行が開始されると、あらかじめリセット信号のセット／リセット端子への配線によって、ちょうどブートプログラムのプログラムコードとなるように設定されていた制御レジスタ５１ａ内の各レジスタの初期値が、順次読み出されて実行されていき、ＣＰＵ４１を含むシステムの初期化、フラッシュメモリ２及びＤＲＡＭ３の初期化が行われ（ステップＳ２）、フラッシュメモリ２に格納されているメインプログラムコードがＤＲＡＭ３に転送される（ステップＳ３）。
【００３７】
メインプログラムの転送終了後、ブートプログラムの実行アドレスが、ＤＲＡＭ３に転送されたメインプログラムのスタートアドレスにジャンプされ（ステップＳ４）、ブートプログラムの実行が終了する。ブートプログラムの実行が終了すると、ＤＲＡＭ３上のメインプログラムの実行が開始され（ステップＳ５）、コンピュータシステムが動作する。
【００３８】
メインプログラムの実行が開始されると、制御レジスタ５１ａの設定値が、機能ブロック５１ｂの動作仕様に合わせて書き換えられ、制御レジスタ５１ａの設定値に従って、機能ブロック５１ｂの動作が行われる。すなわち、制御レジスタ５１ａの各レジスタは、必要に応じて値を書き換えられる等して使用されることになるが、ブートプログラムは電源投入時にのみ実行されれば足りるため、ブートプログラムの実行が終了した後は消去されても何ら問題は生じない。また、制御レジスタ５１ａの各レジスタは、通常、初期値に依存して使用される場合は少なく、初期値は不定であるとしてシステム全体が設計されている場合が多いため、初期値がブートプログラムのプログラムコードとなるように設定されていたとしても、その後のメインプログラムの実行に支障は来さない。従って、このように制御レジスタ５１ａを使用することにより、制御レジスタ５１ａを非常に効率的に使用することが可能となる。
【００３９】
以上のように、本実施形態１の起動システム１００によれば、コンピュータシステムのブートプログラムを、周辺デバイス５１が備える制御レジスタ５１ａの初期値として格納し、システム起動後、制御レジスタ５１ａを、機能ブロック５１ｂを制御する通常のレジスタとして使用するようにしたことで、制御レジスタ５１ａを、システム起動用と、機能ブロック制御用の二通りの用途で使用可能になり、ブートプログラム格納用の不揮発性メモリ（例えば、図８のブートＲＯＭ１）を搭載する必要がなくなる。従って、起動システム１００の製造コストを削減することができる。
【００４０】
（実施形態２）
次に、図５〜図７を参照して、本発明に係る実施形態２について詳細に説明する。まず、本実施形態２のシステム構成を説明する。
【００４１】
図５に、実施形態２のコンピュータの起動システム２００の構成を示す。起動システム２００を構成する各部のうち、図１に示した起動システム１００と同一の構成部分には、同一の符号を付している。起動システム２００は、デジタルカメラ、携帯電話等のコンピュータに搭載され、図５に示すように、フラッシュメモリ２１、ＤＲＡＭ３、ＣＰＵ４２、周辺デバイス５２により構成される。
【００４２】
フラッシュメモリ２１は、前述のオートリード機能を有するシリアル型の不揮発性メモリであり、コンピュータシステムを動作させるためのメインプログラム（制御プログラム）と、各種プログラムの実行に必要なデータ等を格納するとともに、上記オートリード機能によってシステムの起動直後に読み出される特定のブロックに、コンピュータシステムを立ち上げるためのブートプログラム（起動プログラム）を格納する。ＤＲＡＭ３は、パラレル型の揮発性メモリであり、フラッシュメモリ２１から転送されたメインプログラムを展開する。
【００４３】
ＣＰＵ４２は、制御信号及びアドレス信号１０により、フラッシュメモリ２１、ＤＲＡＭ３、周辺デバイス５２の内蔵メモリ５２ａにおける読み出し動作、書き込み動作を制御する。各メモリから読み出されたデータは、データバス１１を経由して指定された転送先に転送される。
【００４４】
ＣＰＵ４２は、コンピュータシステムが起動されると、リセットベクタアドレスにマッピングされているチップセレクト信号ＣＳ０をアサートすることにより、フラッシュメモリ２１を選択し、フラッシュメモリ２１のオートリード機能を用いてブートプログラムをシーケンシャルに読み出してブートプログラムを実行する。このとき、ＣＰＵ４２は、ブートプログラムの一部の命令コードを周辺デバイス５２の内蔵メモリ５２ａに転送させる。オートリード機能によってフラッシュメモリ２１から読み出すことのできるプログラムコードの容量は限られている場合が多く、この容量だけでブートプログラムを全て格納できない場合があり、このような場合に、いったんブートプログラムのプログラムコードの一部の命令コードを、フラッシュメモリ２１から周辺デバイス５２の内蔵メモリ５２ａに転送させて、この内蔵メモリ５２ａからブートプログラムが実行されるようにするためである。ここで、ブートプログラムの一部の命令コードとは、ＤＲＡＭ３の初期化を指示するコードと、フラッシュメモリ２１からＤＲＡＭ３へのメインプログラムの転送を指示するコードである。
【００４５】
また、ＣＰＵ４２は、チップセレクト信号ＣＳ１をアサートすることにより、周辺デバイス５２を選択して、周辺デバイス５２における読み出し動作、書き込み動作を制御する。具体的には、ＣＰＵ４２は、周辺デバイス５２の内蔵メモリ５２ａに格納された上記命令コードを読み出し、ＤＲＡＭ３を初期化させ、フラッシュメモリ２１からＤＲＡＭ３へメインプログラムを転送させる。
【００４６】
更に、ＣＰＵ４２は、チップセレクト信号ＣＳ２をアサートすることにより、ＤＲＡＭ３を選択し、ＤＲＡＭ３における読み出し動作、書き込み動作を制御する。具体的には、ＣＰＵ４２は、ＤＲＡＭ３上に展開されたメインプログラムを読み出して実行する。
【００４７】
また、ＣＰＵ４２は、コンピュータシステムの起動動作の終了後、メインプログラムに従って、内蔵メモリ５２ａに、機能ブロック５２ｂの動作仕様に応じた設定値を書き込む。
【００４８】
周辺デバイス５２は、画像処理等の機能を有する集積回路であり、内蔵メモリ５２ａ及び機能ブロック５２ｂを備える。内蔵メモリ５２ａは、ＳＲＡＭ（Static Random Access Memory）等により構成されており、ブートプログラムの一部の命令コードと、機能ブロック５２ｂの動作に必要な各種設定値を格納する。なお、ＳＲＡＭは、ＤＲＡＭ３と比較して、初期化が容易で初期化に必要なコードも少なく、また、ランダムアクセスが可能であることから、本実施形態では、ブートプログラムの一部を，フラッシュメモリ２１からＤＲＡＭ３にコピーするのではなく、ＳＲＡＭにコピーして実行するようにしている。
【００４９】
内蔵メモリ５２ａは、制御信号及びアドレス信号１０に従って、読み出し、書き込み等の処理を行う。具体的には、内蔵メモリ５２ａは、フラッシュメモリ２１から転送されたブートプログラムの一部の命令コードの、書き込み動作、読み出し動作を行う。機能ブロック５２ｂは、内蔵メモリ５２ａに設定された値に従って動作する。
【００５０】
次に、本実施形態２における動作について説明する。
図６のフローチャート及び図７のアドレスマップを参照して、起動システム２００により実行されるシステム起動処理について説明する。
【００５１】
コンピュータの電源が投入されると、ＣＰＵ４２によって、リセットベクタアドレスにマッピングされているチップセレクト信号ＣＳ０がアサートされ、フラッシュメモリ２１のオートリード機能により、ブートプログラムがシーケンシャルに読み出され、ブートプログラムの実行が開始される（ステップＳ１１）。
【００５２】
すると、まず、内蔵メモリ５２ａが初期化された後に、フラッシュメモリ２１から読み出されたブートプログラムの一部の命令コードが、内蔵メモリ５２ａに転送される（ステップＳ１２）。ここで、ブートプログラムの一部の命令コードとは、ＤＲＡＭ３の初期化を指示するコードと、フラッシュメモリ２１からＤＲＡＭ３へのメインプログラムの転送を指示するコードである。ＤＲＡＭの初期化コードに比べてＳＲＡＭの初期化コードは非常に少なくて済むことから、オートリード機能で読み出し可能な限られた容量のブートプログラムとして、内蔵メモリ５２ａの初期化のプログラムコードと、フラッシュメモリ２１から読み出されたブートプログラムの一部の命令コードの内蔵メモリ５２ａへの転送処理のプログラムコードを記録しておき、その他のブートプログラムについては、転送された内蔵メモリ５２ａ上のプログラムコードを用いて実行するようにしているものである。
【００５３】
次いで、ブートプログラムの実行アドレスが、内蔵メモリ５２ａに転送されたブートプログラムのスタートアドレスにジャンプされ、フラッシュメモリ２１によるオートリードが終了する（ステップＳ１３）。
【００５４】
ブートプログラムの実行が開始されると、内蔵メモリ５２ａに格納された命令コードに従って、ＣＰＵ４２を含むシステムの初期化、フラッシュメモリ２１及びＤＲＡＭ３の初期化が行われ（ステップＳ１４）、フラッシュメモリ２１に格納されているメインプログラムコードがＤＲＡＭ３に転送される（ステップＳ１５）。
【００５５】
メインプログラムの転送終了後、内蔵メモリ５２ａに格納された命令コードに従って、ブートプログラムの実行アドレスが、ＤＲＡＭ３に転送されたメインプログラムのスタートアドレスにジャンプされ（ステップＳ１６）、ブートプログラムの実行が終了する。ブートプログラムの実行が終了すると、ＤＲＡＭ３上のメインプログラムの実行が開始され（ステップＳ１７）、コンピュータシステムが動作する。
【００５６】
メインプログラムの実行が開始されると、内蔵メモリ５２ａの設定値が、機能ブロック５２ｂの動作仕様に合わせて書き換えられ、内蔵メモリ５２ａの設定値に従って、機能ブロック５２ｂの動作が行われる。
【００５７】
以上のように、本実施形態２の起動システム２００によれば、シリアル型の不揮発性メモリ（フラッシュメモリ２１）にブートプログラムを格納し、オートリード機能を用いてシーケンシャルにブートプログラムを読み出すとき、ＳＲＡＭ等のランダムアクセスが可能で初期化の容易なメモリ（周辺デバイス５２の内蔵メモリ５２ａ）にブートプログラムの一部を転送し、転送先のメモリ上で、ＤＲＡＭの初期化及びメインプログラムの転送を行うようにしたため、分岐命令の使用が可能になり、全てのメインプログラムを確実にＤＲＡＭに転送することが可能になる。また、本来は、機能ブロック５２ｂの動作に必要なテーブルやバッファとして使用する集積回路の内蔵メモリ５２ａを、一部のブートプログラムの格納用メモリとして使用可能にしたことにより、新たにブートプログラム格納用のメモリを搭載する必要がなく、起動システム２００の製造コストを削減することができる。
【００５８】
なお、上記各実施の形態における記述内容は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施形態１におけるコンピュータの起動システム１００の構成を示す図。
【図２】周辺デバイス５１内の制御レジスタ５１ａ内に存在する、あるアドレスで示される１バイト分のレジスタの回路構成を示す図。
【図３】実施形態１の起動システム１００において実行されるシステム起動処理を示すフローチャート。
【図４】実施形態１の起動システム１００における各メモリのアドレスマップを示す図。
【図５】本発明の実施形態２におけるコンピュータの起動システム２００の構成を示す図。
【図６】実施形態２の起動システム２００において実行されるシステム起動処理を示すフローチャート。
【図７】実施形態２の起動システム２００における各メモリのアドレスマップを示す図。
【図８】従来のコンピュータの起動システム３００の構成を示す図。
【図９】従来の起動システム３００における各メモリのアドレスマップを示す図。
【図１０】従来のコンピュータの起動システム４００の構成を示す図。
【図１１】従来の起動システム４００における各メモリのアドレスマップを示す図。
【符号の説明】
【００６０】
１  ブート用ＲＯＭ
２、２１  フラッシュメモリ
３  ＤＲＡＭ
４１、４２  ＣＰＵ（制御部）
５１、５２  周辺デバイス（集積回路）
５１ａ  制御レジスタ（データ記憶装置）
５１ｂ、５２ｂ  機能ブロック
５２ａ  内蔵メモリ
１０  制御信号、アドレス信号
１１  データバス
１００、２００  コンピュータの起動システム
ＣＳ０、ＣＳ１、ＣＳ２  チップセレクト信号
【図１】
2005107938.tif 000003
【図２】
2005107938.tif 000004
【図３】
2005107938.tif 000005
【図４】
2005107938.tif 000006
【図５】
2005107938.tif 000007
【図６】
2005107938.tif 000008
【図７】
2005107938.tif 000009
【図８】
2005107938.tif 000010
【図９】
2005107938.tif 000011
【図１０】
2005107938.tif 000012
【図１１】
2005107938.tif 000013