(57)【要約】      （修正有）【課題】サブＣＰＵが使用するＲＯＭなどのサイズが小さい安価な構成でありながら、不揮発性メモリの内容を更新する機能を実現することができるメモリ管理装置を提供する。【解決手段】メインＣＰＵ１０６は、１つ以上のサブＣＰＵ１１２にて動作する運用プログラムを外部より受信する受信手段１１３と、サブＣＰＵ１１２にて動作する更新プログラムおよび運用プログラムをサブＣＰＵ１１２へ送信する第１の通信手段１１０とを有する。サブＣＰＵ１１２は、メインＣＰＵ１０６から更新プログラムおよび運用プログラムを受信する第２の通信手段１１３と、第２の通信手段１１３によって受信した更新プログラムを一時的に格納するＲＡＭ１１５と、受信した更新プログラムをＲＡＭ１１５に格納する格納プログラムを記憶する書き換え不可能なメモリ１１４と、第２の通信手段１１３によって受信した運用プログラムを格納する不揮発性メモリ１１４とを有する。【選択図】図１
2006163708.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリと、
を有する１つ以上のサブＣＰＵと、
前記サブＣＰＵにて動作する運用プログラムを外部より受信する受信手段と、
前記サブＣＰＵと通信するための第１の通信手段と、
前記第１の通信手段は前記サブＣＰＵにて動作し前記不揮発性メモリを更新する更新プログラム、および前記運用プログラムを前記サブＣＰＵへ送信する前記第１の通信手段と、
を有するメインＣＰＵと、
前記サブＣＰＵは、
前記メインＣＰＵと通信するための第２の通信手段と、
前記第２の通信手段は前記メインＣＰＵから前記更新プログラム、および前記運用プログラムを受信する前記第２の通信手段と、
前記第２の通信手段によって受信した前記更新プログラムを一時的に格納するＲＡＭ（ランダムアクセスメモリ）と、
前記第２の通信手段によって受信した前記更新プログラムを前記ＲＡＭに格納する格納プログラムを記憶する書き換え不可能なメモリと、
前記不揮発性メモリは前記第２の通信手段によって受信した前記運用プログラムを格納する不揮発性メモリと、
を有するサブＣＰＵと、
を有することを特徴とするメモリ管理装置。
【請求項２】
前記メインＣＰＵは、前記サブＣＰＵにて動作し前記不揮発性メモリを更新する更新プログラムを記憶するメモリと、
を有することを特徴とする請求項１に記載のメモリ管理装置。
【請求項３】
前記サブＣＰＵを複数有し、
前記メインＣＰＵは、
前記メモリは前記複数のサブＣＰＵにて共通に使用できる前記更新プログラムを１つだけ記憶するメモリと、
を有することを特徴とする請求項２に記載のメモリ管理装置。
【請求項４】
前記メインＣＰＵは、
前記受信手段は、前記更新プログラムを外部より入力する受信手段と、
を有することを特徴とする請求項１に記載のメモリ管理装置。
【請求項５】
前記サブＣＰＵは、
電源ＯＮ時に不揮発性メモリに格納された運用プログラムが正常かどうかチェックし、運用プログラムが正常でない場合は運用プログラムを実行しないように制御する制御手段と、
を有することを特徴とする請求項１ないし４いずれかに記載のメモリ管理装置。
【請求項６】
前記サブＣＰＵは、
前記書き換え不可能なメモリは電源ＯＮ時に不揮発性メモリに格納された運用プログラムが正常かどうかチェックするチェックプログラムを記憶している前記書き換え不可能なメモリと、
を有することを特徴とする請求項５に記載のメモリ管理装置。
【請求項７】
前記チェックプログラムは、予め運用プログラムに含まれているチェックサムデータと、前記不揮発性メモリに格納された運用プログラム全体のチェックサムとを比較し、一致している場合に運用プログラムが正常であると判断し、一致していない場合に運用プログラムが正常ではないと判断するチェックプログラム
を有することを特徴とする請求項６に記載のメモリ管理装置。
【請求項８】
前記サブＣＰＵは、
前記書き換え不可能なメモリは、ＲＯＭ（リードオンリーメモリ）
を有することを特徴とする請求項１ないし７いずれかに記載のメモリ管理装置。
【請求項９】
前記サブＣＰＵは、
前記書き換え不可能なメモリは、書き換えの可否を不可能に設定したフラッシュメモリ
を有することを特徴とする請求項１ないし７いずれかに記載のメモリ管理装置。
【請求項１０】
前記メインＣＰＵは、
前記第１の通信手段は、前記サブＣＰＵにて動作し前記不揮発性メモリに格納されている運用プログラムデータとメインＣＰＵより受信する運用プログラムデータとを比較して運用プログラムが正しく書き込まれているかどうか判断するベリファイプログラムを前記サブＣＰＵへ送信する前記第１の通信手段と、
を有するメインＣＰＵと、
前記サブＣＰＵは、
前記第２の通信手段は前記ベリファイプログラム、および運用プログラムデータを受信する前記第２の通信手段と、
前記ＲＡＭは前記第２の通信手段によって受信したベリファイプログラムを一時的に格納するＲＡＭと、
を有するサブＣＰＵと、
を有することを特徴とする請求項１ないし９いずれかに記載のメモリ管理装置。
【請求項１１】
前記メインＣＰＵは、
前記メモリは前記サブＣＰＵにて動作するベリファイプログラムを記憶するメモリと、
を有することを特徴とする請求項１０に記載のメモリ管理装置。
【請求項１２】
前記メインＣＰＵは、
前記受信手段は、前記サブＣＰＵにて動作するベリファイプログラムを外部より入力する受信手段と、
を有することを特徴とする請求項１０に記載のメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンボードで書換可能な不揮発性メモリ（例えばフラッシュメモリ等）を用いて機器の制御を行っている装置に関するものであり、特にメインＣＰＵと不揮発性メモリに記憶された運用プログラムを動作させるサブＣＰＵとから構成されるメモリ管理装置に関するものである。
【背景技術】
【０００２】
従来、メインＣＰＵと不揮発性メモリに記憶された運用プログラムを動作させるサブＣＰＵとから構成されるメモリ管理装置においては、不揮発性メモリの内容変更を次のように行っていた。
【０００３】
例えば特許文献２で述べられているように、サブＣＰＵはメインＣＰＵから不揮発性メモリ内容を変更するデータをシリアル通信を介して受け取り、不揮発性メモリの内容を更新する。このときにサブＣＰＵが実行する不揮発性メモリ書き換えプログラムはサブＣＰＵの管理するメモリのうち書き換え不可能なブート領域（ＲＯＭ（リードオンリーメモリ）または書き換え不能に設定されたフラッシュメモリ）に格納されている。
【０００４】
また、例えば特許文献１で述べられているメモリ管理装置のように、書き換え不可能なブート領域（ＲＯＭや書き換え不能に設定されたフラッシュメモリ）を使用しない構成で不揮発性メモリ内容を更新するメモリ管理装置が考えられている。このような装置においては、まず外部機器から不揮発性メモリ内容を変更するデータを受け取り、不揮発性メモリの内容を更新する為のプログラム（不揮発性メモリ書き換えプログラム）を外部機器から入力し、不揮発性メモリではないメモリ（ＲＡＭなど）に不揮発性メモリ書き換えプログラムを転送する。ここで、外部機器から不揮発性メモリ書き換えプログラムを受信し、不揮発性メモリではないメモリ（ＲＡＭなど）に転送するプログラム（ＲＡＭ転送プログラム）は不揮発性メモリに格納されている。次に、不揮発性メモリ書き換えプログラムを実行し、外部機器から不揮発性メモリの内容を更新するデータを受け取り、不揮発性メモリの内容を更新する。
【特許文献１】特開２００１−０９２６４９号公報
【特許文献２】特開２００１−１１７７４５号公報
【特許文献３】特開平８−１８５３５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のメインＣＰＵと不揮発性メモリに記憶された運用プログラムを動作させるサブＣＰＵから構成されるメモリ管理装置においては、以下のような問題がある。
【０００６】
例えば特許文献２で述べられているメモリ管理装置では、データを受け取り不揮発性メモリへ書き込む為のプログラムを搭載する書き換え不可能なブート領域（ＲＯＭや書き換え不能に設定されたフラッシュメモリ）を含むメモリが必要であり、特に不揮発性メモリへデータを書き込むプログラムの容量は大きいために装置のコストアップにつながってしまうという問題がある。
【０００７】
一方で、書き換え不可能なブート領域（ＲＯＭや書き換え不能に設定されたフラッシュメモリ）を使用しない構成で不揮発性メモリ内容を更新するメモリ管理装置においては、以下のような問題がある。
【０００８】
このようなメモリ管理装置においては、不揮発メモリ書き換えプログラムを不揮発性メモリではないメモリ（例えばＲＡＭ（ランダムアクセスメモリ））に転送し、この不揮発性メモリ書き換えプログラムを実行して不揮発性メモリの内容を更新している。しかし、この様な構成では不揮発性メモリの書き換え中に電源が絶たれるなどの事故によって不揮発性メモリに格納されたプログラムが異常な状態になると、その後の電源復帰時に異常なプログラムが実行されてしまうという問題がある。
【０００９】
本発明は、上に述べたようなメモリ管理装置の問題点を解決して、書き換え不可能なブート領域（ＲＯＭや書き換え不能に設定されたフラッシュメモリ）を含むメモリの容量が小さい安価な構成でありながら、不揮発性メモリの内容を更新する機能を実現することができるメモリ管理装置を提供することを目的とする。また、更に不揮発性メモリの内容が正常でない場合に異常なプログラムを実行させないように制御することができるメモリ管理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の問題を解決するため、本発明のメモリ管理装置は以下のような構成からなる。
【００１１】
即ち、本発明の請求項１によるメモリ管理装置は、書き換え可能な不揮発性メモリと、を有する１つ以上のサブＣＰＵと、前記サブＣＰＵにて動作する運用プログラムを外部より受信する受信手段と、前記サブＣＰＵと通信するための第１の通信手段と、前記第１の通信手段は前記サブＣＰＵにて動作し前記不揮発性メモリを更新する更新プログラム、および前記運用プログラムを前記サブＣＰＵへ送信する前記第１の通信手段と、を有するメインＣＰＵと、前記サブＣＰＵは、前記メインＣＰＵと通信するための第２の通信手段と、前記第２の通信手段は前記メインＣＰＵから前記更新プログラム、および前記運用プログラムを受信する前記第２の通信手段と、前記第２の通信手段によって受信した前記更新プログラムを一時的に格納するＲＡＭ（ランダムアクセスメモリ）と、前記第２の通信手段によって受信した前記更新プログラムを前記ＲＡＭに格納する格納プログラムを記憶する書き換え不可能なメモリと、前記不揮発性メモリは前記第２の通信手段によって受信した前記運用プログラムを格納する不揮発性メモリと、を有するサブＣＰＵと、から構成されることを特徴とする。
【００１２】
また、本発明の請求項２によるメモリ管理装置は、請求項１に記載のメモリ管理装置において、前記メインＣＰＵは、前記サブＣＰＵにて動作し前記不揮発性メモリを更新する更新プログラムを記憶するメモリと、から構成されることを特徴とする。
【００１３】
また、本発明の請求項３によるメモリ管理装置は、請求項２に記載のメモリ管理装置において、前記サブＣＰＵを複数有し、前記メインＣＰＵは、前記メモリは前記複数のサブＣＰＵにて共通に使用できる前記更新プログラムを１つだけ記憶するメモリと、から構成されることを特徴とする。
【００１４】
また、本発明の請求項４によるメモリ管理装置は、請求項１に記載のメモリ管理装置において、前記メインＣＰＵは、前記受信手段は、前記更新プログラムを外部より入力する受信手段と、から構成されることを特徴とする。
【００１５】
また、本発明の請求項５によるメモリ管理装置は、請求項１ないし４いずれかに記載のメモリ管理装置において、前記サブＣＰＵは、電源ＯＮ時に不揮発性メモリに格納された運用プログラムが正常かどうかチェックし、運用プログラムが正常でない場合は運用プログラムを実行しないように制御する制御手段と、から構成されることを特徴とする。
【００１６】
また、本発明の請求項６によるメモリ管理装置は、請求項５に記載のメモリ管理装置において、前記サブＣＰＵは、前記書き換え不可能なメモリは電源ＯＮ時に不揮発性メモリに格納された運用プログラムが正常かどうかチェックするチェックプログラムを記憶している前記書き換え不可能なメモリと、から構成されることを特徴とする。
【００１７】
また、本発明の請求項７によるメモリ管理装置は、請求項６に記載のメモリ管理装置において、前記チェックプログラムは、予め運用プログラムに含まれているチェックサムデータと、前記不揮発性メモリに格納された運用プログラム全体のチェックサムとを比較し、一致している場合に運用プログラムが正常であると判断し、一致していない場合に運用プログラムが正常ではないと判断するチェックプログラムから構成されることを特徴とする。
【００１８】
また、本発明の請求項８によるメモリ管理装置は、請求項１ないし７いずれかに記載のメモリ管理装置において、前記サブＣＰＵは、前記書き換え不可能なメモリは、ＲＯＭ（リードオンリーメモリ）から構成されることを特徴とする。
【００１９】
また、本発明の請求項９によるメモリ管理装置は、請求項１ないし７いずれかに記載のメモリ管理装置において、前記サブＣＰＵは、前記書き換え不可能なメモリは、書き換えの可否を不可能に設定したフラッシュメモリから構成されることを特徴とする。
【００２０】
また、本発明の請求項１０によるメモリ管理装置は、請求項１ないし９いずれかに記載のメモリ管理装置において、前記メインＣＰＵは、前記第１の通信手段は、前記サブＣＰＵにて動作し前記不揮発性メモリに格納されている運用プログラムデータとメインＣＰＵより受信する運用プログラムデータとを比較して運用プログラムが正しく書き込まれているかどうか判断するベリファイプログラムを前記サブＣＰＵへ送信する前記第１の通信手段と、を有するメインＣＰＵと、前記サブＣＰＵは、前記第２の通信手段は前記ベリファイプログラム、および運用プログラムデータを受信する前記第２の通信手段と、前記ＲＡＭは前記第２の通信手段によって受信したベリファイプログラムを一時的に格納するＲＡＭと、を有するサブＣＰＵと、から構成されることを特徴とする。
【００２１】
また、本発明の請求項１１によるメモリ管理装置は、請求項１０に記載のメモリ管理装置において、前記メインＣＰＵは、前記メモリは前記サブＣＰＵにて動作するベリファイプログラムを記憶するメモリと、から構成されることを特徴とする。
【００２２】
また、本発明の請求項１２によるメモリ管理装置は、前記メインＣＰＵは、前記受信手段は、前記サブＣＰＵにて動作するベリファイプログラムを外部より入力する受信手段と、から構成されることを特徴とする。
【発明の効果】
【００２３】
本発明のメモリ管理装置によれば、不揮発性メモリ書き換えプログラムを予め書き換え不可能なブート領域（ＲＯＭや書き換え不能に設定されたフラッシュメモリ）に記憶しておく必要がないため、ＲＯＭや書き換え不能に設定されたフラッシュメモリの容量を小さく抑えることができるメモリ管理装置を提供することができる。
【００２４】
また、装置の電源ＯＮ時に実行するプログラムにおいて、不揮発性メモリに記憶されたプログラムが正常であるか否か確認する処理を実行することにより、不揮発性メモリの内容が異常である場合に、不揮発性メモリに記憶された異常なプログラムを実行させないように制御することができるメモリ管理装置を提供することができる。
【発明を実施するための最良の形態】
【００２５】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例１】
【００２６】
本発明の第１の実施例を以下に示す。本実施例の説明では、メインＣＰＵと不揮発性メモリに記憶された運用プログラムを動作させるサブＣＰＵから構成されるメモリ管理装置において、不揮発性メモリ書き換えプログラムをサブＣＰＵの書き換え不可能なブート領域（ＲＯＭや書き換え不能に設定されたフラッシュメモリ）に搭載せず、不揮発性メモリを更新する際には、予め書き換え不可能なブート領域に搭載している転送プログラムによって不揮発性メモリ書き換えプログラムをメインＣＰＵから受信してＲＡＭへ転送し、その後不揮発性メモリ書き換えプログラムを実行し、運用プログラムをメインＣＰＵから受信して不揮発性メモリの内容を更新するメモリ管理装置について説明する。
【００２７】
図１に本実施例のメモリ管理装置のブロック図を示す。図２に本実施例のサブＣＰＵの運用プログラム実行中のフラッシュメモリとＲＡＭの内容を説明する図を示す。図３に本実施例のサブＣＰＵの不揮発性メモリ書き換え中のフラッシュメモリとＲＡＭの内容を説明する図を示す。図４に本実施例のメモリ管理装置において、不揮発性メモリの内容を更新する場合の処理のフローチャートを示す。
【００２８】
図１、図２、図３および図４を使って本実施例を説明する。
まず、本実施例のメモリ管理装置の運用中におけるサブＣＰＵのフラッシュメモリやＲＡＭの状態について説明する。
【００２９】
図２において、２０１はフラッシュメモリ１１２、１１６の領域と内容を示す。また、２０２はＲＡＭ１１３、１１７の領域と内容を示す。図２に示すように、フラッシュメモリ２０１は書き換え不可能に設定された領域２０３と書き換え可能に設定された領域２０４とに分けられる。これは、フラッシュメモリの領域毎に書き換えの可能・不可能を予め設定しておくことで分けることができる。書き換え不可能領域２０３には電源ＯＮ時に最初に実行されるプログラムが搭載されている。また、書き換え可能領域２０４には運用プログラムが格納されている。運用プログラムの実行中はＲＡＭはワークエリア２０５として、運用プログラムの実行中に一時的に記憶する変数などの値を記憶するために使用されている。ここでは、運用プログラムによるサブＣＰＵの制御対象は比較的少なく、従ってシステム全体のコストを抑えるためにサブＣＰＵの管理するフラッシュメモリやＲＡＭの容量はメインＣＰＵのフラッシュメモリやＲＡＭよりも小さい場合を想定している。
【００３０】
次に、本実施例のメモリ管理装置のサブＣＰＵの運用プログラムを更新する場合のサブＣＰＵのフラッシュメモリやＲＡＭの状態について図３により説明する。図３において、３０１はフラッシュメモリ１１２、１１６の領域と内容を示す。また、３０２はＲＡＭ１１３、１１７の領域と内容を示す。３０３はフラッシュメモリの書き換え不可能領域、３０４は書き換え不可能領域に搭載される転送プログラム、３０５はフラッシュメモリの書き換え可能領域、３０６は転送プログラム３０４によってメインＣＰＵから受信しＲＡＭ３０２に格納されたフラッシュメモリ書き換えプログラムである。
【００３１】
次に、本実施例のメモリ管理装置のサブＣＰＵの運用プログラムを更新する場合の処理について図４により説明する。まず、メインＣＰＵ１０６が外部の書き換えデータ出力装置１０１からメインＣＰＵのシリアル通信制御部Ａ１０７を通じて書き換え対象のＣＰＵとこれから受信する運用プログラムのサイズを指定されて開始指示を受けると、ステップＳ４０１においてメインＣＰＵ１０６は書き換えデータ出力装置１０１から指定されたサブＣＰＵ−Ａ１１２（本実施例ではサブＣＰＵ−Ａが指定された場合について説明する）へシリアル通信制御部Ｂ１１０と、サブＣＰＵ−Ａのシリアル通信制御部１１３を通じ、これから送信する運用プログラムのサイズを指定して書き換え開始指示を出力する。サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６より書き換え開始指示を受けると、ステップＳ４０２にて運用プログラムの動作を中断し、転送プログラム３０４を実行してメインＣＰＵ１０６からフラッシュメモリ書き換えプログラムが送信されてくるのを待つ。
【００３２】
次に、ステップＳ４０３においてメインＣＰＵ１０６はメインＣＰＵのフラッシュメモリ１０８よりサブＣＰＵ−Ａで動作するフラッシュメモリ書き換えプログラムを読み出し、シリアル通信制御部Ｂ１１０、シリアル通信制御部１１３を通じてサブＣＰＵ−Ａ１１２へ転送する。ここで、フラッシュメモリ書き換えプログラムについてサブＣＰＵ−Ａ、およびサブＣＰＵ−Ｂで共通で使用できる場合はフラッシュメモリ１０８にそれぞれ格納しておく必要がなく、メインＣＰＵのフラッシュメモリ１０８の使用効率を向上させることができる。
【００３３】
次にステップＳ４０４においてサブＣＰＵ−Ａ１１２はシリアル通信制御部１１３を通じてフラッシュメモリ書き換えプログラムをメインＣＰＵ１０６から受信し、ＲＡＭ１１５に格納する。フラッシュメモリ書き換えプログラムの転送時において、サブＣＰＵ−Ａ１０６は書き換え不可能領域３０３に搭載されている転送プログラム３０４を実行し、転送が終了するとＲＡＭ３０２にフラッシュメモリ書き換えプログラム３０６が格納された状態になる。フラッシュメモリ書き換えプログラムの転送が終了すると、ステップＳ４０５においてサブＣＰＵ−Ａ１１２はフラッシュメモリ３０１のうち書き換え可能領域３０５のデータを消去する。
【００３４】
次にステップＳ４０６において、メインＣＰＵは書き換えデータ出力装置１０１からサブＣＰＵ−Ａ１１２で動作する運用プログラムを受信する。このとき、運用プログラム全体を一度に転送することができないため、書き換えデータ出力装置１０１はメインＣＰＵ１０６へ所定のサイズのデータ出力する。
【００３５】
次にステップＳ４０７においてメインＣＰＵ１０６は書き換えデータ出力装置１０１から受信したデータをシリアル通信制御部Ｂ１１０を通じてサブＣＰＵ−Ａ１１２へ送信し、サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６からシリアル通信制御部１１３を通じてデータを受信する。次にステップＳ４０８においてサブＣＰＵ−Ａ１１２は受信したデータをフラッシュメモリ１１４の書き換え可能領域３０５に格納する。
【００３６】
次にステップＳ４０９においてサブＣＰＵ−Ａ１１２はステップＳ４０１において書き換えデータ出力装置１０１から受信した運用プログラム全体のサイズとフラッシュメモリの書き換えを開始して以来受信した総データ量とを比較し、運用プログラム全体をフラッシュメモリに格納したかどうか判断する。ステップＳ４０９においてまだ運用プログラム全体をフラッシュメモリに格納していないと判断すると、ステップＳ４０６へ戻り、運用プログラムの受信処理とフラッシュメモリへの格納処理を続ける。ステップＳ４０９において運用プログラム全体を受信したと判断すると、フラッシュメモリの書き換えを終了する。
【００３７】
以上説明したように、本実施例のメモリ管理装置においては、サブＣＰＵ−Ａ１１２のフラッシュメモリの書き換え不可能領域３０３を広く取れない場合や、フラッシュメモリを書き換え不可能領域に設定することが出来ず、小さな容量のＲＯＭにブートプログラムを納めた場合などの安価なシステム構成であっても、フラッシュメモリを書き換えるプログラムをメインＣＰＵ１０６の管理するフラッシュメモリ１０８に記憶しておき、サブＣＰＵのフラッシュメモリ書き換え時には書き換えプログラムをメインＣＰＵの管理するフラッシュメモリ１０８からサブＣＰＵのＲＡＭ１１５、１１９へ転送し、ＲＡＭに格納された書き換えプログラムを実行することによりフラッシュメモリ１１４、１１８を更新することができる。
【００３８】
また、メインＣＰＵと複数のサブＣＰＵを有するシステムにおいて、サブＣＰＵのフラッシュメモリ書き換えプログラムを共通して使用可能であれば、メインＣＰＵの管理するフラッシュメモリ１０８には１つの書き換えプログラムを搭載しておけば済むので、サブＣＰＵが管理するフラッシュメモリ１１４、１１８に別々に搭載するよりも装置全体のメモリ使用効率を向上させることができる。
【００３９】
次に、本実施例のメモリ管理装置において、フラッシュメモリの書き換え中に電源が絶たれるなどの事故が発生し、フラッシュメモリに記憶されたデータが異常になった場合の電源ＯＮ時の処理について説明する。
【００４０】
図５に本実施例のメモリ管理装置における電源ＯＮ時のサブＣＰＵの処理を説明するフローチャート実施例のメモリ管理装置における電源ＯＮ時のサブＣＰＵの処理を説明するフローチャートを示す。この電源ＯＮ時の処理はサブＣＰＵ１１６においても同様に実行される。
【００４１】
まず、電源がＯＮされると、ステップＳ５０１において、サブＣＰＵ１１２はフラッシュメモリに格納されている運用プログラムが正常かどうか判断する。ここで、図２に示すようにこの判断を行うチェックプログラム２０６はフラッシュメモリ２０１の書き換え不可能領域２０３に格納されているブートプログラムに含まれる。フラッシュメモリの書き換え可能領域２０５に格納されている運用プログラムが正常かどうか判断する方法としては、例えばフラッシュメモリ上の所定のアドレスにチェックサムを格納する（チェックサムデータはフラッシュメモリに格納するデータに含まれる）ようにしておき、これをチェックすることでフラッシュメモリに格納されている運用プログラムが正常かどうか判断することができる。
【００４２】
次に、ステップＳ５０１においてフラッシュメモリに格納されている運用プログラムが正常であると判断すると、ステップＳ５０４に遷移し、フラッシュメモリの書き換え可能領域２０５に格納されている運用プログラムを実行する。
【００４３】
また、ステップＳ５０１においてフラッシュメモリに格納されている運用プログラムが異常であると判断すると、ステップＳ５０２へ遷移し、サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６へ運用プログラムの更新を要求し、フラッシュメモリの書き換え可能領域２０５に格納されている運用プログラムを実行しない。
【００４４】
次にステップＳ５０３において運用プログラムの更新を行う。運用プログラムの更新は上で述べた手順で行われる。次にステップＳ５０４において、サブＣＰＵ−Ａ１１２は運用プログラムを実行開始する。
【００４５】
以上説明したように、本実施例のメモリ管理装置においては、フラッシュメモリの書き換え可能領域に格納された運用プログラムが正常かどうかチェックするプログラムをＲＯＭまたはフラッシュメモリの書き換え不可能領域に搭載し、電源ＯＮ時にチェックを行うことにより、フラッシュメモリの書き換え可能領域に格納された運用プログラムが異常な場合は運用プログラムを実行させないように制御することができる。
【実施例２】
【００４６】
本発明の第２の実施例を以下に示す。第１の実施例のメモリ管理装置では、サブＣＰＵのフラッシュメモリの書き換え不可能領域が狭い場合や、フラッシュメモリを書き換え不可能領域に設定することが出来ず、小さな容量のＲＯＭにブートプログラムを納めた場合などの安価なシステム構成であっても、フラッシュメモリを書き換えるプログラムをメインＣＰＵの管理するフラッシュメモリに記憶しておき、サブＣＰＵのフラッシュメモリ書き換え時には書き換えプログラムをメインＣＰＵの管理するフラッシュメモリからサブＣＰＵの管理するＲＡＭへ転送し、ＲＡＭに格納された書き換えプログラムを実行することによりサブＣＰＵの管理するフラッシュメモリを更新することができるメモリ管理装置について説明した。
【００４７】
本実施例の説明では、フラッシュメモリ書き換えプログラムをメインＣＰＵの管理するフラッシュメモリに記憶しておく代わりに、外部の書き換えデータ出力装置から受信して実行することによりサブＣＰＵの管理するフラッシュメモリの更新することができるメモリ管理装置について説明する。
【００４８】
図６に本実施例のメモリ管理装置において、不揮発性メモリの内容を更新する場合の処理のフローチャートを示す。
【００４９】
図１、図３および図６を使って本実施例を説明する。
本実施例のメモリ管理装置の運用中におけるサブＣＰＵのフラッシュメモリやＲＡＭの状態は第１の実施例と同様である。
【００５０】
また、本実施例のメモリ管理装置のサブＣＰＵの運用プログラムを更新する場合のサブＣＰＵのフラッシュメモリやＲＡＭの状態についても、第１の実施例と同様である。
【００５１】
次に、本実施例のメモリ管理装置のサブＣＰＵの運用プログラムを更新する場合の処理について図６により説明する。まず、メインＣＰＵ１０６が外部の書き換えデータ出力装置１０１からメインＣＰＵのシリアル通信制御部Ａ１０７を通じて書き換え対象のＣＰＵとこれから受信する運用プログラムのサイズを指定されて開始指示を受けると、ステップＳ６０１においてメインＣＰＵ１０６は書き換えデータ出力装置１０１から指定されたサブＣＰＵ−Ａ１１２（本実施例ではサブＣＰＵ−Ａが指定された場合について説明する）へシリアル通信制御部Ｂ１１０と、サブＣＰＵ−Ａのシリアル通信制御部１１３を通じ、これから送信する運用プログラムのサイズを指定して書き換え開始指示を出力する。サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６より書き換え開始指示を受けると、ステップＳ６０２にて運用プログラムの動作を中断し、転送プログラム３０４を実行してメインＣＰＵ１０６からフラッシュメモリ書き換えプログラムが送信されてくるのを待つ。
【００５２】
次に、ステップＳ６０３においてメインＣＰＵ１０６は書き換えデータ出力装置１０１からサブＣＰＵ−Ａで動作するフラッシュメモリ書き換えプログラムをシリアル通信制御部Ａ１０７を通じて受信し、シリアル通信制御部Ｂ１１０、シリアル通信制御部１１３を通じてサブＣＰＵ−Ａ１１２へ転送する。次にステップＳ６０４においてサブＣＰＵ−Ａ１１２はシリアル通信制御部１１３を通じてフラッシュメモリ書き換えプログラムをメインＣＰＵ１０６から受信し、ＲＡＭ１１５に格納する。フラッシュメモリ書き換えプログラムの転送時において、サブＣＰＵ−Ａ１０６は書き換え不可能領域３０３に搭載されている転送プログラム３０４を実行し、転送が終了するとＲＡＭ３０２にフラッシュメモリ書き換えプログラム３０６が格納された状態になる。フラッシュメモリ書き換えプログラムの転送が終了すると、ステップＳ６０５においてサブＣＰＵ−Ａ１１２はフラッシュメモリ３０１のうち書き換え可能領域３０５のデータを消去する。
【００５３】
次にステップＳ６０６において、メインＣＰＵは書き換えデータ出力装置１０１からサブＣＰＵ−Ａ１１２で動作する運用プログラムを受信する。このとき、運用プログラム全体を一度に転送することができないため、書き換えデータ出力装置１０１はメインＣＰＵ１０６へ所定のサイズのデータ出力する。
【００５４】
次にステップＳ６０７においてメインＣＰＵ１０６は書き換えデータ出力装置１０１から受信したデータをシリアル通信制御部Ｂ１１０を通じてサブＣＰＵ−Ａ１１２へ送信し、サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６からシリアル通信制御部１１３を通じてデータを受信する。
【００５５】
次にステップＳ６０８においてサブＣＰＵ−Ａ１１２は受信したデータをフラッシュメモリ１１４の書き換え可能領域３０５に格納する。次にステップＳ６０９においてサブＣＰＵ−Ａ１１２はステップＳ６０１において書き換えデータ出力装置１０１から受信した運用プログラム全体のサイズとフラッシュメモリの書き換えを開始して以来受信した総データ量とを比較し、運用プログラム全体をフラッシュメモリに格納したかどうか判断する。ステップＳ６０９においてまだ運用プログラム全体をフラッシュメモリに格納していないと判断すると、ステップＳ６０６へ戻り、運用プログラムの受信処理とフラッシュメモリへの格納処理を続ける。ステップＳ６０９において運用プログラム全体を受信したと判断すると、フラッシュメモリの書き換えを終了する。
【００５６】
以上説明したように、本実施例のメモリ管理装置においては、サブＣＰＵ−Ａ１１２のフラッシュメモリの書き換え不可能領域３０３を広く取れない場合や、フラッシュメモリを書き換え不可能領域に設定することが出来ず、小さな容量のＲＯＭにブートプログラムを納めた場合などの安価なシステム構成であっても、サブＣＰＵのフラッシュメモリ書き換え時にそのためのプログラムを外部の書き換えデータ出力装置から受信し、シリアル通信制御部を通じてサブＣＰＵのＲＡＭ１１５、１１９へ転送し、ＲＡＭに格納された書き換えプログラムを実行することによりフラッシュメモリ１１４、１１８を更新することができる。さらに、メインＣＰＵの管理するメモリも消費しないため、装置のメモリ使用効率を向上させることができる。
【００５７】
本実施例のメモリ管理装置において、フラッシュメモリの書き換え中に電源が絶たれるなどの事故が発生し、フラッシュメモリに記憶されたデータが異常になった場合の電源ＯＮ時の処理については第１の実施例と同様である。
【実施例３】
【００５８】
本発明の第３の実施例を以下に示す。第１の実施例では、サブＣＰＵのフラッシュメモリの書き換え不可能領域が狭い場合や、フラッシュメモリを書き換え不可能領域に設定することが出来ず、小さな容量のＲＯＭにブートプログラムを納めた場合などの安価なシステム構成であっても、フラッシュメモリを書き換えるプログラムをメインＣＰＵの管理するフラッシュメモリに記憶しておき、サブＣＰＵのフラッシュメモリ書き換え時には書き換えプログラムをメインＣＰＵの管理するフラッシュメモリからサブＣＰＵの管理するＲＡＭへ転送し、ＲＡＭに格納された書き換えプログラムを実行することによりサブＣＰＵの管理するフラッシュメモリを更新することができるメモリ管理装置について説明した。
【００５９】
第２の実施例では、サブＣＰＵのフラッシュメモリ書き換え時にそのためのプログラムを外部の書き換えデータ出力装置から受信し、シリアル通信制御部を通じてサブＣＰＵのＲＡＭ１１５、１１９へ転送し、ＲＡＭに格納された書き換えプログラムを実行することによりフラッシュメモリ１１４、１１８を更新することができるメモリ管理装置について説明した。
【００６０】
本実施例の説明では、サブＣＰＵのフラッシュメモリの書き換え不可能領域が狭い場合や、フラッシュメモリを書き換え不可能領域に設定することが出来ず、小さな容量のＲＯＭにブートプログラムを納めた場合などの安価なシステム構成であっても、フラッシュメモリの内容が正しく書き換えられたかどうかチェックするために、書き換えデータ出力装置からデータを受信し、フラッシュメモリに書かれているデータと比較を行うベリファイのプログラムについてメインＣＰＵの管理するフラッシュメモリから転送して実行させるメモリ管理装置について説明する。
【００６１】
図７に本実施例のメモリ管理装置において、フラッシュメモリの内容が正しく書き換えられたかどうかチェックするために、書き換えデータ出力装置からデータを受信し、フラッシュメモリに書かれているデータと比較を行うベリファイのプログラムについてメインＣＰＵの管理するフラッシュメモリから転送して実行させる処理のフローチャートを示す。
【００６２】
図８に本実施例のサブＣＰＵの不揮発性メモリベリファイ中のフラッシュメモリとＲＡＭの内容を説明する図を示す。
【００６３】
図１、図７および図８を使って本実施例を説明する。
【００６４】
まず、本実施例のメモリ管理装置のサブＣＰＵの運用プログラムが正しく書き込まれたかどうかチェック（ベリファイ）する場合のサブＣＰＵのフラッシュメモリやＲＡＭの状態について図８により説明する。図８において、８０１はフラッシュメモリ１１２、１１６の領域と内容を示す。また、８０２はＲＡＭ１１３、１１７の領域と内容を示す。８０３はフラッシュメモリの書き換え不可能領域、８０４は書き換え不可能領域に搭載される転送プログラム、８０５はフラッシュメモリの書き換え可能領域、８０６は転送プログラム８０４によってメインＣＰＵから受信しＲＡＭ８０２に格納されたフラッシュメモリベリファイプログラムである。
【００６５】
次に、本実施例のメモリ管理装置のサブＣＰＵの運用プログラムが正しく書き込まれたかどうかチェック（ベリファイ）する処理について図７により説明する。まず、メインＣＰＵ１０６が外部の書き換えデータ出力装置１０１からメインＣＰＵのシリアル通信制御部Ａ１０７を通じてベリファイ対象のＣＰＵとこれから受信する運用プログラムのサイズを指定されてベリファイ開始指示を受けると、ステップＳ７０１においてメインＣＰＵ１０６は書き換えデータ出力装置１０１から指定されたサブＣＰＵ−Ａ１１２（本実施例ではサブＣＰＵ−Ａが指定された場合について説明する）へシリアル通信制御部Ｂ１１０と、サブＣＰＵ−Ａのシリアル通信制御部１１３を通じ、これから送信する運用プログラムのサイズを指定してベリファイ開始指示を出力する。サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６よりベリファイ開始指示を受けると、ステップＳ７０２にて運用プログラムの動作を中断し、転送プログラム８０４を実行してメインＣＰＵ１０６からフラッシュメモリベリファイプログラムが送信されてくるのを待つ。
【００６６】
次に、ステップＳ７０３においてメインＣＰＵ１０６はメインＣＰＵのフラッシュメモリ１０８よりサブＣＰＵ−Ａで動作するフラッシュメモリベリファイプログラムを読み出し、シリアル通信制御部Ｂ１１０、シリアル通信制御部１１３を通じてサブＣＰＵ−Ａ１１２へ転送する。ここで、フラッシュメモリベリファイプログラムについてサブＣＰＵ−Ａ、およびサブＣＰＵ−Ｂで共通で使用できる場合はフラッシュメモリ１０８にそれぞれ格納しておく必要がなく、メインＣＰＵのフラッシュメモリ１０８の使用効率を向上させることができる。
【００６７】
次にステップＳ７０４においてサブＣＰＵ−Ａ１１２はシリアル通信制御部１１３を通じてフラッシュメモリベリファイプログラムをメインＣＰＵ１０６から受信し、ＲＡＭ１１５に格納する。フラッシュメモリベリファイプログラムの転送時において、サブＣＰＵ−Ａ１０６は書き換え不可能領域８０３に搭載されている転送プログラム８０４を実行し、転送が終了するとＲＡＭ８０２にフラッシュメモリベリファイプログラム８０６が格納された状態になる。フラッシュメモリベリファイプログラムの転送が終了すると、ステップＳ７０５において、メインＣＰＵは書き換えデータ出力装置１０１からサブＣＰＵ−Ａ１１２で動作する運用プログラムを受信する。このとき、運用プログラム全体を一度に転送・比較することができないため、書き換えデータ出力装置１０１はメインＣＰＵ１０６へ所定のサイズのデータ出力する。
【００６８】
次にステップＳ７０６においてメインＣＰＵ１０６は書き換えデータ出力装置１０１から受信したデータをシリアル通信制御部Ｂ１１０を通じてサブＣＰＵ−Ａ１１２へ送信し、サブＣＰＵ−Ａ１１２はメインＣＰＵ１０６からシリアル通信制御部１１３を通じてデータを受信する。
【００６９】
次にステップＳ７０７においてサブＣＰＵ−Ａ１１２は受信したデータをフラッシュメモリ１１４の書き換え可能領域３０５から読み出したデータと比較する。ステップＳ７０８において、ステップＳ７０７の比較結果が不一致ならばステップＳ７１１へ遷移し、運用プログラムは正しく書き換えられていないと判断して処理を終了する。
【００７０】
また、ステップＳ７０８においてステップＳ７０７の比較結果が一致ならばステップＳ７０９へ遷移する。次にステップＳ７０９においてサブＣＰＵ−Ａ１１２はステップＳ７０１において書き換えデータ出力装置１０１から受信した運用プログラム全体のサイズとフラッシュメモリのベリファイを開始して以来受信した総データ量とを比較し、運用プログラム全体をフラッシュメモリのデータと比較したかどうか判断する。ステップＳ７０９においてまだ運用プログラム全体をフラッシュメモリのデータと比較していないと判断すると、ステップＳ７０５へ戻り、運用プログラムの受信処理とフラッシュメモリのデータとの比較処理を続ける。ステップＳ７０９において運用プログラム全体を受信したと判断すると、ステップＳ７１０へ遷移する。ステップＳ７１０において、運用プログラムは正しく書き換えられていると判断し、フラッシュメモリのベリファイ処理を終了する。
【００７１】
本実施例の説明ではベリファイのプログラムをメインＣＰＵの管理するフラッシュメモリ１０８に搭載し、ベリファイ実行時にシリアル通信制御部を通じてサブＣＰＵの管理するＲＡＭ１１５に転送するメモリ管理装置について説明した。ここで、第２の実施例と同様にベリファイのプログラムについても書き換えデータ出力装置１０１から受信してサブＣＰＵの管理するＲＡＭ１１５に転送しても実現可能である。
【００７２】
以上説明したように、本実施例のメモリ管理装置においては、サブＣＰＵのフラッシュメモリの書き換え不可能領域が狭い場合や、フラッシュメモリを書き換え不可能領域に設定することが出来ず、小さな容量のＲＯＭにブートプログラムを納めた場合などの安価なシステム構成であっても、フラッシュメモリが正しく書き換えられたかどうかチェックするベリファイプログラムをメインＣＰＵの管理するフラッシュメモリに記憶しておき、サブＣＰＵのフラッシュメモリベリファイ実行時にはベリファイプログラムをメインＣＰＵの管理するフラッシュメモリからサブＣＰＵの管理するＲＡＭへ転送し、ＲＡＭに格納されたベリファイプログラムを実行することによりサブＣＰＵの管理するフラッシュメモリのベリファイ処理を行うことができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施例を説明するメモリ管理装置のブロック図である。
【図２】本発明の実施例におけるサブＣＰＵの運用プログラム実行中のフラッシュメモリとＲＡＭの内容を説明する図である。
【図３】本発明の実施例におけるサブＣＰＵの不揮発性メモリ書き換え中のフラッシュメモリとＲＡＭの内容を説明する図である。
【図４】本発明の第１の実施例のメモリ管理装置において、不揮発性メモリの内容を更新する場合の処理を説明するフローチャートである。
【図５】本発明の実施例のメモリ管理装置における電源ＯＮ時のサブＣＰＵの処理を説明するフローチャートである。
【図６】本発明の第２の実施例のメモリ管理装置において、不揮発性メモリの内容を更新する場合の処理を説明するフローチャートである。
【図７】本発明の第３の実施例を実施例のメモリ管理装置において、フラッシュメモリの内容が正しく書き換えられたかどうかチェックする処理のフローチャートである。
【図８】本発明の第３の実施例のサブＣＰＵの不揮発性メモリベリファイ中のフラッシュメモリとＲＡＭの内容を説明する図である。
【符号の説明】
【００７４】
１０１  書き換えデータ出力装置
１０２  メモリ管理装置
１０３  メインＣＰＵ制御ボード
１０４  サブＣＰＵ−Ａ制御ボード
１０５  サブＣＰＵ−Ｂ制御ボード
１０６  メインＣＰＵ
【図１】
2006163708.tif 000003
【図２】
2006163708.tif 000004
【図３】
2006163708.tif 000005
【図４】
2006163708.tif 000006
【図５】
2006163708.tif 000007
【図６】
2006163708.tif 000008
【図７】
2006163708.tif 000009
【図８】
2006163708.tif 000010