JP5521437B2 - Portable terminal device, software update method and program - Google Patents

Portable terminal device, software update method and program Download PDF

Info

Publication number
JP5521437B2
JP5521437B2 JP2009192677A JP2009192677A JP5521437B2 JP 5521437 B2 JP5521437 B2 JP 5521437B2 JP 2009192677 A JP2009192677 A JP 2009192677A JP 2009192677 A JP2009192677 A JP 2009192677A JP 5521437 B2 JP5521437 B2 JP 5521437B2
Authority
JP
Japan
Prior art keywords
block
area
software
program
alternative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009192677A
Other languages
Japanese (ja)
Other versions
JP2010198592A (en
Inventor
昌幸 串田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009192677A priority Critical patent/JP5521437B2/en
Publication of JP2010198592A publication Critical patent/JP2010198592A/en
Application granted granted Critical
Publication of JP5521437B2 publication Critical patent/JP5521437B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は携帯端末装置、ソフトウェア更新方法及びプログラムに関し、特にソフトウェア更新用の差分データを基に不揮発性メモリに格納されたソフトウェアの書き換え対象ブロックを書き換えるソフトウェア更新方法に関する。 The present invention is a portable terminal device, a software update lateral Ho及 beauty program, and a software update method, especially rewriting rewriting target block of software that the difference data stored in the nonvolatile memory based on the software update.

特許文献1に示されているように、現在の携帯電話機などの携帯端末装置では、自機に内蔵するソフトウェア(ファームウェア)に不具合が見つかった場合、通信機能を使用してネットワークに接続されたサーバから、ソフトウェアの新旧プログラムデータの差分を抽出した差分データをダウンロードして、自機に内蔵するソフトウェアを更新(差分書き換え)する技術や仕組みが確立している。これは一般的にはFOTA(firmware over the air)と呼ばれる。   As shown in Patent Document 1, in a mobile terminal device such as a current mobile phone, a server connected to a network using a communication function is found when a problem is found in software (firmware) built into the mobile phone. Therefore, a technique and a mechanism for downloading difference data obtained by extracting differences between old and new program data of software and updating (difference rewriting) the software built in the device itself has been established. This is generally called FOTA (firmware over the air).

また、特許文献2には、携帯端末装置の制御部が、サーバから差分データをダウンロードして携帯端末装置のNOR型フラッシュメモリに格納されたソフトウェアを更新することが記載されている。ソフトウェアの更新時、制御部は、当該メモリの書き換え対象領域(物理アドレスA)の不良を検出すると、当該メモリに予め設けられた代替領域(物理アドレスA’)を用いて更新を行い、物理アドレスAを論理アドレスとして物理アドレスA’に割り当てる。これにより、ソフトウェアのプログラムデータが不連続な物理アドレスにまたがって格納されていても、制御部のプロセッサには連続アドレスに見えることになる。   Patent Document 2 describes that the control unit of the mobile terminal device downloads the difference data from the server and updates the software stored in the NOR flash memory of the mobile terminal device. When updating the software, when the control unit detects a defect in the rewrite target area (physical address A) of the memory, the control unit performs the update using the alternative area (physical address A ′) provided in advance in the memory, and the physical address A is assigned to the physical address A ′ as a logical address. As a result, even if the software program data is stored across discontinuous physical addresses, it appears to the control unit processor as continuous addresses.

また、特許文献3には、携帯端末装置の制御部が、サーバから差分データをダウンロードして携帯端末装置のNAND型フラッシュメモリに格納されたソフトウェアを更新することが記載されている。ここで、NANDメモリを構成する複数のブロックは、少なくとも一つのブロックからなる管理領域と、複数のブロックからなりソフトウェアが格納されるコード領域と、複数のブロックからなる代替領域と、管理領域と代替領域の間に設けられる少なくとも一つのブロックからなる干渉領域とに割り当てられている。   Patent Document 3 describes that the control unit of the mobile terminal device downloads the difference data from the server and updates the software stored in the NAND flash memory of the mobile terminal device. Here, the plurality of blocks constituting the NAND memory include a management area composed of at least one block, a code area composed of a plurality of blocks, a software area for storing software, a substitution area composed of a plurality of blocks, and a management area. It is assigned to an interference area composed of at least one block provided between the areas.

ソフトウェアの更新時、制御部は、NANDメモリのコード領域の書き換え対象ブロックの不良を検出すると、代替領域のブロックを用いて更新を行い、この代替ブロックが不良ブロックを代替することを示す対応情報を管理領域に書き込む。これにより、特許文献2と同様に、メモリアドレスの連続性を確保することができる。   When updating the software, if the control unit detects a defect in the block to be rewritten in the code area of the NAND memory, the control unit updates the block using the block in the replacement area, and displays correspondence information indicating that the replacement block replaces the defective block. Write to the management area. As a result, the continuity of memory addresses can be ensured as in Patent Document 2.

特開2005−078502号公報JP 2005-078502 A 特開2007−219883号公報JP 2007-219883 A 特開2008−040701号公報JP 2008-040701 A

特許文献2には、不良検出時に代替領域に割り当てられる論理アドレスの情報がどこに記憶されるかについて明示されていない。一方、特許文献3記載の技術では、不良ブロックと代替ブロックの対応関係を示す情報の記憶などのためにNAND型フラッシュメモリに管理領域と干渉領域が設けられている。しかしながら、管理領域と干渉領域を設けるために、NAND型フラッシュメモリのブロックをこれらに割り当てなければならない。   Patent Document 2 does not clearly indicate where information on a logical address assigned to an alternative area when a defect is detected is stored. On the other hand, in the technique described in Patent Document 3, a management area and an interference area are provided in the NAND flash memory for storing information indicating the correspondence between a defective block and an alternative block. However, in order to provide a management area and an interference area, a NAND flash memory block must be assigned to them.

また、ソフトウェアのサイズはバージョンにより変わるため、当該ソフトウェアを実行する際、当該ソフトウェアを格納するために予め割り当てられているフラッシュメモリ内の領域全体が当該領域の未使用部分も含めてRAMに展開される場合がある。この場合において、未使用部分に不良ブロックが存在すると、未使用であるから当該不良ブロックに対して代替領域内に代替ブロックは存在しないと考えられる。したがって、そのような未使用の不良ブロックが存在すると、エラーとなり、当該ソフトウェアを実行することができない。   In addition, since the software size varies depending on the version, when executing the software, the entire area in the flash memory allocated in advance for storing the software is expanded in the RAM including the unused part of the area. There is a case. In this case, if there is a defective block in the unused portion, it is unused, so it is considered that there is no replacement block in the replacement area for the defective block. Therefore, if there is such an unused bad block, an error occurs and the software cannot be executed.

本発明の目的は、上述した課題を解決し、ソフトウェアを格納する不揮発性メモリを有効利用することができる携帯端末装置、ソフトウェア更新方法及びプログラムを提供することにある。 An object of the present invention is to solve the problems described above, a portable terminal device capable of effectively utilizing non-volatile memory for storing software, is to provide a software update lateral Ho及 beauty program.

本発明の別の目的は、上述した課題を解決し、メモリのソフトウェア格納領域内の未使用部分に不良ブロックが存在してもエラーとなることを防止することができる携帯端末装置、ソフトウェア更新方法及びプログラムを提供することにある。 Another object of the present invention is to solve the above-described problems, and to prevent an error from occurring even if there is a bad block in an unused part in the software storage area of the memory. It is to provide a Ho及 beauty program.

本発明による携帯端末装置は、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリと、前記プログラム領域及び前記代替領域のみを利用して前記ソフトウェアを格納する各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握して前記不揮発性メモリにアクセスする制御手段とを含み、前記制御手段は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込み、前記制御手段は、前記プログラム領域及び前記代替領域に割り当てられた前記ブロック各々の前記スペア領域内の論理ブロック番号を基に前記対応関係を把握して前記不揮発性メモリにアクセスすることを特徴とする。 The portable terminal device according to the present invention includes a program area in which a part of a plurality of blocks constituting the own memory is allocated and software is stored, and an alternative in which a part of the plurality of blocks is allocated. Each of the plurality of blocks includes a main area for storing actual data (Main Area) and a spare area for storing spare data (Spare Area). The non-volatile memory in which the logical block number of the block is stored, and the correspondence between the physical block number and the logical block number of each block storing the software using only the program area and the alternative area Control means for accessing the non-volatile memory, said control means comprising: Based on the software differential data for updating in block units when rewriting of the software, if the rewriting target block of the program area is a defective block, writes the differential data into blocks of the spare area, the replacement write the logical block number of the rewrite target block in the spare area of the block in which the difference data is written in the area, said control means, said program area and the spare of the block respectively assigned to the replacement area The correspondence relationship is grasped based on the logical block number in the area, and the nonvolatile memory is accessed .

本発明によるソフトウェア更新方法は、携帯端末装置のソフトウェア更新方法であって、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリに、前記プログラム領域及び前記代替領域のみを利用して前記ソフトウェアを格納する各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御ステップを含み、前記制御ステップは、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込むステップを含み、前記制御ステップは、前記プログラム領域及び前記代替領域に割り当てられた前記ブロック各々の前記スペア領域内の論理ブロック番号を基に前記対応関係を把握して前記不揮発性メモリにアクセスすることを特徴とする。 A software update method according to the present invention is a software update method for a mobile terminal device, wherein a program area in which a part of a plurality of blocks constituting a self-memory is allocated to store software, and the plurality of blocks A plurality of blocks each including a main area for storing actual data and a spare area for storing spare data (Spare Area). In the nonvolatile memory in which the logical block number of the block is stored in the spare area of each block of the program area, the physical block number and logic of each block that stores the software using only the program area and the alternative area Control access based on the correspondence with block numbers It includes a step, wherein the controlling step, when rewriting of the software in blocks on the basis of the difference data for the software update, when rewriting target block of the program area is a defective block, the block of the substitution area the writes the differential data, look including the step of writing the logical block number of the rewrite target block in the spare area of the block in which the difference data of the replacement area is written to, the control step, the program area and the The nonvolatile memory is accessed by grasping the correspondence relationship based on the logical block number in the spare area of each of the blocks allocated to the alternative area .

本発明によるプログラムは、携帯端末装置のソフトウェア更新方法をコンピュータに実行せしめるプログラムであって、自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリに、前記プログラム領域及び前記代替領域のみを利用して前記ソフトウェアを格納する各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御処理を含み、前記制御処理は、前記ソフトウェア更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込む処理を含み、前記制御処理は、前記プログラム領域及び前記代替領域に割り当てられた前記ブロック各々の前記スペア領域内の論理ブロック番号を基に前記対応関係を把握して前記不揮発性メモリにアクセスすることを特徴とする。 A program according to the present invention is a program for causing a computer to execute a software updating method for a mobile terminal device, wherein a program area in which a part of a plurality of blocks constituting the own memory is allocated and software is stored; A plurality of blocks to which a part of the blocks is assigned, and each of the plurality of blocks includes a main area for storing actual data and a spare area for storing spare data (Spare Area). Each block that stores the software using only the program area and the alternative area in a non-volatile memory in which the logical block number of the block is stored in the spare area of each block of the program area Correspondence between block number and logical block number It grasps the includes a control process of access, the control process, when the rewriting of the software based on the difference data for updating the software in blocks, rewritten block of the program area is a defective block If the block alternative region writes the differential data, look including the process of writing the logical block number of the rewrite target block in the spare area of the block in which the difference data of the replacement area is written, the control process Is characterized in that the correspondence is grasped based on the logical block number in the spare area of each of the blocks allocated to the program area and the alternative area, and the nonvolatile memory is accessed .

本発明によれば、ソフトウェアを格納する不揮発性メモリを有効利用することができるという効果が得られる。   According to the present invention, it is possible to effectively use a nonvolatile memory that stores software.

本発明によれば、メモリのソフトウェア格納領域内の未使用部分に不良ブロックが存在してもエラーとなることを防止することができるという効果が得られる。   According to the present invention, it is possible to prevent an error from occurring even if a defective block exists in an unused portion in the software storage area of the memory.

本発明の原理を説明するための携帯端末装置の概略構成を示す図である。It is a figure which shows schematic structure of the portable terminal device for demonstrating the principle of this invention. 本発明の第1の実施の形態による携帯端末装置の構成を示す図である。It is a figure which shows the structure of the portable terminal device by the 1st Embodiment of this invention. 図2のNAND型フラッシュメモリのメモリ構成を示す図である。FIG. 3 is a diagram showing a memory configuration of the NAND flash memory of FIG. 2. 図2のNAND型フラッシュメモリのブロック構成を示す図である。FIG. 3 is a diagram showing a block configuration of the NAND flash memory of FIG. 2. 本発明の第1の実施の形態による携帯端末装置に格納されるソフトウェアの更新前プログラムと更新後プログラムとを比較してソフトウェア更新用の差分データを生成する様子を説明するための図である。It is a figure for demonstrating a mode that the difference data for a software update is produced | generated by comparing the program before the update of the software stored in the portable terminal device by the 1st Embodiment of this invention, and the program after the update. 本発明の第1の実施の形態による携帯端末装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the portable terminal device by the 1st Embodiment of this invention. 本発明の第2の実施の形態におけるRAMへの展開処理動作を説明するための図2のNAND型フラッシュメモリのメモリ構成を示す図である。FIG. 6 is a diagram showing a memory configuration of the NAND flash memory of FIG. 2 for explaining an expansion processing operation to a RAM according to a second embodiment of the present invention. 本発明の第2の実施の形態による携帯端末装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the portable terminal device by the 2nd Embodiment of this invention. 本発明の第3の実施の形態におけるソフトウェア更新動作を説明するための図である。It is a figure for demonstrating the software update operation | movement in the 3rd Embodiment of this invention. 本発明の第3の実施の形態による携帯端末装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the portable terminal device by the 3rd Embodiment of this invention. 図9の各ブログラムごとにプログラムの使用サイズの情報を持たせる例を示す図である。It is a figure which shows the example which gives the information of the use size of a program for each program of FIG.

本発明の実施の形態について説明する前に、本発明の理解を助けるために、本発明の原理について図面を参照して説明する。図1は本発明の原理を説明するための携帯端末装置の概略構成を示す図である。   Before describing embodiments of the present invention, the principle of the present invention will be described with reference to the drawings in order to help understanding of the present invention. FIG. 1 is a diagram showing a schematic configuration of a portable terminal device for explaining the principle of the present invention.

図1に示した携帯端末装置は、自メモリ12を構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、上記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、上記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、上記プログラム領域のブロック各々の上記スペア領域に当該ブロックの論理ブロック番号が格納された不揮発性メモリ12を備える。   The mobile terminal device shown in FIG. 1 has a program area in which a part of a plurality of blocks constituting the own memory 12 is allocated and stores software, and a part of the plurality of blocks is allocated. The plurality of blocks each include a main area (Main Area) for storing actual data and a spare area (Spare Area) for storing spare data, and the spare of each block of the program area A nonvolatile memory 12 in which the logical block number of the block is stored in the area is provided.

さらに、図1に示した携帯端末装置は、上記複数のブロック各々の上記スペア領域内の論理ブロック番号を基に各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握して不揮発性メモリ12にアクセスする制御部11を備える。制御部11は、ソフトウェア更新用の差分データを基にブロック単位で上記ソフトウェアの書き換えを行う際、上記プログラム領域の書き換え対象ブロックが不良ブロックである場合、上記代替領域のブロックに上記差分データを書き込むと共に、上記代替領域の上記差分データが書き込まれたブロックの上記スペア領域に上記書き換え対象ブロックの論理ブロック番号を書き込む。   Furthermore, the portable terminal device shown in FIG. 1 is configured to grasp the correspondence between the physical block number of each block and the logical block number based on the logical block number in the spare area of each of the plurality of blocks. 12 includes a control unit 11 that accesses the control unit 12. When the control unit 11 rewrites the software in units of blocks based on the difference data for software update, if the rewrite target block in the program area is a bad block, the control unit 11 writes the difference data in the block in the alternative area At the same time, the logical block number of the block to be rewritten is written in the spare area of the block in which the differential data in the alternative area is written.

このように、制御部11は、ソフトウェア更新時に不良ブロックの代替ブロックに論理ブロック番号を割り当てる場合に、代替ブロックのスペア領域に論理ブロック番号を書き込むようにしている。したがって、不揮発性メモリのブロックのいくつかを割いて管理領域を別に設ける必要がなくなるので、不揮発性メモリを有効利用することができる。   In this way, the control unit 11 writes the logical block number in the spare area of the alternative block when assigning the logical block number to the alternative block of the defective block at the time of software update. Therefore, it is not necessary to divide some of the blocks of the nonvolatile memory and provide a separate management area, so that the nonvolatile memory can be used effectively.

次に、本発明による別の携帯端末装置について図1を用いて説明する。図1において、本発明による別の携帯端末装置は、自メモリ12を構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域を含む不揮発性メモリ12と、上記プログラム領域から上記ソフトウェアを読み出す際、上記プログラム領域の読み出し対象ブロックが不良ブロックである場合、上記読み出し対象ブロックのデータを所定の固定値とする制御部11とを備える。   Next, another portable terminal device according to the present invention will be described with reference to FIG. In FIG. 1, another portable terminal device according to the present invention includes a non-volatile memory 12 including a program area in which a part of a plurality of blocks constituting the own memory 12 is allocated and stores software, and the program area. When the software is read out from the program area, if the read target block in the program area is a bad block, a control unit 11 is provided which sets the data in the read target block as a predetermined fixed value.

このように、制御部11は、プログラム領域の読み出し対象ブロックが不良ブロックである場合、読み出し対象ブロックのデータを所定の固定値に置き換えるので、ソフトウェア格納領域であるプログラム領域内の未使用部分に不良ブロックが存在してもエラーとなることを防止することができる。   As described above, when the block to be read in the program area is a bad block, the control unit 11 replaces the data in the block to be read with a predetermined fixed value, so that an unused portion in the program area that is a software storage area is defective. It is possible to prevent an error even if a block exists.

以下、本発明の実施の形態について図面を参照して説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図2は本発明の第1の実施の形態による携帯端末装置の構成を示す図である。図2において、本発明の第1の実施の形態による携帯端末装置は、アンテナ21と、通信部22と、制御部23と、NAND型フラッシュメモリ24と、RAM(Random Access Memory)25とを含む。   FIG. 2 is a diagram showing the configuration of the portable terminal device according to the first embodiment of the present invention. 2, the mobile terminal device according to the first embodiment of the present invention includes an antenna 21, a communication unit 22, a control unit 23, a NAND flash memory 24, and a RAM (Random Access Memory) 25. .

図3は図2のNAND型フラッシュメモリ24のメモリ構成を示す図であり、図4は図2のNAND型フラッシュメモリ24のブロック構成を示す図である。図3に示すようにNAND型フラッシュメモリ24は複数のブロックから構成されており、各ブロックは図4に示すように複数のページ(Page)から構成されている。   FIG. 3 is a diagram showing a memory configuration of the NAND flash memory 24 of FIG. 2, and FIG. 4 is a diagram showing a block configuration of the NAND flash memory 24 of FIG. As shown in FIG. 3, the NAND flash memory 24 is composed of a plurality of blocks, and each block is composed of a plurality of pages as shown in FIG.

一般的に、フラッシュメモリは消去(Erase)してからでないと、新たな書き込み(Program)ができない。図4において、ブロックはErase単位であり、ページはProgram単位である。ブロックは複数のページで構成され、つまり、Eraseされたブロックにはページ単位で複数回のProgramが可能である。各ページは、メイン領域(Main Area)とスペア領域(Spare Area)から構成され、前者には実データが格納され、後者にはビットエラーを検出、訂正するためのECC(Error Correcting Code)等の付随データ(スペアデータ)が格納される。   Generally, a flash memory cannot be erased (erased) before new writing (program) can be performed. In FIG. 4, a block is an erase unit and a page is a program unit. The block is composed of a plurality of pages, that is, the erased block can be programmed a plurality of times for each page. Each page is composed of a main area (Main Area) and a spare area (Spare Area). The former stores actual data, and the latter includes ECC (Error Correcting Code) for detecting and correcting bit errors. Accompanying data (spare data) is stored.

NAND型フラッシュメモリは、EraseまたはProgram時にエラーが発生する可能性があり、エラーが発生したブロックは不良ブロック(欠陥ブロック)として使用しないように管理する必要がある。この不良ブロックは、メモリの工場出荷時点で既に存在しているものと、ユーザがメモリを使用しているうちに発生するものとがあるが、どちらの場合も使用しないように管理が必要である。   In the NAND flash memory, an error may occur during Erase or Program, and it is necessary to manage the block in which the error has occurred so that it is not used as a defective block (defective block). Some of these bad blocks already exist at the time of shipment from the factory of the memory, while others are generated while the user is using the memory. In both cases, management is required so that the memory is not used. .

図4に示すように、スペア領域の特定位置に不良ブロックマーカー(Invalid Block Marker)が設けられ、このマーカーが所定の条件を満たせばそのブロックは不良ブロックであると識別可能なようにする。また、スペア領域の特定位置に論理ブロック番号が格納可能である。後述するNAND型フラッシュメモリ24のプログラム領域のブロック各々には予め論理ブロック番号が割り当てられており、すなわちプログラム領域のブロック各々のスペア領域の特定位置には予め論理ブロック番号が格納されている。   As shown in FIG. 4, a bad block marker (Invalid Block Marker) is provided at a specific position in the spare area. If this marker satisfies a predetermined condition, the block can be identified as a bad block. In addition, a logical block number can be stored at a specific position in the spare area. A logical block number is assigned in advance to each block in the program area of the NAND flash memory 24 to be described later, that is, a logical block number is stored in advance at a specific position in the spare area of each block in the program area.

NAND型フラッシュメモリ24は、複数のブロックが割り当てられたプログラム領域と、少なくとも一つのブロックが割り当てられた代替領域とを含む。図3に示した例では、プログラム領域に物理ブロック番号0〜6のブロックが割り当てられ、代替領域に物理ブロック番号N〜N+3のブロックが割り当てられている。プログラム領域にはソフトウェアが格納されており、上述したようにプログラム領域の各ブロックのスペア領域に当該ブロックの論理ブロック番号が予め格納されている。なお、図3に示した例では、プログラム領域内の不良ブロックではないブロックにおいて、物理ブロック番号=論理ブロック番号としている。   The NAND flash memory 24 includes a program area to which a plurality of blocks are assigned and an alternative area to which at least one block is assigned. In the example shown in FIG. 3, blocks with physical block numbers 0 to 6 are allocated to the program area, and blocks with physical block numbers N to N + 3 are allocated to the alternative area. Software is stored in the program area, and as described above, the logical block number of the block is stored in advance in the spare area of each block in the program area. In the example shown in FIG. 3, the physical block number = logical block number is set in a block that is not a bad block in the program area.

一方、代替領域の各ブロックには論理ブロック番号が割り当てられておらず、すなわち代替領域の各ブロックのスペア領域に論理ブロック番号は格納されていない。ソフトウェア更新時、プログラム領域に不良ブロックが存在、もしくは新たに発生した場合、制御部23は、代替領域のブロックに対して書き込みを行い、この代替ブロックに論理ブロック番号を割り当てる。   On the other hand, no logical block number is assigned to each block in the alternative area, that is, no logical block number is stored in the spare area of each block in the alternative area. At the time of software update, when a defective block exists in the program area or newly occurs, the control unit 23 writes to the block in the alternative area and assigns a logical block number to this alternative block.

図5は図3のプログラム領域に格納されたソフトウェア(旧ソフトウェア)を新ソフトウェアへアップデートする際に必要な差分データを生成する様子を説明するための図である。図5は新旧ソフトウェアにおいて、メモリブロック2、4及び5にて差分が生じる例を示したものである。新旧ソフトウェアのイメージ(バイナリファイルやヘキサファイル)が差分生成ツールに入力され、差分生成ツールは両者を比較して、差分が生じたメモリブロック位置を示す情報を含む差分データを生成して出力する。この差分データは、ネットワークに接続された図示せぬサーバ上に置かれている。   FIG. 5 is a diagram for explaining how the difference data necessary for updating the software (old software) stored in the program area of FIG. 3 to new software is generated. FIG. 5 shows an example in which a difference occurs in the memory blocks 2, 4 and 5 in the old and new software. An image of the old and new software (binary file or hex file) is input to the difference generation tool, and the difference generation tool compares the two, and generates and outputs difference data including information indicating the memory block position where the difference has occurred. This difference data is placed on a server (not shown) connected to the network.

本発明の第1の実施の形態による携帯端末装置の制御部23はアンテナ21及び通信部22を用い、ネットワークを介してサーバへアクセスして差分データをダウンロードする。そして、制御部23は、この差分データを用いてブロック単位でソフトウェアの書き換えを行うことにより、新ソフトウェアへアップデートすることが可能である。なお、図5に示したメモリブロック番号は、図3に示したNAND型フラッシュメモリ24内の論理ブロック番号に対応している。   The control unit 23 of the mobile terminal device according to the first embodiment of the present invention uses the antenna 21 and the communication unit 22 to access the server via the network and download the difference data. And the control part 23 can update to new software by rewriting software in a block unit using this difference data. The memory block numbers shown in FIG. 5 correspond to the logical block numbers in the NAND flash memory 24 shown in FIG.

また、図3において、ソフトウェア更新前は物理ブロック番号4のブロックは不良ブロックと認識されておらず、このブロックのスペア領域の特定位置には予め論理ブロック番号4が格納されており、図5の旧ソフトウェアのプログラムデータA〜Gは図3の物理ブロック番号0〜6のブロック(論理ブロック番号0〜6のブロック)にそれぞれ格納されているものとする。   In FIG. 3, the block with the physical block number 4 is not recognized as a bad block before the software update, and the logical block number 4 is stored in advance at a specific position in the spare area of this block. It is assumed that the program data A to G of the old software are respectively stored in the physical block numbers 0 to 6 (logical block numbers 0 to 6) in FIG.

次に、本発明の第1の実施の形態による携帯端末装置の動作について説明する。図6は本発明の第1の実施の形態による携帯端末装置の動作を示すフローチャートである。まず、本発明の第1の実施の形態による携帯端末装置の電源投入時、制御部23は、NAND型フラッシュメモリ24の各ブロックのスペア領域を検索し、各ブロックの物理ブロック番号と論理ブロック番号との対応関係を示す情報をRAM25に格納するものとする。これにより、制御部23は、RAM25内の情報を基に論理ブロック番号に対応するNAND型フラッシュメモリ24のブロックにアクセスする。   Next, the operation of the mobile terminal device according to the first embodiment of the present invention will be described. FIG. 6 is a flowchart showing the operation of the portable terminal device according to the first embodiment of the present invention. First, when the portable terminal device according to the first embodiment of the present invention is turned on, the control unit 23 searches for a spare area of each block of the NAND flash memory 24, and the physical block number and logical block number of each block. It is assumed that information indicating the correspondence relationship is stored in the RAM 25. As a result, the control unit 23 accesses the block of the NAND flash memory 24 corresponding to the logical block number based on the information in the RAM 25.

図6において、ソフトウェア更新時、制御部23は、サーバからダウンロードした差分データを用いてNAND型フラッシュメモリ24のプログラム領域の書き換え対象ブロックへの書き込みを開始する(ステップS1)。ここで、書き換え対象ブロックが不良ブロックでない場合(ステップS2)、制御部23は、そのまま書き換え対象ブロックにデータを書き込み(ステップS3)、そしてステップS7の処理へ進む。   In FIG. 6, at the time of software update, the control unit 23 starts writing to the block to be rewritten in the program area of the NAND flash memory 24 using the difference data downloaded from the server (step S1). Here, when the rewrite target block is not a bad block (step S2), the control unit 23 writes the data in the rewrite target block as it is (step S3), and proceeds to the process of step S7.

一方、書き換え対象ブロックが不良ブロックであった場合、あるいは不良ブロックであると新たに判明した場合(ステップS2)、制御部23は、書き換え対象ブロックに代えて代替領域のブロック(例えば代替領域の未使用ブロックの内の先頭ブロック)にデータを書き込む(ステップS4)。また、制御部23は、この代替ブロックのスペア領域の特定位置に書き換え対象ブロックの論理ブロック番号を書き込む(ステップS5)。そして、制御部23は、当該論理ブロック番号を書き換え対象ブロックの物理ブロック番号に代えて代替ブロックの物理ブロック番号と対応付けるようにRAM25内の上記情報を更新する(ステップS6)。   On the other hand, when the block to be rewritten is a defective block or when it is newly found to be a defective block (step S2), the control unit 23 replaces the block to be rewritten with a block in the replacement area (for example, an unreplaced area block). Data is written to the first block of the used blocks (step S4). In addition, the control unit 23 writes the logical block number of the rewrite target block at a specific position in the spare area of this alternative block (step S5). Then, the control unit 23 updates the information in the RAM 25 so that the logical block number is associated with the physical block number of the alternative block instead of the physical block number of the rewrite target block (step S6).

図3は、物理ブロック番号4のブロックに対するEraseもしくはProgramでエラーが発生し、物理ブロック番号4のブロックの不良が検出された場合を示している。この場合、図3に示されるように制御部23は、代替領域の物理ブロック番号NのブロックにデータE’を書き込み、この代替ブロックのスペア領域の特定位置に論理ブロック番号4を書き込む。なお、通常、メモリ全体で発生する可能性のある不良ブロックの最大数はスペックで定められており、それを勘案してプログラム領域のブロック数に対して代替領域に割当てるブロック数が決定される。   FIG. 3 shows a case where an error has occurred in Erase or Program for the block with physical block number 4 and a defect in the block with physical block number 4 is detected. In this case, as shown in FIG. 3, the control unit 23 writes the data E ′ in the block of the physical block number N in the alternative area, and writes the logical block number 4 in a specific position in the spare area of the alternative block. Normally, the maximum number of defective blocks that may occur in the entire memory is determined by the specification, and the number of blocks to be allocated to the alternative area is determined with respect to the number of blocks in the program area in consideration of this.

図6に戻り、ステップS7において、他の書き換え対象ブロックがあればステップS1の処理に戻り、書き込み完了していればソフトウェア更新終了となる。   Returning to FIG. 6, in step S7, if there is another block to be rewritten, the process returns to step S1, and if the writing is completed, the software update ends.

以上説明したように、本発明の第1の実施の形態では、ソフトウェア更新時、制御部23は、書き換え対象ブロックの不良を検出すると、代替ブロックに対して書き込みを行い、この代替ブロックに書き換え対象ブロックの論理ブロック番号を割り当てるようにしているので、メモリアドレスの連続性を確保することができる。   As described above, in the first embodiment of the present invention, when software is updated, when detecting a defect in a rewrite target block, the control unit 23 writes to the replacement block and rewrites the replacement block. Since logical block numbers of blocks are assigned, continuity of memory addresses can be ensured.

また、本発明の第1の実施の形態では、代替ブロックへの論理ブロック番号の割り当ては、代替ブロックのスペア領域に論理ブロック番号を書き込むことにより行われる。したがって、NAND型フラッシュメモリ24のブロックのいくつかを割いて管理領域を別に設ける必要がなくなるので、当該メモリを有効利用することができる。   In the first embodiment of the present invention, the logical block number is assigned to the alternative block by writing the logical block number in the spare area of the alternative block. Therefore, it is not necessary to divide some of the blocks of the NAND flash memory 24 and provide a separate management area, so that the memory can be used effectively.

なお、本発明の第1の実施の形態では、携帯端末装置の電源投入時に、制御部23は、NAND型フラッシュメモリ24の各ブロックのスペア領域を検索し、各ブロックの物理ブロック番号と論理ブロック番号との対応関係を示す情報をRAM25に格納するようにしているが、このような動作は行わなくともよい。この場合、RAM25に上記情報が格納されていないので、制御部23は、アクセスの度にNAND型フラッシュメモリ24の各ブロックのスペア領域を検索して対応関係を把握する。なお、プログラム領域内の不良ブロックではないブロックにおいて物理ブロック番号=論理ブロック番号としているならば、不良ブロックを検出してこれに対応する代替ブロックにアクセスする時にのみ、当該代替ブロックを認識すべく代替領域の各ブロックのスペア領域を検索すればよい。   In the first embodiment of the present invention, when the mobile terminal device is powered on, the control unit 23 searches the spare area of each block of the NAND flash memory 24, and the physical block number and logical block of each block. Information indicating the correspondence relationship with the number is stored in the RAM 25, but such an operation may not be performed. In this case, since the above information is not stored in the RAM 25, the control unit 23 searches the spare area of each block of the NAND flash memory 24 for each access and grasps the correspondence relationship. If the physical block number is equal to the logical block number in a block that is not a bad block in the program area, it is replaced to recognize the substitute block only when the bad block is detected and the corresponding substitute block is accessed. What is necessary is just to search the spare area | region of each block of an area | region.

また、本発明の第1の実施の形態では、NAND型フラッシュメモリ24のプログラム領域の各ブロックにおいて物理ブロック番号=論理ブロック番号とし、プログラム領域の各ブロックのスペア領域に論理ブロック番号が予め格納されているとした。しかし、このように物理ブロック番号=論理ブロック番号とした場合、物理ブロック番号と論理ブロック番号との対応はスペア領域を参照せずともとれるので、プログラム領域の各ブロックのスペア領域に論理ブロック番号は格納しなくともよい。ただし、この場合でも、代替ブロックのスペア領域に論理ブロック番号を書き込むことが必要であることは勿論である。   In the first embodiment of the present invention, the physical block number = logical block number in each block of the program area of the NAND flash memory 24, and the logical block number is stored in advance in the spare area of each block of the program area. It was said that However, when the physical block number is equal to the logical block number in this way, the correspondence between the physical block number and the logical block number can be obtained without referring to the spare area. Therefore, the logical block number is set in the spare area of each block in the program area. It is not necessary to store. However, even in this case, of course, it is necessary to write the logical block number in the spare area of the alternative block.

次に、本発明の第2の実施の形態について図面を参照して説明する。本発明の第2の実施の形態による携帯端末装置の基本的な構成及び動作は本発明の第1の実施の形態による携帯端末装置と同じであるが、本発明の第2の実施の形態では、更に、NAND型フラッシュメモリ24のソフトウェアを実行すべく読み出してRAM25に展開する際の動作について工夫している。   Next, a second embodiment of the present invention will be described with reference to the drawings. The basic configuration and operation of the mobile terminal device according to the second embodiment of the present invention are the same as those of the mobile terminal device according to the first embodiment of the present invention, but in the second embodiment of the present invention. Furthermore, the operation when the software of the NAND flash memory 24 is read to be executed and expanded in the RAM 25 is devised.

NAND型フラッシュメモリに格納されたプログラムコードは同メモリ上では直接実行できないため、通常、CPUの内蔵ROMに格納されたプログラムが動作してNAND型フラッシュメモリのプログラムコードをRAMに展開し、RAMに展開したプログラムコードをCPUが実行する。このRAMへの展開処理を実行するプログラムは一般的にブートローダと称される。   Since the program code stored in the NAND flash memory cannot be directly executed on the same memory, the program stored in the built-in ROM of the CPU normally operates to expand the program code of the NAND flash memory into the RAM and store it in the RAM. The CPU executes the expanded program code. A program for executing the expansion process to the RAM is generally called a boot loader.

本発明の第2の実施の形態では、図2の制御部23が図示せぬブートローダに従ってNAND型フラッシュメモリ24のプログラムをRAM25に展開する際、NAND型フラッシュメモリ24のプログラム領域に不良ブロックが存在する場合、NAND型フラッシュメモリ24の代替領域の代替ブロックに書き込まれたデータを代わりにRAM25に展開する。ここで、不良ブロックに対する代替ブロックが代替領域内に存在しない場合、すなわちNAND型フラッシュメモリ24のプログラム領域の未使用部分に不良ブロックが存在すると考えられる場合、不良ブロックのデータを所定の固定値としてRAM25に展開する。この固定値は、例えば当該ブロックが未使用ブロック(初期化状態)であることを示す値とする。これは、一般的にフラッシュメモリのブロック消去後の状態であるオール0xFFである。   In the second embodiment of the present invention, when the control unit 23 of FIG. 2 develops the program of the NAND flash memory 24 in the RAM 25 according to a boot loader (not shown), there is a defective block in the program area of the NAND flash memory 24. In this case, the data written in the alternative block in the alternative area of the NAND flash memory 24 is expanded in the RAM 25 instead. Here, when a substitute block for the bad block does not exist in the substitute area, that is, when it is considered that a bad block exists in the unused part of the program area of the NAND flash memory 24, the data of the bad block is set to a predetermined fixed value. The data is expanded in the RAM 25. This fixed value is, for example, a value indicating that the block is an unused block (initialized state). This is generally all 0xFF, which is a state after block erasure of the flash memory.

図7は本発明の第2の実施の形態におけるRAM25への展開処理動作を説明するための図2のNAND型フラッシュメモリ24のメモリ構成を示す図である。図7において、NAND型フラッシュメモリ24は、物理ブロック番号0〜6のブロックが割り当てられたプログラム領域101と、物理ブロック番号N〜N+3のブロックが割り当てられた代替領域201とを含む。   FIG. 7 is a diagram showing a memory configuration of the NAND flash memory 24 of FIG. 2 for explaining the expansion processing operation to the RAM 25 in the second embodiment of the present invention. In FIG. 7, the NAND flash memory 24 includes a program area 101 to which blocks with physical block numbers 0 to 6 are allocated and an alternative area 201 to which blocks with physical block numbers N to N + 3 are allocated.

プログラム領域101にはソフトウェアのプログラムデータA〜Dが格納されており、ただし物理ブロック番号2のブロックは不良ブロックであるため、この不良ブロックに対する代替ブロックである代替領域201の物理ブロック番号NのブロックにプログラムデータCが格納されているものとする。また、物理ブロック番号4のブロックは不良ブロックであり、この不良ブロックに対する代替ブロックは代替領域201に存在しないものとする。   The program area 101 stores software program data A to D. However, since the block with the physical block number 2 is a defective block, the block with the physical block number N of the alternative area 201 which is an alternative block for the defective block. It is assumed that program data C is stored in. Further, it is assumed that the block with the physical block number 4 is a defective block, and no replacement block for the defective block exists in the replacement area 201.

制御部23がプログラム領域101のソフトウェアをRAM25に展開する際、例えば物理ブロック番号0のブロックについては当該ブロック内のプログラムデータAを読み出してRAM25に展開する。また、物理ブロック番号2のブロックについては、不良ブロックであり、かつ代替ブロック(物理ブロック番号N)が存在するので、制御部23は、この代替ブロック内のプログラムデータCを読み出してRAM25に展開する。   When the control unit 23 develops the software in the program area 101 in the RAM 25, for example, for the block having the physical block number 0, the program data A in the block is read and developed in the RAM 25. Further, since the block with the physical block number 2 is a defective block and there is an alternative block (physical block number N), the control unit 23 reads the program data C in the alternative block and develops it in the RAM 25. .

また、未使用ブロックである物理ブロック番号5のブロックについては、制御部23は、このブロック内のオール0xFFのデータを読み出してRAM25に展開する。そして、代替ブロックが存在しない物理ブロック番号4の不良ブロックについては、制御部23は、この不良ブロックのデータをオール0xFFのデータとしてRAM25に展開する。   For the block of physical block number 5 which is an unused block, the control unit 23 reads all 0xFF data in this block and develops it in the RAM 25. Then, for the bad block with physical block number 4 for which no alternative block exists, the control unit 23 develops the data of this bad block in the RAM 25 as all 0xFF data.

図8は本発明の第2の実施の形態による携帯端末装置の動作を示すフローチャートである。図8において、制御部23は、プログラム領域101内の展開対象ブロックのデータを読み出す(ステップS11)。ここで、展開対象ブロックが不良ブロックであり、かつ代替領域201内に当該展開対象ブロックに対する代替ブロックが存在しない場合(ステップS12)、制御部23は、この展開対象ブロックのデータをオール0xFFのデータとしてRAM25に展開する(ステップS13)。   FIG. 8 is a flowchart showing the operation of the portable terminal device according to the second embodiment of the present invention. In FIG. 8, the control unit 23 reads the data of the development target block in the program area 101 (step S11). If the expansion target block is a bad block and there is no replacement block for the expansion target block in the replacement area 201 (step S12), the control unit 23 converts the data of the expansion target block to all 0xFF data. To the RAM 25 (step S13).

ステップS12において、それ以外の場合には、制御部23は、上述したように該当するブロックからデータを読み出してRAM25に展開する(ステップS14)。そして、ステップS15において、プログラム領域101内にまだ他の展開対象ブロックが残っていればステップS11の処理に戻る。   In step S12, otherwise, the control unit 23 reads the data from the corresponding block as described above and expands it in the RAM 25 (step S14). In step S15, if there is still another development target block in the program area 101, the process returns to step S11.

以上説明したように、本発明の第2の実施の形態では、不良ブロックに対する代替ブロックが存在しない場合、制御部23はこの不良ブロックのデータをオール0xFFのデータに置き換えて扱うようにしている。したがって、プログラム領域101内の未使用部分に不良ブロックが存在し、それに対する代替ブロックが代替領域201内に存在しない場合でも、エラーとすることなくブート処理を継続することが可能となる。これは、例えば、プログラム領域101内の使用領域がソフトウェアのバージョンにより変わるため、ブートローダにおいて未使用部分も含めて必ずプログラム領域101全体をRAM25へ展開する場合に有効である。   As described above, in the second embodiment of the present invention, when there is no alternative block for a defective block, the control unit 23 handles the data of the defective block by replacing it with all 0xFF data. Therefore, even when there is a bad block in an unused part in the program area 101 and no alternative block for it exists in the alternative area 201, the boot process can be continued without causing an error. This is effective, for example, when the entire program area 101 including the unused part is always expanded in the RAM 25 in the boot loader because the used area in the program area 101 changes depending on the software version.

また、何らかの理由により不良ブロックに対する代替ブロックが消失してしまった場合でも、そのブロックに含まれる内容が使用されていないようなものであれば、エラーとすることなくブート処理を継続可能である。   Even if a substitute block for a bad block disappears for some reason, the boot process can be continued without causing an error if the contents contained in the block are not used.

次に、本発明の第3の実施の形態について図面を参照して説明する。本発明の第3の実施の形態による携帯端末装置の基本的な構成及び動作は本発明の第1の実施の形態による携帯端末装置と同じであるが、本発明の第3の実施の形態は、ソフトウェア更新時、プログラム領域内の未使用部分に不良ブロックが存在し、それに対する代替ブロックが代替領域内に存在しない場合に、当該不良ブロックのデータを所定の固定値(オール0xFF)として扱う点で本発明の第1の実施の形態と異なる。   Next, a third embodiment of the present invention will be described with reference to the drawings. The basic configuration and operation of the mobile terminal device according to the third embodiment of the present invention are the same as those of the mobile terminal device according to the first embodiment of the present invention, but the third embodiment of the present invention is When a software update is performed, if a bad block exists in an unused part in the program area and a replacement block for the block does not exist in the replacement area, the data of the bad block is handled as a predetermined fixed value (all 0xFF). This is different from the first embodiment of the present invention.

図9は本発明の第3の実施の形態においてプログラム領域101に格納されたソフトウェア(旧ソフトウェア)を新ソフトウェアへ更新する動作を説明するための図である。図9に示すように、NAND型フラッシュメモリ24はプログラム領域101〜103を含み、プログラム領域101のプログラムXがプログラムX’に更新されるものとする。なお、図9には示されていないが、本発明の第1の実施の形態と同様にNAND型フラッシュメモリ24は代替領域を含むことは勿論である。   FIG. 9 is a diagram for explaining an operation of updating software (old software) stored in the program area 101 to new software in the third embodiment of the present invention. As shown in FIG. 9, the NAND flash memory 24 includes program areas 101 to 103, and the program X in the program area 101 is updated to a program X '. Although not shown in FIG. 9, the NAND flash memory 24 naturally includes an alternative area as in the first embodiment of the present invention.

図9において、ソフトウェア更新前(旧ソフトウェア時)にプログラム領域101の未使用部分に不良ブロックが存在する場合、ソフトウェア更新前はこのブロックへのデータ書き込みは行われていないため、代替領域内にこのブロックに対する代替ブロックは存在しないと考えられる。このような状態で、プログラム領域101の未使用部分も使用することになる新ソフトウェア(プログラムX’)への更新(差分書換え)を行う場合、プログラム領域101の未使用部分も差分書換えの対象となる。   In FIG. 9, when a bad block exists in an unused part of the program area 101 before software update (during old software), data is not written to this block before software update. There appears to be no alternative block for the block. In such a state, when updating (differential rewriting) to new software (program X ′) that will also use the unused part of the program area 101, the unused part of the program area 101 is also subject to differential rewriting. Become.

本発明の第3の実施の形態では、更新時、この未使用部分に存在する不良ブロックのデータをオール0xFFとして扱うことにより、このオール0xFFのデータと差分データとを用いて当該不良ブロックに代えて代替領域のブロックに対して差分書換えを行うことができる。   In the third embodiment of the present invention, at the time of updating, the defective block data existing in this unused portion is treated as all 0xFF, and the all 0xFF data and difference data are used to replace the defective block. Thus, differential rewriting can be performed on blocks in the alternative area.

図10は本発明の第3の実施の形態による携帯端末装置の動作を示すフローチャートであり、図10のステップS1〜S7の処理動作は図6のそれと同等である。図10において、制御部23は、プログラム領域101内の書き換え対象ブロックのデータ読み出しを行う(ステップS21)。ここで、書き換え対象ブロックが不良ブロックであり、かつ代替領域内に当該書き換え対象ブロックに対する代替ブロックが存在しない場合(ステップS22)、制御部23は、この書き換え対象ブロックのデータをオール0xFFのデータとする(ステップS23)。   FIG. 10 is a flowchart showing the operation of the portable terminal device according to the third embodiment of the present invention, and the processing operations in steps S1 to S7 in FIG. 10 are the same as those in FIG. In FIG. 10, the control unit 23 reads data from the rewrite target block in the program area 101 (step S21). Here, when the rewrite target block is a bad block and there is no replacement block for the rewrite target block in the replacement area (step S22), the control unit 23 sets the data of the rewrite target block as all 0xFF data. (Step S23).

ステップS22において、書き換え対象ブロックが不良ブロックでない場合や、不良ブロックであるが代替ブロックがある場合は、制御部23は、当該書き換え対象ブロックや当該代替ブロックからデータを読み出す(ステップS24)。そして、ステップS23またはS24にて得られたデータと差分データを基にステップS1以下の処理を行う。   In step S22, if the rewrite target block is not a bad block, or if it is a bad block but there is a replacement block, the control unit 23 reads data from the rewrite target block or the replacement block (step S24). And the process after step S1 is performed based on the data and difference data which were obtained in step S23 or S24.

これにより、不良ブロックに対する代替ブロックが存在しない場合でも、ブロック単位のソフトウェアの差分書換えをエラー扱いとせずに実行することが可能である。また、何らかの理由により不良ブロックに対する代替ブロックが消失してしまった場合でも、そのブロックに含まれる内容が使用されていないようなものであれば、差分書換えをエラー扱いとせずに実行可能である。   As a result, even when there is no substitute block for the defective block, it is possible to execute the differential rewriting of the software in units of blocks without treating it as an error. Further, even if a substitute block for a bad block disappears for some reason, if the contents included in the block are not used, differential rewriting can be executed without treating it as an error.

図11は図9の各ブログラムごとにプログラムの使用サイズの情報を持たせる例を示す図である。ソフトウェアのバージョンによりその使用サイズ(データサイズ)は変わる。図11に示すように、各ブログラム領域ごとに例えば先頭に使用サイズの情報を格納するようにした場合、制御部23は、ソフトウェアを実行すべく読み出してRAM25に展開する際、そのサイズ情報に基づいてRAM25へ展開するブロック数を把握することができる。   FIG. 11 is a diagram showing an example in which program size information is provided for each program in FIG. The usage size (data size) varies depending on the software version. As shown in FIG. 11, when the information on the used size is stored at the head of each program area, for example, the control unit 23 reads the size information in order to read the software and execute it in the RAM 25. Based on this, the number of blocks developed in the RAM 25 can be grasped.

したがって、この場合、ブログラム領域全体をRAM25に展開する必要はない、すなわちブログラム領域の未使用部分をRAM25に展開せずにすむ。そのため、未使用部分に不良ブロックがあり、その代替ブロックが存在しない場合であっても、ブート処理でエラーになるようなことはない。   Therefore, in this case, it is not necessary to expand the entire program area in the RAM 25, that is, it is not necessary to expand the unused part of the program area in the RAM 25. Therefore, even if there is a bad block in the unused portion and there is no substitute block, no error occurs in the boot process.

しかし、旧ソフトウェアから新ソフトウェアへの更新(差分書換え)時には、図11に示すように使用サイズの情報が格納されていても、図9に示すようにそのような情報が格納されていない場合と同様に、未使用部分も差分書換えの対象となり、未使用部分に不良ブロックがある場合にエラーが発生し得る。本発明の第3の実施の形態を図11のような場合にも適用して、そのようなエラーの発生を防止することができる。   However, at the time of updating from the old software to the new software (difference rewriting), there is a case where such information is not stored as shown in FIG. Similarly, the unused portion is also subject to differential rewriting, and an error may occur when there is a bad block in the unused portion. The occurrence of such an error can be prevented by applying the third embodiment of the present invention also to the case as shown in FIG.

図6,8及び10に示した各フローチャートに従った携帯端末装置の処理動作は、該装置において、予めROM等の記憶媒体に格納されたプログラムを、CPU(制御部)となるコンピュータに読み取らせて実行せしめることにより、実現できることは勿論である。   The processing operation of the portable terminal device according to the flowcharts shown in FIGS. 6, 8, and 10 is such that a program stored in advance in a storage medium such as a ROM is read by a computer serving as a CPU (control unit) in the device. Of course, it can be realized by executing the command.

また、本発明の実施の形態は、携帯電話機、PHS(Personal Handyphone System)、PDA(Personal Data Assistance,Personal Digital Assistants:個人向け携帯型情報通信機器)を含む携帯端末装置全般に適用可能である。   The embodiment of the present invention is applicable to all mobile terminal devices including mobile phones, PHS (Personal Handyphone System), and PDA (Personal Data Assistance, Personal Digital Assistants).

11,23 制御部
12 不揮発性メモリ
21 アンテナ
22 通信部
24 NAND型フラッシュメモリ
25 RAM
11, 23 Control unit 12 Non-volatile memory 21 Antenna 22 Communication unit 24 NAND flash memory 25 RAM

Claims (15)

自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納され、前記プログラム領域のブロック各々の物理ブロック番号と論理ブロック番号とは等しく、前記代替領域のブロック各々の前記スペア領域には当該ブロックの論理ブロック番号が格納されていないNAND型フラッシュメモリと、
前記プログラム領域及び前記代替領域のみを利用して前記ソフトウェアを格納する各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握して前記NAND型フラッシュメモリにアクセスする制御手段とを含み、
前記制御手段は、前記ソフトウェアの更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込み、
前記制御手段は、前記プログラム領域及び前記代替領域に割り当てられた前記ブロック各々の前記スペア領域内の論理ブロック番号を基に前記対応関係を把握して前記NAND型フラッシュメモリにアクセスすることを特徴とする携帯端末装置。
Including a program area in which a part of a plurality of blocks constituting the own memory is allocated and storing software, and an alternative area to which a part of the plurality of blocks is allocated, Each block includes a main area for storing actual data (Main Area) and a spare area for storing spare data (Spare Area), and the logical block number of the block is stored in the spare area of each block in the program area. A NAND type flash memory in which the physical block number and the logical block number of each block of the program area are equal, and the logical block number of the block is not stored in the spare area of each block of the alternative area ;
Control means for grasping a correspondence relationship between a physical block number and a logical block number of each block storing the software by using only the program area and the alternative area, and accessing the NAND flash memory,
When rewriting the software on a block basis based on the difference data for updating the software, when the rewrite target block in the program area is a bad block, the control means includes the difference data in the block in the alternative area. And writing the logical block number of the block to be rewritten in the spare area of the block in which the differential data of the alternative area is written,
The control means grasps the correspondence relationship based on a logical block number in the spare area of each of the blocks allocated to the program area and the alternative area, and accesses the NAND flash memory. Mobile terminal device.
第2のメモリを更に含み、
前記制御手段は、前記対応関係を前記第2のメモリに格納し、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号が書き込まれた場合、前記第2のメモリ内の前記対応関係を更新することを特徴とする請求項1記載の携帯端末装置。
A second memory;
The control means stores the correspondence relationship in the second memory, and when the logical block number of the rewrite target block is written in the spare area of the block in which the differential data of the alternative area is written, The mobile terminal apparatus according to claim 1, wherein the correspondence relationship in the second memory is updated.
前記第2のメモリは揮発性メモリであり、
前記制御手段は、携帯端末装置の電源投入時に前記対応関係を作成して前記第2のメモリに格納することを特徴とする請求項2記載の携帯端末装置。
The second memory is a volatile memory;
3. The portable terminal device according to claim 2, wherein the control unit creates the correspondence relationship when the portable terminal device is turned on and stores the correspondence relationship in the second memory.
前記代替領域のブロックは、前記代替領域内の先頭ブロックから順に使用されることを特徴とする請求項1〜3いずれか記載の携帯端末装置。   The mobile terminal device according to any one of claims 1 to 3, wherein the blocks in the alternative area are used in order from the first block in the alternative area. 前記制御手段は、前記ソフトウェアの書き換えを行う際、前記書き換え対象ブロックが不良ブロックであり、かつ前記書き換え対象ブロックの論理ブロック番号が割り当てられた前記代替領域のブロックが存在しない場合、前記書き換え対象ブロックのデータを所定の固定値として前記代替領域のブロックに前記差分データを書き込むことを特徴とする請求項1〜いずれか記載の携帯端末装置。 When rewriting the software, when the rewrite target block is a bad block and there is no block in the replacement area to which the logical block number of the rewrite target block is assigned, the control means the portable terminal device of the data given the claim 1-4, wherein one of and writes the differential data into blocks of the substitution area as a fixed value. 前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項記載の携帯端末装置。 6. The portable terminal device according to claim 5 , wherein the predetermined fixed value is a value indicating an unused block. 携帯端末装置のソフトウェア更新方法であって、
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納され、前記プログラム領域のブロック各々の物理ブロック番号と論理ブロック番号とは等しく、前記代替領域のブロック各々の前記スペア領域には当該ブロックの論理ブロック番号が格納されていないNAND型フラッシュメモリに、前記プログラム領域及び前記代替領域のみを利用して前記ソフトウェアを格納する各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御ステップを含み、
前記制御ステップは、前記ソフトウェアの更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込むステップを含み、
前記制御ステップは、前記プログラム領域及び前記代替領域に割り当てられた前記ブロック各々の前記スペア領域内の論理ブロック番号を基に前記対応関係を把握して前記NAND型フラッシュメモリにアクセスすることを特徴とするソフトウェア更新方法。
A software update method for a mobile terminal device,
Including a program area in which a part of a plurality of blocks constituting the own memory is allocated and storing software, and an alternative area to which a part of the plurality of blocks is allocated, Each block includes a main area for storing actual data (Main Area) and a spare area for storing spare data (Spare Area), and the logical block number of the block is stored in the spare area of each block in the program area. In the NAND flash memory, the physical block number and the logical block number of each block of the program area are equal, and the spare area of each block of the alternative area does not store the logical block number of the block. Using only the area and the alternative area Includes a control step of accessing to grasp the correspondence between the physical block number and the logical block number of each block for storing software,
In the control step, when rewriting the software on a block basis based on the difference data for updating the software, if the rewrite target block in the program area is a bad block, the difference data is transferred to the block in the alternative area. And writing the logical block number of the block to be rewritten in the spare area of the block in which the differential data of the alternative area is written,
The control step grasps the correspondence relationship based on a logical block number in the spare area of each of the blocks allocated to the program area and the alternative area, and accesses the NAND flash memory. How to update software.
前記制御ステップは、前記対応関係を第2のメモリに格納するステップと、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号が書き込まれた場合、前記第2のメモリ内の前記対応関係を更新するステップとを含むことを特徴とする請求項記載のソフトウェア更新方法。 The control step includes the step of storing the correspondence relationship in a second memory, and when the logical block number of the rewrite target block is written in the spare area of the block in which the differential data of the alternative area is written, The software update method according to claim 7 , further comprising the step of updating the correspondence relationship in the second memory. 前記第2のメモリは揮発性メモリであり、
前記対応関係を前記第2のメモリに格納するステップは、前記携帯端末装置の電源投入時に前記対応関係を作成して前記第2のメモリに格納することを特徴とする請求項記載のソフトウェア更新方法。
The second memory is a volatile memory;
Wherein the step of storing a correspondence relationship in the second memory, the portable terminal device of software according to claim 8, wherein said creating a correspondence relation when the power is turned, characterized in that stored in the second memory updating Method.
前記代替領域のブロックは、前記代替領域内の先頭ブロックから順に使用されることを特徴とする請求項7〜9いずれか記載のソフトウェア更新方法。 The software update method according to claim 7 , wherein the blocks in the alternative area are used in order from the first block in the alternative area. 前記ソフトウェアの書き換えを行う際、前記書き換え対象ブロックが不良ブロックであり、かつ前記書き換え対象ブロックの論理ブロック番号が割り当てられた前記代替領域のブロックが存在しない場合、前記書き換え対象ブロックのデータを所定の固定値として前記代替領域のブロックに前記差分データを書き込むことを特徴とする請求項7〜10いずれか記載のソフトウェア更新方法。 When rewriting the software, if the block to be rewritten is a bad block and there is no block in the substitution area to which the logical block number of the block to be rewritten is assigned, the data of the block to be rewritten is a predetermined data The software update method according to claim 7 , wherein the difference data is written as a fixed value in the block of the alternative area. 前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項1記載のソフトウェア更新方法。 Said predetermined fixed value, a method of software update claim 1 1, wherein the a value indicating the unused block. 携帯端末装置のソフトウェア更新方法をコンピュータに実行せしめるプログラムであって、
自メモリを構成する複数のブロックの内の一部のブロックが割り当てられソフトウェアを格納するプログラム領域と、前記複数のブロックの内の一部のブロックが割り当てられた代替領域とを含み、前記複数のブロック各々は実データを格納するメイン領域(Main Area)とスペアデータを格納するスペア領域(Spare Area)とを含み、前記プログラム領域のブロック各々の前記スペア領域に当該ブロックの論理ブロック番号が格納され、前記プログラム領域のブロック各々の物理ブロック番号と論理ブロック番号とは等しく、前記代替領域のブロック各々の前記スペア領域には当該ブロックの論理ブロック番号が格納されていないNAND型フラッシュメモリに、前記プログラム領域及び前記代替領域のみを利用して前記ソフトウェアを格納する各ブロックの物理ブロック番号と論理ブロック番号との対応関係を把握してアクセスする制御処理を含み、
前記制御処理は、前記ソフトウェアの更新用の差分データを基にブロック単位で前記ソフトウェアの書き換えを行う際、前記プログラム領域の書き換え対象ブロックが不良ブロックである場合、前記代替領域のブロックに前記差分データを書き込むと共に、前記代替領域の前記差分データが書き込まれたブロックの前記スペア領域に前記書き換え対象ブロックの論理ブロック番号を書き込む処理を含み、
前記制御処理は、前記プログラム領域及び前記代替領域に割り当てられた前記ブロック各々の前記スペア領域内の論理ブロック番号を基に前記対応関係を把握して前記NAND型フラッシュメモリにアクセスすることを特徴とするプログラム。
A program for causing a computer to execute a software update method for a mobile terminal device,
Including a program area in which a part of a plurality of blocks constituting the own memory is allocated and storing software, and an alternative area to which a part of the plurality of blocks is allocated, Each block includes a main area for storing actual data (Main Area) and a spare area for storing spare data (Spare Area), and the logical block number of the block is stored in the spare area of each block in the program area. In the NAND flash memory, the physical block number and the logical block number of each block of the program area are equal, and the spare area of each block of the alternative area does not store the logical block number of the block. Using only the area and the alternative area Includes a control process of accessing to grasp the correspondence between the physical block number and the logical block number of each block for storing software,
When the control process rewrites the software in block units based on the difference data for updating the software, if the block to be rewritten in the program area is a bad block, the difference data is transferred to the block in the alternative area. And writing the logical block number of the block to be rewritten in the spare area of the block in which the differential data of the alternative area is written,
The control process is characterized in that the correspondence relationship is grasped based on a logical block number in the spare area of each of the blocks allocated to the program area and the alternative area, and the NAND flash memory is accessed. Program to do.
前記ソフトウェアの書き換えを行う際、前記書き換え対象ブロックが不良ブロックであり、かつ前記書き換え対象ブロックの論理ブロック番号が割り当てられた前記代替領域のブロックが存在しない場合、前記書き換え対象ブロックのデータを所定の固定値として前記代替領域のブロックに前記差分データを書き込むことを特徴とする請求項1記載のプログラム。 When rewriting the software, if the block to be rewritten is a bad block and there is no block in the substitution area to which the logical block number of the block to be rewritten is assigned, the data of the block to be rewritten is a predetermined data It claims 1 to 3, wherein the program and writes the differential data into blocks of the alternate area as a fixed value. 前記所定の固定値は、未使用ブロックであることを示す値であることを特徴とする請求項1記載のプログラム。 It said predetermined fixed value, according to claim 1 4, wherein the program, which is a value indicating the unused block.
JP2009192677A 2009-01-29 2009-08-24 Portable terminal device, software update method and program Expired - Fee Related JP5521437B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009192677A JP5521437B2 (en) 2009-01-29 2009-08-24 Portable terminal device, software update method and program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009017422 2009-01-29
JP2009017422 2009-01-29
JP2009192677A JP5521437B2 (en) 2009-01-29 2009-08-24 Portable terminal device, software update method and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014023254A Division JP2014112419A (en) 2009-01-29 2014-02-10 Mobile terminal apparatus, software update method, operation control method, and program

Publications (2)

Publication Number Publication Date
JP2010198592A JP2010198592A (en) 2010-09-09
JP5521437B2 true JP5521437B2 (en) 2014-06-11

Family

ID=42823214

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009192677A Expired - Fee Related JP5521437B2 (en) 2009-01-29 2009-08-24 Portable terminal device, software update method and program
JP2014023254A Pending JP2014112419A (en) 2009-01-29 2014-02-10 Mobile terminal apparatus, software update method, operation control method, and program

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014023254A Pending JP2014112419A (en) 2009-01-29 2014-02-10 Mobile terminal apparatus, software update method, operation control method, and program

Country Status (1)

Country Link
JP (2) JP5521437B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5767565B2 (en) * 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Software image management method, computer program, and system (management of multiple software images using shared memory blocks)
EP3252605B1 (en) 2015-01-26 2022-04-06 Hitachi Astemo, Ltd. Vehicle-mounted control device, program writing device, program generating device and program

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103469B2 (en) * 1985-05-21 1994-12-14 富士通株式会社 Memory control circuit
JPS63293654A (en) * 1987-05-27 1988-11-30 Hitachi Ltd Memory controller
JP3178913B2 (en) * 1992-10-14 2001-06-25 株式会社東芝 Semiconductor file device
JPH06131895A (en) * 1992-10-14 1994-05-13 Toshiba Corp Semiconductor memory chip
JP2002109895A (en) * 1996-02-29 2002-04-12 Hitachi Ltd Semiconductor storage device
JP3670151B2 (en) * 1999-01-29 2005-07-13 株式会社デジタル Flash memory access method, system including driver for accessing flash memory, and flash memory
JP2000242528A (en) * 1999-02-24 2000-09-08 Nissan Motor Co Ltd Device for monitoring cpu runaway
JP2006048585A (en) * 2004-08-09 2006-02-16 Fujitsu Ltd Access method of flash memory
JP4734033B2 (en) * 2005-05-30 2011-07-27 株式会社東芝 Storage device
JP2007199846A (en) * 2006-01-24 2007-08-09 Toshiba Corp Memory control device and memory control method
JP5019567B2 (en) * 2006-08-04 2012-09-05 ソニーモバイルコミュニケーションズ株式会社 Memory management method and portable terminal device
JP4636005B2 (en) * 2006-11-13 2011-02-23 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4655034B2 (en) * 2006-12-25 2011-03-23 Tdk株式会社 Memory controller, flash memory system, and flash memory control method

Also Published As

Publication number Publication date
JP2010198592A (en) 2010-09-09
JP2014112419A (en) 2014-06-19

Similar Documents

Publication Publication Date Title
JP6568947B2 (en) In-vehicle control device, program update system, and program update software
JP4828816B2 (en) Memory card, semiconductor device, and memory card control method
US9996462B1 (en) Data storage device and data maintenance method thereof
JP2005242897A (en) Flash disk drive
JP2011129192A (en) Semiconductor memory device
EP1787202A1 (en) Storage device, memory management method and program
JP2005010897A (en) Computer system, computer system starting method and program
JP2000222292A (en) Data managing method utilizing flash memory
JP2007133541A (en) Storage device, memory management device, memory management method and program
JP2009205689A (en) Flash disk device
US10248526B2 (en) Data storage device and data maintenance method thereof
JP5521437B2 (en) Portable terminal device, software update method and program
JP5066894B2 (en) Storage medium control device
JP4910402B2 (en) Nonvolatile memory rewriting device and rewriting method
JP7153435B2 (en) Data rewriting method for non-volatile memory and semiconductor device
JP2011175361A (en) Data storage device and method
JP2009134672A (en) Memory management method and portable terminal equipment
JP5787095B2 (en) Method for storing data in non-volatile memory
JP4580724B2 (en) Nonvolatile memory control method
JP5410083B2 (en) Nonvolatile memory driver, electronic device including the same, and nonvolatile memory driving method
JP7219813B2 (en) Arithmetic processing device, vehicle control device and update method
JP2007199846A (en) Memory control device and memory control method
JP2008191855A (en) Semiconductor storage device and memory control method
JP6699598B2 (en) Vehicle control device
JP2008117404A (en) Memory rewriting control system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131112

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140210

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5521437

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees