(57)【要約】      （修正有）【課題】電気的消去・書き換え可能で、かつ安価でサイズも小さいシリアルフラッシュメモリをブートデバイスとして利用できるようにする。【解決手段】シリアル通信制御部を介してシリアルメモリ６に格納されたデータを読み出すデータ取得手段により取得したデータを起動プログラムデータとして外部バス５に供給する第１のデータ供給制御手段４と、ＲＯＭ３に格納されたデータを前記起動プログラムデータとして前記外部バス５に供給する第２のデータ供給制御手段３とを備え、電源起動時に転送される起動プログラムデータが前記第１のデータ供給制御手段４又は前記第２のデータ供給制御手段３に従って外部バスに供給される。即ち、プログラムが確定するまではシリアルフラッシュメモリ６をブートデバイスとして実装し、確定した後にマスクＲＯＭ３へ切り替える。【選択図】図１
2006155303.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭに保持する制御プログラムに従って処理を実行するＣＰＵと、前記ＣＰＵの外部バスに接続するＲＯＭ及びシリアル通信制御部を具備する論理回路と、前記論理回路のシリアル通信制御部に接続するシリアルメモリとを備え、電源起動時に前記ＣＰＵが外部バスを介して前記ＲＡＭに起動プログラムデータを転送する所定の動作を実行する制御装置において、
前記論理回路は、前記シリアル通信制御部を介して前記シリアルメモリに格納されたデータを読み出すデータ取得手段と、前記データ取得手段により取得したデータを前記起動プログラムデータとして前記外部バスに供給する第１のデータ供給制御手段と、前記ＲＯＭに格納されたデータを前記起動プログラムデータとして前記外部バスに供給する第２のデータ供給制御手段とを備え、電源起動時に転送される起動プログラムデータが前記第１のデータ供給制御手段又は前記第２のデータ供給制御手段に従って外部バスに供給されることを特徴とする制御装置。
【請求項２】
前記論理回路は、前記シリアル通信制御部を介して前記シリアルメモリが有効なプログラムデータを格納していることを検出する検出手段を備え、前記検出手段により検出された検出結果に基づいて、前記電源起動時に転送される起動プログラムデータの供給制御が実行されることを特徴とする請求項１記載の制御装置。
【請求項３】
前記検出手段による検出処理は、電源起動後に発生する最初のＣＰＵからのリードアクセスで実行することを特徴とする請求項１又は２記載の制御装置。
【請求項４】
前記検出手段による検出処理は、前記論理回路に与えたシステムリセット解除後に実行することを特徴とする請求項１又は２記載の制御装置。
【請求項５】
前記論理回路は、所定の端子に印加された入力レベルに基づいて、前記電源起動時に転送される起動プログラムデータの供給制御が実行されることを特徴とする請求項１記載の制御装置。
【請求項６】
前記論理回路のシリアル通信制御部は、ＳＰＩ（Ｓｅｒｉａｌ Ｐｅｒｉｐｈｅｒａｌ Ｉｎｔｅｒｆａｃｅ）によって接続するシリアルフラッシュメモリとの通信手段を備えることを特徴とする請求項１記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵに対して供給する外部メモリに保持された起動プログラムデータの制御装置に関するものである。
【背景技術】
【０００２】
一般に制御装置等に用いられて高速な処理を実行するＣＰＵには、電源起動時に外部に接続するＲＯＭ（不揮発性メモリ）に格納したプログラムデータを高速アクセスが可能なＲＡＭにロードして実行する構造を成すものが多く見られ、製品に搭載される場合、プログラムデータを格納しておくＲＯＭには、他のデバイスと比較して安価であるマスクＲＯＭと呼ばれる書き換えのできないデバイスが使用されている。又、このようなＣＰＵにはマスクＲＯＭを外部バスに接続し、起動時に自動的にプログラムデータを読み出して取り込む（ブートシーケンス）機能が付加されている。
【０００３】
しかしながら、コスト的に有利であるマスクＲＯＭではあるが、一度書き込んでしまうとプログラムデータの書き換えができないため、生産後に仕様変更やバグ修正を要する可能性がある場合に不都合を生じてしまうリスクを伴うものである。
【０００４】
このように、プログラムデータの修正が必要な場合には、特許文献１で示されるような書き換え可能なメモリデバイスを用いてプログラムデータの書き換えに備える必要があり、一般的にはＦｌａｓｈＲＯＭと呼ばれる電気的に書き換えが可能なメモリデバイスを代わりに用いることになるが、ＦｌａｓｈＲＯＭは、前述のマスクＲＯＭと比較して高価であり、ＦｌａｓｈＲＯＭへの代替は大幅なコストアップを伴うものであった。
【特許文献１】特開昭６３−２２３９０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のように、コストにシビアな設計現場においては、プログラムデータの修正変更リスクに対して、電気的消去・書き換え可能なFlashＲＯＭの採用によるコストアップをどの程度許容するのかという問題に直面しており、現実的な対応として部分的にプログラム修正手段を備えるためにマスクＲＯＭとFlashＲＯＭを併用し、変更の可能性があるデータの一部をＦｌａｓｈＲＯＭに格納する構成とすることでコストアップの抑制を図ることも実際に行なわれている。
【０００６】
しかしながら、このように複数のデバイスに分割して外部バスに接続する構成では、バスの伝送上の負荷増大を招き、プリント基板の配線パターンの分岐を増やすことになり、高速動作を実現する上で配線パターン設計を困難にするとともに設計自由度が著しく制限されてしまうという問題を生じさせる。
【０００７】
一方、マイクロコントローラ等に接続して小容量のプログラムデータや各種設定データを保持させる用途に用いられてきたシリアルフラッシュメモリという同期型シリアル通信手段によってデータの読み出し・書き込みを実行する不揮発性メモリが、近年、その容量を増大させ、上記構成におけるプログラムデータの保持手段としても利用できる可能性が出てきた。このシリアルフラッシュメモリは従来のＦｌａｓｈＲＯＭに比べ、安価であり、パッケージサイズも小さいため実装面でのメリットも特徴としている。
【０００８】
しかしながら、上述したような構成におけるＣＰＵは起動時に外部バスに接続するデバイスからプログラムデータを読み込み動作を開始する機構を利用しているため、外部バスに接続して制御することができないこのようなシリアルフラッシュメモリからプログラムデータをロードして起動することは不可能であった。
【０００９】
本発明は、上記問題に鑑みてなされたもので、その目的とする処は、ＣＰＵの外部バス上の論理回路が備えるシリアルインターフェースに接続するデバイスとしてプログラムデータを保持したシリアルフラッシュメモリが検出された場合には、当該デバイスにアクセスして読み出したデータをＣＰＵのブートシーケンスに対するデータとして供給し、検出されない場合には外部バスに接続するマスクＲＯＭにデータ出力を許可すべく制御することにより、プログラムが確定するまではシリアルフラッシュメモリをブートデバイスとして実装し、確定した後にマスクＲＯＭへ切り替えることを容易にし、コストアップを抑制しながらも、外部バスに接続デバイスを増加させることなくプログラムデータの修正に備えることを可能とすることである。
【課題を解決するための手段】
【００１０】
本発明は、上記問題点を解決するために以下に示す構成から成る。
【００１１】
ＲＡＭに保持する制御プログラムに従って処理を実行するＣＰＵと、前記ＣＰＵの外部バスに接続するＲＯＭ及びシリアル通信制御部を具備する論理回路と、前記論理回路のシリアル通信制御部に接続するシリアルメモリとを備え、電源起動時に前記ＣＰＵが外部バスを介して前記ＲＡＭに起動プログラムデータを転送する所定の動作を実行する制御装置において、前記論理回路は、前記シリアル通信制御部を介して前記シリアルメモリに格納されたデータを読み出すデータ取得手段と、前記データ取得手段により取得したデータを前記起動プログラムデータとして前記外部バスに供給する第１のデータ供給制御手段と、前記ＲＯＭに格納されたデータを前記起動プログラムデータとして前記外部バスに供給する第２のデータ供給制御手段とを備え、電源起動時に転送される起動プログラムデータが前記第１のデータ供給制御手段又は前記第２のデータ供給制御手段に従って外部バスに供給される。
【００１２】
更に、前記論理回路は、前記シリアル通信制御部を介して前記シリアルメモリが有効なプログラムデータを格納していることを検出する検出手段を備え、前記検出手段により検出された検出結果に基づいて、前記電源起動時に転送される起動プログラムデータの供給制御が実行される。
【００１３】
更に、前記検出手段による検出処理は、電源起動後に発生する最初のＣＰＵからのリードアクセスで実行する。
或いは、前記検出手段による検出処理は、前記論理回路に与えたシステムリセット解除後に実行する。
【００１４】
更に、前記論理回路のシリアル通信制御部はＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）によって接続するシリアルフラッシュメモリとの通信手段を備える。
【発明の効果】
【００１５】
本発明によれば、ＣＰＵの外部バス上の論理回路が備えるシリアルインターフェースに接続するデバイスとしてプログラムデータを保持したシリアルフラッシュメモリが検出された場合には、当該デバイスにアクセスして読み出したデータをＣＰＵのブートシーケンスに対するデータとして供給し、検出されない場合には外部バスに接続するマスクＲＯＭにデータ出力を許可すべく制御することにより、プログラムが確定するまではシリアルフラッシュメモリをブートデバイスとして実装し、確定した後にマスクＲＯＭへ切り替えることを容易にし、コストアップを抑制しながらも、外部バスに接続デバイスを増加させることなくプログラムデータの修正に備えることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面に従って本発明にかかる実施例を詳細に説明する。
【００１７】
＜実施の形態１＞
＜装置説明＞
図１は本発明の実施の形態におけるシステム全体の構成図を示すブロック図である。
【００１８】
図１において、システム全体を制御するＣＰＵ１は内蔵するメモリコントローラによって制御するＲＡＭ２に保持した制御プログラムを実行する。更に、外部バス５を介してマスクＲＯＭ３、ＡＳＩＣ４の各デバイスを接続しており、ＡＳＩＣ４は、本システムが提供する機能を実現するための信号処理回路と共にシリアル通信制御回路を内蔵しており、シリアルインターフェース７を介してシリアルフラッシュメモリ６へアクセス可能な構成となっている。上記構成において、電源起動時にＣＰＵのブートシーケンス機能によってＲＡＭ２上に転送される起動プログラムデータは、マスクＲＯＭ３及びシリアルフラッシュメモリ６の何れか又は両方に保持させておくことが可能である。
【００１９】
図２は上記ＣＰＵのブートシーケンス処理におけるデータ転送を実現する制御方法の一例を示すブロック図である。
【００２０】
図２において、ＣＰＵ１・マスクＲＯＭ３・ＡＳＩＣ４・シリアルフラッシュメモリ６については図１と同じである。ＣＰＵ１は電源起動時にプログラムデータの読み出し先を示す信号であるチップセレクトＡ２０１を駆動する。このチップセレクトＡ２０１は、マスクＲＯＭ３とＡＳＩＣ４の両方に接続されており、更に、ＡＳＩＣ４からはマスクＲＯＭ３が外部バス５に対してデータ出力を許可するチップセレクトＢ２０２信号が与えられる。マスクＲＯＭ３は、チップセレクトＡ２０１とチップセレクトＢ２０２の両方が有効となった場合に保持されているプログラムデータを外部バスに出力するべく制御される。
【００２１】
又、ＡＳＩＣ４は、シリアルクロック２０３、シリアルデータ出力２０４、シリアルデータ入力２０５という信号によってシリアルフラッシュメモリ６に対してアクセスを行う。
【００２２】
以下に簡単に基本的な読み出し動作を説明する。
【００２３】
シリアルクロック２０３に同期してシリアルデータ出力２０４にリード動作を示す命令ビットとリードアドレスを示すアドレスビット等のデータ列を順次駆動すると、シリアルフラッシュメモリ６は、この信号に従い、指定されたアドレスに格納されたデータを所定のタイミングで前記シリアルクロックに同期してシリアルデータ入力２０５に順次出力していく。
【００２４】
図４はシリアルフラッシュメモリに対するアクセス制御タイミングの一例としてＳＰＩ（Ｓｅｒｉａｌ
Ｐｅｒｉｐｈｅｒａｌ Ｉｎｔｅｒｆａｃｅ）と呼ばれる同期型シリアル通信方式を示すものである。このようなシーケンスに従って、ＡＳＩＣ４は、シリアルフラッシュメモリ６から任意のアドレスに格納されたデータを読み出すことが可能である。一般に、シリアルフラッシュメモリは、本実施例に示したＳＰＩ方式によってアクセスされるが、本発明はこれに限定するものではなく、如何なるシリアル通信手段によって制御されるものであっても同様の効果を得ることが可能である。
【００２５】
＜動作説明＞
上記構成を成す本実施例のＣＰＵのブートシーケンスにおけるＡＳＩＣ４の動作について図３に示すフローチャートに従って説明する。
【００２６】
図示しないパワーオンリセット回路により検出された電源起動を示すシステムリセット信号がＡＳＩＣ４に与えられると、ＡＳＩＣ４内部は初期化されてデバイス検出フラグとデバイス種別フラグという２種類のステータスビットがクリアされる。（ステップＳ３０１）デバイス検出フラグは、プログラムデータを保持しているデバイスの検出が完了することによってセットされ、又、デバイス種別フラグは、シリアルインターフェースに接続するシリアルフラッシュメモリに有効なプログラムデータが保持されていることを検出することによってセットされる。即ち、本実施の形態では、デバイス検出フラグ＝１の状態でデバイス種別フラグ＝０である場合にシリアルフラッシュメモリに有効なプログラムデータが保持されていると判定し、逆にデバイス種別フラグ＝１である場合には、マスクＲＯＭを有効な格納先と判断する。又、両ステータスビットともに、セットされた以降は再びシステムリセット信号が与えられるまでその状態を保持される。
【００２７】
初期化完了後は、ＣＰＵ１によりチップセレクトＡ２０１が駆動され有効となる（ブートシーケンスの開始）まで待機し（ステップＳ３０２）、チップセレクトＡ２０１が有効となったことを検出した場合は、前記デバイス検出フラグのチェックを行う（ステップＳ３０３）。ステップＳ３０３において、デバイス検出フラグ＝１である場合には処理はステップＳ３０８へと進み、デバイス検出フラグ＝０である場合には、シリアルインターフェースに接続するシリアルフラッシュメモリに対して所定のアドレスに対するリードを実行する（ステップＳ３０４）。例えば、前記所定アドレスを０００番地とし、ここに所定の値を書き込むことによって当該メモリデバイスが有効なプログラムデータを保持することを示すと規定し、シリアルインターフェースに接続するデバイスがこのデータを出力しない場合には、有効なプログラムを保持するデバイスが存在しないと判断する。ここで判定に用いる所定値とは、シリアルフラッシュメモリがブランク（未書き込み）状態で出力される値、或いはシリアルフラッシュメモリが未実装である状態を示す値（シリアルデータ入力信号をプルアップ［すべて“１”］又はプルダウン［すべて“０”］とし安定した固定値を得る）以外の値である必要がある。
【００２８】
引き続き、処理はステップＳ３０５へと進み、リードデータと前記所定値との比較を行い、不一致の場合には有効なプログラムを保持するシリアルフラッシュメモリが存在しないと判断して、デバイス種別フラグを“１”とする（ステップＳ３０６）。又、一致した場合には、デバイス種別フラグは“０”を保持したままとなり、何れの場合であってもデバイス検出フラグはセットされる（ステップＳ３０７）。
【００２９】
ステップＳ３０８では、デバイス種別フラグをチェックしてプログラムの格納先を判定する。前述のように、デバイス種別フラグ＝０である場合にはシリアルフラッシュメモリを有効なプログラムの格納先と判断し、外部バスに与えられたＣＰＵからのリードアドレスに従ってシリアルインターフェースに対してリードアクセスを実行する（ステップＳ３０９）。引き続き、上記アクセスに対してシリアルフラッシュメモリが返送したデータをＣＰＵへのリードデータとして外部バスに出力する（ステップＳ３１０）。リードデータの出力後、チップセレクトＡが無効となることによってＣＰＵからのリードサイクルが完了したことを検出するまでこれを保持した後（ステップＳ３１１）、外部バスへのデータ出力を終了して次のアクセスに備える（ステップＳ３１２）。
【００３０】
一方、ステップＳ３０８において、デバイス種別フラグ＝１である場合には、マスクＲＯＭを有効なプログラムデータの格納先と判断し、チップセレクトＢ２０２を有効とする（ステップＳ３１３）。この結果、マスクＲＯＭはデータ出力条件であるチップセレクトＡとチップセレクトＢが共に有効となったことを受け、ＣＰＵのリードアクセスに対して該当するデータを外部バスに対して出力する。更に、ＡＳＩＣ４はＣＰＵ１からのリードサイクルの完了を待ち（ステップＳ３１４）、マスクＲＯＭに与えていたチップセレクトＢを無効とすることで外部バスへのデータ出力を終了させ、次のアクセスに備える（ステップＳ３１５）。
【００３１】
上述のように本実施の形態に従えば、ＡＳＩＣが備えるシリアルインターフェースに接続するデバイスとしてプログラムデータを保持したシリアルフラッシュメモリが検出された場合には、当該デバイスにアクセスして読み出したデータをＣＰＵ１のブートシーケンスに対するデータとして供給し、検出されない場合には、外部バスに接続するマスクＲＯＭにデータ出力を許可すべく制御される。これにより、プログラムが確定するまではシリアルフラッシュメモリをブートデバイスとして実装し、確定した後にマスクＲＯＭへ切り替えることを容易にし、コストアップを抑制しながらも、外部バスに接続デバイスを増加させることなくプログラムデータの修正に備えることが可能となる。
【００３２】
＜実施の形態２＞
他の実施の形態として、実施の形態１で示したシリアルインターフェースに接続する有効なプログラムデータを保持するデバイスの有無の検出処理をシステムリセット解除の直後にＡＳＩＣ４が自動的に実行する場合について説明を加える。
【００３３】
本実施の形態では実施の形態１において図３のフローチャートにおけるステップＳ３０３からステップＳ３０７に至るデバイス検出判定処理をＣＰＵ１によるアクセスにより実行するのではなく、システムリセット解除によるＡＳＩＣ４の初期化終了後に自動的に実行し完了させる。
【００３４】
通常、ＣＰＵ１は、電源起動後に内部の動作が安定するまでブートシーケンスを開始せずに待機状態にある。一方、ＡＳＩＣ４の初期化は、システムリセット解除後、即座に完了するために、この時間差を利用して前述のデバイス検出判定処理を自動的に実行させることが可能になる。従って、ＣＰＵ１がブートシーケンスを開始する時点で、既にＡＳＩＣ４ではデバイス検出判定処理が完了し、前記デバイス検出フラグ＝１の状態で待機させることが可能である。
【００３５】
上述したように、本実施の形態ではブートシーケンスのアクセス時間に含まれるデバイス検出判定処理時間を除外することが可能となり、システム全体の起動時間を短縮するという効果が得られる。
【００３６】
＜実施の形態３＞
他の実施の形態として、実施の形態１及び２で示したデバイス検出判定処理を実行せず、ＡＳＩＣ４の特定端子に印加される信号レベルによってプログラム保持デバイスを選択する場合について説明を加える。
【００３７】
本実施の形態では、前述のようなデバイス検出判定処理を実行することなく、システムリセット解除時における所定の端子の入力レベルに従ってプログラムデータを保持するデバイスを選択する。前述した実施の形態に比べて上記所定端子を必要とするという短所を有するものの、システムリセット解除とＣＰＵからのブートシーケンス開始のタイミングにおいて実施の形態２で示したような時間差が十分に得られない場合においては代替手段として有効である。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施の形態におけるシステム全体の構成図を示すブロック図である。
【図２】本発明の実施の形態におけるブートシーケンスにおけるデータ転送制御方法の一例を示すブロック図である。
【図３】本発明の実施の形態におけるブートシーケンスにおけるＡＳＩＣ４の動作を示すフローチャートである。
【図４】シリアルフラッシュメモリに対するアクセス制御タイミングの一例を示すタイミングチャートである。
【符号の説明】
【００３９】
１      ＣＰＵ
２      ＲＡＭ
３      マスクＲＯＭ
４      ＡＳＩＣ
５      外部バス
６      シリアルフラッシュメモリ
７      シリアルインターフェース
２０２  チップセレクトＡ
２０３  チップセレクトＢ
２０４  シリアルクロック
２０５  シリアルデータ出力
２０６  シリアルデータ入力
【図１】
2006155303.tif 000003
【図２】
2006155303.tif 000004
【図３】
2006155303.tif 000005
【図４】
2006155303.tif 000006