JP6814327B1 - Memory devices, systems, and methods for updating firmware with a single memory device - Google Patents

Memory devices, systems, and methods for updating firmware with a single memory device Download PDF

Info

Publication number
JP6814327B1
JP6814327B1 JP2020531080A JP2020531080A JP6814327B1 JP 6814327 B1 JP6814327 B1 JP 6814327B1 JP 2020531080 A JP2020531080 A JP 2020531080A JP 2020531080 A JP2020531080 A JP 2020531080A JP 6814327 B1 JP6814327 B1 JP 6814327B1
Authority
JP
Japan
Prior art keywords
memory device
firmware image
firmware
data
mapping
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.)
Active
Application number
JP2020531080A
Other languages
Japanese (ja)
Other versions
JP2021506014A (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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor 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 Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Application granted granted Critical
Publication of JP6814327B1 publication Critical patent/JP6814327B1/en
Publication of JP2021506014A publication Critical patent/JP2021506014A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

メモリデバイスが、メモリセルアレイ及びリマップ・データ構造を含むことができる。リマップ・データ構造はマッピング履歴部分及び状態部分を含むことができ、マッピング履歴部分は領域の論理アドレスと物理アドレスとの間のマッピングの集合を記憶するように構成され、状態部分はマッピングの集合のうちの1つをデバイスにとって有効な集合として識別するように構成されている。制御論理回路を、メモリセルアレイ及びリマップ・データ構造に結合することができ、記憶位置及びリマップ・データ構造へのアクセスを可能にするように構成することができる。メモリデバイスを含み、ファームウェア無線通信(FOTA)を含むファームウェア更新システム及び方法も開示する。The memory device can include a memory cell array and a remap data structure. The remap data structure can include a mapping history part and a state part, the mapping history part is configured to store a set of mappings between the logical and physical addresses of the region, and the state part is a set of mappings. It is configured to identify one of them as a valid set for the device. The control logic can be coupled to the memory cell array and the remap data structure and can be configured to allow access to the storage location and the remap data structure. Also disclosed are firmware update systems and methods that include memory devices and include firmware wireless communication (FOTA).

Description

本願は、米国特許非仮出願第16/005262号、2018年6月11日出願の国際出願であり、この米国特許非仮出願は米国特許仮出願題62/597709号、2017年12月12日出願により優先権を主張し、これらの特許出願のすべての内容は参照することによって本明細書に含める。 This application is an international application of US Patent Non-Provisional Application No. 16/005262, filed June 11, 2018, and this US Patent Non-Provisional Application is US Patent Provisional Application No. 62/597709, December 12, 2017. Priority is claimed by application and the entire contents of these patent applications are incorporated herein by reference.

技術分野
本発明は一般に不揮発性メモリ内のデータを時々更新(アップデート)するシステムに関するものであり、より具体的には、ファームウェア無線通信(FOTA:firmware-over-the-air)法を利用するシステムのようなシステム用途向けのファームウェア・イメージを更新するシステムに関するものである。
Technical Field The present invention generally relates to a system that updates data in a non-volatile memory from time to time, and more specifically, a system that uses a firmware-over-the-air (FOTA) method. It is about a system that updates a firmware image for system applications such as.

背景
ファームウェア無線通信(FOTA)(無線通信によるファームウェア更新)及び他のファームウェア更新方法は、コンピュータシステムにとって主要な要件であり得る。FOTA更新は一般にトランスペアレントである必要があり、即ち、旧FW(firmware:ファームウェア)イメージと新FWイメージとを瞬時に切り換える。従来は、ファームウェアを更新する必要があるシステムは2つ以上の別個のフラッシュメモリデバイスを使用し、これらのフラッシュメモリデバイスは(例えば、ベースレジスタの使用により)プロセッサのアドレス空間の異なる範囲内へマッピング(対応付け)される。異なるアドレス範囲の各々のベースアドレスは、所望のフラッシュメモリデバイスを選択する単一のチップ選択(チップセレクト)を制御する。従って、上記瞬時の切り換えは、ベースアドレス・レジスタに記憶されているベースアドレスをスワップ(交換)することによって発生する。
Background Firmware wireless communication (FOTA) (firmware update by wireless communication) and other firmware update methods can be major requirements for computer systems. The FOTA update generally needs to be transparent, i.e., it instantly switches between the old FW (firmware) image and the new FW image. Traditionally, systems that require firmware updates use two or more separate flash memory devices, which map to different ranges of processor address space (eg, by using base registers). (Associated). Each base address in a different address range controls a single chip select (chip select) that selects the desired flash memory device. Therefore, the instantaneous switching occurs by swapping the base address stored in the base address register.

図16Aに、FOTA更新を含む従来のシステム1691を示す。システム1691は、マイクロコントローラ(MCU:microcontroller unit)1693及び複数のフラッシュメモリデバイス1695−0〜1695−2を含むことができる。フラッシュメモリデバイス(1695−0〜1695−2)内の記憶位置(記憶場所)はシステムアドレス空間1697へマッピングすることができる。フラッシュメモリデバイス0 1695−0は、ベースアドレス0x000に対応することができ、旧ファームウェア・イメージ1607−0(即ち、期限切れのバージョン、従って置き換えられたバージョン)を記憶することができる。フラッシュメモリデバイス1 1695−1は、ベースアドレス0x100に対応することができ、現在のファームウェア・イメージ(即ち、現在、システムがアクセスするバージョン)を記憶することができる。フラッシュメモリデバイス2 1695−2は、ベースアドレス0x200に対応することができ、新ファームウェア・イメージ1697−2(即ち、現在のイメージを更新することを意図したバージョン)を記憶することができる。 FIG. 16A shows a conventional system 1691 including FOTA updates. The system 1691 can include a microcontroller (MCU) 1693 and a plurality of flash memory devices 1695-0-1695-2. The storage location (storage location) in the flash memory device (1695-1695-2) can be mapped to the system address space 1697. Flash memory device 0 1695-0 can accommodate base address 0x000 and can store the old firmware image 1607-0 (ie, the expired version and thus the replaced version). Flash memory device 1 1695-1 can support base address 0x100 and can store the current firmware image (ie, the version currently accessed by the system). The flash memory device 2 1695-2 can support a base address of 0x200 and can store a new firmware image 1697-2 (ie, a version intended to update the current image).

MCU1693は、MCU1693内部のアドレス指定(アドレッシング)メカニズムを用いてファームウェア・イメージを更新することができる。MCU1693はベースアドレス・レジスタ1699を有することができ、ベースアドレス・レジスタ1699はファームウェア・イメージに対応するベースアドレスを記憶する。ベースアドレス・レジスタを用いて、フラッシュメモリデバイス1695−0〜1695−2用のそれぞれのチップ選択信号CS0〜CS2を発生する。ベースアドレス・レジスタ”ba_new_image”は、新ファームウェア・イメージのベース物理アドレス(更新前の0x200)を記憶することができる。ベースアドレス・レジスタ”ba_cur_image”は、現在のファームウェア・イメージのベース物理アドレス(更新前の0x100)を記憶することができる。ベースアドレス・レジスタ”ba_old_image”は、旧ファームウェア・イメージのベース物理アドレス(更新前の0x000)を記憶することができる。 The MCU1693 can update the firmware image using the addressing mechanism inside the MCU1693. The MCU 1693 can have a base address register 1699, which stores the base address corresponding to the firmware image. The base address register is used to generate the respective chip selection signals CS0 to CS2 for the flash memory devices 1695-0695-2. The base address register "ba_new_image" can store the base physical address (0x200 before update) of the new firmware image. The base address register "ba_cur_image" can store the base physical address (0x100 before update) of the current firmware image. The base address register "ba_old_image" can store the base physical address (0x000 before update) of the old firmware image.

システム1691は、ベースアドレス・レジスタ1699内の値を切り換えることによって、現在のイメージ(例えば、1697−1)から新イメージ(例えば、1697−2)へ更新することができる。具体的には、ベースアドレス・レジスタba_cur_image内の値を”cfg_cur”から”cfg_new”に切り換えることができる。こうした作業に続いて、システム1691がファームウェアを読みに行く際に、MCA1693内部のアドレス指定メカニズムが、チップ選択信号CS2を(更新作業の前に発生したCS1の代わりに)発生する。 System 1691 can update from the current image (eg, 1697-1) to a new image (eg, 1697-1) by switching the values in the base address register 1699. Specifically, the value in the base address register ba_cur_image can be switched from "cfg_cur" to "cfg_new". Following this work, when the system 1691 goes to read the firmware, the addressing mechanism inside the MCA1693 generates the chip selection signal CS2 (instead of the CS1 that occurred before the update work).

図16Bは従来のシステム1691のブロック図であり、チップ選択を使用する方法を示す。MCU1693は、1つの出力端子(例えば、I/O(input/output:入力/出力)端子)を、フラッシュメモリデバイス1695−0/1毎のチップ選択(CS1、CS2)としての専用にする。以上より理解されるように、こうしたチップ選択(CS1、CS2)はベースアドレス・レジスタ内の値に応じて活性化することができる。一方のフラッシュメモリ(例えば、1695−0)は、現在使用中であるファームウェア・イメージを記憶することができるのに対し、他方のフラッシュメモリ(例えば、1695−1)は、現在使用中でない(即ち、旧ファームウェア・イメージ、あるいはベースアドレス・レジスタ値を切り換えることによって使用中にされるべき新ファームウェア・イメージ)を記憶することができる。 FIG. 16B is a block diagram of a conventional system 1691, showing a method of using chip selection. The MCU1693 dedicates one output terminal (for example, an I / O (input / output) terminal) as a chip selection (CS1, CS2) for each flash memory device 1695-0 / 1. As will be understood from the above, such chip selection (CS1, CS2) can be activated according to the value in the base address register. One flash memory (eg, 1695-1) can store the firmware image currently in use, while the other flash memory (eg, 1695-1) is not currently in use (ie, 1695-1). , The old firmware image, or the new firmware image that should be in use by switching the base address register value) can be stored.

従来のFOTA方法の欠点は、コスト及び性能の限界であり得る。1つのI/O端子をフラッシュメモリデバイス毎の(即ち、各ファームウェア・イメージの)チップ選択端子としての専用にする代表的なコントローラ(例えば、MCU)を使用する場合、このコントローラは、ダイナミックRAM(DRAM:dynamic random access memory:ダイナミック・ランダムアクセスメモリ)またはスタティックRAM(SRAM:static RAM)のような他の必要なデバイス用の未使用のI/O端子を有さないことがある。その結果、追加的なI/O端子を有するコントローラを使用しなければならないことがあり、このことはシステムのコストを増加させ得る。従来のシステムは複数のフラッシュメモリデバイスを同じバスに接続することができるが、フラッシュメモリデバイスが追加される毎にバス上の容量性負荷が増加し得る。従って、バス上のフラッシュメモリデバイスの数が多くなるほど、バスはより低速で機能する。ほんの一例として、8進(オクタル)のSPI(serial peripheral interface:シリアル周辺インタフェース)バスについては、2つのフラッシュメモリデバイスを追加することは、1つのフラッシュメモリデバイスしか有さない同じバスに比べれば、最高バス速度を200MHzから133〜166MHzに低下させ得る。 Disadvantages of conventional FOTA methods can be cost and performance limitations. When using a typical controller (eg, MCU) that dedicates one I / O terminal as a chip selection terminal for each flash memory device (ie, for each firmware image), this controller can be a dynamic RAM (ie, each firmware image). It may not have an unused I / O terminal for other required devices such as DRAM: dynamic random access memory or static RAM (SRAM). As a result, a controller with additional I / O terminals may have to be used, which can increase the cost of the system. Traditional systems allow multiple flash memory devices to be connected to the same bus, but the capacitive load on the bus can increase with each additional flash memory device. Therefore, the greater the number of flash memory devices on the bus, the slower the bus will operate. As just one example, for an octal SPI (serial peripheral interface) bus, adding two flash memory devices is compared to the same bus, which has only one flash memory device. The maximum bus speed can be reduced from 200 MHz to 133-166 MHz.

図1A〜1Dは、一実施形態によるシステム及びファームウェア更新作業を示す一連のブロック図である。1A-1D are a series of block diagrams showing a system and firmware update operation according to one embodiment. 図2A及び2Bは、メモリデバイスが命令及び/またはレジスタ書込みを受け取ることを更新作業に含めることができる方法を示すブロック図である。2A and 2B are block diagrams showing how the memory device can include receiving instructions and / or register writes in the update operation. 一実施形態によるメモリデバイスの概略ブロック図である。It is a schematic block diagram of the memory device according to one Embodiment. 一実施形態によるメモリデバイスのリマップ・データ構造を示す図である。It is a figure which shows the remap data structure of the memory device by one Embodiment. 一実施形態によるファームウェア更新作業を示す流れ図である。It is a flow chart which shows the firmware update work by one Embodiment. 図6A及び6Bは、実施形態に含めることができるメモリセルのアレイ構成を示す図である。6A and 6B are diagrams showing an array configuration of memory cells that can be included in the embodiment. 実施形態に含めることができるデータ構造及び対応するメモリセルアレイを示すブロック図である。It is a block diagram which shows the data structure which can be included in embodiment and the corresponding memory cell array. 実施形態に含めることができる、可変数のプールに分割することができるメモリセルアレイを示す図である。It is a figure which shows the memory cell array which can be divided into a variable number pool which can be included in an embodiment. 図9A〜9Dは、実施形態による、ファームウェアを更新するためのメモリデバイスへの入力を示す図である。9A-9D are diagrams showing inputs to the memory device for updating the firmware according to the embodiment. 一実施形態による、ファームウェア無線通信(FOTA)更新を含むことができるシステムを示す図である。It is a figure which shows the system which can include the firmware radio communication (FOTA) update by one Embodiment. 一実施形態によるシステムのブロック図である。It is a block diagram of the system by one Embodiment. 図12A及び12Bは、実施形態によるメモリデバイスの透視図である。12A and 12B are perspective views of the memory device according to the embodiment. 図13A〜13Cは、実施形態による好適なデバイスの図である。13A-13C are diagrams of suitable devices according to embodiments. 一実施形態による方法の流れ図である。It is a flow chart of the method by one Embodiment. 他の実施形態による方法の流れ図である。It is a flow chart of the method by another embodiment. 図16A及び16Bは、FOTA更新を行う従来システムを示す図である。16A and 16B are diagrams showing a conventional system for updating FOTA.

詳細な説明
システムのファームウェアを更新するためのメモリデバイス、システム、及び方法を示す種々の実施形態を以下に説明する。更新は、単一のメモリデバイスで、メモリデバイスの記憶位置間でファームウェア・イメージをコピーすることなしに実行することができる。
Detailed Description Various embodiments showing memory devices, systems, and methods for updating system firmware are described below. The update can be performed on a single memory device without copying the firmware image between the storage locations of the memory device.

実施形態によれば、現在のファームウェア・イメージを記憶しているのと同じメモリデバイス内に新ファームウェア・イメージをプログラムすることができる。一旦、新ファームウェア・イメージを記憶すると、メモリデバイスは、内部リマッピング(再マッピング、再配置)データ構造を用いる切り換え動作によって新ファームウェア・イメージへの切り換えを行うことができる。こうした新ファームウェア・イメージへの切り換えは瞬時に行うことができる。 According to the embodiment, the new firmware image can be programmed in the same memory device that stores the current firmware image. Once the new firmware image is stored, the memory device can switch to the new firmware image by a switching operation using an internal remapping (remapping, relocation) data structure. Switching to such a new firmware image can be done instantly.

以下の種々の実施形態では、同様のアイテムは同じ参照文字によって参照し、但し図番に対応する先行数字を付ける。 In the various embodiments below, similar items are referenced by the same reference letter, but with a leading figure corresponding to the figure number.

図1A〜1Dは、システム100及び対応するファームウェア更新作業を示す一連の流れ図である。システム100は、メモリデバイス102、コントローラ104、及びコントローラ・メモリ106を含むことができる。メモリデバイス102は、不揮発性メモリアレイ108、リマップ(再マッピング、再配置)データ構造110、及び入力/出力(I/O)兼制御回路112を含むことができる。不揮発性メモリアレイ108は複数の不揮発性メモリセルを含むことができ、これらの不揮発性メモリセルはデータを不揮発性の方法で記憶することができる。即ち、電力がない場合に、記憶しているデータを保持することができる。記憶位置は物理アドレス(PA:physical address)によりアクセスすることができる。不揮発性メモリ108はあらゆる適切な種類の不揮発性メモリセルを含むことができるが、一部の実施形態では「フラッシュ」型メモリセルを含むことができる。不揮発性メモリアレイ108は、少なくとも2つ以上のファームウェア・イメージ用に十分な記憶容量を有することができる。 1A-1D are a series of flow charts showing the system 100 and the corresponding firmware update work. The system 100 can include a memory device 102, a controller 104, and a controller memory 106. The memory device 102 can include a non-volatile memory array 108, a remap (remapping, relocation) data structure 110, and an input / output (I / O) and control circuit 112. The non-volatile memory array 108 can include a plurality of non-volatile memory cells, which can store data in a non-volatile manner. That is, the stored data can be retained when there is no power. The storage position can be accessed by a physical address (PA). The non-volatile memory 108 can include any suitable type of non-volatile memory cell, but in some embodiments it can include a "flash" type memory cell. The non-volatile memory array 108 can have sufficient storage capacity for at least two or more firmware images.

リマップ・データ構造110は、ファームウェア・イメージの論理アドレス−物理アドレス(LA(logical address)→PA)マッピング、並びにこうしたLA→PAマッピング毎の状態を記録するデータを記憶することができる。例えば、エントリ110−0は、VAL(valid)の表示で示す有効なマッピング(LA_FW=PAx)を記憶する。エントリ110−1はINV(invalid)の表示で示す有効でないマッピングを記憶する。なお、リマップ・データ構造110はメモリデバイス102上に常駐してデータを不揮発性の方法で記憶する。以下の他の実施形態に示すように、リマップ・データ構造110は、論理アドレスと物理アドレスとの間の高速変換用に揮発性メモリ(図示せず)に記憶されているLA→PAルックアップ・テーブル(早見表)または他の構造を含むことができる。リマップ・データ構造110は、不揮発性メモリアレイ108の外部に位置する不揮発性メモリセル及び/または不揮発性メモリアレイ108内に位置する不揮発性メモリセルを利用することができる。 The remap data structure 110 can store the logical address-physical address (LA (logical address) → PA) mapping of the firmware image and the data for recording the state of each LA → PA mapping. For example, entry 110-0 stores a valid mapping (LA_FW = PAx) indicated by the display of VAL (valid). Entry 110-1 stores the invalid mapping indicated by the INV (invalid) display. The remap data structure 110 resides on the memory device 102 and stores the data in a non-volatile manner. As shown in other embodiments below, the remap data structure 110 is a LA → PA lookup stored in a volatile memory (not shown) for high speed translation between logical and physical addresses. It can contain a table (look-up table) or other structure. The remap data structure 110 can utilize non-volatile memory cells located outside the non-volatile memory array 108 and / or non-volatile memory cells located inside the non-volatile memory array 108.

一部の実施形態では、メモリデバイス102を単一の集積回路デバイスとすることができる。こうした構成では、不揮発性メモリアレイ108、リマップ・データ構造110、及びUI/O兼制御回路112は、同じ集積回路パッケージの一部とすることができる。特定の実施形態では、不揮発性メモリアレイ108、リマップ・データ構造110、及びI/O兼制御回路112を、同じ集積回路基板の一部とすることができる(即ち、単一「チップ」内に形成される)。 In some embodiments, the memory device 102 can be a single integrated circuit device. In such a configuration, the non-volatile memory array 108, the remap data structure 110, and the UI / O / control circuit 112 can be part of the same integrated circuit package. In certain embodiments, the non-volatile memory array 108, the remap data structure 110, and the I / O and control circuit 112 can be part of the same integrated circuit board (ie, within a single "chip". It is formed).

I/O兼制御回路112は、不揮発性メモリセル108及びリマップ・データ構造110へのアクセスを可能にすることができる。不揮発性、メモリアレイ108に記憶されているファームウェアにアクセスするために、I/O兼制御回路112は、リマップ・データ構造110を用いて、どのLA→PAマッピングが有効であるかを特定することができ、次にこうしたマッピングを用いて、有効なファームウェア・イメージの論理アドレスを物理アドレスに向けることができる。 The I / O and control circuit 112 can allow access to the non-volatile memory cells 108 and the remap data structure 110. In order to access the firmware stored in the non-volatile memory array 108, the I / O and control circuit 112 uses the remap data structure 110 to identify which LA → PA mapping is valid. Then, these mappings can be used to direct the logical address of a valid firmware image to the physical address.

一部の実施形態では、所定の動作(例えば、パワー(電源)オン/リセットPOR(power-on/reset)、受信した命令、レジスタ設定)に応答して、メモリデバイス102はリマップ・データ構造110にアクセスして、LA→PAマッピング構造を揮発性メモリ(図示せず)内に作成することができる。 In some embodiments, the memory device 102 remaps the data structure 110 in response to a predetermined operation (eg, power-on / reset, received instructions, register settings). The LA → PA mapping structure can be created in volatile memory (not shown) by accessing.

コントローラ104は、システム100の種々の機能を実行するための論理回路を含むことができる。一部の実施形態では、コントローラ104が、記憶されている命令116を実行することができる1つ以上のプロセッサ及び関連する回路を含むことができる。しかし、代案の実施形態は、カスタム(特注)論理回路及び/またはプログラム可能な論理回路(プログラマブル・ロジック)を含めた他のあらゆる適切な回路を含むことができる。コントローラ104は、メモリデバイス102とは異なるコントローラ・メモリ108へのアクセスを行うことができる。コントローラ・メモリ104は、あらゆる適切なメモリ回路で形成することができ、特定の実施形態では、ダイナミック・ランダムアクセスメモリ(DRAM)またはスタティックRAM(SRAM)のような揮発性メモリとすることができる。 The controller 104 can include logic circuits for performing various functions of the system 100. In some embodiments, the controller 104 may include one or more processors and associated circuits capable of executing the stored instructions 116. However, alternative embodiments may include any other suitable circuitry, including custom logic and / or programmable logic. The controller 104 can access the controller memory 108 different from the memory device 102. The controller memory 104 can be formed of any suitable memory circuit and, in certain embodiments, can be volatile memory such as dynamic random access memory (DRAM) or static RAM (SRAM).

システム100の構成要素を説明してきた。システム100における更新作業を以下に説明する。 The components of the system 100 have been described. The update work in the system 100 will be described below.

図1Aを参照すれば、システム100は、最初に、現在のファームウェア・イメージ114を不揮発性メモリアレイ108の物理アドレスPAxから始まる位置に記憶することができる。システムの動作中に、現在のファームウェア・イメージ114がメモリデバイス102からI/O兼制御回路112によって読み出され、I/O兼制御回路112は、リマップ・データ構造110にアクセスすることによって、論理アドレス(LA_FWから始まることができる)を物理アドレス(PAxから始まることができる)に変換する。 With reference to FIG. 1A, the system 100 can first store the current firmware image 114 at a location starting at the physical address PAx of the non-volatile memory array 108. During system operation, the current firmware image 114 is read from the memory device 102 by the I / O and control circuit 112, which logically accesses the remap data structure 110. Translates an address (which can start with LA_FW) to a physical address (which can start with PAx).

図1Aをさらに参照すれば、システム100は新ファームウェア・イメージを受信することができる(動作103で示す)。コントローラ104は新ファームウェア・イメージ118をコントローラ・メモリ106に記憶することができる。新ファームウェア・イメージ118はネットワーク120から受信することができる。一部の実施形態では、ネットワーク120は無線ネットワークとすることができ、更新作業はFOTA動作とすることができる。 Further referring to FIG. 1A, the system 100 can receive the new firmware image (shown in operation 103). The controller 104 can store the new firmware image 118 in the controller memory 106. The new firmware image 118 can be received from network 120. In some embodiments, the network 120 can be a wireless network and the update operation can be a FOTA operation.

図1Bを参照すれば、コントローラ104は新ファームウェア・イメージ118を不揮発性メモリアレイ108内にプログラムすることができる。新ファームウェア・イメージ118は現在のファームウェア・イメージ114が占めていない物理的位置にプログラムされることは明らかである。図示する実施形態では、新ファームウェア・イメージ118は、PAyから始まる物理アドレスの範囲を占めることができ、この範囲は現在のファームウェア114を記憶している物理アドレスの範囲とオーバーラップ(重複)しない。新ファームウェア・イメージ118は、不揮発性メモリアレイ108の種類及びアーキテクチャに適したあらゆる技術によりプログラムすることができる。一部の実施形態では、新ファームウェア・イメージ118用の物理アドレスをコントローラ104によって発生することができる。しかし、他の実施形態では、こうした物理アドレスは、I/O兼制御回路112がコントローラ104からの1つ以上の命令に応答して発生することができる。 With reference to FIG. 1B, the controller 104 can program the new firmware image 118 into the non-volatile memory array 108. It is clear that the new firmware image 118 is programmed in a physical location that the current firmware image 114 does not occupy. In the illustrated embodiment, the new firmware image 118 can occupy a range of physical addresses starting with PAy, which range does not overlap with the range of physical addresses storing the current firmware 114. The new firmware image 118 can be programmed by any technique suitable for the type and architecture of the non-volatile memory array 108. In some embodiments, the controller 104 can generate a physical address for the new firmware image 118. However, in other embodiments, such physical addresses can be generated by the I / O and control circuit 112 in response to one or more instructions from the controller 104.

図1Cを参照すれば、コントローラ104は、新ファームウェア・イメージ118をリマップ・データ構造110にマッピングする論理アドレス−物理アドレス(の対応関係)もプログラムすることができる。こうした動作は、図1C中に、”LA_FW=PAy”がエントリ110−1にプログラムされることによって示す。このようにして、システム100がファームウェアにアクセスするために意図された論理アドレスを、新イメージ118の物理アドレスに割り当てることができる。しかし、図1Cに示すように、こうしたマッピングは効かない、というのはエントリ110−1が無効な状態を有し続けるからである。 With reference to FIG. 1C, the controller 104 can also program a logical address-physical address (correspondence) that maps the new firmware image 118 to the remap data structure 110. Such an operation is shown in FIG. 1C by programming "LA_FW = PAy" in entry 110-1. In this way, the logical address intended for the system 100 to access the firmware can be assigned to the physical address of the new image 118. However, as shown in FIG. 1C, such mapping does not work because entry 110-1 remains in an invalid state.

図1Dを参照すれば、コントローラ104は、新たなマッピング・エントリを有効にプログラムすることによって、新ファームウェア・イメージを「有効」にすることができる。こうした動作は、図1D中に、エントリ110−1が有効(VAL)に変化し、エントリ110−0が無効になったことによって示している。不揮発性メモリアレイ108内に示すように、一旦、新たなマッピングが有効になると、PAxにあるファームウェア・イメージは無効な(例えば、期限切れの)ファームウェア・イメージ115になり、PAyにあるファームウェア・イメージが現在のファームウェア・イメージになって、システムによってアクセスされる。 With reference to FIG. 1D, the controller 104 can “enable” the new firmware image by effectively programming the new mapping entry. Such an operation is shown in FIG. 1D by changing entry 110-1 to valid (VAL) and invalidating entry 110-0. As shown in the non-volatile memory array 108, once the new mapping is enabled, the firmware image in PAx becomes an invalid (eg expired) firmware image 115 and the firmware image in PAy becomes It becomes the current firmware image and is accessed by the system.

一旦、新ファームウェア・イメージが有効になる(例えば、生きる)と、即座に、あるいは所定条件に応答してアクセスすることができる。多数の可能な例の内のほんの少数として、次のいずれか、あるいは全部の後に新たなマッピングが効力を生じることができる:デバイスまたはシステムの次回の電源投入またはリセット(POR:power-up or reset)動作、メモリデバイス102が所定の命令を受信すること、または所定の値がメモリデバイス102のコンフィギュレーション・レジスタに書き込まれること。 Once the new firmware image is enabled (eg, alive), it can be accessed immediately or in response to certain conditions. As just a few of the many possible examples, the new mapping can take effect after any or all of the following: the next power-up or reset (POR) of the device or system. ) Operation, the memory device 102 receives a given instruction, or a given value is written to the configuration register of the memory device 102.

図1A〜1Dに示すような動作は、ファームウェアの更新をトランスペアレントかつ即時にすることができ、同じメモリデバイス内の位置間でデータをコピーすることを必要としないようにすることができる。なお、一部の実施形態では、メモリデバイス102が2つの位置をファームウェア用に保持することができ、これら2つの位置間で新ファームウェア・イメージの各々を「スワップ」することができる。しかし、他の実施形態では、メモリデバイス102が3つ以上の記憶位置をファームウェア用に含むことができ、新ファームウェア・イメージを受信した際に、これらの種々の位置間を循環させる(種々の位置を順に使用する)ことができる。 Operations such as those shown in FIGS. 1A-1D can make firmware updates transparent and immediate, eliminating the need to copy data between locations within the same memory device. Note that in some embodiments, the memory device 102 can hold two positions for firmware and "swap" each of the new firmware images between these two positions. However, in other embodiments, the memory device 102 can include three or more storage locations for firmware and circulates between these various locations when a new firmware image is received (various locations). Can be used in order).

コントローラ104はファームウェア位置用の物理アドレスを追跡することができるが、一部の実施形態では、I/O兼制御論理回路112がこうしたタスクを担って、コントローラ104から受信したファームウェア・データ値用の物理アドレスを発生することができる。 The controller 104 can track the physical address for the firmware location, but in some embodiments the I / O and control logic 112 is responsible for these tasks for the firmware data values received from the controller 104. A physical address can be generated.

本明細書中に示す実施形態は、メモリデバイスによって実行される種々の動作を含むことができ、これらの動作は、ファームウェア・データを不揮発性メモリアレイの記憶位置にプログラムすること、リマップ・データ構造内に値(例えば、LA−PAマッピングデータ、状態値、等)をプログラムすること、及び新バージョンのファームウェアを”有効”にする(即ち、システムにとって利用可能にする)ことを含む。こうした動作はあらゆる適切な方法で実現することができるが、図2A及び2Bは実施形態による2つのやり方を示す。 The embodiments shown herein can include various actions performed by the memory device, which are programming firmware data to a storage location in a non-volatile memory array, a remap data structure. Includes programming values within (eg, LA-PA mapping data, state values, etc.) and making a new version of the firmware "enabled" (ie, made available to the system). Such operations can be achieved in any suitable way, but FIGS. 2A and 2B show two ways according to the embodiment.

図2A及び2Bは、メモリデバイス202及び202’のブロック図である。特定の実施形態では、メモリデバイス202/202’を、図1A〜1D中に102で示すものの特定の実現とすることができる。 2A and 2B are block diagrams of memory devices 202 and 202'. In certain embodiments, the memory devices 202/202'can be a particular realization of what is shown in 102 in FIGS. 1A-1D.

図2Aに、メモリデバイス202内のコンフィギュレーション・レジスタへのデータの書込みを示す。メモリデバイス202は、I/O回路212−0、制御論理回路212−1、リマップ・データ構造210、及びコンフィギュレーション・レジスタ222を含むことができる。データ値DATAをコンフィギュレーション・レジスタ222に書き込んで、ファームウェア更新作業における動作を開始するか可能にすることができる。ほんの少数の例として、このレジスタ設定によれば、次のいずれか、あるいは全部が発生し得る:新ファームウェア・イメージを「有効」にすることができる、PA→LAのマッピングデータ(210−x)をプログラムすることができる、メモリデバイスを、コントローラが新ファームウェアを記憶位置にプログラムすること(即ち、物理アドレス指定でアクセスすること)を可能にするモードにすることができる。コンフィギュレーション・レジスタ222に書き込むことは、データ及びレジスタ・アドレス(データ+アドレス)をメモリデバイスに与えることを含むことができる。さらに、こうした動作は命令(例えば、レジスタに書き込む、等)を含むこともできる。 FIG. 2A shows writing data to the configuration register in the memory device 202. The memory device 202 may include an I / O circuit 212-0, a control logic circuit 212-1, a remap data structure 210, and a configuration register 222. The data value DATA can be written to the configuration register 222 to initiate or enable operation in the firmware update operation. As just a few examples, according to this register setting, any or all of the following can occur: PA → LA mapping data (210-x) that can "enable" the new firmware image: The memory device can be put into a mode that allows the controller to program the new firmware to a storage location (ie, access by physical addressing). Writing to the configuration register 222 can include giving the data and register address (data + address) to the memory device. In addition, such actions can also include instructions (eg, write to registers, etc.).

図2Bに、ファームウェア更新作業用の特定の命令を受信するメモリデバイス202’を示す。メモリデバイス202’は、図2Aと同じアイテムを含むことができる。しかし、図2Aとは異なり、ファームウェア更新作業中の動作はメモリデバイス202’にとって専用の命令によって実行することができる。従って、制御論理回路212−1は命令デコーダ224を含むことができる。1つ以上の命令に応答して、制御論理回路212−1’は、図2Aのレジスタ書込みについて述べた動作のいずれか(即ち、新ファームウェアを「有効」にする、等)を実行することができる。一部の実施形態では、命令(命令)に1つ以上のデータ値(+データ)を添付することができる。 FIG. 2B shows a memory device 202'that receives a specific instruction for firmware update work. The memory device 202'can include the same items as in FIG. 2A. However, unlike FIG. 2A, the operation during the firmware update operation can be executed by a command dedicated to the memory device 202'. Therefore, the control logic circuit 212-1 can include an instruction decoder 224. In response to one or more instructions, the control logic 212-1'can perform any of the operations described for register writing in FIG. 2A (ie, "enable" the new firmware, etc.). it can. In some embodiments, one or more data values (+ data) can be attached to the instruction (instruction).

図3は、他の実施形態によるメモリデバイス302のブロック図である。特定の実施形態では、図3は、図1A〜1D中に102で示すもの、あるいは図2A/B中に示すものの1つの実現とすることができる。 FIG. 3 is a block diagram of the memory device 302 according to another embodiment. In a particular embodiment, FIG. 3 can be one implementation of what is shown in FIGS. 1A-1D, 102, or in FIGS. 2A / B.

メモリデバイス302は、I/O回路312−0、制御論理回路312−1、リマップ・データ構造310、メモリセルアレイ308、X及びYデコーダ334及び336、及びデータラッチ338を含むことができる。I/O回路312−0は、メモリデバイス302用のあらゆる適切なインタフェースを提供することができ、図示する非常に特別な実施形態では、チップ選択入力端子CS、クロック入力端子CLK、シリアルI/O(SI/O0)端子、及び任意で1つ以上の追加的なシリアルI/O(SI/On)端子を含むことができる。十分に理解された技術によれば、メモリデバイス302はアクティブ(有効)なCS信号によってアクセスすることができ、SI/O0(及びSI/On)端子上の命令、アドレス値、またはデータ値をCLK端子で受信したクロックに同期して受信することができる。しかし、こうした特定のインタフェースは限定的なものと考えるべきでない。代案の実施形態は種々のインタフェースを有するI/O回路を含むことができ、これらのインタフェースは、専用のアドレス線及びデータ線、非同期タイミング、並列バス、等を有するものを含む。 The memory device 302 can include an I / O circuit 312-0, a control logic circuit 312-1, a remap data structure 310, a memory cell array 308, X and Y decoders 334 and 336, and a data latch 338. The I / O circuit 312-0 can provide any suitable interface for the memory device 302, and in a very specific embodiment illustrated, a chip selection input terminal CS, a clock input terminal CLK, a serial I / O. It can include (SI / O0) terminals and optionally one or more additional serial I / O (SI / On) terminals. According to a well-understood technique, the memory device 302 can be accessed by an active CS signal and CLKs an instruction, address value, or data value on the SI / O0 (and SI / On) terminal. It can be received in synchronization with the clock received at the terminal. However, these particular interfaces should not be considered limited. Alternative embodiments may include I / O circuits with various interfaces, including those having dedicated address and data lines, asynchronous timing, parallel buses, and the like.

リマップ・データ構造310は、不揮発性の方法でデータを記憶して、最新のファームウェア・イメージを追跡してアクセスを可能にする。図示する実施形態では、リマップ・データ構造310が、ポインタデータ328、リマップ履歴データ330、及びマップメモリ332を含むことができる。リマップ履歴データ330は、新ファームウェア・イメージがメモリセルアレイ308内にプログラムされる毎に、LA→PAマッピングデータを記憶することができる。従って、リマップ履歴データ330は、特定のファームウェアについてのすべてのマッピングの履歴を記憶することができる(ここでは最も古いエントリを最終的に上書きする)。ポインタデータ328は、最新のリマップ履歴データのエントリを指示することができ、従って最新のファームウェア・イメージのエントリを指示することができる。マップメモリ332内のデータは、リマップ履歴データ330よりも高速にアクセスすることができ、高速のLA→PA変換を提供するように構成することができる。一部の実施形態では、マップメモリ332を揮発性のメモリ構造にすることができ、このメモリ構造に、ポインタデータ328が指示するリマップ履歴データを入れる。一部の実施形態では、ポインタデータ328及びリマップ履歴データ330を不揮発性メモリ回路に記憶する。こうした不揮発性メモリ回路は、メモリセルアレイ308の一部とすることができ、あるいはメモリセルアレイ308とは別個にすることができる。マップメモリ332は、SRAM及び/またはDRAMのような揮発性メモリ回路を含むことができる。 The remap data structure 310 stores data in a non-volatile manner to track and access the latest firmware images. In the illustrated embodiment, the remap data structure 310 can include pointer data 328, remap history data 330, and map memory 332. The remap history data 330 can store LA → PA mapping data each time a new firmware image is programmed into the memory cell array 308. Therefore, the remap history data 330 can store a history of all mappings for a particular firmware (here it will eventually overwrite the oldest entry). The pointer data 328 can indicate the entry of the latest remap history data, and thus can indicate the entry of the latest firmware image. The data in the map memory 332 can be accessed faster than the remap history data 330 and can be configured to provide faster LA → PA conversions. In some embodiments, the map memory 332 can have a volatile memory structure, in which the remap history data instructed by the pointer data 328 is inserted. In some embodiments, the pointer data 328 and the remap history data 330 are stored in the non-volatile memory circuit. Such a non-volatile memory circuit can be part of the memory cell array 308 or can be separate from the memory cell array 308. The map memory 332 can include a volatile memory circuit such as a SRAM and / or a DRAM.

制御論理回路312−1は、メモリデバイス302の動作を、I/O回路312−0で受信した信号に従って実行することができる。図示する実施形態では、制御論理回路312−1が、POR回路326、命令デコーダ324、及びコンフィギュレーション・レジスタ322を含むことができる。POR回路326は、電源オンまたはリセット動作を検出及び/または開始することができる。命令デコーダ324は、I/O回路312−0で受信した命令を復号化することができる。コンフィギュレーション・レジスタ322は、メモリデバイス302が動作する方法を指示することができるコンフィギュレーション(設定)データを記憶することができる。一部の実施形態では、次のいずれかに応答して、新ファームウェア・イメージを動作状態にすることができる:POR回路326が電源オンまたはリセットの事象(イベント)を検出したこと、命令デコーダ324による1つ以上の命令の復号化、またはコンフィギュレーション・レジスタ322への所定データの書込み。新ファームウェア・イメージを動作状態にすることは、制御論理回路312−1がポインタデータ328にアクセスして、最新のファームウェア用のLA→PAマッピングをリマップ履歴データ330から見出すことを含むことができる。次に、制御論理回路312−1は、LA→PAのルックアップ構造を、リマップ履歴データ330からマップメモリ332内に作成することができる。次に、制御論理回路312−1は、マップメモリ332にアクセスして、ファームウェアの論理アドレスに対して行う読出し要求を提供する。 The control logic circuit 312-1 can execute the operation of the memory device 302 according to the signal received by the I / O circuit 312-0. In the illustrated embodiment, the control logic circuit 312-1 may include a POR circuit 326, an instruction decoder 324, and a configuration register 322. The POR circuit 326 can detect and / or initiate a power-on or reset operation. The instruction decoder 324 can decode the instruction received by the I / O circuit 312-0. The configuration register 322 can store configuration data that can indicate how the memory device 302 operates. In some embodiments, the new firmware image can be brought into operation in response to any of the following: POR circuit 326 has detected a power-on or reset event, instruction decoder 324. Decryption of one or more instructions by, or writing predetermined data to configuration register 322. Bringing the new firmware image into operation can include the control logic 312-1 accessing the pointer data 328 to find the LA → PA mapping for the latest firmware from the remap history data 330. Next, the control logic circuit 312-1 can create a LA → PA lookup structure from the remap history data 330 in the map memory 332. Next, the control logic circuit 312-1 accesses the map memory 332 and provides a read request made to the logical address of the firmware.

メモリセルアレイ308は不揮発性メモリセルを含むことができ、これらの不揮発性メモリセルはX及びYデコーダ(334/336)によって復号化(デコード)された物理アドレスによりアクセスされる。不揮発性メモリセルは、あらゆる適切な技術のものとすることができ、特定の実施形態では、シングル・トランジスタの「フラッシュ」型メモリとすることができる。メモリセルアレイ308は、あらゆる適切な編成を有することができ、特定の実施形態ではセクター単位で編成することができる。 The memory cell array 308 can include non-volatile memory cells, which are accessed by physical addresses decoded by the X and Y decoders (334/336). The non-volatile memory cell can be of any suitable technique and, in certain embodiments, can be a single transistor "flash" type memory. The memory cell array 308 can have any suitable organization and, in certain embodiments, can be organized sector by sector.

データラッチ338は、メモリセルアレイ308から受信した読出しデータを、制御論理回路312によるSI/O0(及び存在すればSI/On)端子上への出力用に記憶することができる。データラッチ338は、SI/O0(及び存在すればSI/On)端子上で受信した書込みデータを記憶することもできる。 The data latch 338 can store the read data received from the memory cell array 308 for output to the SI / O0 (and SI / On if present) terminals by the control logic circuit 312. The data latch 338 can also store write data received on the SI / O0 (and SI / On if present) terminals.

図4は、特定の実施形態によるリマップ・データ構造410を示す図である。リマップ・データ構造410は、本明細書中の他の実施形態について示すものの1つの特定の実現とすることができる。リマップ・データ構造410は、ポインタデータ(FR_VEC)428、リマップ履歴データ(SMFLASH)430、及びマップメモリ(SMRAM)432を含むことができる。ポインタデータ428はビット値を含むことができ、このビット値はリマップ履歴データ430内の各エントリの索引(インデックス)となる。ポインタデータ428の最終ビット値は「0」の値を有し、最新のエントリとすることができる。従って、図4では、ポインタデータ428は、最新バージョンのファームウェア用のLA→PAマッピングを記憶するエントリ「n−1」の索引となる。従って、マップメモリ432に記憶されているデータは、リマップ履歴データ430のエントリn−1に記憶されているデータに由来するものと理解するべきである。 FIG. 4 is a diagram showing a remap data structure 410 according to a particular embodiment. The remap data structure 410 can be one particular implementation of what is shown for other embodiments herein. The remap data structure 410 can include pointer data (FR_VEC) 428, remap history data (SMFLASH) 430, and map memory (SMRAM) 432. The pointer data 428 can include a bit value, which is an index of each entry in the remap history data 430. The final bit value of the pointer data 428 has a value of "0" and can be the latest entry. Therefore, in FIG. 4, the pointer data 428 is an index of the entry “n-1” that stores the LA → PA mapping for the latest version of the firmware. Therefore, it should be understood that the data stored in the map memory 432 is derived from the data stored in the entry n-1 of the remap history data 430.

新ファームウェア・イメージを受信すると、そのLA→PAマッピングをエントリ「n」にプログラムして、こうした新ファームウェア・イメージを「有効」にすることができ、索引nに対するポインタのビット値を1〜0に変化させることができる。 Upon receiving the new firmware image, the LA → PA mapping can be programmed into entry "n" to "enable" these new firmware images and set the pointer bit value for index n to 1-0. Can be changed.

種々のシステム、デバイス、及び対応する方法を以上に説明してきた。他の方法を以下に図5を参照しながら説明する。図5は、コントローラ及び単一のメモリデバイスによりファームウェアを更新する方法の流れ図である。方法540は、本明細書中に説明したシステムのいずれか、及びその等価物によって実行することができる。方法540では、メモリデバイスはフラッシュメモリデバイスとすることができるが、他の実施形態は他のあらゆる適切な技術に基づく不揮発性の記憶装置を含むことができる。 The various systems, devices, and corresponding methods have been described above. Another method will be described below with reference to FIG. FIG. 5 is a flow chart of a method of updating firmware by a controller and a single memory device. Method 540 can be performed by any of the systems described herein, and their equivalents. In method 540, the memory device can be a flash memory device, but other embodiments can include non-volatile storage devices based on any other suitable technique.

方法540は、初期化イベントが生じるメモリデバイスを含むことができ、図示する実施形態ではPOR型のイベント540−0とすることができる。こうしたイベントに応答して、メモリデバイスは、LA→PAマッピングをリマップ履歴(例えば、SMFLASH)からマップメモリ(例えば、SMRAM)にロードすることができる。同じ動作(SMRAMに値を入れること)を生じさせることができる他の初期化イベントは、ほんの少数の例として、メモリデバイスに対する特定の命令またはコマンド(命令語)、あるいはメモリデバイスの1つ以上のコンフィギュレーション・レジスタの設定を含むことができる。 The method 540 can include a memory device in which an initialization event occurs, and in the illustrated embodiment can be a POR-type event 540-0. In response to these events, the memory device can load the LA → PA mapping from the remap history (eg SMFLASH) into the map memory (eg SMRAM). Other initialization events that can cause the same behavior (putting a value in SMRAM) are just a few examples of a particular instruction or command (instruction word) to a memory device, or one or more of a memory device. It can include configuration register settings.

コントローラ(例えば、MCU)は現在のファームウェア・イメージを起動することができる。こうした動作は、コントローラがLAを既知の最後のファームウェア・イメージの値に設定することを含むことができる。それに加えて、コントローラは最新のイメージの(メモリデバイス内の)物理アドレスの記録を有することもできる。図示する実施形態では、現在の論理アドレスが現在の物理アドレスに等しいものと仮定する。図5では、現在のファームウェア・イメージがセクター「C」に記憶されているものと理解され、セクター「C」は物理アドレスc1、c2等を含む。 The controller (eg MCU) can boot the current firmware image. Such an operation can include the controller setting the LA to the value of the last known firmware image. In addition, the controller can also have a record of the physical address (in memory device) of the latest image. In the illustrated embodiment, it is assumed that the current logical address is equal to the current physical address. In FIG. 5, it is understood that the current firmware image is stored in sector "C", which includes physical addresses c1, c2, and the like.

コントローラは新ファームウェア・イメージ540−4を受信することができる。こうした動作は、本明細書中に説明するもののいずれか、またはその等価物を含むことができ、新ファームウェア・イメージを無線接続上で受信してコントローラ・メモリ(RAM)に記憶することを含む。 The controller can receive the new firmware image 540-4. Such operations may include any or equivalent of those described herein, including receiving a new firmware image over a wireless connection and storing it in controller memory (RAM).

コントローラは、新ファームウェアをメモリデバイス540−6内にプログラムすることができる。こうした動作は、コントローラが論理アドレス及び物理アドレスをデータ用に割り当てて記録することを含むことができる。図示する実施形態では、割り当てた論理アドレスが割り当てた物理アドレスに等しいものと仮定する。図5では、新ファームウェア・イメージがセクター「N」に記憶されているものと理解し、セクター「N」は物理アドレスn1、n2、等を含む。セクター「N」はセクター「C」とは異なり、セクター「C」とオーバーラップしないものと理解する。動作540−6は、一部の実施形態においてLA→PAマッピングをアプリケーション/ユーザに対して示すことができる方法を示す。 The controller can program the new firmware in the memory device 540-6. Such operations can include the controller assigning and recording logical and physical addresses for the data. In the illustrated embodiment, it is assumed that the assigned logical address is equal to the assigned physical address. In FIG. 5, it is understood that the new firmware image is stored in the sector "N", and the sector "N" includes the physical addresses n1, n2, and the like. It is understood that the sector "N" is different from the sector "C" and does not overlap with the sector "C". Action 540-6 shows how LA → PA mapping can be shown to the application / user in some embodiments.

次に、コントローラはメモリデバイス上のリマップ履歴データ(SMFLASH)を更新して、新ファームウェア・イメージの位置540−8を記憶する。こうした動作は、コントローラが現在のファームウェア・イメージの論理アドレスを新ファームウェア・イメージの論理アドレスと交換することを含むことができる。図5では、このことは複数の論理アドレスのスワップを含むことができる。 The controller then updates the remap history data (SMFLASH) on the memory device to store the location 540-8 of the new firmware image. Such actions can include the controller exchanging the logical address of the current firmware image with the logical address of the new firmware image. In FIG. 5, this can include swapping multiple logical addresses.

方法540は、コントローラがメモリデバイス540−10内の有効ビットをセットすることによってファームウェア更新を「有効」にすることをさらに含むことができる。図5では、このことは、図4のもののようなデータ構造内のビット(即ち、ポインタFR_VEC内のビット値)をセットすることを含むことができる。 Method 540 can further include enabling the firmware update to be "enabled" by the controller setting a valid bit in memory device 540-10. In FIG. 5, this can include setting bits in the data structure as in FIG. 4 (ie, bit values in the pointer FR_VEC).

新ファームウェア・イメージが「有効」にされ、メモリデバイスに他の初期化イベント540−0(例えば、POR、特別な命令/コマンド、コンフィギュレーション・レジスタの書込み)が生じると、コントローラは新たなイメージを起動し、即ちLA(cur_img)=N、ここにN=(n1, N2,...)となる。こうして、ファームウェア更新が即座に有効になる。 When the new firmware image is "enabled" and the memory device undergoes another initialization event 540-0 (eg, POR, special instructions / commands, writing configuration registers), the controller creates a new image. Start, that is, LA (cur_img) = N, where N = (n1, N2, ...). In this way, the firmware update takes effect immediately.

図6A及び6Bは、実施形態に含めることができるメモリセルアレイ608用の構成を示す図である。図6Aは、異なるプール642、644−0、644−1に物理的に分割されるメモリセルアレイ608を示す。各プール(642、644−0、644−1)はポインタ(WL_PTR0〜2)によってアドレス指定可能であり、これらのポインタは当該プールのベースアドレスを指示することができる。1つのプール642はファームウェア・プール642として指定することができ、少なくとも2つのファームウェア・イメージを収容することができるサイズを有する。図示するように、ファームウェア・プール642は、前のファームウェア・イメージ614を(物理アドレスc0〜ciに)記憶しつつ、新ファームウェア・イメージ618を(物理アドレスn0〜niに)プログラムすることができる。一部の実施形態では、ファームウェアが絶えず更新される間に、位置をスワップすることができる。例えば、一旦、新ファームウェア・イメージ618が「有効」になると、ファームウェア・イメージ618は現在のファームウェア・イメージになり、次の新ファームウェア・イメージが物理アドレスc0〜ciにプログラムされる。 6A and 6B are diagrams showing the configuration for the memory cell array 608 that can be included in the embodiment. FIG. 6A shows a memory cell array 608 that is physically divided into different pools 642, 644-0, 644-1. Each pool (642, 644-0, 644-1) can be addressed by pointers (WL_PTR0-2), and these pointers can indicate the base address of the pool. One pool 642 can be designated as firmware pool 642 and has a size capable of accommodating at least two firmware images. As shown, the firmware pool 642 can program the new firmware image 618 (to physical addresses n0 to ni) while storing the previous firmware image 614 (to physical addresses c0 to ci). In some embodiments, the position can be swapped while the firmware is constantly updated. For example, once the new firmware image 618 is "enabled", the firmware image 618 becomes the current firmware image and the next new firmware image is programmed to physical addresses c0-ci.

図6はスワップ動作を示す。新ファームウェア・イメージ用の論理アドレスが一時的な値として記憶される(tmp=LA(new_img))。新ファームウェア・イメージ用の論理アドレスが、現在のファームウェア・イメージの論理アドレスにセットされる(LA(new_img)=LA(cur_img))。こうした動作は、(今度は期限切れの)現在のファームウェア・イメージを、次の新ファームウェア・イメージ用のデスティネーション(送り先)として指定する。次に、新たに受信したファームウェア・イメージを現在のファームウェア・イメージとして設定する(LA(cur_img)=tmp)。 FIG. 6 shows a swap operation. The logical address for the new firmware image is stored as a temporary value (tmp = LA (new_img)). The logical address for the new firmware image is set to the logical address for the current firmware image (LA (new_img) = LA (cur_img)). These actions specify the current firmware image (which is now expired) as the destination for the next new firmware image. Next, set the newly received firmware image as the current firmware image (LA (cur_img) = tmp).

もちろん、他の実施形態では、ファームウェア・プール642が3つ以上のファームウェア・イメージを収容することができ、従って、更新は、2つのアドレス範囲間だけでスワップするのではなく、複数のアドレス範囲の全部を通して順に行う。 Of course, in other embodiments, the firmware pool 642 can accommodate three or more firmware images, so updates are not swapped between just two address ranges, but rather in multiple address ranges. Do it all in order.

図6Aを参照すれば、一部の実施形態では、プール(642、644−0、644−1)をウェア・レベリング(損耗平準化)プールとすることができる。メモリセルアレイ608を含むメモリデバイスは、論理アドレス−物理アドレスのマッピングを、プール間で損耗(ウェア)が平準化されるように変更することができる。一部の実施形態では、ファームウェア・プール642を、ウェア・レベリング動作中に他のあらゆるプール(例えば、644−0/1)のように扱うことができる。即ち、一旦、ファームウェア・プール642へのアクセス数がある所定の閾値を超えると、新たなプール(例えば、644−0/1)をファームウェア・プールとして指定することができる。こうした実施形態では、複数のファームウェア・イメージを同じプール内に記憶して、ウェア・レベリング動作があるプールを動作から外して異なるプールに置き換えてプールを循環させる(順に使用する)場合に、マッピングデータを失うことを回避することができる。 With reference to FIG. 6A, in some embodiments, the pool (642, 644-0, 644-1) can be a wear leveling pool. The memory device containing the memory cell array 608 can change the logical address-physical address mapping so that wear is leveled between the pools. In some embodiments, the firmware pool 642 can be treated like any other pool (eg, 644-0 / 1) during wear leveling operation. That is, once the number of accesses to the firmware pool 642 exceeds a certain threshold value, a new pool (for example, 644-0 / 1) can be designated as the firmware pool. In such an embodiment, when a plurality of firmware images are stored in the same pool, a pool with wear leveling operation is removed from the operation and replaced with a different pool to circulate the pool (used in order), mapping data is used. Can be avoided from losing.

図7を参照すれば、他の実施形態によるメモリデバイス702をブロック図の形で示す。メモリデバイス702は、本明細書中に示すものの1つの特定の実現とすることができる。メモリデバイス702は、複数のプール742/744−0〜744−kに分割されるメモリセルアレイ708を含むことができる。プール(742/744−0〜744−k)毎に、対応するリマップ構造710−0〜710−kが存在することができる。リマップ構造(710−0〜710−k)は、本明細書中に説明するもののいずれか、またはその等価物の形態をとることもでき、図7では図4のものと同様の構造を有するように示している。 With reference to FIG. 7, the memory device 702 according to another embodiment is shown in the form of a block diagram. The memory device 702 can be one particular realization of what is shown herein. The memory device 702 can include a memory cell array 708 that is divided into a plurality of pools 742 / 744- to 744-k. For each pool (742 / 744-0-744-k), there can be a corresponding remap structure 710-0-710-k. The remap structure (710-0 to 710-k) can also take the form of any of those described herein, or an equivalent thereof, so that FIG. 7 has a structure similar to that of FIG. It is shown in.

一部の実施形態では、プール(742/744−0〜744−k)をウェア・レベリング・プールとすることができ、従って、ウェア・レベリング基準に基づいて未使用にして、プールを順に使用することができる。図7のメモリデバイス702では、いずれのプール(742/744−0〜744−k)もファームウェア・プールとして機能することができる、というのは、当該プールに対応するリマップ・データ構造が存在するからである。 In some embodiments, the pool (742 / 744-0-744-k) can be a wear leveling pool, thus leaving it unused based on wear leveling criteria and using the pool in sequence. be able to. In the memory device 702 of FIG. 7, any pool (742 / 744-0-744-k) can function as a firmware pool because there is a remap data structure corresponding to that pool. Is.

一部の実施形態では、メモリセルアレイが、プログラム可能なサイズの物理的領域を有することができる。図8に、こうしたメモリセルアレイ808の一例を示す。メモリセルアレイ808は、プール842/844として示す異なる領域に分割可能な複数の記憶領域を含むことができる。これらのプールのサイズ及び物理的位置は、ポインタ値(WL_PTR0〜WL_PTR2)に応じてプログラム可能にすることができ、このポインタ値はベース物理アドレスを指示することができる。一部の実施形態では、こうしたプールをウェア・レベリング・プールにすることができる。従って、こうしたプールへのアクセスを監視するか、さもなければ追跡して、他のプールよりも多数回使用されたプールを循環(順次の使用)から外して、より損耗の小さいプールにアドレスをリマップ(再マッピング)することができる。 In some embodiments, the memory cell array can have a physical area of programmable size. FIG. 8 shows an example of such a memory cell array 808. The memory cell array 808 can include a plurality of storage areas that can be divided into different areas shown as pools 842/844. The size and physical location of these pools can be programmed according to pointer values (WL_PTR0 to WL_PTR2), which can indicate the base physical address. In some embodiments, such pools can be wear leveling pools. Therefore, access to these pools should be monitored or otherwise tracked to remove pools that have been used more often than other pools from circulation (sequential use) and remap addresses to less worn pools. Can be (remapped).

図8は、ポインタ値(WL_PTR0〜WL_PTR2)を用いてメモリセルアレイ808を分割することができる方法の例848を含む。例848は、1つだけのプール、2つのプール、及び3つのプールを含む。もちろん、十分な数のポインタ値が利用可能であるものとすれば、任意数のプールを作成することができる。こうした構成では、ファームウェアのサイズに応じてプールのサイズを調整することができる(即ち、少なくとも2つのイメージを記憶するのに十分なほど大きくする)。 FIG. 8 includes an example 848 of a method in which the memory cell array 808 can be divided using pointer values (WL_PTR0 to WL_PTR2). Example 848 includes only one pool, two pools, and three pools. Of course, any number of pools can be created, provided that a sufficient number of pointer values are available. In such a configuration, the size of the pool can be adjusted according to the size of the firmware (ie, large enough to store at least two images).

実施形態によれば、現在のファームウェア・イメージから新たに受信したファームウェア・イメージへの迅速な切り換えを可能にするようにアクセスして修正することができるマッピングデータ構造を、メモリデバイスが記憶することができる。メモリデバイスは、あらゆる適切な方法で、あらゆる適切なプロトコルに従ってアクセスすることができるが、一部の実施形態では、チップ選択信号(CS)及び1つ以上のI/O線によりメモリデバイスにアクセスすることができる。図9A〜9Dは、実施形態による、ファームウェアを更新するための、メモリデバイスへの入力信号を示すタイミング図である。こうした入力信号に応答して、メモリデバイスは次のいずれかを実行することができる:新ファームウェア・イメージを「有効」にすること、リマップ履歴データを更新する(例えば、新たなLA→PAマッピングを追加する)こと、メモリデバイスが新ファームウェア・イメージをプログラムするための準備をすること。 According to embodiments, the memory device may store a mapping data structure that can be accessed and modified to allow a quick switch from the current firmware image to the newly received firmware image. it can. The memory device can be accessed in any suitable way and according to any suitable protocol, but in some embodiments the memory device is accessed by a chip selection signal (CS) and one or more I / O lines. be able to. 9A-9D are timing diagrams showing input signals to the memory device for updating the firmware according to the embodiment. In response to these input signals, the memory device can do one of the following: "enable" the new firmware image, update the remapping history data (eg, new LA → PA mapping): (Add), prepare the memory device to program the new firmware image.

図9A〜9Dの各々は、チップ選択信号(CSB)及びI/O信号(I/O)の波形を示す。I/Oは、メモリデバイスの1本のI/O線、または複数のこうしたI/O線とすることができる。図示する例では、I/O線上のデータをクロックCLKに同期して受信することができる。I/O線上で受信するデータのデータレートはあらゆる適切な形式をとることができ、シングル・データレート(1ビットサイクル)、ダブル・データレート(1サイクル当たり2ビット)、クワッド・データレート(2本のI/O線上で1サイクル当たり2ビット)、またはオクタル・データレート(4本のI/O線上で1サイクル当たり2ビット)を含む。 Each of FIGS. 9A-9D shows the waveforms of the chip selection signal (CSB) and the I / O signal (I / O). The I / O can be one I / O line of the memory device, or a plurality of such I / O lines. In the illustrated example, the data on the I / O line can be received in synchronization with the clock CLK. The data rate of the data received on the I / O line can be in any suitable format: single data rate (1 bit cycle), double data rate (2 bits per cycle), quad data rate (2). Includes octal data rate (2 bits per cycle on 4 I / O lines) or octal data rate (2 bits per cycle on 4 I / O lines).

図9Aにレジスタ書込み命令を示す。時刻t0に、チップ選択信号がアクティブ(有効)になることができる。時刻t1に、メモリデバイスが命令”WriteRegX”を受信することができる。時刻t2におけるコンフィギュレーション(設定)データ(DATA(Reg))が、これに続くことができる。こうした命令に応答して、メモリデバイスは、命令WriteRegXが示す1つ以上のレジスタにDATA(Reg)を書き込むことができる。こうしたレジスタにデータを書き込むことは、本明細書中に説明するファームウェア更新作業またはその等価物を制御すること、そのためのデータを提供すること、あるいは開始することができる。 FIG. 9A shows a register write instruction. At time t0, the chip selection signal can become active. At time t1, the memory device can receive the instruction "WriteRegX". Configuration data (DATA (Reg)) at time t2 can follow. In response to such an instruction, the memory device can write DATA (Reg) to one or more registers indicated by the instruction WriteRegX. Writing data to such registers can control, provide, or initiate data for the firmware update operations or their equivalents described herein.

図9Bにアドレス指定可能なレジスタ書込み命令を示す。時刻t0に、チップ選択信号がアクティブになることができる。時刻t1に、メモリデバイスが命令”WriteAddReg”を受信することができる。時刻t2におけるアドレスデータ(ADD)、及び次の時刻t3におけるコンフィギュレーションデータが、これに続くことができる。こうした命令に応答して、メモリデバイスは、アドレスデータADDが示すレジスタにDATAを書き込むことができる。こうしたレジスタにデータを書き込むことは、本明細書中に説明するファームウェア更新作業を制御すること、そのためのデータを提供すること、あるいは開始することができる。 FIG. 9B shows a register write instruction that can specify an address. At time t0, the chip selection signal can be activated. At time t1, the memory device can receive the instruction "WriteAddReg". The address data (ADD) at time t2 and the configuration data at the next time t3 can follow. In response to these instructions, the memory device can write DATA to the register indicated by the address data ADD. Writing data to such registers can control, provide, or initiate data for the firmware update operations described herein.

図9Cに、一実施形態によるマッピング命令を示す。時刻t0に、チップ選択信号がアクティブになることができる。時刻t1に、メモリデバイスが命令”NewMap”を受信することができる。時刻t2におけるデータ(DATA(Map))がこれに続くことができる。こうした命令に応答して、新イメージ用のマッピングデータ(例えば、LA→PAマッピング)を、本明細書中に説明するリマップ履歴データ構造またはその等価物に記憶することができる。値DATA(Map)はこのマッピングデータを含むことができる。 FIG. 9C shows a mapping instruction according to one embodiment. At time t0, the chip selection signal can be activated. At time t1, the memory device can receive the instruction "NewMap". The data (DATA (Map)) at time t2 can follow this. In response to such an instruction, mapping data for the new image (eg, LA → PA mapping) can be stored in the remap history data structure or its equivalent as described herein. The value DATA (Map) can contain this mapping data.

図9Dに、一実施形態による、新ファームウェア・イメージを「有効」にするための命令を示す。時刻t0に、チップ選択信号をアクティブにすることができる。時刻t11に、メモリデバイスが命令”NewMapLive”を受信することができる。任意で、データ(DATA(Ptr))がこれに続くことができる。こうした命令に応答して、提供されるべきファームウェア・イメージが転送されている際に、最新のマッピングデータの集合を示すことができる。一部の実施形態では、データを必要としない、というのは、メモリデバイス制御論理回路が新たなマッピング集合の値を更新することができるからである。しかし、他の実施形態では、DATA(Ptr)を用いてリマップ・データ構造(例えば、ポインタ値)をプログラムすることができる。こうした命令は、ファームウェア・イメージ間で、アトミックな(不可分の)即時の方法でスワップすることができる。 FIG. 9D shows an instruction to "enable" the new firmware image according to one embodiment. At time t0, the chip selection signal can be activated. At time t11, the memory device can receive the instruction "NewMapLive". Optionally, data (DATA (Ptr)) can follow. In response to these instructions, the latest set of mapping data can be shown as the firmware image to be provided is being transferred. In some embodiments, no data is required because the memory device control logic can update the value of the new mapping set. However, in other embodiments, DATA (Ptr) can be used to program remap data structures (eg, pointer values). These instructions can be swapped between firmware images in an atomic (indivisible) and immediate manner.

実施形態は、デバイスまたはモジュール用のファームウェアの更新を含むシステム、装置、及び方法を含むことができるが、実施形態は、各々がそれ自体のファームウェア更新を必要とし得る複数のデバイス/モジュールを有するシステムを含むこともできる。図10はこうしたシステム1000のブロック図である。 Embodiments can include systems, devices, and methods that include firmware updates for devices or modules, but embodiments are systems with multiple devices / modules, each of which may require a firmware update of its own. Can also be included. FIG. 10 is a block diagram of such a system 1000.

システム1000は、テレマティクス(情報無線送受信)制御ユニット(TCU:telematics control unit)(例えば、コントローラ)1004、コントローラ・バス1050、システム開発ライフサイクル部1052、モジュール・バス1054−0〜1054−2、及びモジュール1055−0〜1055−1を含むことができる。モジュール(1055−0〜1055−1)の各々は、メモリデバイス(1002−0〜1002−2)に記憶されているファームウェアで動作する。TCU1004はプロセッサを含むことができ、このプロセッサはメモリデバイス(1002−0〜1002−2)に対して命令を発行することができる。TCU1004は無線トランシーバ(または受信機)1058を含むこともでき、無線トランシーバ1058は、ファームウェア更新を無線ネットワーク経由で受信する。特定の実施形態では、システム1000を自動車制御システムにすることができ、TCU1004は、グローバル・ポジショニング・システム(GPS:global positioning system:全地球測位システム)、1つ以上のプロセッサ、及びコントローラ・メモリをさらに含むことができる。 The system 1000 includes a telematics control unit (TCU) (for example, a controller) 1004, a controller bus 1050, a system development life cycle unit 1052, a module bus 1054 to 1054-2, and Modules 1055-1055-1 can be included. Each of the modules (1055 to 1055-1) operates with the firmware stored in the memory device (1002 to 1002-2). The TCU 1004 can include a processor, which can issue instructions to memory devices (1002-0-1002-2). The TCU 1004 may also include a wireless transceiver (or receiver) 1058, which receives firmware updates over the wireless network. In certain embodiments, the system 1000 can be an automotive control system, where the TCU 1004 comprises one or more processors and controller memory (GPS) global positioning system (GPS). Further can be included.

図10は別個のモジュール・バス1054−0〜1054−2を示すが、他の実施形態では、2つ以上のモジュールを同じバスに接続することができる。さらに、他の実施形態では、コントローラ・バス1050をモジュール・バス(1054−0〜1054−2)と同じにすることができる。 FIG. 10 shows separate module buses 1054- to 1054-2, but in other embodiments two or more modules can be connected to the same bus. Furthermore, in other embodiments, the controller bus 1050 can be the same as the module bus (1054- to 1054-2).

システム1000の種々の構成要素を説明してきた。システム1000のFOTA動作を以下に説明する。 The various components of the system 1000 have been described. The FOTA operation of the system 1000 will be described below.

最初に、メモリデバイス1002−0〜1002−2の各々が(更新されるべき)現在のファームウェア・イメージ1014/1015を記憶することができる。 First, each of the memory devices 1002 to 1002-2 can store the current firmware image 1014/1015 (which should be updated).

では、TCU1004が新ファームウェアを無線トランシーバ1058で受信することができ、新ファームウェアはネットワーク1020の無線接続1057上で送信される。ネットワーク1020は、あらゆる適切なネットワークとすることができ、一部の実施形態ではインターネット及び/またはセルラ・ネットワークとすることができる。図示する例では、全部のモジュール1055−0〜1055−2用の新ファームウェアを受信することができる。しかし、他の更新作業では、より少数のモジュールを更新することができることは明らかである。 The TCU 1004 can receive the new firmware on the wireless transceiver 1058, and the new firmware is transmitted over the wireless connection 1057 of the network 1020. The network 1020 can be any suitable network and, in some embodiments, the Internet and / or cellular network. In the illustrated example, new firmware for all modules 1055-1055-2 can be received. However, it is clear that other update work can update a smaller number of modules.

では、TCU1004が新ファームウェア・イメージをそれぞれのメモリデバイス1055−0〜1055−2へ送信することができる。こうした動作は、TCU1004が新ファームウェア・イメージをコントローラ・バス1050及びモジュール・バス1054−0上で送信することを含むことができる。一実施形態では、こうした動作がコントローラ・エリア・ネットワーク(CAN:controller area network)型バス上でデータを送信することを含むことができる。 Then, the TCU 1004 can transmit the new firmware image to the respective memory devices 1055-1055-2. Such an operation can include the TCU 1004 transmitting a new firmware image on the controller bus 1050 and the module bus 1054-0. In one embodiment, such an operation can include transmitting data on a controller area network (CAN) type bus.

では、モジュール1055−0〜1055−2が、新ファームウェア・モジュールを、対応するメモリデバイス1002−0〜1002−2のそれぞれの位置にプログラムすることができる。こうした動作は、本明細書中に説明するもののいずれか、またはその等価物を含むことができる。1つの特定の実施形態では、新ファームウェア・イメージ1018/14を、メモリデバイスの「二次的」メモリページにプログラムすることができる(一次的メモリページは現在のファームウェア1014/15を記憶する)。一部の実施形態では、新ファームウェア・イメージのプログラミングを、モジュール1055−0〜1055−2のローカルなプロセッサ(図示せず)で実現することができる。しかし、他の実施形態では、こうしたプログラミングをTCU1004によって実行することができる。 Modules 1055-1055-2 can now program the new firmware module at their respective locations in the corresponding memory devices 1002-0-1002-2. Such operations may include any of those described herein, or their equivalents. In one particular embodiment, the new firmware image 1018/14 can be programmed into the "secondary" memory page of the memory device (the primary memory page stores the current firmware 1014/15). In some embodiments, programming of the new firmware image can be implemented on the local processor (not shown) of modules 1055-1055-2. However, in other embodiments, such programming can be performed by the TCU 1004.

では、新ファームウェア・イメージ1018/1014を「有効」にすることができる(他のファームウェア・イメージ1014/1015はインアクティブ(無効)として指定することができる)。こうした動作は、TCU1004から受信した入力に応答して行うことができる。こうした入力は、本明細書中に説明する命令またはレジスタ書込み、あるいはその等価物、並びにモジュール1055−0〜1055−2のローカルなプロセッサによる帯域外シグナリング(信号伝達)または動作、あるいは他の適切なシグナリング方法を含むことができるが、それらに限定されない。 Allows the new firmware image 1018/1014 to be "enabled" (other firmware images 1014/1015 can be designated as inactive). Such an operation can be performed in response to the input received from the TCU 1004. Such inputs are the instructions or register writes described herein, or their equivalents, as well as out-of-band signaling or operation by the local processor of modules 1055-1055-2, or any other suitable. Signaling methods can be included, but are not limited thereto.

図11は、他の実施形態によるシステム1100のブロック図である。システム1100は、コントローラ(MCU)1104及びメモリデバイス1002を含むことができる。メモリデバイス1002は、少なくとも2つの異なるファームウェア・イメージ(1114、1118)間の切り換えを可能にすることができる。図示するように、コントローラ1104は、図16Bに示す従来のシステムにおけるように、2つのチップ選択出力(CS1, CS2)を供給することができる。しかし、メモリデバイス1002は、単一のメモリデバイス1002及び単一のチップ選択(CS1)によるファームウェア・イメージ間の切り換えを管理することができるので、コントローラ1104は他のアプリケーションが利用可能な追加的なチップ選択出力CS2を有することができる。 FIG. 11 is a block diagram of the system 1100 according to another embodiment. The system 1100 can include a controller (MCU) 1104 and a memory device 1002. The memory device 1002 can allow switching between at least two different firmware images (1114, 1118). As shown, the controller 1104 can supply two chip selective outputs (CS1, CS2) as in the conventional system shown in FIG. 16B. However, since memory device 1002 can manage switching between firmware images with a single memory device 1002 and a single chip selection (CS1), controller 1104 is an additional application available to other applications. It can have a chip selection output CS2.

実施形態は、1つ以上のコントローラ・デバイスと共に動作するメモリデバイスを有するシステムを含むことができるが、実施形態は、本明細書中に説明する異なるファームウェア・イメージ及びその等価物間の内部切り換えを可能にすることができるスタンドアロン(独立型)のメモリデバイスを含むこともできる。こうしたメモリデバイスは、同じパッケージ内に形成された複数の集積回路を含むことができるが、一部の実施形態では、メモリデバイスをコンパクトな単一の集積回路(即ち、チップ)にすることができることが有利である。図12A及び12Bは、2つのパッケージ化された単一チップのメモリデバイス1202A及び1202Bを示す。しかし、実施形態によるメモリデバイスは、回路基板上へのメモリデバイス・チップの直接的ボンディングを含めた他のあらゆる適切なパッケージ型を含むことができることは明らかである。 Embodiments can include systems with memory devices that work with one or more controller devices, but embodiments can switch internally between different firmware images and their equivalents as described herein. It can also include stand-alone memory devices that can be enabled. Such memory devices can include multiple integrated circuits formed within the same package, but in some embodiments the memory device can be a compact single integrated circuit (ie, a chip). Is advantageous. 12A and 12B show two packaged single-chip memory devices 1202A and 1202B. However, it is clear that the memory device according to the embodiment can include any other suitable package type, including direct bonding of the memory device chip to the circuit board.

図13A〜13Cを参照すれば、実施形態による種々のデバイスが一連の図中に示されている。図13Aは、更新可能なファームウェアで動作する多数のサブシステム(2つを1300A−0及び1300A−1で示す)を有することができる自動車1360Aを示す。こうしたサブシステム(1300A−0、1300A−1)は、電子制御ユニット(ECU:electronic control unit)及び/または先進運転支援システム(ADAS:advanced driver assistance system)を含むことができる。しかし、他の実施形態では、こうしたサブシステムが、多数の可能な例のうちのほんの2例として、ダッシュボード・ディスプレイ/制御サブシステム、及び/またはインフォテインメント・サブシステムを含むことができる。各サブシステム(1300A−0、1300A−1)は、コントローラ及びメモリデバイスを含むことができ、FOTA型の更新を含めた本明細書中に説明するファームウェアの動作、またはその等価物を用いることができる。 With reference to FIGS. 13A-13C, various devices according to embodiments are shown in a series of figures. FIG. 13A shows a vehicle 1360A capable of having a number of subsystems (two of which are indicated by 1300A-0 and 1300A-1) operating with updatable firmware. Such subsystems (1300A-0, 1300A-1) can include an electronic control unit (ECU) and / or an advanced driver assistance system (ADAS). However, in other embodiments, such subsystems can include dashboard display / control subsystems and / or infotainment subsystems as just two of the many possible examples. Each subsystem (1300A-0, 1300A-1) may include a controller and a memory device, and may use the firmware operations described herein, including FOTA-type updates, or equivalents thereof. it can.

図13Bに、ハンドヘルド(手持ち型)コンピュータ装置1360Bを示す。ハンドヘルド・コンピュータ装置1360Bはシステム1300Bを含むことができ、システム1300Bは、本明細書中に説明する装置1360Bまたはその等価物のファームウェア更新を実行するためのメモリデバイス1302及びコントローラ1304(現寸に比例して図示せず)を有する。 FIG. 13B shows a handheld computer device 1360B. The handheld computer device 1360B may include system 1300B, which is a memory device 1302 and controller 1304 (proportional to actual size) for performing firmware updates for device 1360B or its equivalent as described herein. (Not shown).

図13Cにコントローラ・デバイス1360Cを示す。コントローラ・デバイス1306Cは、工業または住宅の動作を制御するように配備されたデバイスとすることができる。多数の可能な例のうちのほんの少数として、コントローラ・デバイス1360Cは、製造ライン上の機械類を制御することができ、建物用の電子ロックとすることができ、家庭電化製品を制御することができ、照明システムを制御することができ、あるいは灌漑システムを制御することができる。装置1360Cはシステム1300Cを含むことができ、システム1300Cは、本明細書中に説明するデバイス1360Cまたはその等価物のファームウェア更新を実行するためのメモリデバイス1302及びコントローラ1304(図示せず)を有する。 FIG. 13C shows the controller device 1360C. Controller device 1306C can be a device deployed to control industrial or residential operation. As just a few of the many possible examples, the controller device 1360C can control machinery on the production line, can be an electronic lock for a building, and can control home appliances. You can control the lighting system, or you can control the irrigation system. The device 1360C may include a system 1300C, which includes a memory device 1302 and a controller 1304 (not shown) for performing firmware updates for the device 1360C or its equivalent as described herein.

ここで図14を参照すれば、一実施形態による方法が流れ図で示されている。方法1462は、システム用のファームウェアを記憶するメモリデバイスにおいて新ファームウェア・データを受信するステップを含むことができる(ブロック1462−0)。こうした動作は、メモリデバイスが、ファームウェア・データ用のプログラムまたは書込み命令を、メモリデバイス上のインタフェースを通して受信することを含むことができる。特定の実施形態では、こうした動作が、メモリデバイスがコントローラから命令を受信してファームウェア・データを所定の物理アドレスにプログラムすることを含むことができる。 Here, referring to FIG. 14, the method according to one embodiment is shown in a flow chart. Method 1462 can include the step of receiving new firmware data in a memory device that stores firmware for the system (block 1462-0). Such an operation can include the memory device receiving a program or write instruction for firmware data through an interface on the memory device. In certain embodiments, such an operation can include the memory device receiving an instruction from the controller to program the firmware data to a predetermined physical address.

受信したファームウェア・データは、不揮発性メモリセル内の、現在のファームウェア1462−2を記憶する位置とは異なる位置にプログラムすることができる。特定の実施形態では、こうした動作が、メモリデバイスが、ファームウェア・データを、フラッシュメモリアレイの1つ以上のセクターにプログラムすることを含むことができ、これらのセクターは、新ファームウェア用に指定され、現在のファームウェアを記憶するアドレス範囲とは異なる。なお、こうした動作は、ファームウェア・データをメモリデバイスのメモリセルアレイ内の1つの位置から、同じメモリデバイス内のメモリセルアレイの他の位置へコピーすることは含まない。 The received firmware data can be programmed in a non-volatile memory cell at a location different from the location where the current firmware 1462-2 is stored. In certain embodiments, such an operation can include the memory device programming the firmware data into one or more sectors of the flash memory array, which sectors are designated for the new firmware. It is different from the address range that stores the current firmware. Note that such an operation does not include copying firmware data from one location in the memory cell array of the memory device to another location in the memory cell array in the same memory device.

方法1462は、新ファームウェア用の新たなLA→PAマッピングを、メモリデバイス1462−4上の不揮発性の記憶領域内にプログラムすることを含むこともできる。一部の実施形態では、こうした動作が、こうしたデータをリマップ履歴データ構造内にプログラムすることを含むことができ、このリマップ履歴データ構造は、以前のバージョンのファームウェア用のこうしたマッピングを保持する。 Method 1462 can also include programming a new LA → PA mapping for the new firmware into a non-volatile storage area on the memory device 1462-4. In some embodiments, such behavior can include programming such data within a remap history data structure, which retains such mappings for previous versions of firmware.

方法1462は、不揮発性の状態値をメモリデバイス上にプログラムして、最新バージョンのファームウェア用の新たなLA→PAを示すステップを含むこともできる(ブロック1462−6)。一部の実施形態では、こうした動作が、ポインタデータ構造の値をプログラムすることを含むことができ、このポインタデータ構造はリマップ履歴データ構造内の1つのエントリを指示する。 Method 1462 can also include a step of programming a non-volatile state value on the memory device to indicate a new LA → PA for the latest version of the firmware (block 1462-6). In some embodiments, such an action may include programming a value in a pointer data structure, which indicates one entry in the remap history data structure.

図15に、他の実施形態による方法1564を流れ図の形で示す。方法1564は、FOTA法とすることができ、新ファームウェア・イメージ用のデータを無線接続1564−0上で受信した時点を特定するステップを含むことができる。こうした動作は、コントローラが、システムの無線受信機がファームウェアの更新を受信した時点を検出することを含むことができる。 FIG. 15 shows method 1564 according to another embodiment in the form of a flow chart. Method 1564 can be the FOTA method and can include a step of identifying when data for a new firmware image is received over the wireless connection 1564-0. Such actions can include the controller detecting when the system's wireless receiver receives a firmware update.

新ファームウェア・イメージのデータを受信しない(ブロック1564−0からの「いいえ」の)場合、方法1564は、ルックアップ構造により、必要なファームウェアにアクセスすることができる(ブロック1564−18)。一部の実施形態では、こうした動作が、メモリデバイスがファームウェアの論理アドレスに対する読出し要求を受信することを含むことができ、こうした論理アドレスはルックアップ構造からのデータにより物理アドレスに変換される。特定の実施形態では、ルックアップ構造が揮発性メモリ内に常駐することができる。この時点で、システムのルックアップ構造は(新たに受信したあらゆるファームウェア・イメージに置き換えられることになる)現在のファームウェア・イメージに対応することは明らかである。 If the data for the new firmware image is not received ("no" from block 1564-0), method 1564 can access the required firmware by means of a lookup structure (block 1564-18). In some embodiments, such an operation can include the memory device receiving a read request for a logical address of the firmware, which is translated into a physical address by data from the lookup structure. In certain embodiments, the lookup structure can reside in volatile memory. At this point, it is clear that the system lookup structure corresponds to the current firmware image (which will be replaced by any newly received firmware image).

新ファームウェア・イメージのデータを受信した(ブロック1564からの「はい」の)場合、新ファームウェア・イメージのデータはシステムメモリに記憶することができる(ブロック1564−2)。一部の実施形態では、こうした動作が、新ファームウェア・イメージのデータを、コントローラ等によってアクセスされるDRAMまたはSRAMのような揮発性のシステムメモリに記憶することを含むことができる。 When new firmware image data is received (“yes” from block 1564), the new firmware image data can be stored in system memory (block 1564-2). In some embodiments, such an operation may include storing the data of the new firmware image in a volatile system memory such as a DRAM or SRAM accessed by a controller or the like.

システム内のメモリデバイスのプログラム動作はブロック1564−4で開始することができる。こうした動作は、新ファームウェア・イメージを記憶するべき特定のメモリデバイスを決定することを含むことができる。一部の実施形態では、こうした動作が、コントローラが命令等をメモリデバイスに対して発行することを含むことができる。新ファームウェア・イメージは、メモリデバイスの不揮発性のセクター内の、現在のファームウェア・イメージを記憶している位置とは異なる位置にプログラムすることができる(ブロック1564−6)。こうした動作は、コントローラが、システムメモリに記憶されているファームウェア・イメージをメモリデバイスの不揮発性の記憶位置にプログラムすることを含むことができる。 The programming operation of the memory devices in the system can be started in block 1564-4. Such actions can include determining a particular memory device to store the new firmware image. In some embodiments, such an operation can include the controller issuing instructions or the like to the memory device. The new firmware image can be programmed in the non-volatile sector of the memory device at a location different from where the current firmware image is stored (block 1564-6). Such an operation can include the controller programming the firmware image stored in the system memory to the non-volatile storage location of the memory device.

新ファームウェア・イメージ用のLA→PAマッピングは、メモリデバイスの不揮発性の記憶領域内にプログラムすることができる(ブロック1564−8)。こうした動作は、こうしたデータをリマップ履歴データ構造内にプログラムすることを含めて、本明細書中に説明したもののいずれか、またはその等価物を含むことができ、リマップ履歴データ構造は、以前のファームウェア・イメージのマッピングを同じメモリデバイス内に保持することができる。 The LA → PA mapping for the new firmware image can be programmed into the non-volatile storage area of the memory device (block 1564-8). Such behavior may include any or equivalent of those described herein, including programming such data within the remap history data structure, the remap history data structure being the previous firmware. -Image mappings can be kept in the same memory device.

新たなLA→PAマッピングを指示するポインタをプログラムすることができる(ブロック1564−10)。こうした動作は、リマップ履歴データ構造内の1つのエントリに対応するマルチ(多)ビット値内の1つのビットをセットすることを含めて、本明細書中に説明するもののいずれか、またはその等価物を含むことができる。こうしたポインタは、メモリデバイスの不揮発性の記憶領域に記憶することができる。 A pointer pointing to a new LA → PA mapping can be programmed (block 1564-10). Such behavior is one of those described herein, or an equivalent thereof, including setting one bit in a multi-bit value corresponding to one entry in the remap history data structure. Can be included. Such pointers can be stored in the non-volatile storage area of the memory device.

方法1564は、リセット型のイベントが発生したか否かを判定することができる(ブロック1564−12)。リセット型のイベントは、メモリデバイスに、現在のファームウェア・イメージから新たにプログラムされた(「有効」な)ファームウェア・イメージへの論理アドレス・マッピングをリセットさせるイベントとすることができる。リセット型のイベントは、少数のみを挙げれば、PORイベント、メモリデバイスが特定の命令またはレジスタ書込みを受信すること、あるいは特別な入力ピンにおける信号を含めて、あらゆる適切な形態をとることができるが、それらに限定されない。 Method 1564 can determine whether a reset-type event has occurred (block 1564-12). A reset event can be an event that causes the memory device to reset the logical address mapping from the current firmware image to the newly programmed (“valid”) firmware image. Reset-type events can take any suitable form, including POR events, memory devices receiving specific instructions or register writes, or signals at special input pins, to name a few. , Not limited to them.

リセット型のイベントが発生していないものと判定した(ブロック1564−12からの「いいえ」の)場合、方法1564はルックアップ構造によるファームウェアへのアクセスを継続することができ(ブロック1564−18)、このことは、ファームウェア・イメージを新たに受信したファームウェア・イメージに置き換えることを継続することができる。 If it is determined that no reset-type event has occurred ("No" from block 1564-12), method 1564 can continue to access the firmware through the lookup structure (block 1564-18). This can continue to replace the firmware image with the newly received firmware image.

リセット型のイベントが発生したものと判定した(ブロック1564−12からの「はい」の)場合、メモリデバイスは、ポインタにより最新のLA→PAマッピングの集合にアクセスすることができる(ブロック1564−14)(この集合は、新たに受信したファームウェア・イメージに対応する)。次に、メモリデバイスは、新ファームウェア・イメージに対応する新たなLA→PAルックアップ構造を作成することができる(ブロック1564−16)。その結果、ブロック1564−18のファームウェアのアクセスが今度は新ファームウェア・イメージになる。 If it determines that a reset-type event has occurred (“yes” from block 1564-12), the memory device can access the latest LA → PA mapping set with a pointer (block 1564-14). ) (This set corresponds to the newly received firmware image). The memory device can then create a new LA → PA lookup structure corresponding to the new firmware image (block 1564-16). As a result, access to the firmware in block 1564-18 now becomes the new firmware image.

本明細書中に説明する実施形態は、本明細書中に説明するファームウェア・イメージの更新またはその等価物を実行するために呼び出すことができるアプリケーション・プログラミング・インタフェース(API:application programming interface)を含むことができる。新ファームウェア・イメージは、メモリデバイス内のある任意のアドレス範囲内にロードすることができ、このメモリデバイスは現在のファームウェア・イメージを他のアドレス範囲(addr_cur_img)内に記憶する。APIは、こうしたアドレス情報を用いてファームウェアの更新を実行することができる。例えば、APIは、”fota_switch(addr_cur_img, addr_new_img)”の形式を有することができる。 The embodiments described herein include an application programming interface (API) that can be called to perform a firmware image update or equivalent thereof as described herein. be able to. The new firmware image can be loaded into any address range within a memory device, which stores the current firmware image within another address range (addr_cur_img). The API can perform a firmware update using such address information. For example, the API can have the form "fota_switch (addr_cur_img, addr_new_img)".

こうした構成は、ファームウェア・データをメモリデバイス内の1つの位置から他の位置へコピーしなければならない(例えば、ファームウェア・データを一旦書き込む/プログラムする)ことなしに、ファームウェアをアドレス空間内で「リロケート(移転)」する(即ち、旧ファームウェアへのアクセスから新ファームウェアへのアクセスに切り換える)ことを可能にすることができる。このリロケーション動作は「原子的」(即ち、単一バスのトランザクション)であり、本質的に即時である。例えば、本明細書中に述べるように、メモリデバイスに対する命令またはレジスタ書込みは、新ファームウェアへのリマッピング(再マッピング)を導入することができる。 Such a configuration "relocates" the firmware in the address space without having to copy the firmware data from one location in the memory device to another (eg, write / program the firmware data once). It can be made possible to "(transfer)" (ie, switch from access to the old firmware to access to the new firmware). This relocation operation is "atomic" (ie, a single-bus transaction) and is essentially immediate. For example, as described herein, an instruction or register write to a memory device can introduce remapping to new firmware.

本発明の実施形態は、異なるファームウェア・イメージを記憶するための複数のフラッシュメモリの使用を低減または解消することができることが有利である、というのは、異なるファームウェア・イメージを1つのメモリデバイスに記憶して、新イメージを一度記憶すると、新イメージへの即時の切り換えを行うことができるからである。このことは必要とするメモリデバイスがより少数であるので、システムのコストを低減することができる。それに加えて、通常は、異なるファームウェア・イメージを有する複数のフラッシュメモリを同じバス上に含むシステムが、バス上の1つのデバイス(またはより少数のデバイス)だけで、同じ結果を達成することができる。このことは、バスの容量を低減してシステムの性能を増加させる(即ち、バス速度を増加させる)ことができる。 It is advantageous that embodiments of the present invention can reduce or eliminate the use of multiple flash memories for storing different firmware images, because different firmware images can be stored in one memory device. Then, once the new image is memorized, it is possible to immediately switch to the new image. This can reduce the cost of the system because it requires fewer memory devices. In addition, a system that typically contains multiple flash memories with different firmware images on the same bus can achieve the same result with only one device (or fewer devices) on the bus. .. This can reduce the capacity of the bus and increase the performance of the system (ie, increase the bus speed).

本発明の実施形態は、システムが、1つのチップ選択出力に接続された1つのメモリデバイスで、ファームウェア・イメージ間の瞬時の切り換えを行うことを可能にする。このことはコストを低減する、というのは、より少数のチップ選択出力を有するコントローラ・デバイスを使用することができるからである。それに加えて、あるいはその代わりに、システム設計におけるより大きな自由度が存在し得る、というのは、1つ以上のチョップ選択出力が、今度は他のユーザ(即ち、ファームウェア・イメージにアクセス中でないユーザ)にとって自由になるからである。 Embodiments of the present invention allow the system to make an instant switch between firmware images with one memory device connected to one chip selective output. This reduces costs because controller devices with fewer chip selective outputs can be used. In addition to, or instead, there may be greater degrees of freedom in system design, because one or more chop selection outputs are now being accessed by another user (ie, a user who is not accessing the firmware image). ) Will be free.

これら及び他の利点は当業者にとって明らかである。 These and other advantages are apparent to those skilled in the art.

本明細書全体を通して、「一実施形態」または「実施形態」への言及は、その実施形態に関連して説明する特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味することは明らかなはずである。従って、本明細書の種々の部分における「実施形態」または「一実施形態」または「代案の実施形態」への2回以上の言及は、必ずしも全部が同じ実施形態を参照するわけではないことを強調し、そのことは明らかなはずである。さらに、本発明の1つ以上の実施形態では、特定の特徴、構造、または特性を適切に組み合わせることができる。 Throughout this specification, references to "one embodiment" or "embodiments" include specific features, structures, or properties described in connection with that embodiment in at least one embodiment of the invention. It should be clear that it means that. Therefore, it is noted that more than one reference to an "embodiment" or "one embodiment" or "alternative embodiment" in various parts of the specification does not necessarily refer to the same embodiment. Emphasize, that should be clear. Moreover, in one or more embodiments of the invention, specific features, structures, or properties can be combined appropriately.

同様に、以上の本発明の好適な実施形態の説明では、発明の種々の態様のうちの1つ以上の理解に役立つ開示を簡素化する目的で、本発明の種々の特徴は、時として、単一の実施形態、図面、またはその説明において一緒にグループ化されていることは明らかである。しかし、こうした開示の方法は、特許請求の範囲が、各請求項中に明示的に記載した以上の特徴を要求するという意図を反映するものとして解釈するべきでない。むしろ、本発明の態様は、以上に開示した単一の実施形態の全部の特徴よりも範囲が小さい。従って、詳細な説明に続く特許請求の範囲は、これにより、この詳細な説明中に明示的に含まれ、各請求項は、本発明の別個の実施形態として自立する。
Similarly, in the description of preferred embodiments of the invention above, various features of the invention are sometimes described in order to simplify disclosure of one or more of the various aspects of the invention. It is clear that they are grouped together in a single embodiment, drawing, or description thereof. However, such disclosure methods should not be construed as reflecting the intent that the claims require more features than expressly stated in each claim. Rather, aspects of the invention are smaller in scope than all features of the single embodiment disclosed above. Therefore, the scope of claims following the detailed description is thereby expressly included in this detailed description, and each claim is self-sustaining as a separate embodiment of the present invention.

Claims (21)

物理アドレスによりアクセス可能な複数の記憶位置を有するメモリセルアレイと、
リマップ・データ構造と、
前記メモリセルアレイ及び前記リマップ・データ構造に結合された制御論理回路とを具えたメモリデバイスであって、
前記記憶位置のそれぞれは別個の領域内に配置され、
前記リマップ・データ構造は、
複数の不揮発性のエントリを有するマッピング履歴部分であって、
前記領域内に記憶されている異なるバージョンのファームウェア用の論理アドレス(LA)と物理アドレス(PA)との間のマッピングの集合を記憶して、前記メモリデバイスに記憶されている複数のバージョンのファームウェア用のLA−PAのマッピングの履歴を形成するように構成されたマッピング履歴部分と、
前記マッピングの集合のうちの1つを前記メモリデバイスにおける有効な集合として識別するように構成された不揮発性の状態部分とを含み、
前記制御論理回路は、前記記憶位置及び前記リマップ・データ構造へのアクセスを可能にするように構成され
前記メモリセルアレイ及び前記リマップ・データ構造は、同じ集積回路基板上に形成されているメモリデバイス。
A memory cell array with multiple storage locations accessible by physical address,
Remap data structure and
A memory device including the memory cell array and a control logic circuit coupled to the remap data structure.
Each of the storage locations is located in a separate area
The remap data structure
A mapping history part with multiple non-volatile entries
A set of mappings between a logical address (LA) and a physical address (PA) for different versions of firmware stored in the area is stored, and a plurality of versions of firmware stored in the memory device are stored. A mapping history portion configured to form a history of LA-PA mappings for
Includes a non-volatile state portion configured to identify one of the set of mappings as a valid set in the memory device.
The control logic is configured to allow access to the storage location and the remap data structure .
The memory cell array and the remap data structure are memory devices formed on the same integrated circuit board .
前記有効な集合の論理アドレス−物理アドレスのマッピングを記憶するように構成された揮発性メモリ回路をさらに具え、
前記制御論理回路が、受信した論理アドレスに応答して前記揮発性メモリ回路にアクセスするように構成されている、請求項1に記載のメモリデバイス。
Further equipped with a volatile memory circuit configured to store the logical address-physical address mapping of the valid set.
The memory device according to claim 1, wherein the control logic circuit is configured to access the volatile memory circuit in response to a received logical address.
前記制御論理回路が命令デコーダをさらに含み、該命令デコーダは、受信した命令に応答して前記リマップ・データ構造へのアクセスを可能にするように構成されている、請求項1に記載のメモリデバイス。 The memory device of claim 1, wherein the control logic further includes an instruction decoder, the instruction decoder being configured to allow access to the remap data structure in response to a received instruction. .. 前記制御論理回路が少なくとも1つのコンフィギュレーション・レジスタをさらに含み、該コンフィギュレーション・レジスタは、前記メモリデバイスへのレジスタ書込み動作によりアクセス可能であり、前記少なくとも1つのコンフィギュレーション・レジスタは、前記マッピング履歴部分用のデータ、及び前記状態部分用のデータから成るグループから選択したいずれかを記憶するように構成されている、請求項1に記載のメモリデバイス。 The control logic further includes at least one configuration register, the configuration register being accessible by register write operation to the memory device, and the at least one configuration register being the mapping history. The memory device according to claim 1, wherein the memory device is configured to store any selected from a group consisting of data for a portion and data for the state portion. 前記制御論理回路がパワーオン・リセット回路をさらに含み、該パワーオン・リセット回路は、前記メモリデバイスにおける電源オンまたはリセットの事象に応答して、前記有効な集合の論理アドレスを、前記メモリデバイスに記憶されているファームウェア用の最新のアドレスとして設定するように構成されている、請求項1に記載のメモリデバイス。 The control logic further includes a power-on reset circuit, which delivers the valid set of logical addresses to the memory device in response to a power-on or reset event in the memory device. The memory device according to claim 1, which is configured to be set as the latest address for stored firmware. 入力/出力(I/O)部分をさらに含み、該I/O部分は、少なくとも1つのチップ選択入力端子、少なくとも1つのクロック入力端子、及び少なくとも1つの双方向シリアルデータ入力/出力端子を含む、請求項1に記載のメモリデバイス。 It further comprises an input / output (I / O) portion, which includes at least one chip selection input terminal, at least one clock input terminal, and at least one bidirectional serial data input / output terminal. The memory device according to claim 1. 前記メモリセルアレイが、複数のプールの形に配列された複数のフラッシュメモリセルを具え、前記別個の領域が第1の前記プール内に配置され、The memory cell array comprises a plurality of flash memory cells arranged in the form of a plurality of pools, and the separate areas are arranged in the first pool.
前記制御論理回路が、残りの前記プールへのアクセスを、ウェア・レベリング・アルゴリズムに従って変化させるように構成されている、請求項1に記載のメモリデバイス。The memory device according to claim 1, wherein the control logic circuit is configured to change access to the remaining pools according to a wear leveling algorithm.
新ファームウェア・イメージをメモリデバイスにおいて受信するステップと、The steps to receive the new firmware image in the memory device,
前記新ファームウェア・イメージを前記メモリデバイスの不揮発性の記憶位置にプログラムするステップであって、前記新ファームウェア・イメージ用の前記記憶位置が、同じ前記メモリデバイス内の、現在のファームウェア・イメージが記憶されている記憶位置とは異なるステップと、A step of programming the new firmware image into a non-volatile storage location of the memory device, wherein the current firmware image in the memory device having the same storage location for the new firmware image is stored. Steps different from the memory position
前記新ファームウェア・イメージ用の論理アドレス(LA)−物理アドレス(PA)のマッピングの集合を、前記メモリデバイスの不揮発性のマッピング回路内の複数の異なるエントリのうちの1つにプログラムするステップであって、前記マッピング回路内の1つのエントリが、前記現在のファームウェア・イメージ用のLA−PAのマッピングの集合も含み、前記エントリが、前記メモリデバイスに記憶されている複数のバージョンのファームウェア用のLA−PAのマッピングの履歴を形成するステップと、The step of programming the set of logical address (LA) -physical address (PA) mappings for the new firmware image into one of a plurality of different entries in the non-volatile mapping circuit of the memory device. Thus, one entry in the mapping circuit also contains a set of LA-PA mappings for the current firmware image, and the entry is stored in the memory device for multiple versions of LA for firmware. -Steps to form a history of PA mapping,
前記メモリデバイスの不揮発性の状態回路内に状態値をプログラムして、前記新ファームウェア・イメージ用のLA−PAのマッピングの集合を、前記メモリデバイスに記憶されている有効なファームウェア・イメージとして示し、前記現在のファームウェア・イメージ用のLA−PAのマッピングの集合を、無効なファームウェア・イメージとして示すステップであって、前記状態回路が、異なる前記履歴を形成するエントリ毎に状態値を含むステップとA state value is programmed into the non-volatile state circuit of the memory device to show the set of LA-PA mappings for the new firmware image as a valid firmware image stored in the memory device. A step of showing the set of LA-PA mappings for the current firmware image as an invalid firmware image, wherein the state circuit includes a state value for each entry forming a different history.
を含む方法。How to include.
前記新ファームウェア・イメージを前記メモリデバイスの前記不揮発性の記憶位置にプログラムするステップが、フラッシュメモリデバイスのセクターをプログラムすることを含む、請求項8に記載の方法。8. The method of claim 8, wherein the step of programming the new firmware image into the non-volatile storage location of the memory device comprises programming a sector of the flash memory device. 前記状態値をプログラムするステップが、前記メモリデバイスに記憶されている前記LA−PAのマッピングの集合毎に1ビットを有するマルチビット・ポインタ・データ構造内の少なくとも1ビットをプログラムすることを含む、請求項8に記載の方法。The step of programming the state value comprises programming at least one bit in a multi-bit pointer data structure having one bit for each set of LA-PA mappings stored in the memory device. The method according to claim 8. 前記新ファームウェア用のLA−PAのマッピングの集合をプログラムするステップが、所定の命令及びデータを前記メモリデバイスにおいて受信すること、及び前記メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むことから成るグループから選択した動作を含む、請求項8に記載の方法。The step of programming a set of LA-PA mappings for the new firmware consists of receiving predetermined instructions and data in the memory device and writing data to at least one predetermined register in the memory device. 8. The method of claim 8, comprising the action selected from the group. 前記新ファームウェア・イメージにおける前記状態値をプログラムするステップが、所定の命令及びデータを前記メモリデバイスにおいて受信すること、及び前記メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むことから成るグループから選択した動作を含む、請求項8に記載の方法。The step of programming the state value in the new firmware image is selected from a group consisting of receiving predetermined instructions and data in the memory device and writing data to at least one predetermined register in the memory device. The method according to claim 8, wherein the operation is included. 所定の条件に応答して、前記新ファームウェア・イメージの前記LA−PAのマッピングの集合のうちの1つのLA−PAのマッピングを揮発性メモリ内に生成するステップと、In response to a predetermined condition, a step of generating an LA-PA mapping in one of the LA-PA mapping sets of the new firmware image in volatile memory.
前記揮発性メモリにアクセスして、前記新ファームウェア・イメージからデータを読み出すステップとWith the step of accessing the volatile memory and reading data from the new firmware image
をさらに含む、請求項8に記載の方法。8. The method of claim 8.
前記所定の条件が、前記メモリデバイスにおけるパワーオン・リセット動作、所定の命令を前記メモリデバイスにおいて受信したこと、及び前記メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むことから成るグループから選択したいずれかを含む、請求項13に記載の方法。The predetermined condition was selected from a group consisting of a power-on / reset operation in the memory device, receiving a predetermined instruction in the memory device, and writing data to at least one predetermined register in the memory device. 13. The method of claim 13, comprising any of these. 不揮発性メモリデバイスと、
プロセッサ回路と、
無線トランシーバとを具えたシステムであって、
前記不揮発性メモリデバイスは、
異なる物理アドレスを有する領域を有するメモリセルアレイであって、前記システム用の異なるファームウェア・イメージを記憶するメモリセルアレイと、
受信したファームウェア・イメージ用の論理アドレス(LA)−物理アドレス(PA)のマッピングを不揮発性の記憶回路内の複数のエントリのうちの1つに記憶して、前記受信したファームウェア・イメージ用のLA−PAのマッピングの履歴を維持するように構成されたマッピング履歴部分と、
前記システムによってアクセスされる現在のファームウェア・イメージを識別するデータを不揮発性の記憶回路内に記憶するように構成されたファームウェア状態部分とを含み、
前記プロセッサ回路は、記憶されているプロセッサ命令を実行して、
新ファームウェア・イメージをシステムメモリに記憶し、
前記不揮発性メモリデバイスに記憶されている前記現在のファームウェア・イメージを乱すことなしに、前記システムメモリからの前記新ファームウェア・イメージを、前記不揮発性メモリデバイス内の前記領域のうちの1つにプログラムし、
前記新ファームウェア・イメージ用のLA−PAのマッピングを、前記不揮発性メモリデバイスの前記マッピング履歴部分内にプログラムし、
前記新ファームウェア・イメージ用のLA−PAのマッピングが前記システムによって読み込まれて、前記不揮発性メモリデバイスに記憶されている以前のバージョンのファームウェア・イメージのいずれとも異なるファームウェア・データがアクセスされることを示すように、前記ファームウェア状態部分をプログラムする
ように構成され、
前記無線トランシーバは、前記新ファームウェア・イメージを無線ネットワーク上で受信するように構成されているシステム。
With non-volatile memory devices
Processor circuit and
A system with a wireless transceiver
The non-volatile memory device is
A memory cell array that has areas with different physical addresses and stores different firmware images for the system.
The logical address (LA) -physical address (PA) mapping for the received firmware image is stored in one of a plurality of entries in the non-volatile storage circuit, and the LA for the received firmware image is stored. -A mapping history part configured to keep a history of PA mappings,
Includes a firmware state portion configured to store data identifying the current firmware image accessed by the system in a non-volatile storage circuit.
The processor circuit executes a stored processor instruction and
Store the new firmware image in system memory
The new firmware image from the system memory is programmed into one of the areas in the non-volatile memory device without disturbing the current firmware image stored in the non-volatile memory device. And
The LA-PA mapping for the new firmware image is programmed into the mapping history portion of the non-volatile memory device.
The LA-PA mapping for the new firmware image is read by the system to access firmware data that is different from any of the previous versions of the firmware image stored in the non-volatile memory device. Program the firmware state portion as shown
Is configured as
The wireless transceiver is a system configured to receive the new firmware image over a wireless network.
前記新ファームウェア・イメージ用のLA−PAのマッピングをプログラムすることが、前記プロセッサ回路が所定の命令及びデータを前記不揮発性メモリデバイスに対して発行すること、及び前記プロセッサ回路が前記不揮発性メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むことから成るグループから選択したいずれかを含む、請求項15に記載のシステム。Programming the LA-PA mapping for the new firmware image causes the processor circuit to issue predetermined instructions and data to the non-volatile memory device, and the processor circuit issues the non-volatile memory device. 15. The system of claim 15, comprising any selected from a group consisting of writing data to at least one predetermined register of. 前記ファームウェア状態部分をプログラムすることが、前記プロセッサ回路が所定の命令を前記不揮発性メモリデバイスに対して発行すること、及び前記プロセッサ回路が前記不揮発性メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むことから成るグループから選択したいずれかを含む、請求項15に記載のシステム。Programming the firmware state portion causes the processor circuit to issue a predetermined instruction to the non-volatile memory device, and the processor circuit sends data to at least one predetermined register of the non-volatile memory device. 15. The system of claim 15, comprising any selected from a group consisting of writing. 前記プロセッサ回路が、前記新ファームウェア・イメージを受信する前に、前記不揮発性メモリデバイスに記憶されている以前のファームウェア・イメージにチップ選択信号によりアクセスするように構成され、The processor circuit is configured to access the previous firmware image stored in the non-volatile memory device by a chip selection signal before receiving the new firmware image.
前記プロセッサ回路が、前記新ファームウェア・イメージを受信した後に、同じ前記チップ選択信号により前記新ファームウェア・イメージにアクセスするように構成されている、The processor circuit is configured to access the new firmware image by the same chip selection signal after receiving the new firmware image.
請求項15に記載のシステム。The system according to claim 15.
前記不揮発性メモリデバイスが少なくとも1つのプールを含み、該プールの各々が、The non-volatile memory device comprises at least one pool, each of which pools
複数のレジスタと、With multiple registers
前記プール用のマッピング履歴部分と、The mapping history part for the pool and
前記プール用のファームウェア状態部分とWith the firmware state part for the pool
を含む、請求項15に記載のシステム。15. The system of claim 15.
前記状態部分が、前記マッピング履歴部分のエントリ毎に1ビットを有するマルチビット・ポインタ・データ構造内の少なくとも1ビットを含む、請求項1に記載のメモリデバイス。The memory device of claim 1, wherein the state portion comprises at least one bit in a multi-bit pointer data structure having one bit for each entry in the mapping history portion. 前記ファームウェア状態部分が、前記マッピング履歴部分のエントリ毎に1ビットを有するマルチビット・ポインタ・データ構造内の少なくとも1ビットを含む、請求項15に記載のシステム。15. The system of claim 15, wherein the firmware state portion comprises at least one bit in a multi-bit pointer data structure having one bit for each entry in the mapping history portion.
JP2020531080A 2017-12-12 2018-11-19 Memory devices, systems, and methods for updating firmware with a single memory device Active JP6814327B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762597709P 2017-12-12 2017-12-12
US62/597,709 2017-12-12
US16/005,262 US10552145B2 (en) 2017-12-12 2018-06-11 Memory devices, systems, and methods for updating firmware with single memory device
US16/005,262 2018-06-11
PCT/US2018/061742 WO2019118130A1 (en) 2017-12-12 2018-11-19 Memory devices, systems, and methods for updating firmware with single memory device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020210313A Division JP6999017B2 (en) 2017-12-12 2020-12-18 Memory device, system, and method for updating firmware with a single memory device

Publications (2)

Publication Number Publication Date
JP6814327B1 true JP6814327B1 (en) 2021-01-13
JP2021506014A JP2021506014A (en) 2021-02-18

Family

ID=66696768

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020531080A Active JP6814327B1 (en) 2017-12-12 2018-11-19 Memory devices, systems, and methods for updating firmware with a single memory device
JP2020210313A Active JP6999017B2 (en) 2017-12-12 2020-12-18 Memory device, system, and method for updating firmware with a single memory device

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020210313A Active JP6999017B2 (en) 2017-12-12 2020-12-18 Memory device, system, and method for updating firmware with a single memory device

Country Status (5)

Country Link
US (2) US10552145B2 (en)
JP (2) JP6814327B1 (en)
CN (1) CN111433750B (en)
DE (1) DE112018006329T8 (en)
WO (1) WO2019118130A1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11231448B2 (en) 2017-07-20 2022-01-25 Targus International Llc Systems, methods and devices for remote power management and discovery
US11537389B2 (en) 2017-12-12 2022-12-27 Infineon Technologies LLC Memory devices, systems, and methods for updating firmware with single memory device
US10552145B2 (en) 2017-12-12 2020-02-04 Cypress Semiconductor Corporation Memory devices, systems, and methods for updating firmware with single memory device
AU2020333961A1 (en) 2019-08-22 2022-02-24 Targus International Llc Systems and methods for participant-controlled video conferencing
TWI726524B (en) * 2019-12-09 2021-05-01 新唐科技股份有限公司 Electronic processing devices and memory control methods thereof
US11435929B2 (en) 2020-08-27 2022-09-06 Dell Products L.P. System and method for content addressable storage system update appliance
CN112764685B (en) * 2021-01-26 2022-07-15 华中科技大学 Method and device for eliminating repeated data writing of pre-written log in solid-state disk
CN113228189A (en) * 2021-03-30 2021-08-06 长江存储科技有限责任公司 Memory device with embedded firmware repair mechanism
DE102021002079B3 (en) * 2021-04-20 2022-05-12 Daimler Ag Procedures for efficient data filing
CN113407934B (en) * 2021-08-20 2021-12-24 博流智能科技(南京)有限公司 Safe multi-firmware fusion system and multi-firmware fusion control method
CN116302005B (en) * 2023-05-11 2023-08-22 合肥智芯半导体有限公司 Chip, chip upgrading method and device, electronic equipment and readable storage medium
CN116560700B (en) * 2023-07-11 2023-09-22 沐曦集成电路(上海)有限公司 Chip firmware upgrading system
CN117785755B (en) * 2024-02-23 2024-05-28 北京超弦存储器研究院 CXL memory module, resource allocation method, control chip, medium and system

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596738A (en) * 1992-01-31 1997-01-21 Teac Corporation Peripheral device control system using changeable firmware in a single flash memory
US5426769A (en) 1993-08-26 1995-06-20 Metalink Corp. System and method for producing input/output expansion for single chip microcomputers
US5477176A (en) 1994-06-02 1995-12-19 Motorola Inc. Power-on reset circuit for preventing multiple word line selections during power-up of an integrated circuit memory
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US8296467B2 (en) * 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7698698B2 (en) * 2004-09-30 2010-04-13 Smith Micro Software, Inc. Method for over-the-air firmware update of NAND flash memory based mobile devices
US7934049B2 (en) * 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US7702821B2 (en) * 2005-09-15 2010-04-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
US20100217789A1 (en) * 2006-01-20 2010-08-26 Niigata University Physical random number generation method and physical random number generator
US20070255889A1 (en) * 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
KR100782080B1 (en) * 2006-09-07 2007-12-04 삼성전자주식회사 Updating method for mobile communication terminal and system
CN100504814C (en) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 Flash-memory zone block management method
US8320302B2 (en) 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
EP2229625B1 (en) * 2007-12-13 2011-08-31 Telefonaktiebolaget LM Ericsson (publ) Updating firmware of an electronic device
JP2009265877A (en) * 2008-04-24 2009-11-12 Kyocera Mita Corp Electronic apparatus
US20090320012A1 (en) 2008-06-04 2009-12-24 Mediatek Inc. Secure booting for updating firmware over the air
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
WO2009156302A1 (en) * 2008-06-23 2009-12-30 Nxp B.V. Electronic device and method of software or firmware updating of an electronic device
GB2465193A (en) * 2008-11-10 2010-05-12 Symbian Software Ltd Detecting updated files in a firmware over the air update using CRC values
US8412909B2 (en) * 2009-04-08 2013-04-02 Samsung Electronics Co., Ltd. Defining and changing spare space and user space in a storage apparatus
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8869138B2 (en) 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US9189385B2 (en) * 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
US8344767B2 (en) 2010-10-14 2013-01-01 Fairchild Semiconductor Corporation Low power power-on-reset (POR) circuit
EP2652623B1 (en) * 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US9251087B2 (en) * 2011-02-11 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for virtual memory management
JP5002719B1 (en) * 2011-03-10 2012-08-15 株式会社東芝 Information processing device, external storage device, host device, relay device, control program, and information processing device control method
KR101720101B1 (en) * 2011-03-18 2017-03-28 삼성전자주식회사 Writing method of writing data into memory system and writing method of memory systme
US20120260138A1 (en) * 2011-04-05 2012-10-11 Downing Iii Robert L Error logging in a storage device
US9183393B2 (en) 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
JP5843637B2 (en) * 2012-02-01 2016-01-13 キヤノン株式会社 Image forming apparatus, image forming apparatus control method, and program
CN102855151B (en) 2012-08-21 2016-06-08 武汉电信器件有限公司 The optical module firmware not interrupting business is in application upgrade method
US8954694B2 (en) * 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9454474B2 (en) * 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
KR20150099269A (en) * 2014-02-21 2015-08-31 삼성전자주식회사 Electronic device and method for firmware updating of a device
KR102190670B1 (en) 2014-03-03 2020-12-14 삼성전자주식회사 Memory system including migration manager
US9244767B1 (en) * 2014-07-07 2016-01-26 Sandisk Technologies Inc. Data storage device with in-memory parity circuitry
KR102261815B1 (en) * 2014-10-30 2021-06-07 삼성전자주식회사 Data storage device for reducing firmware update time, and data processing system including the same
US10073627B2 (en) * 2015-01-13 2018-09-11 Sandisk Technologies Llc Addressing, interleave, wear leveling, and initialization schemes for different chip enables and memory arrays of different types
US9459857B2 (en) * 2015-01-21 2016-10-04 HGST Netherlands B.V. Managing wear of system areas of storage devices
KR20160118602A (en) * 2015-04-02 2016-10-12 삼성전자주식회사 Data storage device and devices having same
EP3133604B1 (en) * 2015-08-17 2020-11-11 Harman Becker Automotive Systems GmbH Method and device for fail-safe erase of flash memory
TWI551991B (en) * 2015-11-20 2016-10-01 群聯電子股份有限公司 Method and system for memory management and memory storage device thereof
US20170168725A1 (en) * 2015-12-10 2017-06-15 Kabushiki Kaisha Toshiba Memory system that updates firmware in response to predetermined events
US10958435B2 (en) * 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
KR102456490B1 (en) * 2016-01-12 2022-10-20 에스케이하이닉스 주식회사 Memory system and operating method thereof
US10430263B2 (en) * 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
US10025583B2 (en) * 2016-02-17 2018-07-17 International Business Machines Corporation Managing firmware upgrade failures
US10129083B2 (en) 2016-02-24 2018-11-13 Wipro Limited Methods for optimizing an over-the-air update using a lightweight device update protocol (LWDUP)
US20170249155A1 (en) * 2016-02-26 2017-08-31 Sandisk Technologies Inc. Memory System and Method for Fast Firmware Download
US10282251B2 (en) * 2016-09-07 2019-05-07 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
KR20180049338A (en) * 2016-10-31 2018-05-11 삼성전자주식회사 Storage device and operating method thereof
US10339318B2 (en) * 2016-11-07 2019-07-02 SK Hynix Inc. Semiconductor memory system and operating method thereof
US10325108B2 (en) * 2016-12-30 2019-06-18 Intel Corporation Method and apparatus for range based checkpoints in a storage device
US11163624B2 (en) * 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10642488B2 (en) * 2017-10-23 2020-05-05 Micron Technology, Inc. Namespace size adjustment in non-volatile memory devices
US10915440B2 (en) * 2017-11-16 2021-02-09 Micron Technology, Inc. Namespace mapping optimization in non-volatile memory devices
US10678703B2 (en) * 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US11580034B2 (en) * 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US10552145B2 (en) 2017-12-12 2020-02-04 Cypress Semiconductor Corporation Memory devices, systems, and methods for updating firmware with single memory device

Also Published As

Publication number Publication date
JP2021506014A (en) 2021-02-18
JP6999017B2 (en) 2022-01-18
CN111433750A (en) 2020-07-17
DE112018006329T8 (en) 2020-10-29
US10552145B2 (en) 2020-02-04
US20200301698A1 (en) 2020-09-24
JP2021061023A (en) 2021-04-15
US11061663B2 (en) 2021-07-13
CN111433750B (en) 2023-12-29
DE112018006329T5 (en) 2020-08-20
WO2019118130A1 (en) 2019-06-20
US20190179625A1 (en) 2019-06-13

Similar Documents

Publication Publication Date Title
JP6814327B1 (en) Memory devices, systems, and methods for updating firmware with a single memory device
US7506099B2 (en) Semiconductor storage apparatus
US7953953B2 (en) Method and apparatus for reducing page replacement time in system using demand paging technique
US8041878B2 (en) Flash file system
CN111459844B (en) Data storage device and method for accessing logical-to-physical address mapping table
CN107818052B (en) Memory access method and device
JP2006031696A (en) Flash memory system including bad block management part
JP2013137770A (en) Lba bitmap usage
JP2011258189A (en) Persistent memory for processor main memory
KR20090081657A (en) Write and merge methods in memory card systems for reducing the number of page copies
KR101041837B1 (en) Control aparatus and method for storing file
KR20080007470A (en) Nonvolatile memory system using magneto-resistive random access memory(mram)
JP2019531546A (en) Method and apparatus for bypassing the internal cache of an advanced DRAM memory controller
US10083120B2 (en) Memory system, and address mapping method and access method thereof
US20210026620A1 (en) Memory devices, systems, and methods for updating firmware with single memory device
US11126573B1 (en) Systems and methods for managing variable size load units
WO2016209535A1 (en) Accelerated address indirection table lookup for wear-leveled non-volatile memory
CN107045423B (en) Memory device and data access method thereof
JP2009526294A (en) Electronic device having memory element and method of operating the same
US20130132659A1 (en) Microcontroller and method of controlling microcontroller
US7899974B2 (en) Nonvolatile memory, mapping control apparatus and method of the same
JP2008217208A (en) Storage device, computer system and management method for storage device
US10559359B2 (en) Method for rewriting data in nonvolatile memory and semiconductor device
US10241916B2 (en) Sparse superline removal
JP2007213179A (en) Nonvolatile semiconductor storage device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200729

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200729

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201012

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: 20201020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201218

R150 Certificate of patent or registration of utility model

Ref document number: 6814327

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250