(57)【要約】【課題】外部メモリから起動用プログラムを読み込んで起動処理を行なうマイクロコントローラの起動時間を、コスト高を招くことなく短縮することを目的とする。【解決手段】それぞれ起動用プログラムを格納した複数個の外部メモリと接続する外部インタフェースと、揮発性メモリと、揮発性メモリに転送された起動用プログラムにしたがって動作を行なうＣＰＵとを備え、外部インタフェースは、起動時において、あらかじめ定められた規則にしたがって、複数個の外部メモリに交互にアクセスすることによって起動用プログラムを転送単位毎に揮発性メモリに転送するマイクロコントローラ。【選択図】図１
2012018562.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ起動用プログラムを格納した複数個の外部メモリと接続する外部インタフェースと、
揮発性メモリと、
前記揮発性メモリに転送された起動用プログラムにしたがって動作を行なうＣＰＵとを備え、
前記外部インタフェースは、起動時において、あらかじめ定められた規則にしたがって、前記複数個の外部メモリに交互にアクセスすることによって前記起動用プログラムを転送単位毎に前記揮発性メモリに転送することを特徴とするマイクロコントローラ。
【請求項２】
前記外部インタフェースは、ある外部メモリへのアクセスを完了する前に、他の外部メモリへのアクセスを開始することを特徴とする請求項１に記載のマイクロコントローラ。
【請求項３】
前記複数個の外部メモリは、異なる起動用プログラムを格納しており、
前記外部インタフェースは、
あらかじめ指定された起動用プログラムを選択的に前記揮発性メモリに転送することを特徴とする請求項１または２に記載のマイクロコントローラ。
【請求項４】
複数個の外部メモリと、マイクロコントローラとを備えた電子機器であって、
前記複数個の外部メモリは、それぞれ起動用プログラムを格納しており、
前記マイクロコントローラは、
揮発性メモリと、
前記複数個の外部メモリと接続し、前記マイクロコントローラの起動時において、あらかじめ定められた規則にしたがって、前記複数個の外部メモリに交互にアクセスすることによって前記起動用プログラムを転送単位毎に前記揮発性メモリに転送する外部インタフェースと、
前記揮発性メモリに転送された起動用プログラムにしたがって動作を行なうＣＰＵとを備えることを特徴とする電子機器。
【請求項５】
前記複数個の外部メモリは、
異なる起動用プログラムを転送単位毎に分割して、いずれの起動用プログラムについても交互に順次読み出せるように格納しており、
前記外部インタフェースは、
あらかじめ指定された起動用プログラムを選択的に前記揮発性メモリに転送することを特徴とする請求項４に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラに係り、特に、外部インタフェースを備え、外部メモリから起動用プログラムを読み込んで起動処理を行なうマイクロコントローラの起動時間を短縮する技術に関する。
【背景技術】
【０００２】
図４は、外部メモリから起動用プログラムを読み込んで起動処理を行なう従来のマイクロコントローラ（以下「マイコン」と称す）の構成例を示すブロック図である。
本図に示すように、マイコン３００は、ＣＰＵ３１０、内部メモリである揮発性メモリ３２０、外部ＩＦ（インタフェース）３３０を備えており、それぞれがメインバス３５０により接続されている。外部ＩＦ３３０は、外部バス３６０を介して、外部メモリである不揮発性メモリ４００と接続している。
【０００３】
不揮発性メモリ４００には、起動用プログラムが格納されている。マイコン３００は、起動時に、不揮発性メモリ４００から揮発性メモリ３２０に起動用プログラムを転送し、初期化等の処理を行なって、起動を完了する。
【０００４】
図５は、マイコン３００の起動の際の処理手順を示すタイミング図である。マイコン３００は、起動を開始すると、ＣＰＵ３１０が、外部Ｉ／Ｆ３３０を通じて不揮発性メモリ４００にアクセスし、不揮発性メモリ４００の起動用プログラム格納領域から、マイコン３００内部の揮発性メモリ３２０へ起動用プログラムの転送を行なう。
【０００５】
起動用プログラムの転送は、所定の転送単位毎に行なわれる。転送単位を順に「データ１」、「データ２」…「データＮ」とすると、ＣＰＵ３１０は、まず、外部Ｉ／Ｆ３３０に対して、メインバス３５０を介して「データ１」要求を行なう。この処理に必要な時間をＴ１ａとする。これを受けて外部Ｉ／Ｆ３３０が、外部バス３６０を介して不揮発性メモリ４００に対して「データ１」要求を行なう。この処理に必要な時間をＴ１ｂとする。
【０００６】
次いで、不揮発性メモリ４００が起動用プログラム格納領域からデータ１を読み出して外部Ｉ／Ｆ３３０に出力する。この処理に必要な時間をＴ１ｃとする。そして、外部Ｉ／Ｆ３３０が、外部バス３６０を介して「データ１」を受信する。この処理に必要な時間をＴ１ｄとする。最後に、ＣＰＵ３１０がメインバス３５０を介して「データ１」を受取り、揮発性メモリ３２０に書き込むことで「データ１」の転送が終了する。この処理に必要な時間をＴ１ｅとすると、１つの転送単位に必要な時間Ｔ１は、
Ｔ１＝Ｔ１ａ＋Ｔ１ｂ＋Ｔ１ｃ＋Ｔ１ｄ＋Ｔ１ｅ
となる。
【０００７】
以降は、同様の処理を「データ２」「データ３」…に対して繰り返し、「データＮ」までの転送を終えると、初期化等の処理を行なって起動が完了する。初期化等の処理に必要な時間をＴｂｏｏｔとすると、起動完了に必要な時間Ｔｚは、
Ｔｚ＝Ｔ１×Ｎ＋Ｔｂｏｏｔ
となる。
【０００８】
その他プログラムは、起動完了後に、ＣＰＵ３１０が、揮発性メモリ３２０に転送された起動用プログラムを実行することによって、揮発性メモリ３２０に順次転送される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−１３９９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年、マイコン３００において、起動時間の短縮が求められている。図５に示すように、マイコン３００の起動時間の大半を起動用プログラムの転送時間（Ｔ１×Ｎ）が占めており、この起動用プログラムの転送時間が起動時間を遅くしていることになる。
【００１１】
中でも、外部バス３６０の転送速度は、メインバス３５０の転送速度よりも遅いため、時間Ｔ１ｂ、時間Ｔ１ｄにおいて、大きな遅延が発生する。また、不揮発性メモリ４００のアクセス速度が遅いため、時間Ｔ１ｃにおいても大きな遅延が発生する。
【００１２】
前者の遅延に対しては、不揮発性メモリ４００をマイコン３００に内蔵して、データ転送に高速なメインバス３５０を利用することで改善することができるが、大容量の不揮発性メモリ４００をマイコン３００に内蔵することはコスト高を招くことになる。
【００１３】
また、後者の遅延に対しては、不揮発性メモリ４００へのアクセスが発生する前に、あらかじめ不揮発性メモリ４００の内容をバッファに読み込んでおき、データ読込時にバッファからデータを転送することで、バッファのサイズまではデータ転送を見かけ上改善することができるが、マイコン３００の起動用プログラムの転送のように、大量、かつ、連続的なデータ転送には向かない。
【００１４】
そこで、本発明は、外部メモリから起動用プログラムを読み込んで起動処理を行なうマイクロコントローラの起動時間を、コスト高を招くことなく短縮することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明の第１の態様であるマイクロコントローラは、それぞれ起動用プログラムを格納した複数個の外部メモリと接続する外部インタフェースと、揮発性メモリと、前記揮発性メモリに転送された起動用プログラムにしたがって動作を行なうＣＰＵとを備え、前記外部インタフェースは、起動時において、あらかじめ定められた規則にしたがって、前記複数個の外部メモリに交互にアクセスすることによって前記起動用プログラムを転送単位毎に前記揮発性メモリに転送することを特徴とする。
【００１６】
ここで、前記外部インタフェースは、ある外部メモリへのアクセスを完了する前に、他の外部メモリへのアクセスを開始することができる。
【００１７】
また、前記複数個の外部メモリは、異なる起動用プログラムを格納しており、前記外部インタフェースは、あらかじめ指定された起動用プログラムを選択的に前記揮発性メモリに転送するようにしてもよい。
【００１８】
上記課題を解決するため、本発明の第２の態様である電子機器は、複数個の外部メモリと、マイクロコントローラとを備えた電子機器であって、前記複数個の外部メモリは、それぞれ起動用プログラムを格納しており、前記マイクロコントローラは、揮発性メモリと、前記複数個の外部メモリと接続し、前記マイクロコントローラの起動時において、あらかじめ定められた規則にしたがって、前記複数個の外部メモリに交互にアクセスすることによって前記起動用プログラムを転送単位毎に前記揮発性メモリに転送する外部インタフェースと、前記揮発性メモリに転送された起動用プログラムにしたがって動作を行なうＣＰＵとを備えることを特徴とする。
【００１９】
ここで、前記複数個の外部メモリは、異なる起動用プログラムを転送単位毎に分割して、いずれの起動用プログラムについても交互に順次読み出せるように格納しており、前記外部インタフェースは、あらかじめ指定された起動用プログラムを選択的に前記揮発性メモリに転送するようにしてもよい。
【発明の効果】
【００２０】
本発明によれば、外部メモリから起動用プログラムを読み込んで起動処理を行なうマイクロコントローラの起動時間を、コスト高を招くことなく短縮することができる。また、このようなマイクロコントローラを備えた電子機器を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】外部メモリから起動用プログラムを読み込んで起動処理を行なうマイクロコントローラの本実施形態の構成を示すブロック図である。
【図２】本実施形態におけるマイコンの起動の際の処理手順を示すタイミング図である。
【図３】異なる起動用プログラムのいずれかを選択的に起動する構成を示すブロック図である。
【図４】外部メモリから起動用プログラムを読み込んで起動処理を行なう従来のマイクロコントローラの構成例を示すブロック図である。
【図５】マイコンの起動の際の処理手順を示すタイミング図である。
【発明を実施するための形態】
【００２２】
本発明の実施の形態について図面を参照して説明する。図１は、外部メモリから起動用プログラムを読み込んで起動処理を行なうマイクロコントローラの本実施形態の構成を示すブロック図である。なお、本実施形態のマイクロコントローラは、外部メモリとともに、種々の電子機器に組み込まれて用いられる。
【００２３】
本図に示すように、マイコン１００は、ＣＰＵ１１０、内部メモリである揮発性メモリ１２０、外部ＩＦ（インタフェース）１３０を備えており、それぞれがメインバス１５０により接続されている。外部ＩＦ１３０は、複数個の不揮発性メモリと１または複数の外部バスを介して接続しており、本図の例では、外部バス１６０ａを介して不揮発性メモリ２００ａと接続し、外部バス１６０ｂを介して不揮発性メモリ２００ｂと接続している。ただし、外部メモリは３個以上であってもよい。なお、不揮発性メモリ２００ａと不揮発性メモリ２００ｂとは、特に区別する必要がないときは、不揮発性メモリ２００と総称する。外部バス１６０についても同様とする。
【００２４】
不揮発性メモリ２００ａと不揮発性メモリ２００ｂとも起動用プログラム格納領域を備えており、本例では、不揮発性メモリ２００ａと不揮発性メモリ２００ｂとで、同一の起動用プログラムが格納されているものとする。これにより、故障等に対する信頼性を高めることもできる。ただし、起動用プログラムを転送単位毎に分割し、不揮発性メモリ２００ａと不揮発性メモリ２００ｂとで交互に格納するようにしてもよい。
【００２５】
不揮発性メモリ２００から揮発性メモリ１２０への起動用プログラムの転送にあたって、外部Ｉ／Ｆ１３０は、内部あるいは外部に記録されたアクセス規則１３１を参照して、ＣＰＵ１１０からアクセス要求のあったアドレスに対応したいずれかの不揮発性メモリ２００の格納領域にアクセスする。
【００２６】
アクセス規則１３１には、例えば、奇数アドレスにアクセス要求があった場合には、不揮発性メモリ２００ａにアクセスし、偶数アドレスにアクセス要求があった場合には、不揮発性メモリ２００ｂにアクセスするというような規則が記録されているものとする。もちろん本例に限られず、種々の規則を記録しておくことができる、例えば、前後するアクセス要求に対して、不揮発性メモリ２００ａと不揮発性メモリ２００ｂとを交互にアクセスするという規則等でもよい。
【００２７】
図２は、本実施形態におけるマイコン１００の起動の際の処理手順を示すタイミング図である。本例では、「データ１」は、不揮発性メモリ２００ａにアクセスし、「データ２」は、不揮発性メモリ２００ｂにアクセスし、以下、交互に不揮発性メモリ２００にアクセスするようにアクセス規則１３１に記録されているものとする。
【００２８】
マイコン１００が起動を開始すると、ＣＰＵ１１０は、まず、外部Ｉ／Ｆ１３０に対して、メインバス１５０を介して「データ１」要求を行なう。これを受けて、外部Ｉ／Ｆ１３０は、アクセス規則１３１を参照して、不揮発性メモリ２００ａにアクセスするものと判定し、外部バス１６０ａを介して不揮発性メモリ２００ａに対して「データ１」要求を行なう。
【００２９】
次いで、不揮発性メモリ２００ａが「データ１」を読み出して外部Ｉ／Ｆ１３０に出力し、外部Ｉ／Ｆ１３０が、外部バス１６０ａを介して「データ１」を受信する。そして、ＣＰＵ１１０がメインバス１５０を介して「データ１」を受取り、揮発性メモリ１２０に書き込むことで「データ１」の転送が終了する。「データ１」の転送時間は、従来と同様にＴ１である。
【００３０】
本実施形態では、ＣＰＵ１１０は、「データ１」要求を行なってから時間Ｔｉｎｔ後に、外部Ｉ／Ｆ１３０に対して、「データ２」要求を行なう。すなわち、要求した「データ１」の取得を待つことなく、「データ２」の要求を行なう。時間Ｔｉｎｔは、ＣＰＵ１１０からの「データＫ」要求開始時刻と、「データ（Ｋ＋１）」要求開始時刻との時間差であり、マイコン１００、不揮発性メモリ２００、外部バス１６０の仕様等にしたがって、なるべく短くなるような最適な値を定めることができる。
【００３１】
これを受けて、外部Ｉ／Ｆ１３０は、アクセス規則１３１を参照して、外部バス１６０を介して不揮発性メモリ２００ａに対して「データ２」要求を行なう。
【００３２】
「データ２」要求を受けた外部Ｉ／Ｆ１３０は、アクセス規則１３１を参照して、不揮発性メモリ２００ｂにアクセスするものと判定し、外部バス１６０ｂを介して不揮発性メモリ２００ｂに対して「データ２」要求を行なう。
【００３３】
次いで、不揮発性メモリ２００ｂが「データ２」を読み出して外部Ｉ／Ｆ１３０に出力し、外部Ｉ／Ｆ１３０が、外部バス１６０ｂを介して「データ２」を受信する。そして、ＣＰＵ１１０がメインバス１５０を介して「データ２」を受取り、揮発性メモリ１２０に書き込むことで「データ２」の転送が終了する。
【００３４】
「データ２」の転送時間は、従来と同様にＴ１である。ただし、起動してから「データ２」の転送が完了するまで、従来は、２×Ｔ１の時間が必要であったのに対し、本実施形態は、Ｔ１＋Ｔｉｎｔの時間で済むことになる。
【００３５】
以上の処理を「データＮ」を転送するまで繰り返し、「データＮ」の転送を終えると、初期化等の処理を行なって起動が完了する。初期化等の処理に必要な時間をＴｂｏｏｔとすると、起動完了に必要な時間Ｔａは、
Ｔａ＝（Ｔ１＋Ｔｉｎｔ）×Ｎ／２＋Ｔｂｏｏｔ
となり、従来起動完了に必要であった時間
Ｔｚ＝Ｔ１×Ｎ＋Ｔｂｏｏｔ
と比較して、ほぼ１／２に短縮される。
【００３６】
なお、起動完了後は、外部Ｉ／Ｆ１３０はアクセス規則１３１を参照せずに、不揮発性メモリ２００ａ、不揮発性メモリ２００ｂに個別にアクセス可能となるようにする。
【００３７】
以上の構成と処理により、本実施形態によれば、不揮発性メモリ２００ａにアクセスしている間に、不揮発性メモリ２００ｂにアクセスでき、また、不揮発性メモリ２００ｂにアクセスしている間に、不揮発性メモリ２００ａにアクセスできるため、起動用プログラムの転送速度を向上することができ、起動時間が短縮される。
【００３８】
特に、起動用プログラムは、一般的なデータアクセスと異なり、転送順が定められているため、本実施形態の構成により転送時間を効果的に短縮することができる。
【００３９】
また、外部バス１６０の転送速度がメインバス１５０の転送速度よりも遅いことによる遅延と、不揮発性メモリ２００のアクセス時間が揮発性メモリ１２０のアクセス時間よりも遅いことによる遅延の両方を改善することができる。
【００４０】
さらに、大容量の不揮発性メモリをマイコンに内蔵する必要もないため、コスト高を招くこともない。
【００４１】
次に、本実施形態の変形例について説明する。図３は、本実施形態の変形例を示すブロック図である。本変形例では、異なる起動用プログラムを複数用意しておき、起動時にいずれかの起動用プログラムを選択的に転送する場合について説明する。なお、上記実施形態と同じ処理を行なうブロックについては同じ符号を付している。
【００４２】
本図に示すように、マイコン１０１は、ＣＰＵ１１０、内部メモリである揮発性メモリ１２０、外部ＩＦ（インタフェース）１３０、設定記憶部１４０を備えており、それぞれがメインバス１５０により接続されている。外部ＩＦ１３０は、外部バス１６０ａを介して、不揮発性メモリ２００ａと接続し、外部バス１６０ｂを介して、不揮発性メモリ２００ｂと接続している。
【００４３】
本変形例では、異なる起動用プログラムである起動用プログラムＡと起動用プログラムＢとを用意し、それぞれ、転送単位毎に分割する。そして、不揮発性メモリ２００ａには、起動用プログラムＡ１、起動用プログラムＢ２、起動用プログラムＡ３、起動用プログラムＢ４というように、起動用プログラムＡの奇数番目のデータと、起動用プログラムＢの偶数番目のデータとを交互に記録している。また、不揮発性メモリ２００ｂには、起動用プログラムＢ１、起動用プログラムＡ２、起動用プログラムＢ３、起動用プログラムＡ４というように、起動用プログラムＢの奇数番目のデータと、起動用プログラムＡの偶数番目のデータとを交互に記録している。
【００４４】
また、アクセス規則１３１には、起動用プログラムＡを用いて起動する際のアクセス順序と、起動用プログラムＢを用いて起動する際のアクセス順序とが記録されている。
【００４５】
具体的には、起動用プログラムＡを用いて起動する場合には、不揮発性メモリ２００ａの起動用プログラムＡ１、不揮発性メモリ２００ｂの起動用プログラムＡ２、不揮発性メモリ２００ａの起動用プログラムＡ３、不揮発性メモリ２００ｂの起動用プログラムＡ４…の順序でアクセスし、起動用プログラムＢを用いて起動する場合には、不揮発性メモリ２００ｂの起動用プログラムＢ１、不揮発性メモリ２００ａの起動用プログラムＢ２、不揮発性メモリ２００ｂの起動用プログラムＢ３、不揮発性メモリ２００ａの起動用プログラムＢ４…の順序でアクセスする旨が記録されている。
【００４６】
起動用プログラムＡを用いて起動するか、起動用プログラムＢを用いて起動するかは、設定記憶部１４０の設定内容にしたがうものとする。なお、設定記憶部１４０は、マイコン１０１の外部に配置してもよい。
【００４７】
本例では、起動前に起動用プログラムＡを用いて起動するか、起動用プログラムＢを用いて起動するかを、あらかじめ設定記憶部１４０に設定しておくことで、所望の起動プログラムでマイコン１０１を起動させることができ、この場合も、起動時間を短縮することができる。
【符号の説明】
【００４８】
１００…マイコン、１０１…マイコン、１１０…ＣＰＵ、１２０…揮発性メモリ、１３０…外部Ｉ／Ｆ、１３１…アクセス規則、１４０…設定記憶部、１５０…メインバス、１６０…外部バス、２００…不揮発性メモリ、３００…マイコン、３１０…ＣＰＵ、３２０…揮発性メモリ、３５０…メインバス、３６０…外部バス、４００…不揮発性メモリ
【図１】
2012018562.tif 000003
【図２】
2012018562.tif 000004
【図３】
2012018562.tif 000005
【図４】
2012018562.tif 000006
【図５】
2012018562.tif 000007