(57)【要約】【課題】プログラム格納先を変えてもコンパイル環境を変えずに済むメモリ制御を行う。【解決手段】メモリ制御回路１３は、ＣＰＵで実行すべきプログラムがＦＬＡＳＨの第１アドレス領域と第２アドレス領域のいずれに格納されていても、ＣＰＵからは当該プログラムが第１アドレス領域に格納されているものとして認識されるように、ＣＰＵとＦＬＡＳＨとの間でアドレス変換を行うアドレス変換部１３１を有する。【選択図】図３
2015138335.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ［central processing unit］で実行すべきプログラムが不揮発性メモリの第１アドレス領域と第２アドレス領域のいずれに格納されていても、前記ＣＰＵからは当該プログラムが前記第１アドレス領域に格納されているものとして認識されるように、前記ＣＰＵと前記不揮発性メモリとの間でアドレス変換を行うアドレス変換部を有することを特徴とするメモリ制御回路。
【請求項２】
レジスタ値を格納するレジスタ部をさらに有し、
前記アドレス変換部は、前記レジスタ値に応じてアドレス変換を行うか否かを決定することを特徴とする請求項１に記載のメモリ制御回路。
【請求項３】
前記レジスタ部は、前記レジスタ値として、
前記第１アドレス領域の先頭アドレスを設定する第１レジスタ値と、
前記第１アドレス領域に格納されたプログラムの大きさ、或いは、前記第２アドレス領域の先頭アドレスを設定する第２レジスタ値と、
を格納することを特徴とする請求項２に記載のメモリ制御回路。
【請求項４】
前記アドレス変換部は、前記ＣＰＵから前記第１アドレス領域へのアクセス時に、前記レジスタ値が未設定であればアドレス変換を行うことなく前記第１アドレス領域に格納されたプログラムを読み出し、前記レジスタ値が設定済みであればアドレス変換を行うことによって前記第２アドレス領域に格納されたプログラムを読み出すことを特徴とする請求項２または請求項３に記載のメモリ制御回路。
【請求項５】
ＣＰＵと、
前記ＣＰＵからの指示に応じて不揮発性メモリへのアクセス制御を行う請求項１〜請求項４のいずれか一項に記載のメモリ制御回路と、
を集積化したことを特徴とする半導体装置。
【請求項６】
前記ＣＰＵは、前記不揮発性メモリに格納された現プログラムを新プログラムに更新する際、前記現プログラムが前記第１アドレス領域に格納されていれば前記新プログラムを前記第２アドレス領域に格納し、前記現プログラムが前記第２アドレス領域に格納されていれば前記新プログラムを前記第１アドレス領域に格納することを特徴とする請求項５に記載の半導体装置。
【請求項７】
前記ＣＰＵは、前記新プログラムの格納完了後、その格納先に応じて前記レジスタ値の更新を行うことを特徴とする請求項６に記載の半導体装置。
【請求項８】
前記ＣＰＵの作業領域や各種データの一時格納領域として用いられる揮発性メモリと、
前記ＣＰＵからの指示に応じてデジタル信号を処理するデジタル信号処理回路と、
前記デジタル信号処理回路から入力されるデジタル信号をアナログ信号に変換して外部に出力するＤＡ［digital/analog］変換回路と、
外部から入力されるアナログ信号をデジタル信号に変換して前記デジタル信号処理回路に出力するＡＤ［analog/digital］変換回路と、
をさらに集積化したことを特徴とする請求項５〜請求項７のいずれか一項に記載の半導体装置。
【請求項９】
請求項８に記載の半導体装置と、
前記半導体装置によってアクセス制御される不揮発性メモリと、
前記半導体装置と電力線との間を絶縁しながらアナログ信号の伝達を行うトランスと、
を有することを特徴とする電力線通信機器。
【請求項１０】
前記不揮発性メモリは、シリアルフラッシュメモリであることを特徴とする請求項９に記載の電力線通信機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御回路に関する。
【背景技術】
【０００２】
図７は、電子機器の一従来例を示すブロック図である。本従来例の電子機器Ｘは、ＣＰＵ［central processing unit］Ｘ１と、フラッシュコントローラＸ２と、フラッシュメモリＸ３と、を有する。フラッシュメモリＸ３に格納されたプログラム（ファームウェアなど）をＣＰＵＸ１で実行するためには、ＣＰＵＸ１からの指示に応じてフラッシュメモリＸ３へのアクセス制御を行うフラッシュコントローラＸ２が必要になる。
【０００３】
近年、フラッシュメモリＸ３に格納されたプログラムは、電子機器Ｘの量産後においても必要に応じて書き換えられることが一般的である。このようなプログラムの更新（ファームウェアのアップデートなど）を安全に行うためには、プログラムを格納するためのアドレス領域（プログラム格納領域）を２面以上用意しておく必要がある。
【０００４】
例えば、現バージョンのファームウェアＰＲＧ１が第１アドレス領域Ｘ３１に格納されている状態において、新バージョンのファームウェアＰＲＧ２にアップデートを行う場合には、第１アドレス領域Ｘ３１を上書きするのではなく、第２アドレス領域Ｘ３２に新バージョンのファームウェアＰＲＧ２を書き込み、当該書き込みが正常に完了したことを確認して以降、第２アドレス領域Ｘ３２から新バージョンのファームウェアＰＲＧ２を読み出して実行するようにすればよい。このような処理を行えば、ファームウェアのアップデート作業が途中で中断された場合であっても、第１アドレス領域Ｘ３１には現バージョンのファームウェアＰＲＧ１が上書きされずに残っているので、電子機器Ｘの起動に支障を生じさせずに済む。
【０００５】
なお、上記に関連する従来技術の一例としては、特許文献１や特許文献２を挙げることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−０９２３４２号公報
【特許文献２】特開２０１１−１１８６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、プログラムの格納先アドレスが変わると、ソースファイルからバイナリファイルを作成する際のコンパイル環境を変更する必要があるので非常に煩雑であった。
【０００８】
図８は、コンパイル処理の一従来例を示す図である。本従来例のコンパイル処理において、新プログラムの格納先が第１アドレス領域Ｘ３１である場合には、その先頭アドレス（０ｘ１０００）をコンパイラに伝えて第１アドレス領域格納用のバイナリファイルを作成しなければならず、また、新プログラムの格納先が第２アドレス領域Ｘ３２である場合には、当該領域の先頭アドレス（０ｘ３０００）をコンパイラに伝えて第２アドレス領域格納用のバイナリファイルを作成しなければならなかった。
【０００９】
例えば、ファームウェアのアップデート時にサーバ側で上記のコンパイル処理を行う場合、サーバ側では、新バージョンのファームウェアを第１アドレス領域Ｘ３１と第２アドレス領域Ｘ３２のいずれに書き込めばよいかを知り得ないので、電子機器Ｘからサーバ側に新プログラムの格納先を知らせる必要があった。
【００１０】
本発明は、本願の発明者らにより見出された上記の課題に鑑み、プログラムの格納先が変わってもコンパイル環境を変えずに済むメモリ制御回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成すべく、本発明に係るメモリ制御回路は、ＣＰＵ［central processing unit］で実行すべきプログラムが不揮発性メモリの第１アドレス領域と第２アドレス領域のいずれに格納されていても、前記ＣＰＵからは当該プログラムが前記第１アドレス領域に格納されているものとして認識されるように、前記ＣＰＵと前記不揮発性メモリとの間でアドレス変換を行うアドレス変換部を有する構成（第１の構成）とされている。
【００１２】
なお、上記第１の構成から成るメモリ制御回路は、レジスタ値を格納するレジスタ部をさらに有し、前記アドレス変換部は、前記レジスタ値に応じてアドレス変換を行うか否かを決定する構成（第２の構成）にするとよい。
【００１３】
また、上記第２の構成から成るメモリ制御回路において、前記レジスタ部は、前記レジスタ値として、前記第１アドレス領域の先頭アドレスを設定する第１レジスタ値と、前記第１アドレス領域に格納されたプログラムの大きさ、或いは、前記第２アドレス領域の先頭アドレスを設定する第２レジスタ値と、を格納する構成（第３の構成）にするとよい。
【００１４】
また、上記第２または第３の構成から成るメモリ制御回路において、前記アドレス変換部は、前記ＣＰＵから前記第１アドレス領域へのアクセス時に、前記レジスタ値が未設定であればアドレス変換を行うことなく前記第１アドレス領域に格納されたプログラムを読み出し、前記レジスタ値が設定済みであればアドレス変換を行うことによって前記第２アドレス領域に格納されたプログラムを読み出す構成（第４の構成）にするとよい。
【００１５】
また、本発明に係る半導体装置は、ＣＰＵと、前記ＣＰＵからの指示に応じて不揮発性メモリへのアクセス制御を行う上記第１〜第４いずれかの構成から成るメモリ制御回路とを集積化した構成（第５の構成）とされている。
【００１６】
なお、上記第５の構成から成る半導体装置において、前記ＣＰＵは、前記不揮発性メモリに格納された現プログラムを新プログラムに更新する際、前記現プログラムが前記第１アドレス領域に格納されていれば前記新プログラムを前記第２アドレス領域に格納し、前記現プログラムが前記第２アドレス領域に格納されていれば前記新プログラムを前記第１アドレス領域に格納する構成（第６の構成）にするとよい。
【００１７】
また、上記第６の構成から成る半導体装置において、前記ＣＰＵは、前記新プログラムの格納完了後、その格納先に応じて前記レジスタ値の更新を行う構成（第７の構成）にするとよい。
【００１８】
また、上記第５〜第７いずれかの構成から成る半導体装置は、前記ＣＰＵの作業領域や各種データの一時格納領域として用いられる揮発性メモリと、前記ＣＰＵからの指示に応じてデジタル信号を処理するデジタル信号処理回路と、前記デジタル信号処理回路から入力されるデジタル信号をアナログ信号に変換して外部に出力するＤＡ［digital/analog］変換回路と、外部から入力されるアナログ信号をデジタル信号に変換して前記デジタル信号処理回路に出力するＡＤ［analog/digital］変換回路と、をさらに集積化した構成（第８の構成）にするとよい。
【００１９】
また、本発明に係る電力線通信機器は、上記第８の構成から成る半導体装置と、前記半導体装置によってアクセス制御される不揮発性メモリと、前記半導体装置と電力線との間を絶縁しながらアナログ信号の伝達を行うトランスと、を有する構成（第９の構成）とされている。
【００２０】
なお、上記第９の構成から成る電力線通信機器において、前記不揮発性メモリは、シリアルフラッシュメモリである構成（第１０の構成）にするとよい。
【発明の効果】
【００２１】
本発明によれば、プログラムの格納先が変わってもコンパイル環境を変えずに済むメモリ制御回路を提供することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】宅内ＬＡＮシステムの一構成例を示す図
【図２】ＨＤ−ＰＬＣアダプタの一構成例を示すブロック図
【図３】フラッシュコントローラの一構成例を示すブロック図
【図４】アドレス変換処理の一例を示す図
【図５】コンパイル処理の一例を示す図
【図６】ファームウェア更新処理の一例を示すフローチャート
【図７】電子機器の一従来例を示すブロック図
【図８】コンパイル処理の一従来例を示す図
【発明を実施するための形態】
【００２３】
＜宅内ＬＡＮ［local area network］システム＞
図１は、宅内ＬＡＮシステムの一構成例を示す図である。本構成例の宅内ＬＡＮシステム１００は、複数のＨＤ−ＰＬＣ［high definition - power line communication］アダプタ１と、電力線２と、ルータ３と、テレビ４と、パソコン５と、冷蔵庫６と、空気調和機７と、を有する。
【００２４】
複数のＨＤ−ＰＬＣアダプタ１は、それぞれ、情報信号（映像信号や音声信号など）をウェーブレット直交周波数分割多重方式（Wavelet-OFDM[orthogonal frequency-division multiplexing]方式）で変調して電力線２に重畳することにより、各々に接続された端末相互間の双方向通信を実現する電力線通信機器（ブリッジ機能を備えたモデム）である。例えば、パソコン５を用いてインターネット２００へのアクセス（ウェブサイトの閲覧など）を行う場合には、ルータ３に接続されたＨＤ−ＰＬＣアダプタ１（例えば親機）と、パソコン５に接続されたＨＤ−ＰＬＣアダプタ１（例えば子機）との間で、電力線２を介した双方向通信が行われる。
【００２５】
このように、ＨＤ−ＰＬＣアダプタ１を用いた宅内ＬＡＮシステム１００であれば、宅内に既設の電力線２を通信回線として使用することが可能となる。なお、ＨＤ−ＰＬＣアダプタ１をマルチポート型とすれば、１台のＨＤ−ＰＬＣアダプタ１に複数の端末を接続することも可能となる。また、宅内ＬＡＮシステム１００を構築する端末の種類については、本構成例（ルータ３、テレビ４、パソコン５、冷蔵庫６、及び、空気調和機７）に限定されるものではなく、種々の端末を接続することが可能である。
【００２６】
＜ＨＤ−ＰＬＣアダプタ＞
図２は、ＨＤ−ＰＬＣアダプタ１の一構成例を示すブロック図である。本構成例のＨＤ−ＰＬＣアダプタ１は、半導体装置１０と、フラッシュメモリ２０と、トランス３０と、を有する。なお、ＨＤ−ＰＬＣアダプタ１には、電力線２から電力供給が行われる。
【００２７】
半導体装置１０は、トランス３０を介した電力線通信を制御するコントローラＩＣであり、ＣＰＵ［central processing unit］１１と、ＲＡＭ［random access memory］１２と、フラッシュコントローラ１３と、ＰＬＣＤＳＰ［PLC digital signal processor］１４と、ＤＡ［digital/analog］変換回路１５と、ＡＤ［analog/digital］変換回路１６とを集積化して成る。
【００２８】
ＣＰＵ１１は、半導体装置１０の動作を統括的に制御する主体であり、例えば、ＰＬＣＤＳＰ１４やフラッシュコントローラ１３の動作制御を行うほか、ＨＤ−ＰＬＣアダプタ１に接続された端末（不図示）との通信制御などを行う。
【００２９】
ＲＡＭ１２は、ＣＰＵ１１の作業領域や各種データの一時格納領域として用いられる揮発性半導体メモリである。
【００３０】
フラッシュコントローラ１３は、ＣＰＵ１１からの指示に応じてフラッシュメモリ２０へのアクセス制御を行うメモリ制御回路である。
【００３１】
ＰＬＣＤＳＰ１４は、ＣＰＵ１１からの指示に応じてデジタル信号を処理するデジタル信号処理回路である。
【００３２】
ＤＡ変換回路１５は、ＰＬＣＤＳＰ１４から入力されるデジタル信号をアナログ信号に変換してトランス３０に出力する回路ブロックであり、ＨＤ−ＰＬＣアダプタ１の送信回路ＴＸとして機能する。
【００３３】
ＡＤ変換回路１６は、トランス３０から入力されるアナログ信号をデジタル信号に変換してＰＬＣＤＳＰ１４に出力する回路ブロックであり、ＨＤ−ＰＬＣアダプタ１の受信回路ＲＸとして機能する。
【００３４】
フラッシュメモリ２０は、ＨＤ−ＰＬＣアダプタ１のファームウェアなどを格納する不揮発性半導体メモリである。なお、フラッシュメモリ２０としては、シリアルバスを採用したシリアルフラッシュメモリを用いることが望ましい。
【００３５】
トランス３０は、半導体装置１０と電力線２との間を絶縁しながらアナログ信号の伝達を行う。なお、トランス３０には、商用電源の交流周波数成分（５０Ｈｚ／６０Ｈｚ）を遮断するために結合キャパシタを含めてもよい。
【００３６】
なお、上記に挙げた半導体装置１０、フラッシュメモリ２０、及び、トランス３０は、一つの通信モジュールとしてＨＤ−ＰＬＣアダプタ１に実装するとよい。
【００３７】
＜フラッシュコントローラ＞
図３は、フラッシュコントローラ１３の一構成例を示すブロック図である。本構成例のフラッシュコントローラ１３は、アドレス変換部１３１と、レジスタ部１３２とを含む。
【００３８】
アドレス変換部１３１は、ＣＰＵ１１で実行すべきプログラムがフラッシュメモリ２０の第１アドレス領域Ａ１と第２アドレス領域Ａ２（後出の図４を参照）のいずれに格納されていても、ＣＰＵ１１からは当該プログラムが第１アドレス領域Ａ１に格納されているものとして認識されるように、ＣＰＵ１１とフラッシュメモリ２０との間でアドレス変換（ＡＤＲｘ／ＡＤＲｙ）を行う。その際、アドレス変換部１３１は、レジスタ部１３２に格納された第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２に応じてアドレス変換を行うか否かを決定する。その詳細については後述する。
【００３９】
レジスタ部１３２は、第１アドレス領域Ａ１の先頭アドレスを設定する第１レジスタ値ＲＥＧ１（program_start_address）と、第１アドレス領域Ａ１に格納されたプログラムの大きさ、或いは、第２アドレス領域Ａ２の先頭アドレスを設定する第２レジスタ値ＲＥＧ２（program_offset）と、を格納する。
【００４０】
図４は、フラッシュコントローラ１３によるアドレス変換処理の一例を示す図である。以下の説明において、フラッシュメモリ２０の物理アドレスマップ（ＰＨＹＳＩＣＡＬ）では、アドレス領域Ａ０（０ｘ００００〜０ｘ１０００）に種々のデータＤＡＴＡが格納されており、第１アドレス領域Ａ１（０ｘ１０００〜０ｘ３０００）及び第２アドレス領域Ａ２（０ｘ３０００〜０ｘ５０００）にプログラムＰＲＧ１及びＰＲＧ２が各々格納されているものとする。
【００４１】
一方、ＣＰＵ１１から見たフラッシュメモリ２０の仮想アドレスマップ（ＶＩＲＴＵＡＬ）では、アドレス領域Ａ０（０ｘ００００〜０ｘ１０００）に種々のデータＤＡＴＡが格納されており、第１アドレス領域Ａ１（０ｘ１０００〜０ｘ３０００）にプログラムＰＲＧ１及びＰＲＧ２のいずれか一方が格納されているように認識される。以下、その理由について詳述する。
【００４２】
まず、本図の上段を参照しながら、第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２がいずれも未設定（ＲＥＧ１＝ｎｕｌｌ、ＲＥＧ２＝ｎｕｌｌ）である場合について詳細な説明を行う。フラッシュコントローラ１３のアドレス変換部１３１は、ＣＰＵ１１からフラッシュメモリ２０の第１アドレス領域Ａ１に対してアクセスがあったときに、第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２がいずれも未設定であれば、アドレス変換を行うことなく第１アドレス領域Ａ１に格納されたプログラムＰＲＧ１を読み出す。その結果、ＣＰＵ１１は、第１アドレス領域Ａ１へアクセスすることにより、プログラムＰＲＧ１を読み出してこれを実行することができる。
【００４３】
次に、本図の下段を参照しながら、第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２がそれぞれ設定済み（ＲＥＧ１＝０ｘ１０００、ＲＥＧ２＝０ｘ３０００）である場合について詳細な説明を行う。フラッシュコントローラ１３のアドレス変換部１３１は、ＣＰＵ１１からフラッシュメモリ２０の第１アドレス領域Ａ１に対してアクセスがあったときに、第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２がそれぞれ設定済みであれば、アドレス変換を行うことによって第２アドレス領域Ａ２に格納されたプログラムＰＲＧ２を読み出す。その結果、ＣＰＵ１１は、第１アドレス領域Ａ１へアクセスすることにより、プログラムＰＲＧ２を読み出してこれを実行することができる。
【００４４】
すなわち、第１アドレス領域Ａ１に格納されたプログラムＰＲＧ１を実行すべきときには、第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２をいずれも未設定とすればよい。逆に、第２アドレス領域Ａ２に格納されたプログラムＰＲＧ２を実行すべきときには、第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２をそれぞれ適切に設定すればよい。
【００４５】
このように、フラッシュコントローラ１３を用いて第１レジスタ値ＲＥＧ１と第２レジスタ値ＲＥＧ２に応じたアドレス変換処理を行うことにより、ＣＰＵ１１で実行すべきプログラムは、常に第１アドレス領域Ａ１に格納されているかのように取り扱われる。
【００４６】
すなわち、ＣＰＵ１１から認識される見掛け上の仮想アドレスマップでは、ＣＰＵ１１で実行すべきプログラムの格納先を第１アドレス領域Ａ１に固定することが可能となり、延いては、物理アドレスマップ上におけるプログラムの格納先に依らず、プログラムのコンパイル環境を不変とすることが可能となる。以下、この点について詳述する。
【００４７】
図５は、コンパイル処理の一例を示す図である。従来例のコンパイル処理（先出の図８を参照）では、プログラムの格納先アドレスが変わると、ソースファイルからバイナリファイルを作成する際のコンパイル環境を変更する必要があるので非常に煩雑であった。一方、先述のアドレス変換処理を行えば、プログラムの格納先が見掛けの上で第１アドレス領域Ａ１に固定される。従って、コンパイラでは、プログラムのソースファイルから第１アドレス領域格納用のバイナリファイルのみを作成すればよくなるので、プログラムの格納先アドレスを何ら意識せずに共通のコンパイル環境でバイナリファイルの作成を行うことが可能となる。
【００４８】
図６は、ＣＰＵ１１によるファームウェア（プログラム）の更新処理の一例を示すフローチャートである。フローが開始すると、ステップＳ１では、現バージョンのファームウェア（以下では現ファームウェアと呼ぶ）の格納先が物理アドレスマップ上の第１プログラム領域Ａ１であるか否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップＳ２に進められ、ノー判定が下された場合にはフローがステップＳ４に進められる。なお、現ファームウェアの格納先に関する情報は、フラッシュメモリ２０のアドレス領域Ａ０に格納しておけばよい。
【００４９】
ステップＳ１でイエス判定が下された場合、ステップＳ２では、新バージョンのファームウェア（以下では新ファームウェアと呼ぶ）が物理アドレスマップ上の第２プログラム領域Ａ２に書き込まれる。すなわち、ＣＰＵ１１は、フラッシュメモリ２０に格納された現ファームウェアを新ファームウェアに更新する際、現ファームウェアが第１アドレス領域Ａ１に格納されていれば、新ファームウェアを第２アドレス領域Ａ２に格納する。このような処理を行えば、ファームウェアのアップデート作業が途中で中断された場合であっても、第１アドレス領域Ａ１には現ファームウェアが上書きされずに残っているので、ＨＤ−ＰＬＣアダプタ１の起動に支障を生じさせずに済む。
【００５０】
ステップＳ２で新ファームウェアの書き込みが完了すると、続くステップＳ３では、新ファームウェアの格納先に応じて第１レジスタ値ＲＥＧ１及び第２レジスタ値ＲＥＧ２の更新が行われた後、一連のフローが終了される。ここでは、新ファームウェアの格納先が第２アドレス領域Ａ２であることから、第１レジスタ値ＲＥＧ１として、第１アドレス領域Ａ１の先頭アドレスが書き込まれると共に、第２レジスタ値ＲＥＧ２として、第１アドレス領域Ａ１に格納された現ファームウェアの大きさ、或いは、第２アドレス領域Ａ２の先頭アドレスが書き込まれる。このようなレジスタ処理を行えば、フラッシュコントローラ１３で先述のアドレス変換処理が行われるようになるので、ＣＰＵ１１は、第１アドレス領域Ａ１へアクセスすることにより、第２アドレス領域Ａ２に格納された新ファームウェアを読み出してこれを実行することが可能となる。
【００５１】
一方、ステップＳ１でノー判定が下された場合、ステップＳ４では、新ファームウェアが物理アドレスマップ上の第１プログラム領域Ａ１に書き込まれる。すなわち、ＣＰＵ１１は、フラッシュメモリ２０に格納された現ファームウェアを新ファームウェアに更新する際、現ファームウェアが第２アドレス領域Ａ２に格納されていれば、新ファームウェアを第１アドレス領域Ａ１に格納する。このような処理を行えば、ファームウェアのアップデート作業が途中で中断された場合であっても、第２アドレス領域Ａ２には現ファームウェアが上書きされずに残っているので、ＨＤ−ＰＬＣアダプタ１の起動に支障を生じさせずに済む。
【００５２】
ステップＳ４で新ファームウェアの書き込みが完了すると、続くステップＳ５では、新ファームウェアの格納先に応じて第１レジスタ値ＲＥＧ１及び第２レジスタ値ＲＥＧ２の更新が行われた後、一連のフローが終了される。ここでは、新ファームウェアの格納先が第１アドレス領域Ａ１であることから、第１レジスタ値ＲＥＧ１及び第２レジスタ値ＲＥＧ２としていずれもｎｕｌｌ値が書き込まれる。このようなレジスタ処理を行えば、フラッシュコントローラ１３で先のアドレス変換処理が行われなくなるので、ＣＰＵ１１は、第１アドレス領域Ａ１へアクセスすることにより、第１アドレス領域Ａ１に格納された新ファームウェアを読み出してこれを実行することが可能となる。
【００５３】
＜その他の変形例＞
なお、上記の実施形態では、ＨＤ−ＰＬＣアダプタ１のフラッシュコントローラ１３に本発明を適用した構成を例示して説明を行ったが、本発明の構成はこれに限定されるものではなく、その他の用途に供されるメモリ制御回路にも広く適用することが可能である。
【００５４】
また、本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。
【産業上の利用可能性】
【００５５】
本発明は、例えば、ＨＤ−ＰＬＣアダプタなどに利用することが可能である。
【符号の説明】
【００５６】
１    ＨＤ−ＰＬＣアダプタ
２    電力線
３    ルータ
４    テレビ
５    パソコン
６    冷蔵庫
７    空気調和機
１０    半導体装置
１１    ＣＰＵ
１２    ＲＡＭ
１３    フラッシュコントローラ（メモリ制御回路）
１３１    アドレス変換部
１３２    レジスタ部
１４    ＰＬＣＤＳＰ
１５    ＤＡ変換回路（送信回路）
１６    ＡＤ変換回路（受信回路）
２０    フラッシュメモリ（不揮発性半導体メモリ）
３０    トランス
１００    宅内ＬＡＮシステム
２００    インターネット
【図１】
2015138335.tif 000003
【図２】
2015138335.tif 000004
【図３】
2015138335.tif 000005
【図４】
2015138335.tif 000006
【図５】
2015138335.tif 000007
【図６】
2015138335.tif 000008
【図７】
2015138335.tif 000009
【図８】
2015138335.tif 000010