(57)【要約】【課題】  ソフトウェアを格納する不揮発性メモリを有効利用することができる携帯端末装置を得る。【解決手段】  不揮発性メモリ１２は複数のブロックに分割され、各ブロックはメイン領域とスペア領域を含む。制御部１１は、ソフトウェア更新用の差分データを基にブロック単位でソフトウェアの書き換えを行う際、メモリ１２内の書き換え対象ブロックが不良ブロックである場合、メモリ１２の代替領域のブロックに差分データを書き込むと共に、この代替ブロックのスペア領域に書き換え対象ブロックの論理ブロック番号を書き込む。【選択図】      図１
2010198592.tif 000002
【特許請求の範囲】
【請求項１】
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリと、
前記複数のブロック各々の前記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握して前記不揮発性メモリにアクセスする制御手段とを含み、
前記制御手段は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込むことを特徴とする携帯端末装置。
【請求項２】
第２のメモリを更に含み、
前記制御手段は、前記対応関係を前記第２のメモリに格納し、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号が書き込まれた場合、前記第２のメモリ内の前記対応関係を更新することを特徴とする請求項１記載の携帯端末装置。
【請求項３】
前記第２のメモリは揮発性メモリであり、
前記制御手段は、携帯端末装置の電源投入時に前記対応関係を作成して前記第２のメモリに格納することを特徴とする請求項２記載の携帯端末装置。
【請求項４】
前記代替領域のブロックは、前記代替領域内の先頭ブロックから順に使用されることを特徴とする請求項１〜３いずれか記載の携帯端末装置。
【請求項５】
前記プログラム領域のブロック各々の物理ブロック番号と論理ブロック番号とは等しく、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納されていないことを特徴とする請求項１〜４いずれか記載の携帯端末装置。
【請求項６】
前記制御手段は、前記ソフトウェアの書き換えを行う際、前記書き換え対象ブロックが不良ブロックであり、かつ前記書き換え対象ブロックの論理ブロック番号が割り当てられた前記代替領域のブロックが存在しない場合、前記書き換え対象ブロックのデータを所定の固定値として前記代替領域のブロックに前記差分データを書き込むことを特徴とする請求項１〜５いずれか記載の携帯端末装置。
【請求項７】
前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項６記載の携帯端末装置。
【請求項８】
携帯端末装置のソフトウェア更新方法であって、
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリに、前記複数のブロック各々の前記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御ステップを含み、
前記制御ステップは、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込むステップを含むことを特徴とするソフトウェア更新方法。
【請求項９】
前記制御ステップは、前記対応関係を第２のメモリに格納するステップと、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号が書き込まれた場合、前記第２のメモリ内の前記対応関係を更新するステップとを含むことを特徴とする請求項８記載のソフトウェア更新方法。
【請求項１０】
前記第２のメモリは揮発性メモリであり、
前記対応関係を第２のメモリに格納するステップは、前記携帯端末装置の電源投入時に前記対応関係を作成して前記第２のメモリに格納することを特徴とする請求項９記載のソフトウェア更新方法。
【請求項１１】
前記代替領域のブロックは、前記代替領域内の先頭ブロックから順に使用されることを特徴とする請求項８〜１０いずれか記載のソフトウェア更新方法。
【請求項１２】
前記プログラム領域のブロック各々の物理ブロック番号と論理ブロック番号とは等しく、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納されていないことを特徴とする請求項８〜１１いずれか記載のソフトウェア更新方法。
【請求項１３】
前記ソフトウェアの書き換えを行う際、前記書き換え対象ブロックが不良ブロックであり、かつ前記書き換え対象ブロックの論理ブロック番号が割り当てられた前記代替領域のブロックが存在しない場合、前記書き換え対象ブロックのデータを所定の固定値として前記代替領域のブロックに前記差分データを書き込むことを特徴とする請求項８〜１２いずれか記載のソフトウェア更新方法。
【請求項１４】
前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項１３記載のソフトウェア更新方法。
【請求項１５】
携帯端末装置のソフトウェア更新方法をコンピュータに実行せしめるプログラムであって、
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリに、前記複数のブロック各々の前記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御処理を含み、
前記制御処理は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込む処理を含むことを特徴とするプログラム。
【請求項１６】
前記プログラム領域のブロック各々の物理ブロック番号と論理ブロック番号とは等しく、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納されていないことを特徴とする請求項１５記載のプログラム。
【請求項１７】
前記ソフトウェアの書き換えを行う際、前記書き換え対象ブロックが不良ブロックであり、かつ前記書き換え対象ブロックの論理ブロック番号が割り当てられた前記代替領域のブロックが存在しない場合、前記書き換え対象ブロックのデータを所定の固定値として前記代替領域のブロックに前記差分データを書き込むことを特徴とする請求項１５または１６記載のプログラム。
【請求項１８】
前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項１７記載のプログラム。
【請求項１９】
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリと、
前記プログラム領域から前記ソフトウェアを読み出す際、前記プログラム領域の読み出し対象ブロックが不良ブロックである場合、前記読み出し対象ブロックのデータを所定の固定値とする制御手段とを含むことを特徴とする携帯端末装置。
【請求項２０】
前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項１９記載の携帯端末装置。
【請求項２１】
前記不揮発性メモリは、前記複数のブロックの内の一部のブロックが割り当てられた代替領域を含み、
前記制御手段は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むことにより前記代替領域のブロックを前記不良ブロックに対する代替ブロックとし、前記プログラム領域から前記ソフトウェアを読み出す際、前記読み出し対象ブロックが不良ブロックであり、かつ前記読み出し対象ブロックに対する前記代替ブロックが存在しない場合にのみ、前記読み出し対象ブロックのデータを前記所定の固定値とすることを特徴とする請求項１９または２０記載の携帯端末装置。
【請求項２２】
携帯端末装置の動作制御方法であって、
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリの前記プログラム領域から前記ソフトウェアを読み出す際、前記プログラム領域の読み出し対象ブロックが不良ブロックである場合、前記読み出し対象ブロックのデータを所定の固定値とする制御ステップを含むことを特徴とする動作制御方法。
【請求項２３】
前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項２２記載の動作制御方法。
【請求項２４】
前記不揮発性メモリは、前記複数のブロックの内の一部のブロックが割り当てられた代替領域を含み、
前記制御ステップは、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むことにより前記代替領域のブロックを前記不良ブロックに対する代替ブロックとするステップを含み、前記プログラム領域から前記ソフトウェアを読み出す際、前記読み出し対象ブロックが不良ブロックであり、かつ前記読み出し対象ブロックに対する前記代替ブロックが存在しない場合にのみ、前記読み出し対象ブロックのデータを前記所定の固定値とすることを特徴とする請求項２２または２３記載の動作制御方法。
【請求項２５】
携帯端末装置の動作制御方法をコンピュータに実行せしめるプログラムであって、
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリの前記プログラム領域から前記ソフトウェアを読み出す際、前記プログラム領域の読み出し対象ブロックが不良ブロックである場合、前記読み出し対象ブロックのデータを所定の固定値とする制御処理を含むことを特徴とするプログラム。
【請求項２６】
前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項２５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラムに関し、特にソフトウェア更新用の差分データを基に不揮発性メモリに格納されたソフトウェアの書き換え対象ブロックを書き換えるソフトウェア更新方法に関する。
【背景技術】
【０００２】
特許文献１に示されているように、現在の携帯電話機などの携帯端末装置では、自機に内蔵するソフトウェア（ファームウェア）に不具合が見つかった場合、通信機能を使用してネットワークに接続されたサーバから、ソフトウェアの新旧プログラムデータの差分を抽出した差分データをダウンロードして、自機に内蔵するソフトウェアを更新（差分書き換え）する技術や仕組みが確立している。これは一般的にはＦＯＴＡ（ｆｉｒｍｗａｒｅ  ｏｖｅｒ  ｔｈｅ  ａｉｒ）と呼ばれる。
【０００３】
また、特許文献２には、携帯端末装置の制御部が、サーバから差分データをダウンロードして携帯端末装置のＮＯＲ型フラッシュメモリに格納されたソフトウェアを更新することが記載されている。ソフトウェアの更新時、制御部は、当該メモリの書き換え対象領域（物理アドレスＡ）の不良を検出すると、当該メモリに予め設けられた代替領域（物理アドレスＡ’）を用いて更新を行い、物理アドレスＡを論理アドレスとして物理アドレスＡ’に割り当てる。これにより、ソフトウェアのプログラムデータが不連続な物理アドレスにまたがって格納されていても、制御部のプロセッサには連続アドレスに見えることになる。
【０００４】
また、特許文献３には、携帯端末装置の制御部が、サーバから差分データをダウンロードして携帯端末装置のＮＡＮＤ型フラッシュメモリに格納されたソフトウェアを更新することが記載されている。ここで、ＮＡＮＤメモリを構成する複数のブロックは、少なくとも一つのブロックからなる管理領域と、複数のブロックからなりソフトウェアが格納されるコード領域と、複数のブロックからなる代替領域と、管理領域と代替領域の間に設けられる少なくとも一つのブロックからなる干渉領域とに割り当てられている。
【０００５】
ソフトウェアの更新時、制御部は、ＮＡＮＤメモリのコード領域の書き換え対象ブロックの不良を検出すると、代替領域のブロックを用いて更新を行い、この代替ブロックが不良ブロックを代替することを示す対応情報を管理領域に書き込む。これにより、特許文献２と同様に、メモリアドレスの連続性を確保することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−０７８５０２号公報
【特許文献２】特開２００７−２１９８８３号公報
【特許文献３】特開２００８−０４０７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献２には、不良検出時に代替領域に割り当てられる論理アドレスの情報がどこに記憶されるかについて明示されていない。一方、特許文献３記載の技術では、不良ブロックと代替ブロックの対応関係を示す情報の記憶などのためにＮＡＮＤ型フラッシュメモリに管理領域と干渉領域が設けられている。しかしながら、管理領域と干渉領域を設けるために、ＮＡＮＤ型フラッシュメモリのブロックをこれらに割り当てなければならない。
【０００８】
また、ソフトウェアのサイズはバージョンにより変わるため、当該ソフトウェアを実行する際、当該ソフトウェアを格納するために予め割り当てられているフラッシュメモリ内の領域全体が当該領域の未使用部分も含めてＲＡＭに展開される場合がある。この場合において、未使用部分に不良ブロックが存在すると、未使用であるから当該不良ブロックに対して代替領域内に代替ブロックは存在しないと考えられる。したがって、そのような未使用の不良ブロックが存在すると、エラーとなり、当該ソフトウェアを実行することができない。
【０００９】
本発明の目的は、上述した課題を解決し、ソフトウェアを格納する不揮発性メモリを有効利用することができる携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラムを提供することにある。
【００１０】
本発明の別の目的は、上述した課題を解決し、メモリのソフトウェア格納領域内の未使用部分に不良ブロックが存在してもエラーとなることを防止することができる携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明による携帯端末装置は、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリと、前記複数のブロック各々の前記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握して前記不揮発性メモリにアクセスする制御手段とを含み、前記制御手段は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込むことを特徴とする。
【００１２】
本発明によるソフトウェア更新方法は、携帯端末装置のソフトウェア更新方法であって、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリに、前記複数のブロック各々の前記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御ステップを含み、前記制御ステップは、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込むステップを含むことを特徴とする。
【００１３】
本発明によるプログラムは、携帯端末装置のソフトウェア更新方法をコンピュータに実行せしめるプログラムであって、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリに、前記複数のブロック各々の前記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御処理を含み、前記制御処理は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込む処理を含むことを特徴とする。
【００１４】
本発明による携帯端末装置は、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリと、前記プログラム領域から前記ソフトウェアを読み出す際、前記プログラム領域の読み出し対象ブロックが不良ブロックである場合、前記読み出し対象ブロックのデータを所定の固定値とする制御手段とを含むことを特徴とする。
【００１５】
本発明による動作制御方法は、携帯端末装置の動作制御方法であって、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリの前記プログラム領域から前記ソフトウェアを読み出す際、前記プログラム領域の読み出し対象ブロックが不良ブロックである場合、前記読み出し対象ブロックのデータを所定の固定値とする制御ステップを含むことを特徴とする。
【００１６】
本発明によるプログラムは、携帯端末装置の動作制御方法をコンピュータに実行せしめるプログラムであって、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリの前記プログラム領域から前記ソフトウェアを読み出す際、前記プログラム領域の読み出し対象ブロックが不良ブロックである場合、前記読み出し対象ブロックのデータを所定の固定値とする制御処理を含むことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ソフトウェアを格納する不揮発性メモリを有効利用することができるという効果が得られる。
【００１８】
本発明によれば、メモリのソフトウェア格納領域内の未使用部分に不良ブロックが存在してもエラーとなることを防止することができるという効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の原理を説明するための携帯端末装置の概略構成を示す図である。
【図２】本発明の第１の実施の形態による携帯端末装置の構成を示す図である。
【図３】図２のＮＡＮＤ型フラッシュメモリのメモリ構成を示す図である。
【図４】図２のＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。
【図５】本発明の第１の実施の形態による携帯端末装置に格納されるソフトウェアの更新前プログラムと更新後プログラムとを比較してソフトウェア更新用の差分データを生成する様子を説明するための図である。
【図６】本発明の第１の実施の形態による携帯端末装置の動作を示すフローチャートである。
【図７】本発明の第２の実施の形態におけるＲＡＭへの展開処理動作を説明するための図２のＮＡＮＤ型フラッシュメモリのメモリ構成を示す図である。
【図８】本発明の第２の実施の形態による携帯端末装置の動作を示すフローチャートである。
【図９】本発明の第３の実施の形態におけるソフトウェア更新動作を説明するための図である。
【図１０】本発明の第３の実施の形態による携帯端末装置の動作を示すフローチャートである。
【図１１】図９の各ブログラムごとにプログラムの使用サイズの情報を持たせる例を示す図である。
【発明を実施するための形態】
【００２０】
本発明の実施の形態について説明する前に、本発明の理解を助けるために、本発明の原理について図面を参照して説明する。図１は本発明の原理を説明するための携帯端末装置の概略構成を示す図である。
【００２１】
図１に示した携帯端末装置は、自メモリ１２を構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、上記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、上記複数のブロック各々は実データを格納するメイン領域（Ｍａｉｎ  Ａｒｅａ）とスペアデータを格納するスペア領域（Ｓｐａｒｅ  Ａｒｅａ）とを含み、上記プログラム領域のブロック各々の上記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリ１２を備える。
【００２２】
さらに、図１に示した携帯端末装置は、上記複数のブロック各々の上記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握して不揮発性メモリ１２にアクセスする制御部１１を備える。制御部１１は、ソフトウェア更新用の差分データを基にブロック単位で上記ソフトウェアの書き換えを行う際、上記プログラム領域の書き換え対象ブロックが不良ブロックである場合、上記代替領域のブロックに上記差分データを書き込むと共に、上記代替領域の上記差分データが書き込まれたブロックの上記スペア領域に上記書き換え対象ブロックの論理ブロック番号を書き込む。
【００２３】
このように、制御部１１は、ソフトウェア更新時に不良ブロックの代替ブロックに論理ブロック番号を割り当てる場合に、代替ブロックのスペア領域に論理ブロック番号を書き込むようにしている。したがって、不揮発性メモリのブロックのいくつかを割いて管理領域を別に設ける必要がなくなるので、不揮発性メモリを有効利用することができる。
【００２４】
次に、本発明による別の携帯端末装置について図１を用いて説明する。図１において、本発明による別の携帯端末装置は、自メモリ１２を構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリ１２と、上記プログラム領域から上記ソフトウェアを読み出す際、上記プログラム領域の読み出し対象ブロックが不良ブロックである場合、上記読み出し対象ブロックのデータを所定の固定値とする制御部１１とを備える。
【００２５】
このように、制御部１１は、プログラム領域の読み出し対象ブロックが不良ブロックである場合、読み出し対象ブロックのデータを所定の固定値に置き換えるので、ソフトウェア格納領域であるプログラム領域内の未使用部分に不良ブロックが存在してもエラーとなることを防止することができる。
【００２６】
以下、本発明の実施の形態について図面を参照して説明する。
【００２７】
図２は本発明の第１の実施の形態による携帯端末装置の構成を示す図である。図２において、本発明の第１の実施の形態による携帯端末装置は、アンテナ２１と、通信部２２と、制御部２３と、ＮＡＮＤ型フラッシュメモリ２４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２５とを含む。
【００２８】
図３は図２のＮＡＮＤ型フラッシュメモリ２４のメモリ構成を示す図であり、図４は図２のＮＡＮＤ型フラッシュメモリ２４のブロック構成を示す図である。図３に示すようにＮＡＮＤ型フラッシュメモリ２４は複数のブロックから構成されており、各ブロックは図４に示すように複数のページ（Ｐａｇｅ）から構成されている。
【００２９】
一般的に、フラッシュメモリは消去（Ｅｒａｓｅ）してからでないと、新たな書き込み（Ｐｒｏｇｒａｍ）ができない。図４において、ブロックはＥｒａｓｅ単位であり、ページはＰｒｏｇｒａｍ単位である。ブロックは複数のページで構成され、つまり、Ｅｒａｓｅされたブロックにはページ単位で複数回のＰｒｏｇｒａｍが可能である。各ページは、メイン領域（Ｍａｉｎ  Ａｒｅａ）とスペア領域（Ｓｐａｒｅ  Ａｒｅａ）から構成され、前者には実データが格納され、後者にはビットエラーを検出、訂正するためのＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）等の付随データ（スペアデータ）が格納される。
【００３０】
ＮＡＮＤ型フラッシュメモリは、ＥｒａｓｅまたはＰｒｏｇｒａｍ時にエラーが発生する可能性があり、エラーが発生したブロックは不良ブロック（欠陥ブロック）として使用しないように管理する必要がある。この不良ブロックは、メモリの工場出荷時点で既に存在しているものと、ユーザがメモリを使用しているうちに発生するものとがあるが、どちらの場合も使用しないように管理が必要である。
【００３１】
図４に示すように、スペア領域の特定位置に不良ブロックマーカー（Ｉｎｖａｌｉｄ  Ｂｌｏｃｋ  Ｍａｒｋｅｒ）が設けられ、このマーカーが所定の条件を満たせばそのブロックは不良ブロックであると識別可能なようにする。また、スペア領域の特定位置に論理ブロック番号が格納可能である。後述するＮＡＮＤ型フラッシュメモリ２４のプログラム領域のブロック各々には予め論理ブロック番号が割り当てられており、すなわちプログラム領域のブロック各々のスペア領域の特定位置には予め論理ブロック番号が格納されている。
【００３２】
ＮＡＮＤ型フラッシュメモリ２４は、複数のブロックが割り当てられたプログラム領域と、少なくとも一つのブロックが割り当てられた代替領域とを含む。図３に示した例では、プログラム領域に物理ブロック番号０〜６のブロックが割り当てられ、代替領域に物理ブロック番号Ｎ〜Ｎ＋３のブロックが割り当てられている。プログラム領域にはソフトウェアが格納されており、上述したようにプログラム領域の各ブロックのスペア領域に当該ブロックの論理ブロック番号が予め格納されている。なお、図３に示した例では、プログラム領域内の不良ブロックではないブロックにおいて、物理ブロック番号＝論理ブロック番号としている。
【００３３】
一方、代替領域の各ブロックには論理ブロック番号が割り当てられておらず、すなわち代替領域の各ブロックのスペア領域に論理ブロック番号は格納されていない。ソフトウェア更新時、プログラム領域に不良ブロックが存在、もしくは新たに発生した場合、制御部２３は、代替領域のブロックに対して書き込みを行い、この代替ブロックに論理ブロック番号を割り当てる。
【００３４】
図５は図３のプログラム領域に格納されたソフトウェア（旧ソフトウェア）を新ソフトウェアへアップデートする際に必要な差分データを生成する様子を説明するための図である。図５は新旧ソフトウェアにおいて、メモリブロック２、４及び５にて差分が生じる例を示したものである。新旧ソフトウェアのイメージ（バイナリファイルやヘキサファイル）が差分生成ツールに入力され、差分生成ツールは両者を比較して、差分が生じたメモリブロック位置を示す情報を含む差分データを生成して出力する。この差分データは、ネットワークに接続された図示せぬサーバ上に置かれている。
【００３５】
本発明の第１の実施の形態による携帯端末装置の制御部２３はアンテナ２１及び通信部２２を用い、ネットワークを介してサーバへアクセスして差分データをダウンロードする。そして、制御部２３は、この差分データを用いてブロック単位でソフトウェアの書き換えを行うことにより、新ソフトウェアへアップデートすることが可能である。なお、図５に示したメモリブロック番号は、図３に示したＮＡＮＤ型フラッシュメモリ２４内の論理ブロック番号に対応している。
【００３６】
また、図３において、ソフトウェア更新前は物理ブロック番号４のブロックは不良ブロックと認識されておらず、このブロックのスペア領域の特定位置には予め論理ブロック番号４が格納されており、図５の旧ソフトウェアのプログラムデータＡ〜Ｇは図３の物理ブロック番号０〜６のブロック（論理ブロック番号０〜６のブロック）にそれぞれ格納されているものとする。
【００３７】
次に、本発明の第１の実施の形態による携帯端末装置の動作について説明する。図６は本発明の第１の実施の形態による携帯端末装置の動作を示すフローチャートである。まず、本発明の第１の実施の形態による携帯端末装置の電源投入時、制御部２３は、ＮＡＮＤ型フラッシュメモリ２４の各ブロックのスペア領域を検索し、各ブロックの物理ブロック番号と論理ブロック番号との対応関係を示す情報をＲＡＭ２５に格納するものとする。これにより、制御部２３は、ＲＡＭ２５内の情報を基に論理ブロック番号に対応するＮＡＮＤ型フラッシュメモリ２４のブロックにアクセスする。
【００３８】
図６において、ソフトウェア更新時、制御部２３は、サーバからダウンロードした差分データを用いてＮＡＮＤ型フラッシュメモリ２４のプログラム領域の書き換え対象ブロックへの書き込みを開始する（ステップＳ１）。ここで、書き換え対象ブロックが不良ブロックでない場合（ステップＳ２）、制御部２３は、そのまま書き換え対象ブロックにデータを書き込み（ステップＳ３）、そしてステップＳ７の処理へ進む。
【００３９】
一方、書き換え対象ブロックが不良ブロックであった場合、あるいは不良ブロックであると新たに判明した場合（ステップＳ２）、制御部２３は、書き換え対象ブロックに代えて代替領域のブロック（例えば代替領域の未使用ブロックの内の先頭ブロック）にデータを書き込む（ステップＳ４）。また、制御部２３は、この代替ブロックのスペア領域の特定位置に書き換え対象ブロックの論理ブロック番号を書き込む（ステップＳ５）。そして、制御部２３は、当該論理ブロック番号を書き換え対象ブロックの物理ブロック番号に代えて代替ブロックの物理ブロック番号と対応付けるようにＲＡＭ２５内の上記情報を更新する（ステップＳ６）。
【００４０】
図３は、物理ブロック番号４のブロックに対するＥｒａｓｅもしくはＰｒｏｇｒａｍでエラーが発生し、物理ブロック番号４のブロックの不良が検出された場合を示している。この場合、図３に示されるように制御部２３は、代替領域の物理ブロック番号ＮのブロックにデータＥ’を書き込み、この代替ブロックのスペア領域の特定位置に論理ブロック番号４を書き込む。なお、通常、メモリ全体で発生する可能性のある不良ブロックの最大数はスペックで定められており、それを勘案してプログラム領域のブロック数に対して代替領域に割当てるブロック数が決定される。
【００４１】
図６に戻り、ステップＳ７において、他の書き換え対象ブロックがあればステップＳ１の処理に戻り、書き込み完了していればソフトウェア更新終了となる。
【００４２】
以上説明したように、本発明の第１の実施の形態では、ソフトウェア更新時、制御部２３は、書き換え対象ブロックの不良を検出すると、代替ブロックに対して書き込みを行い、この代替ブロックに書き換え対象ブロックの論理ブロック番号を割り当てるようにしているので、メモリアドレスの連続性を確保することができる。
【００４３】
また、本発明の第１の実施の形態では、代替ブロックへの論理ブロック番号の割り当ては、代替ブロックのスペア領域に論理ブロック番号を書き込むことにより行われる。したがって、ＮＡＮＤ型フラッシュメモリ２４のブロックのいくつかを割いて管理領域を別に設ける必要がなくなるので、当該メモリを有効利用することができる。
【００４４】
なお、本発明の第１の実施の形態では、携帯端末装置の電源投入時に、制御部２３は、ＮＡＮＤ型フラッシュメモリ２４の各ブロックのスペア領域を検索し、各ブロックの物理ブロック番号と論理ブロック番号との対応関係を示す情報をＲＡＭ２５に格納するようにしているが、このような動作は行わなくともよい。この場合、ＲＡＭ２５に上記情報が格納されていないので、制御部２３は、アクセスの度にＮＡＮＤ型フラッシュメモリ２４の各ブロックのスペア領域を検索して対応関係を把握する。なお、プログラム領域内の不良ブロックではないブロックにおいて物理ブロック番号＝論理ブロック番号としているならば、不良ブロックを検出してこれに対応する代替ブロックにアクセスする時にのみ、当該代替ブロックを認識すべく代替領域の各ブロックのスペア領域を検索すればよい。
【００４５】
また、本発明の第１の実施の形態では、ＮＡＮＤ型フラッシュメモリ２４のプログラム領域の各ブロックにおいて物理ブロック番号＝論理ブロック番号とし、プログラム領域の各ブロックのスペア領域に論理ブロック番号が予め格納されているとした。しかし、このように物理ブロック番号＝論理ブロック番号とした場合、物理ブロック番号と論理ブロック番号との対応はスペア領域を参照せずともとれるので、プログラム領域の各ブロックのスペア領域に論理ブロック番号は格納しなくともよい。ただし、この場合でも、代替ブロックのスペア領域に論理ブロック番号を書き込むことが必要であることは勿論である。
【００４６】
次に、本発明の第２の実施の形態について図面を参照して説明する。本発明の第２の実施の形態による携帯端末装置の基本的な構成及び動作は本発明の第１の実施の形態による携帯端末装置と同じであるが、本発明の第２の実施の形態では、更に、ＮＡＮＤ型フラッシュメモリ２４のソフトウェアを実行すべく読み出してＲＡＭ２５に展開する際の動作について工夫している。
【００４７】
ＮＡＮＤ型フラッシュメモリに格納されたプログラムコードは同メモリ上では直接実行できないため、通常、ＣＰＵの内蔵ＲＯＭに格納されたプログラムが動作してＮＡＮＤ型フラッシュメモリのプログラムコードをＲＡＭに展開し、ＲＡＭに展開したプログラムコードをＣＰＵが実行する。このＲＡＭへの展開処理を実行するプログラムは一般的にブートローダと称される。
【００４８】
本発明の第２の実施の形態では、図２の制御部２３が図示せぬブートローダに従ってＮＡＮＤ型フラッシュメモリ２４のプログラムをＲＡＭ２５に展開する際、ＮＡＮＤ型フラッシュメモリ２４のプログラム領域に不良ブロックが存在する場合、ＮＡＮＤ型フラッシュメモリ２４の代替領域の代替ブロックに書き込まれたデータを代わりにＲＡＭ２５に展開する。ここで、不良ブロックに対する代替ブロックが代替領域内に存在しない場合、すなわちＮＡＮＤ型フラッシュメモリ２４のプログラム領域の未使用部分に不良ブロックが存在すると考えられる場合、不良ブロックのデータを所定の固定値としてＲＡＭ２５に展開する。この固定値は、例えば当該ブロックが未使用ブロック（初期化状態）であることを示す値とする。これは、一般的にフラッシュメモリのブロック消去後の状態であるオール０ｘＦＦである。
【００４９】
図７は本発明の第２の実施の形態におけるＲＡＭ２５への展開処理動作を説明するための図２のＮＡＮＤ型フラッシュメモリ２４のメモリ構成を示す図である。図７において、ＮＡＮＤ型フラッシュメモリ２４は、物理ブロック番号０〜６のブロックが割り当てられたプログラム領域１０１と、物理ブロック番号Ｎ〜Ｎ＋３のブロックが割り当てられた代替領域２０１とを含む。
【００５０】
プログラム領域１０１にはソフトウェアのプログラムデータＡ〜Ｄが格納されており、ただし物理ブロック番号２のブロックは不良ブロックであるため、この不良ブロックに対する代替ブロックである代替領域２０１の物理ブロック番号ＮのブロックにプログラムデータＣが格納されているものとする。また、物理ブロック番号４のブロックは不良ブロックであり、この不良ブロックに対する代替ブロックは代替領域２０１に存在しないものとする。
【００５１】
制御部２３がプログラム領域１０１のソフトウェアをＲＡＭ２５に展開する際、例えば物理ブロック番号０のブロックについては当該ブロック内のプログラムデータＡを読み出してＲＡＭ２５に展開する。また、物理ブロック番号２のブロックについては、不良ブロックであり、かつ代替ブロック（物理ブロック番号Ｎ）が存在するので、制御部２３は、この代替ブロック内のプログラムデータＣを読み出してＲＡＭ２５に展開する。
【００５２】
また、未使用ブロックである物理ブロック番号５のブロックについては、制御部２３は、このブロック内のオール０ｘＦＦのデータを読み出してＲＡＭ２５に展開する。そして、代替ブロックが存在しない物理ブロック番号４の不良ブロックについては、制御部２３は、この不良ブロックのデータをオール０ｘＦＦのデータとしてＲＡＭ２５に展開する。
【００５３】
図８は本発明の第２の実施の形態による携帯端末装置の動作を示すフローチャートである。図８において、制御部２３は、プログラム領域１０１内の展開対象ブロックのデータを読み出す（ステップＳ１１）。ここで、展開対象ブロックが不良ブロックであり、かつ代替領域２０１内に当該展開対象ブロックに対する代替ブロックが存在しない場合（ステップＳ１２）、制御部２３は、この展開対象ブロックのデータをオール０ｘＦＦのデータとしてＲＡＭ２５に展開する（ステップＳ１３）。
【００５４】
ステップＳ１２において、それ以外の場合には、制御部２３は、上述したように該当するブロックからデータを読み出してＲＡＭ２５に展開する（ステップＳ１４）。そして、ステップＳ１５において、プログラム領域１０１内にまだ他の展開対象ブロックが残っていればステップＳ１１の処理に戻る。
【００５５】
以上説明したように、本発明の第２の実施の形態では、不良ブロックに対する代替ブロックが存在しない場合、制御部２３はこの不良ブロックのデータをオール０ｘＦＦのデータに置き換えて扱うようにしている。したがって、プログラム領域１０１内の未使用部分に不良ブロックが存在し、それに対する代替ブロックが代替領域２０１内に存在しない場合でも、エラーとすることなくブート処理を継続することが可能となる。これは、例えば、プログラム領域１０１内の使用領域がソフトウェアのバージョンにより変わるため、ブートローダにおいて未使用部分も含めて必ずプログラム領域１０１全体をＲＡＭ２５へ展開する場合に有効である。
【００５６】
また、何らかの理由により不良ブロックに対する代替ブロックが消失してしまった場合でも、そのブロックに含まれる内容が使用されていないようなものであれば、エラーとすることなくブート処理を継続可能である。
【００５７】
次に、本発明の第３の実施の形態について図面を参照して説明する。本発明の第３の実施の形態による携帯端末装置の基本的な構成及び動作は本発明の第１の実施の形態による携帯端末装置と同じであるが、本発明の第３の実施の形態は、ソフトウェア更新時、プログラム領域内の未使用部分に不良ブロックが存在し、それに対する代替ブロックが代替領域内に存在しない場合に、当該不良ブロックのデータを所定の固定値（オール０ｘＦＦ）として扱う点で本発明の第１の実施の形態と異なる。
【００５８】
図９は本発明の第３の実施の形態においてプログラム領域１０１に格納されたソフトウェア（旧ソフトウェア）を新ソフトウェアへ更新する動作を説明するための図である。図９に示すように、ＮＡＮＤ型フラッシュメモリ２４はプログラム領域１０１〜１０３を含み、プログラム領域１０１のプログラムＸがプログラムＸ’に更新されるものとする。なお、図９には示されていないが、本発明の第１の実施の形態と同様にＮＡＮＤ型フラッシュメモリ２４は代替領域を含むことは勿論である。
【００５９】
図９において、ソフトウェア更新前（旧ソフトウェア時）にプログラム領域１０１の未使用部分に不良ブロックが存在する場合、ソフトウェア更新前はこのブロックへのデータ書き込みは行われていないため、代替領域内にこのブロックに対する代替ブロックは存在しないと考えられる。このような状態で、プログラム領域１０１の未使用部分も使用することになる新ソフトウェア（プログラムＸ’）への更新（差分書換え）を行う場合、プログラム領域１０１の未使用部分も差分書換えの対象となる。
【００６０】
本発明の第３の実施の形態では、更新時、この未使用部分に存在する不良ブロックのデータをオール０ｘＦＦとして扱うことにより、このオール０ｘＦＦのデータと差分データとを用いて当該不良ブロックに代えて代替領域のブロックに対して差分書換えを行うことができる。
【００６１】
図１０は本発明の第３の実施の形態による携帯端末装置の動作を示すフローチャートであり、図１０のステップＳ１〜Ｓ７の処理動作は図６のそれと同等である。図１０において、制御部２３は、プログラム領域１０１内の書き換え対象ブロックのデータ読み出しを行う（ステップＳ２１）。ここで、書き換え対象ブロックが不良ブロックであり、かつ代替領域内に当該書き換え対象ブロックに対する代替ブロックが存在しない場合（ステップＳ２２）、制御部２３は、この書き換え対象ブロックのデータをオール０ｘＦＦのデータとする（ステップＳ２３）。
【００６２】
ステップＳ２２において、書き換え対象ブロックが不良ブロックでない場合や、不良ブロックであるが代替ブロックがある場合は、制御部２３は、当該書き換え対象ブロックや当該代替ブロックからデータを読み出す（ステップＳ２４）。そして、ステップＳ２３またはＳ２４にて得られたデータと差分データを基にステップＳ１以下の処理を行う。
【００６３】
これにより、不良ブロックに対する代替ブロックが存在しない場合でも、ブロック単位のソフトウェアの差分書換えをエラー扱いとせずに実行することが可能である。また、何らかの理由により不良ブロックに対する代替ブロックが消失してしまった場合でも、そのブロックに含まれる内容が使用されていないようなものであれば、差分書換えをエラー扱いとせずに実行可能である。
【００６４】
図１１は図９の各ブログラムごとにプログラムの使用サイズの情報を持たせる例を示す図である。ソフトウェアのバージョンによりその使用サイズ（データサイズ）は変わる。図１１に示すように、各ブログラム領域ごとに例えば先頭に使用サイズの情報を格納するようにした場合、制御部２３は、ソフトウェアを実行すべく読み出してＲＡＭ２５に展開する際、そのサイズ情報に基づいてＲＡＭ２５へ展開するブロック数を把握することができる。
【００６５】
したがって、この場合、ブログラム領域全体をＲＡＭ２５に展開する必要はない、すなわちブログラム領域の未使用部分をＲＡＭ２５に展開せずにすむ。そのため、未使用部分に不良ブロックがあり、その代替ブロックが存在しない場合であっても、ブート処理でエラーになるようなことはない。
【００６６】
しかし、旧ソフトウェアから新ソフトウェアへの更新（差分書換え）時には、図１１に示すように使用サイズの情報が格納されていても、図９に示すようにそのような情報が格納されていない場合と同様に、未使用部分も差分書換えの対象となり、未使用部分に不良ブロックがある場合にエラーが発生し得る。本発明の第３の実施の形態を図１１のような場合にも適用して、そのようなエラーの発生を防止することができる。
【００６７】
図６，８及び１０に示した各フローチャートに従った携帯端末装置の処理動作は、該装置において、予めＲＯＭ等の記憶媒体に格納されたプログラムを、ＣＰＵ（制御部）となるコンピュータに読み取らせて実行せしめることにより、実現できることは勿論である。
【００６８】
また、本発明の実施の形態は、携帯電話機、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｃｅ，Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ：個人向け携帯型情報通信機器）を含む携帯端末装置全般に適用可能である。
【符号の説明】
【００６９】
１１，２３    制御部
１２    不揮発性メモリ
２１    アンテナ
２２    通信部
２４    ＮＡＮＤ型フラッシュメモリ
２５    ＲＡＭ
【図１】
2010198592.tif 000003
【図２】
2010198592.tif 000004
【図３】
2010198592.tif 000005
【図４】
2010198592.tif 000006
【図５】
2010198592.tif 000007
【図６】
2010198592.tif 000008
【図７】
2010198592.tif 000009
【図８】
2010198592.tif 000010
【図９】
2010198592.tif 000011
【図１０】
2010198592.tif 000012
【図１１】
2010198592.tif 000013