JP6999017B2 - 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法 - Google Patents

単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法 Download PDF

Info

Publication number
JP6999017B2
JP6999017B2 JP2020210313A JP2020210313A JP6999017B2 JP 6999017 B2 JP6999017 B2 JP 6999017B2 JP 2020210313 A JP2020210313 A JP 2020210313A JP 2020210313 A JP2020210313 A JP 2020210313A JP 6999017 B2 JP6999017 B2 JP 6999017B2
Authority
JP
Japan
Prior art keywords
memory device
firmware image
firmware
data
memory
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
JP2020210313A
Other languages
English (en)
Other versions
JP2021061023A5 (ja
JP2021061023A (ja
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
Publication of JP2021061023A publication Critical patent/JP2021061023A/ja
Publication of JP2021061023A5 publication Critical patent/JP2021061023A5/ja
Application granted granted Critical
Publication of JP6999017B2 publication Critical patent/JP6999017B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/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)

Description

本願は、米国特許非仮出願第16/005262号、2018年6月11日出願の国際
出願であり、この米国特許非仮出願は米国特許仮出願題62/597709号、2017
年12月12日出願により優先権を主張し、これらの特許出願のすべての内容は参照する
ことによって本明細書に含める。
技術分野
本発明は一般に不揮発性メモリ内のデータを時々更新(アップデート)するシステムに
関するものであり、より具体的には、ファームウェア無線通信(FOTA:firmware-ove
r-the-air)法を利用するシステムのようなシステム用途向けのファームウェア・イメー
ジを更新するシステムに関するものである。
背景
ファームウェア無線通信(FOTA)(無線通信によるファームウェア更新)及び他の
ファームウェア更新方法は、コンピュータシステムにとって主要な要件であり得る。FO
TA更新は一般にトランスペアレントである必要があり、即ち、旧FW(firmware:ファ
ームウェア)イメージと新FWイメージとを瞬時に切り換える。従来は、ファームウェア
を更新する必要があるシステムは2つ以上の別個のフラッシュメモリデバイスを使用し、
これらのフラッシュメモリデバイスは(例えば、ベースレジスタの使用により)プロセッ
サのアドレス空間の異なる範囲内へマッピング(対応付け)される。異なるアドレス範囲
の各々のベースアドレスは、所望のフラッシュメモリデバイスを選択する単一のチップ選
択(チップセレクト)を制御する。従って、上記瞬時の切り換えは、ベースアドレス・レ
ジスタに記憶されているベースアドレスをスワップ(交換)することによって発生する。
図16Aに、FOTA更新を含む従来のシステム1691を示す。システム1691は
、マイクロコントローラ(MCU:microcontroller unit)1693及び複数のフラッシ
ュメモリデバイス1695-0~1695-2を含むことができる。フラッシュメモリデ
バイス(1695-0~1695-2)内の記憶位置(記憶場所)はシステムアドレス空
間1697へマッピングすることができる。フラッシュメモリデバイス0 1695-0
は、ベースアドレス0x000に対応することができ、旧ファームウェア・イメージ16
07-0(即ち、期限切れのバージョン、従って置き換えられたバージョン)を記憶する
ことができる。フラッシュメモリデバイス1 1695-1は、ベースアドレス0x10
0に対応することができ、現在のファームウェア・イメージ(即ち、現在、システムがア
クセスするバージョン)を記憶することができる。フラッシュメモリデバイス2 169
5-2は、ベースアドレス0x200に対応することができ、新ファームウェア・イメー
ジ1697-2(即ち、現在のイメージを更新することを意図したバージョン)を記憶す
ることができる。
MCU1693は、MCU1693内部のアドレス指定(アドレッシング)メカニズム
を用いてファームウェア・イメージを更新することができる。MCU1693はベースア
ドレス・レジスタ1699を有することができ、ベースアドレス・レジスタ1699はフ
ァームウェア・イメージに対応するベースアドレスを記憶する。ベースアドレス・レジス
タを用いて、フラッシュメモリデバイス1695-0~1695-2用のそれぞれのチッ
プ選択信号CS0~CS2を発生する。ベースアドレス・レジスタ”ba_new_image”は、
新ファームウェア・イメージのベース物理アドレス(更新前の0x200)を記憶するこ
とができる。ベースアドレス・レジスタ”ba_cur_image”は、現在のファームウェア・イ
メージのベース物理アドレス(更新前の0x100)を記憶することができる。ベースア
ドレス・レジスタ”ba_old_image”は、旧ファームウェア・イメージのベース物理アドレ
ス(更新前の0x000)を記憶することができる。
システム1691は、ベースアドレス・レジスタ1699内の値を切り換えることによ
って、現在のイメージ(例えば、1697-1)から新イメージ(例えば、1697-2
)へ更新することができる。具体的には、ベースアドレス・レジスタba_cur_image内の値
を”cfg_cur”から”cfg_new”に切り換えることができる。こうした作業に続いて、シス
テム1691がファームウェアを読みに行く際に、MCA1693内部のアドレス指定メ
カニズムが、チップ選択信号CS2を(更新作業の前に発生したCS1の代わりに)発生
する。
図16Bは従来のシステム1691のブロック図であり、チップ選択を使用する方法を
示す。MCU1693は、1つの出力端子(例えば、I/O(input/output:入力/出力
)端子)を、フラッシュメモリデバイス1695-0/1毎のチップ選択(CS1、CS
2)としての専用にする。以上より理解されるように、こうしたチップ選択(CS1、C
S2)はベースアドレス・レジスタ内の値に応じて活性化することができる。一方のフラ
ッシュメモリ(例えば、1695-0)は、現在使用中であるファームウェア・イメージ
を記憶することができるのに対し、他方のフラッシュメモリ(例えば、1695-1)は
、現在使用中でない(即ち、旧ファームウェア・イメージ、あるいはベースアドレス・レ
ジスタ値を切り換えることによって使用中にされるべき新ファームウェア・イメージ)を
記憶することができる。
従来のFOTA方法の欠点は、コスト及び性能の限界であり得る。1つのI/O端子を
フラッシュメモリデバイス毎の(即ち、各ファームウェア・イメージの)チップ選択端子
としての専用にする代表的なコントローラ(例えば、MCU)を使用する場合、このコン
トローラは、ダイナミックRAM(DRAM:dynamic random access memory:ダイナミ
ック・ランダムアクセスメモリ)またはスタティックRAM(SRAM:static RAM)の
ような他の必要なデバイス用の未使用のI/O端子を有さないことがある。その結果、追
加的なI/O端子を有するコントローラを使用しなければならないことがあり、このこと
はシステムのコストを増加させ得る。従来のシステムは複数のフラッシュメモリデバイス
を同じバスに接続することができるが、フラッシュメモリデバイスが追加される毎にバス
上の容量性負荷が増加し得る。従って、バス上のフラッシュメモリデバイスの数が多くな
るほど、バスはより低速で機能する。ほんの一例として、8進(オクタル)のSPI(se
rial peripheral interface:シリアル周辺インタフェース)バスについては、2つのフ
ラッシュメモリデバイスを追加することは、1つのフラッシュメモリデバイスしか有さな
い同じバスに比べれば、最高バス速度を200MHzから133~166MHzに低下させ得る
図1A~1Dは、一実施形態によるシステム及びファームウェア更新作業を示す一連のブロック図である。 図2A及び2Bは、メモリデバイスが命令及び/またはレジスタ書込みを受け取ることを更新作業に含めることができる方法を示すブロック図である。 一実施形態によるメモリデバイスの概略ブロック図である。 一実施形態によるメモリデバイスのリマップ・データ構造を示す図である。 一実施形態によるファームウェア更新作業を示す流れ図である。 図6A及び6Bは、実施形態に含めることができるメモリセルのアレイ構成を示す図である。 実施形態に含めることができるデータ構造及び対応するメモリセルアレイを示すブロック図である。 実施形態に含めることができる、可変数のプールに分割することができるメモリセルアレイを示す図である。 図9A~9Dは、実施形態による、ファームウェアを更新するためのメモリデバイスへの入力を示す図である。 一実施形態による、ファームウェア無線通信(FOTA)更新を含むことができるシステムを示す図である。 一実施形態によるシステムのブロック図である。 図12A及び12Bは、実施形態によるメモリデバイスの透視図である。 図13A~13Cは、実施形態による好適なデバイスの図である。 一実施形態による方法の流れ図である。 他の実施形態による方法の流れ図である。 図16A及び16Bは、FOTA更新を行う従来システムを示す図である。
詳細な説明
システムのファームウェアを更新するためのメモリデバイス、システム、及び方法を示
す種々の実施形態を以下に説明する。更新は、単一のメモリデバイスで、メモリデバイス
の記憶位置間でファームウェア・イメージをコピーすることなしに実行することができる
実施形態によれば、現在のファームウェア・イメージを記憶しているのと同じメモリデ
バイス内に新ファームウェア・イメージをプログラムすることができる。一旦、新ファー
ムウェア・イメージを記憶すると、メモリデバイスは、内部リマッピング(再マッピング
、再配置)データ構造を用いる切り換え動作によって新ファームウェア・イメージへの切
り換えを行うことができる。こうした新ファームウェア・イメージへの切り換えは瞬時に
行うことができる。
以下の種々の実施形態では、同様のアイテムは同じ参照文字によって参照し、但し図番
に対応する先行数字を付ける。
図1A~1Dは、システム100及び対応するファームウェア更新作業を示す一連の流
れ図である。システム100は、メモリデバイス102、コントローラ104、及びコン
トローラ・メモリ106を含むことができる。メモリデバイス102は、不揮発性メモリ
アレイ108、リマップ(再マッピング、再配置)データ構造110、及び入力/出力(
I/O)兼制御回路112を含むことができる。不揮発性メモリアレイ108は複数の不
揮発性メモリセルを含むことができ、これらの不揮発性メモリセルはデータを不揮発性の
方法で記憶することができる。即ち、電力がない場合に、記憶しているデータを保持する
ことができる。記憶位置は物理アドレス(PA:physical address)によりアクセスする
ことができる。不揮発性メモリ108はあらゆる適切な種類の不揮発性メモリセルを含む
ことができるが、一部の実施形態では「フラッシュ」型メモリセルを含むことができる。
不揮発性メモリアレイ108は、少なくとも2つ以上のファームウェア・イメージ用に十
分な記憶容量を有することができる。
リマップ・データ構造110は、ファームウェア・イメージの論理アドレス-物理アド
レス(LA(logical address)→PA)マッピング、並びにこうしたLA→PAマッピ
ング毎の状態を記録するデータを記憶することができる。例えば、エントリ110-0は
、VAL(valid)の表示で示す有効なマッピング(LA_FW=PAx)を記憶する。エントリ11
0-1はINV(invalid)の表示で示す有効でないマッピングを記憶する。なお、リマップ
・データ構造110はメモリデバイス102上に常駐してデータを不揮発性の方法で記憶
する。以下の他の実施形態に示すように、リマップ・データ構造110は、論理アドレス
と物理アドレスとの間の高速変換用に揮発性メモリ(図示せず)に記憶されているLA→
PAルックアップ・テーブル(早見表)または他の構造を含むことができる。リマップ・
データ構造110は、不揮発性メモリアレイ108の外部に位置する不揮発性メモリセル
及び/または不揮発性メモリアレイ108内に位置する不揮発性メモリセルを利用するこ
とができる。
一部の実施形態では、メモリデバイス102を単一の集積回路デバイスとすることがで
きる。こうした構成では、不揮発性メモリアレイ108、リマップ・データ構造110、
及びUI/O兼制御回路112は、同じ集積回路パッケージの一部とすることができる。
特定の実施形態では、不揮発性メモリアレイ108、リマップ・データ構造110、及び
I/O兼制御回路112を、同じ集積回路基板の一部とすることができる(即ち、単一「
チップ」内に形成される)。
I/O兼制御回路112は、不揮発性メモリセル108及びリマップ・データ構造11
0へのアクセスを可能にすることができる。不揮発性、メモリアレイ108に記憶されて
いるファームウェアにアクセスするために、I/O兼制御回路112は、リマップ・デー
タ構造110を用いて、どのLA→PAマッピングが有効であるかを特定することができ
、次にこうしたマッピングを用いて、有効なファームウェア・イメージの論理アドレスを
物理アドレスに向けることができる。
一部の実施形態では、所定の動作(例えば、パワー(電源)オン/リセットPOR(po
wer-on/reset)、受信した命令、レジスタ設定)に応答して、メモリデバイス102はリ
マップ・データ構造110にアクセスして、LA→PAマッピング構造を揮発性メモリ(
図示せず)内に作成することができる。
コントローラ104は、システム100の種々の機能を実行するための論理回路を含む
ことができる。一部の実施形態では、コントローラ104が、記憶されている命令116
を実行することができる1つ以上のプロセッサ及び関連する回路を含むことができる。し
かし、代案の実施形態は、カスタム(特注)論理回路及び/またはプログラム可能な論理
回路(プログラマブル・ロジック)を含めた他のあらゆる適切な回路を含むことができる
。コントローラ104は、メモリデバイス102とは異なるコントローラ・メモリ108
へのアクセスを行うことができる。コントローラ・メモリ104は、あらゆる適切なメモ
リ回路で形成することができ、特定の実施形態では、ダイナミック・ランダムアクセスメ
モリ(DRAM)またはスタティックRAM(SRAM)のような揮発性メモリとするこ
とができる。
システム100の構成要素を説明してきた。システム100における更新作業を以下に
説明する。
図1Aを参照すれば、システム100は、最初に、現在のファームウェア・イメージ1
14を不揮発性メモリアレイ108の物理アドレスPAxから始まる位置に記憶することが
できる。システムの動作中に、現在のファームウェア・イメージ114がメモリデバイス
102からI/O兼制御回路112によって読み出され、I/O兼制御回路112は、リ
マップ・データ構造110にアクセスすることによって、論理アドレス(LA_FWから始ま
ることができる)を物理アドレス(PAxから始まることができる)に変換する。
図1Aをさらに参照すれば、システム100は新ファームウェア・イメージを受信する
ことができる(動作103で示す)。コントローラ104は新ファームウェア・イメージ
118をコントローラ・メモリ106に記憶することができる。新ファームウェア・イメ
ージ118はネットワーク120から受信することができる。一部の実施形態では、ネッ
トワーク120は無線ネットワークとすることができ、更新作業はFOTA動作とするこ
とができる。
図1Bを参照すれば、コントローラ104は新ファームウェア・イメージ118を不揮
発性メモリアレイ108内にプログラムすることができる。新ファームウェア・イメージ
118は現在のファームウェア・イメージ114が占めていない物理的位置にプログラム
されることは明らかである。図示する実施形態では、新ファームウェア・イメージ118
は、PAyから始まる物理アドレスの範囲を占めることができ、この範囲は現在のファーム
ウェア114を記憶している物理アドレスの範囲とオーバーラップ(重複)しない。新フ
ァームウェア・イメージ118は、不揮発性メモリアレイ108の種類及びアーキテクチ
ャに適したあらゆる技術によりプログラムすることができる。一部の実施形態では、新フ
ァームウェア・イメージ118用の物理アドレスをコントローラ104によって発生する
ことができる。しかし、他の実施形態では、こうした物理アドレスは、I/O兼制御回路
112がコントローラ104からの1つ以上の命令に応答して発生することができる。
図1Cを参照すれば、コントローラ104は、新ファームウェア・イメージ118をリ
マップ・データ構造110にマッピングする論理アドレス-物理アドレス(の対応関係)
もプログラムすることができる。こうした動作は、図1C中に、”LA_FW=PAy”がエント
リ110-1にプログラムされることによって示す。このようにして、システム100が
ファームウェアにアクセスするために意図された論理アドレスを、新イメージ118の物
理アドレスに割り当てることができる。しかし、図1Cに示すように、こうしたマッピン
グは効かない、というのはエントリ110-1が無効な状態を有し続けるからである。
図1Dを参照すれば、コントローラ104は、新たなマッピング・エントリを有効にプ
ログラムすることによって、新ファームウェア・イメージを「有効」にすることができる
。こうした動作は、図1D中に、エントリ110-1が有効(VAL)に変化し、エントリ
110-0が無効になったことによって示している。不揮発性メモリアレイ108内に示
すように、一旦、新たなマッピングが有効になると、PAxにあるファームウェア・イメー
ジは無効な(例えば、期限切れの)ファームウェア・イメージ115になり、PAyにある
ファームウェア・イメージが現在のファームウェア・イメージになって、システムによっ
てアクセスされる。
一旦、新ファームウェア・イメージが有効になる(例えば、生きる)と、即座に、ある
いは所定条件に応答してアクセスすることができる。多数の可能な例の内のほんの少数と
して、次のいずれか、あるいは全部の後に新たなマッピングが効力を生じることができる
:デバイスまたはシステムの次回の電源投入またはリセット(POR:power-up or rese
t)動作、メモリデバイス102が所定の命令を受信すること、または所定の値がメモリ
デバイス102のコンフィギュレーション・レジスタに書き込まれること。
図1A~1Dに示すような動作は、ファームウェアの更新をトランスペアレントかつ即
時にすることができ、同じメモリデバイス内の位置間でデータをコピーすることを必要と
しないようにすることができる。なお、一部の実施形態では、メモリデバイス102が2
つの位置をファームウェア用に保持することができ、これら2つの位置間で新ファームウ
ェア・イメージの各々を「スワップ」することができる。しかし、他の実施形態では、メ
モリデバイス102が3つ以上の記憶位置をファームウェア用に含むことができ、新ファ
ームウェア・イメージを受信した際に、これらの種々の位置間を循環させる(種々の位置
を順に使用する)ことができる。
コントローラ104はファームウェア位置用の物理アドレスを追跡することができるが
、一部の実施形態では、I/O兼制御論理回路112がこうしたタスクを担って、コント
ローラ104から受信したファームウェア・データ値用の物理アドレスを発生することが
できる。
本明細書中に示す実施形態は、メモリデバイスによって実行される種々の動作を含むこ
とができ、これらの動作は、ファームウェア・データを不揮発性メモリアレイの記憶位置
にプログラムすること、リマップ・データ構造内に値(例えば、LA-PAマッピングデ
ータ、状態値、等)をプログラムすること、及び新バージョンのファームウェアを”有効
”にする(即ち、システムにとって利用可能にする)ことを含む。こうした動作はあらゆ
る適切な方法で実現することができるが、図2A及び2Bは実施形態による2つのやり方
を示す。
図2A及び2Bは、メモリデバイス202及び202’のブロック図である。特定の実
施形態では、メモリデバイス202/202’を、図1A~1D中に102で示すものの
特定の実現とすることができる。
図2Aに、メモリデバイス202内のコンフィギュレーション・レジスタへのデータの
書込みを示す。メモリデバイス202は、I/O回路212-0、制御論理回路212-
1、リマップ・データ構造210、及びコンフィギュレーション・レジスタ222を含む
ことができる。データ値DATAをコンフィギュレーション・レジスタ222に書き込んで、
ファームウェア更新作業における動作を開始するか可能にすることができる。ほんの少数
の例として、このレジスタ設定によれば、次のいずれか、あるいは全部が発生し得る:新
ファームウェア・イメージを「有効」にすることができる、PA→LAのマッピングデー
タ(210-x)をプログラムすることができる、メモリデバイスを、コントローラが新
ファームウェアを記憶位置にプログラムすること(即ち、物理アドレス指定でアクセスす
ること)を可能にするモードにすることができる。コンフィギュレーション・レジスタ2
22に書き込むことは、データ及びレジスタ・アドレス(データ+アドレス)をメモリデ
バイスに与えることを含むことができる。さらに、こうした動作は命令(例えば、レジス
タに書き込む、等)を含むこともできる。
図2Bに、ファームウェア更新作業用の特定の命令を受信するメモリデバイス202’
を示す。メモリデバイス202’は、図2Aと同じアイテムを含むことができる。しかし
、図2Aとは異なり、ファームウェア更新作業中の動作はメモリデバイス202’にとっ
て専用の命令によって実行することができる。従って、制御論理回路212-1は命令デ
コーダ224を含むことができる。1つ以上の命令に応答して、制御論理回路212-1
’は、図2Aのレジスタ書込みについて述べた動作のいずれか(即ち、新ファームウェア
を「有効」にする、等)を実行することができる。一部の実施形態では、命令(命令)に
1つ以上のデータ値(+データ)を添付することができる。
図3は、他の実施形態によるメモリデバイス302のブロック図である。特定の実施形
態では、図3は、図1A~1D中に102で示すもの、あるいは図2A/B中に示すもの
の1つの実現とすることができる。
メモリデバイス302は、I/O回路312-0、制御論理回路312-1、リマップ
・データ構造310、メモリセルアレイ308、X及びYデコーダ334及び336、及
びデータラッチ338を含むことができる。I/O回路312-0は、メモリデバイス3
02用のあらゆる適切なインタフェースを提供することができ、図示する非常に特別な実
施形態では、チップ選択入力端子CS、クロック入力端子CLK、シリアルI/O(SI
/O0)端子、及び任意で1つ以上の追加的なシリアルI/O(SI/On)端子を含む
ことができる。十分に理解された技術によれば、メモリデバイス302はアクティブ(有
効)なCS信号によってアクセスすることができ、SI/O0(及びSI/On)端子上の
命令、アドレス値、またはデータ値をCLK端子で受信したクロックに同期して受信する
ことができる。しかし、こうした特定のインタフェースは限定的なものと考えるべきでな
い。代案の実施形態は種々のインタフェースを有するI/O回路を含むことができ、これ
らのインタフェースは、専用のアドレス線及びデータ線、非同期タイミング、並列バス、
等を有するものを含む。
リマップ・データ構造310は、不揮発性の方法でデータを記憶して、最新のファーム
ウェア・イメージを追跡してアクセスを可能にする。図示する実施形態では、リマップ・
データ構造310が、ポインタデータ328、リマップ履歴データ330、及びマップメ
モリ332を含むことができる。リマップ履歴データ330は、新ファームウェア・イメ
ージがメモリセルアレイ308内にプログラムされる毎に、LA→PAマッピングデータ
を記憶することができる。従って、リマップ履歴データ330は、特定のファームウェア
についてのすべてのマッピングの履歴を記憶することができる(ここでは最も古いエント
リを最終的に上書きする)。ポインタデータ328は、最新のリマップ履歴データのエン
トリを指示することができ、従って最新のファームウェア・イメージのエントリを指示す
ることができる。マップメモリ332内のデータは、リマップ履歴データ330よりも高
速にアクセスすることができ、高速のLA→PA変換を提供するように構成することがで
きる。一部の実施形態では、マップメモリ332を揮発性のメモリ構造にすることができ
、このメモリ構造に、ポインタデータ328が指示するリマップ履歴データを入れる。一
部の実施形態では、ポインタデータ328及びリマップ履歴データ330を不揮発性メモ
リ回路に記憶する。こうした不揮発性メモリ回路は、メモリセルアレイ308の一部とす
ることができ、あるいはメモリセルアレイ308とは別個にすることができる。マップメ
モリ332は、SRAM及び/またはDRAMのような揮発性メモリ回路を含むことがで
きる。
制御論理回路312-1は、メモリデバイス302の動作を、I/O回路312-0で
受信した信号に従って実行することができる。図示する実施形態では、制御論理回路31
2-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から見出すことを含むことができる。次に、制御論理回路3
12-1は、LA→PAのルックアップ構造を、リマップ履歴データ330からマップメ
モリ332内に作成することができる。次に、制御論理回路312-1は、マップメモリ
332にアクセスして、ファームウェアの論理アドレスに対して行う読出し要求を提供す
る。
メモリセルアレイ308は不揮発性メモリセルを含むことができ、これらの不揮発性メ
モリセルはX及びYデコーダ(334/336)によって復号化(デコード)された物理
アドレスによりアクセスされる。不揮発性メモリセルは、あらゆる適切な技術のものとす
ることができ、特定の実施形態では、シングル・トランジスタの「フラッシュ」型メモリ
とすることができる。メモリセルアレイ308は、あらゆる適切な編成を有することがで
き、特定の実施形態ではセクター単位で編成することができる。
データラッチ338は、メモリセルアレイ308から受信した読出しデータを、制御論
理回路312によるSI/O0(及び存在すればSI/On)端子上への出力用に記憶す
ることができる。データラッチ338は、SI/O0(及び存在すればSI/On)端子
上で受信した書込みデータを記憶することもできる。
図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に記憶されているデータ
に由来するものと理解するべきである。
新ファームウェア・イメージを受信すると、そのLA→PAマッピングをエントリ「n
」にプログラムして、こうした新ファームウェア・イメージを「有効」にすることができ
、索引nに対するポインタのビット値を1~0に変化させることができる。
種々のシステム、デバイス、及び対応する方法を以上に説明してきた。他の方法を以下
に図5を参照しながら説明する。図5は、コントローラ及び単一のメモリデバイスにより
ファームウェアを更新する方法の流れ図である。方法540は、本明細書中に説明したシ
ステムのいずれか、及びその等価物によって実行することができる。方法540では、メ
モリデバイスはフラッシュメモリデバイスとすることができるが、他の実施形態は他のあ
らゆる適切な技術に基づく不揮発性の記憶装置を含むことができる。
方法540は、初期化イベントが生じるメモリデバイスを含むことができ、図示する実
施形態ではPOR型のイベント540-0とすることができる。こうしたイベントに応答
して、メモリデバイスは、LA→PAマッピングをリマップ履歴(例えば、SMFLASH)か
らマップメモリ(例えば、SMRAM)にロードすることができる。同じ動作(SMRAMに値を入
れること)を生じさせることができる他の初期化イベントは、ほんの少数の例として、メ
モリデバイスに対する特定の命令またはコマンド(命令語)、あるいはメモリデバイスの
1つ以上のコンフィギュレーション・レジスタの設定を含むことができる。
コントローラ(例えば、MCU)は現在のファームウェア・イメージを起動することが
できる。こうした動作は、コントローラがLAを既知の最後のファームウェア・イメージ
の値に設定することを含むことができる。それに加えて、コントローラは最新のイメージ
の(メモリデバイス内の)物理アドレスの記録を有することもできる。図示する実施形態
では、現在の論理アドレスが現在の物理アドレスに等しいものと仮定する。図5では、現
在のファームウェア・イメージがセクター「C」に記憶されているものと理解され、セク
ター「C」は物理アドレスc1、c2等を含む。
コントローラは新ファームウェア・イメージ540-4を受信することができる。こう
した動作は、本明細書中に説明するもののいずれか、またはその等価物を含むことができ
、新ファームウェア・イメージを無線接続上で受信してコントローラ・メモリ(RAM)
に記憶することを含む。
コントローラは、新ファームウェアをメモリデバイス540-6内にプログラムするこ
とができる。こうした動作は、コントローラが論理アドレス及び物理アドレスをデータ用
に割り当てて記録することを含むことができる。図示する実施形態では、割り当てた論理
アドレスが割り当てた物理アドレスに等しいものと仮定する。図5では、新ファームウェ
ア・イメージがセクター「N」に記憶されているものと理解し、セクター「N」は物理ア
ドレスn1、n2、等を含む。セクター「N」はセクター「C」とは異なり、セクター「
C」とオーバーラップしないものと理解する。動作540-6は、一部の実施形態におい
てLA→PAマッピングをアプリケーション/ユーザに対して示すことができる方法を示
す。
次に、コントローラはメモリデバイス上のリマップ履歴データ(SMFLASH)を更新して
、新ファームウェア・イメージの位置540-8を記憶する。こうした動作は、コントロ
ーラが現在のファームウェア・イメージの論理アドレスを新ファームウェア・イメージの
論理アドレスと交換することを含むことができる。図5では、このことは複数の論理アド
レスのスワップを含むことができる。
方法540は、コントローラがメモリデバイス540-10内の有効ビットをセットす
ることによってファームウェア更新を「有効」にすることをさらに含むことができる。図
5では、このことは、図4のもののようなデータ構造内のビット(即ち、ポインタFR_VEC
内のビット値)をセットすることを含むことができる。
新ファームウェア・イメージが「有効」にされ、メモリデバイスに他の初期化イベント
540-0(例えば、POR、特別な命令/コマンド、コンフィギュレーション・レジス
タの書込み)が生じると、コントローラは新たなイメージを起動し、即ちLA(cur_img)=N
、ここにN=(n1, N2,...)となる。こうして、ファームウェア更新が即座に有効になる。
図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にプログラムされる。
図6はスワップ動作を示す。新ファームウェア・イメージ用の論理アドレスが一時的な
値として記憶される(tmp=LA(new_img))。新ファームウェア・イメージ用の論理アドレ
スが、現在のファームウェア・イメージの論理アドレスにセットされる(LA(new_img)=LA
(cur_img))。こうした動作は、(今度は期限切れの)現在のファームウェア・イメージ
を、次の新ファームウェア・イメージ用のデスティネーション(送り先)として指定する
。次に、新たに受信したファームウェア・イメージを現在のファームウェア・イメージと
して設定する(LA(cur_img)=tmp)。
もちろん、他の実施形態では、ファームウェア・プール642が3つ以上のファームウ
ェア・イメージを収容することができ、従って、更新は、2つのアドレス範囲間だけでス
ワップするのではなく、複数のアドレス範囲の全部を通して順に行う。
図6Aを参照すれば、一部の実施形態では、プール(642、644-0、644-1
)をウェア・レベリング(損耗平準化)プールとすることができる。メモリセルアレイ6
08を含むメモリデバイスは、論理アドレス-物理アドレスのマッピングを、プール間で
損耗(ウェア)が平準化されるように変更することができる。一部の実施形態では、ファ
ームウェア・プール642を、ウェア・レベリング動作中に他のあらゆるプール(例えば
、644-0/1)のように扱うことができる。即ち、一旦、ファームウェア・プール6
42へのアクセス数がある所定の閾値を超えると、新たなプール(例えば、644-0/
1)をファームウェア・プールとして指定することができる。こうした実施形態では、複
数のファームウェア・イメージを同じプール内に記憶して、ウェア・レベリング動作があ
るプールを動作から外して異なるプールに置き換えてプールを循環させる(順に使用する
)場合に、マッピングデータを失うことを回避することができる。
図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のものと同様の構造を有するように示
している。
一部の実施形態では、プール(742/744-0~744-k)をウェア・レベリン
グ・プールとすることができ、従って、ウェア・レベリング基準に基づいて未使用にして
、プールを順に使用することができる。図7のメモリデバイス702では、いずれのプー
ル(742/744-0~744-k)もファームウェア・プールとして機能することが
できる、というのは、当該プールに対応するリマップ・データ構造が存在するからである
一部の実施形態では、メモリセルアレイが、プログラム可能なサイズの物理的領域を有
することができる。図8に、こうしたメモリセルアレイ808の一例を示す。メモリセル
アレイ808は、プール842/844として示す異なる領域に分割可能な複数の記憶領
域を含むことができる。これらのプールのサイズ及び物理的位置は、ポインタ値(WL_PTR
0~WL_PTR2)に応じてプログラム可能にすることができ、このポインタ値はベース物理ア
ドレスを指示することができる。一部の実施形態では、こうしたプールをウェア・レベリ
ング・プールにすることができる。従って、こうしたプールへのアクセスを監視するか、
さもなければ追跡して、他のプールよりも多数回使用されたプールを循環(順次の使用)
から外して、より損耗の小さいプールにアドレスをリマップ(再マッピング)することが
できる。
図8は、ポインタ値(WL_PTR0~WL_PTR2)を用いてメモリセルアレイ808を分割する
ことができる方法の例848を含む。例848は、1つだけのプール、2つのプール、及
び3つのプールを含む。もちろん、十分な数のポインタ値が利用可能であるものとすれば
、任意数のプールを作成することができる。こうした構成では、ファームウェアのサイズ
に応じてプールのサイズを調整することができる(即ち、少なくとも2つのイメージを記
憶するのに十分なほど大きくする)。
実施形態によれば、現在のファームウェア・イメージから新たに受信したファームウェ
ア・イメージへの迅速な切り換えを可能にするようにアクセスして修正することができる
マッピングデータ構造を、メモリデバイスが記憶することができる。メモリデバイスは、
あらゆる適切な方法で、あらゆる適切なプロトコルに従ってアクセスすることができるが
、一部の実施形態では、チップ選択信号(CS)及び1つ以上のI/O線によりメモリデ
バイスにアクセスすることができる。図9A~9Dは、実施形態による、ファームウェア
を更新するための、メモリデバイスへの入力信号を示すタイミング図である。こうした入
力信号に応答して、メモリデバイスは次のいずれかを実行することができる:新ファーム
ウェア・イメージを「有効」にすること、リマップ履歴データを更新する(例えば、新た
なLA→PAマッピングを追加する)こと、メモリデバイスが新ファームウェア・イメー
ジをプログラムするための準備をすること。
図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ビ
ット)を含む。
図9Aにレジスタ書込み命令を示す。時刻t0に、チップ選択信号がアクティブ(有効
)になることができる。時刻t1に、メモリデバイスが命令”WriteRegX”を受信するこ
とができる。時刻t2におけるコンフィギュレーション(設定)データ(DATA(Reg))が
、これに続くことができる。こうした命令に応答して、メモリデバイスは、命令WriteReg
Xが示す1つ以上のレジスタにDATA(Reg)を書き込むことができる。こうしたレジスタにデ
ータを書き込むことは、本明細書中に説明するファームウェア更新作業またはその等価物
を制御すること、そのためのデータを提供すること、あるいは開始することができる。
図9Bにアドレス指定可能なレジスタ書込み命令を示す。時刻t0に、チップ選択信号
がアクティブになることができる。時刻t1に、メモリデバイスが命令”WriteAddReg”
を受信することができる。時刻t2におけるアドレスデータ(ADD)、及び次の時刻t3
におけるコンフィギュレーションデータが、これに続くことができる。こうした命令に応
答して、メモリデバイスは、アドレスデータADDが示すレジスタにDATAを書き込むことが
できる。こうしたレジスタにデータを書き込むことは、本明細書中に説明するファームウ
ェア更新作業を制御すること、そのためのデータを提供すること、あるいは開始すること
ができる。
図9Cに、一実施形態によるマッピング命令を示す。時刻t0に、チップ選択信号がア
クティブになることができる。時刻t1に、メモリデバイスが命令”NewMap”を受信する
ことができる。時刻t2におけるデータ(DATA(Map))がこれに続くことができる。こう
した命令に応答して、新イメージ用のマッピングデータ(例えば、LA→PAマッピング
)を、本明細書中に説明するリマップ履歴データ構造またはその等価物に記憶することが
できる。値DATA(Map)はこのマッピングデータを含むことができる。
図9Dに、一実施形態による、新ファームウェア・イメージを「有効」にするための命
令を示す。時刻t0に、チップ選択信号をアクティブにすることができる。時刻t11に
、メモリデバイスが命令”NewMapLive”を受信することができる。任意で、データ(DATA
(Ptr))がこれに続くことができる。こうした命令に応答して、提供されるべきファーム
ウェア・イメージが転送されている際に、最新のマッピングデータの集合を示すことがで
きる。一部の実施形態では、データを必要としない、というのは、メモリデバイス制御論
理回路が新たなマッピング集合の値を更新することができるからである。しかし、他の実
施形態では、DATA(Ptr)を用いてリマップ・データ構造(例えば、ポインタ値)をプログ
ラムすることができる。こうした命令は、ファームウェア・イメージ間で、アトミックな
(不可分の)即時の方法でスワップすることができる。
実施形態は、デバイスまたはモジュール用のファームウェアの更新を含むシステム、装
置、及び方法を含むことができるが、実施形態は、各々がそれ自体のファームウェア更新
を必要とし得る複数のデバイス/モジュールを有するシステムを含むこともできる。図1
0はこうしたシステム1000のブロック図である。
システム1000は、テレマティクス(情報無線送受信)制御ユニット(TCU:tele
matics control unit)(例えば、コントローラ)1004、コントローラ・バス105
0、システム開発ライフサイクル部1052、モジュール・バス1054-0~1054
-2、及びモジュール1055-0~1055-1を含むことができる。モジュール(1
055-0~1055-1)の各々は、メモリデバイス(1002-0~1002-2)
に記憶されているファームウェアで動作する。TCU1004はプロセッサを含むことが
でき、このプロセッサはメモリデバイス(1002-0~1002-2)に対して命令を
発行することができる。TCU1004は無線トランシーバ(または受信機)1058を
含むこともでき、無線トランシーバ1058は、ファームウェア更新を無線ネットワーク
経由で受信する。特定の実施形態では、システム1000を自動車制御システムにするこ
とができ、TCU1004は、グローバル・ポジショニング・システム(GPS:global
positioning system:全地球測位システム)、1つ以上のプロセッサ、及びコントロー
ラ・メモリをさらに含むことができる。
図10は別個のモジュール・バス1054-0~1054-2を示すが、他の実施形態
では、2つ以上のモジュールを同じバスに接続することができる。さらに、他の実施形態
では、コントローラ・バス1050をモジュール・バス(1054-0~1054-2)
と同じにすることができる。
システム1000の種々の構成要素を説明してきた。システム1000のFOTA動作
を以下に説明する。
最初に、メモリデバイス1002-0~1002-2の各々が(更新されるべき)現在
のファームウェア・イメージ1014/1015を記憶することができる。
Figure 0006999017000001
では、TCU1004が新ファームウェアを無線トランシーバ1058で受信することが
でき、新ファームウェアはネットワーク1020の無線接続1057上で送信される。ネ
ットワーク1020は、あらゆる適切なネットワークとすることができ、一部の実施形態
ではインターネット及び/またはセルラ・ネットワークとすることができる。図示する例
では、全部のモジュール1055-0~1055-2用の新ファームウェアを受信するこ
とができる。しかし、他の更新作業では、より少数のモジュールを更新することができる
ことは明らかである。
Figure 0006999017000002
では、TCU1004が新ファームウェア・イメージをそれぞれのメモリデバイス105
5-0~1055-2へ送信することができる。こうした動作は、TCU1004が新フ
ァームウェア・イメージをコントローラ・バス1050及びモジュール・バス1054-
0上で送信することを含むことができる。一実施形態では、こうした動作がコントローラ
・エリア・ネットワーク(CAN:controller area network)型バス上でデータを送信
することを含むことができる。
Figure 0006999017000003
では、モジュール1055-0~1055-2が、新ファームウェア・モジュールを、対
応するメモリデバイス1002-0~1002-2のそれぞれの位置にプログラムするこ
とができる。こうした動作は、本明細書中に説明するもののいずれか、またはその等価物
を含むことができる。1つの特定の実施形態では、新ファームウェア・イメージ1018
/14を、メモリデバイスの「二次的」メモリページにプログラムすることができる(一
次的メモリページは現在のファームウェア1014/15を記憶する)。一部の実施形態
では、新ファームウェア・イメージのプログラミングを、モジュール1055-0~10
55-2のローカルなプロセッサ(図示せず)で実現することができる。しかし、他の実
施形態では、こうしたプログラミングをTCU1004によって実行することができる。
Figure 0006999017000004
では、新ファームウェア・イメージ1018/1014を「有効」にすることができる(
他のファームウェア・イメージ1014/1015はインアクティブ(無効)として指定
することができる)。こうした動作は、TCU1004から受信した入力に応答して行う
ことができる。こうした入力は、本明細書中に説明する命令またはレジスタ書込み、ある
いはその等価物、並びにモジュール1055-0~1055-2のローカルなプロセッサ
による帯域外シグナリング(信号伝達)または動作、あるいは他の適切なシグナリング方
法を含むことができるが、それらに限定されない。
図11は、他の実施形態によるシステム1100のブロック図である。システム110
0は、コントローラ(MCU)1104及びメモリデバイス1002を含むことができる
。メモリデバイス1002は、少なくとも2つの異なるファームウェア・イメージ(11
14、1118)間の切り換えを可能にすることができる。図示するように、コントロー
ラ1104は、図16Bに示す従来のシステムにおけるように、2つのチップ選択出力(
CS1, CS2)を供給することができる。しかし、メモリデバイス1002は、単一のメモリ
デバイス1002及び単一のチップ選択(CS1)によるファームウェア・イメージ間の切
り換えを管理することができるので、コントローラ1104は他のアプリケーションが利
用可能な追加的なチップ選択出力CS2を有することができる。
実施形態は、1つ以上のコントローラ・デバイスと共に動作するメモリデバイスを有す
るシステムを含むことができるが、実施形態は、本明細書中に説明する異なるファームウ
ェア・イメージ及びその等価物間の内部切り換えを可能にすることができるスタンドアロ
ン(独立型)のメモリデバイスを含むこともできる。こうしたメモリデバイスは、同じパ
ッケージ内に形成された複数の集積回路を含むことができるが、一部の実施形態では、メ
モリデバイスをコンパクトな単一の集積回路(即ち、チップ)にすることができることが
有利である。図12A及び12Bは、2つのパッケージ化された単一チップのメモリデバ
イス1202A及び1202Bを示す。しかし、実施形態によるメモリデバイスは、回路
基板上へのメモリデバイス・チップの直接的ボンディングを含めた他のあらゆる適切なパ
ッケージ型を含むことができることは明らかである。
図13A~13Cを参照すれば、実施形態による種々のデバイスが一連の図中に示され
ている。図13Aは、更新可能なファームウェアで動作する多数のサブシステム(2つを
1300A-0及び1300A-1で示す)を有することができる自動車1360Aを示
す。こうしたサブシステム(1300A-0、1300A-1)は、電子制御ユニット(
ECU:electronic control unit)及び/または先進運転支援システム(ADAS:adv
anced driver assistance system)を含むことができる。しかし、他の実施形態では、こ
うしたサブシステムが、多数の可能な例のうちのほんの2例として、ダッシュボード・デ
ィスプレイ/制御サブシステム、及び/またはインフォテインメント・サブシステムを含
むことができる。各サブシステム(1300A-0、1300A-1)は、コントローラ
及びメモリデバイスを含むことができ、FOTA型の更新を含めた本明細書中に説明する
ファームウェアの動作、またはその等価物を用いることができる。
図13Bに、ハンドヘルド(手持ち型)コンピュータ装置1360Bを示す。ハンドヘ
ルド・コンピュータ装置1360Bはシステム1300Bを含むことができ、システム1
300Bは、本明細書中に説明する装置1360Bまたはその等価物のファームウェア更
新を実行するためのメモリデバイス1302及びコントローラ1304(現寸に比例して
図示せず)を有する。
図13Cにコントローラ・デバイス1360Cを示す。コントローラ・デバイス130
6Cは、工業または住宅の動作を制御するように配備されたデバイスとすることができる
。多数の可能な例のうちのほんの少数として、コントローラ・デバイス1360Cは、製
造ライン上の機械類を制御することができ、建物用の電子ロックとすることができ、家庭
電化製品を制御することができ、照明システムを制御することができ、あるいは灌漑シス
テムを制御することができる。装置1360Cはシステム1300Cを含むことができ、
システム1300Cは、本明細書中に説明するデバイス1360Cまたはその等価物のフ
ァームウェア更新を実行するためのメモリデバイス1302及びコントローラ1304(
図示せず)を有する。
ここで図14を参照すれば、一実施形態による方法が流れ図で示されている。方法14
62は、システム用のファームウェアを記憶するメモリデバイスにおいて新ファームウェ
ア・データを受信するステップを含むことができる(ブロック1462-0)。こうした
動作は、メモリデバイスが、ファームウェア・データ用のプログラムまたは書込み命令を
、メモリデバイス上のインタフェースを通して受信することを含むことができる。特定の
実施形態では、こうした動作が、メモリデバイスがコントローラから命令を受信してファ
ームウェア・データを所定の物理アドレスにプログラムすることを含むことができる。
受信したファームウェア・データは、不揮発性メモリセル内の、現在のファームウェア
1462-2を記憶する位置とは異なる位置にプログラムすることができる。特定の実施
形態では、こうした動作が、メモリデバイスが、ファームウェア・データを、フラッシュ
メモリアレイの1つ以上のセクターにプログラムすることを含むことができ、これらのセ
クターは、新ファームウェア用に指定され、現在のファームウェアを記憶するアドレス範
囲とは異なる。なお、こうした動作は、ファームウェア・データをメモリデバイスのメモ
リセルアレイ内の1つの位置から、同じメモリデバイス内のメモリセルアレイの他の位置
へコピーすることは含まない。
方法1462は、新ファームウェア用の新たなLA→PAマッピングを、メモリデバイ
ス1462-4上の不揮発性の記憶領域内にプログラムすることを含むこともできる。一
部の実施形態では、こうした動作が、こうしたデータをリマップ履歴データ構造内にプロ
グラムすることを含むことができ、このリマップ履歴データ構造は、以前のバージョンの
ファームウェア用のこうしたマッピングを保持する。
方法1462は、不揮発性の状態値をメモリデバイス上にプログラムして、最新バージ
ョンのファームウェア用の新たなLA→PAを示すステップを含むこともできる(ブロッ
ク1462-6)。一部の実施形態では、こうした動作が、ポインタデータ構造の値をプ
ログラムすることを含むことができ、このポインタデータ構造はリマップ履歴データ構造
内の1つのエントリを指示する。
図15に、他の実施形態による方法1564を流れ図の形で示す。方法1564は、F
OTA法とすることができ、新ファームウェア・イメージ用のデータを無線接続1564
-0上で受信した時点を特定するステップを含むことができる。こうした動作は、コント
ローラが、システムの無線受信機がファームウェアの更新を受信した時点を検出すること
を含むことができる。
新ファームウェア・イメージのデータを受信しない(ブロック1564-0からの「い
いえ」の)場合、方法1564は、ルックアップ構造により、必要なファームウェアにア
クセスすることができる(ブロック1564-18)。一部の実施形態では、こうした動
作が、メモリデバイスがファームウェアの論理アドレスに対する読出し要求を受信するこ
とを含むことができ、こうした論理アドレスはルックアップ構造からのデータにより物理
アドレスに変換される。特定の実施形態では、ルックアップ構造が揮発性メモリ内に常駐
することができる。この時点で、システムのルックアップ構造は(新たに受信したあらゆ
るファームウェア・イメージに置き換えられることになる)現在のファームウェア・イメ
ージに対応することは明らかである。
新ファームウェア・イメージのデータを受信した(ブロック1564からの「はい」の
)場合、新ファームウェア・イメージのデータはシステムメモリに記憶することができる
(ブロック1564-2)。一部の実施形態では、こうした動作が、新ファームウェア・
イメージのデータを、コントローラ等によってアクセスされるDRAMまたはSRAMの
ような揮発性のシステムメモリに記憶することを含むことができる。
システム内のメモリデバイスのプログラム動作はブロック1564-4で開始すること
ができる。こうした動作は、新ファームウェア・イメージを記憶するべき特定のメモリデ
バイスを決定することを含むことができる。一部の実施形態では、こうした動作が、コン
トローラが命令等をメモリデバイスに対して発行することを含むことができる。新ファー
ムウェア・イメージは、メモリデバイスの不揮発性のセクター内の、現在のファームウェ
ア・イメージを記憶している位置とは異なる位置にプログラムすることができる(ブロッ
ク1564-6)。こうした動作は、コントローラが、システムメモリに記憶されている
ファームウェア・イメージをメモリデバイスの不揮発性の記憶位置にプログラムすること
を含むことができる。
新ファームウェア・イメージ用のLA→PAマッピングは、メモリデバイスの不揮発性
の記憶領域内にプログラムすることができる(ブロック1564-8)。こうした動作は
、こうしたデータをリマップ履歴データ構造内にプログラムすることを含めて、本明細書
中に説明したもののいずれか、またはその等価物を含むことができ、リマップ履歴データ
構造は、以前のファームウェア・イメージのマッピングを同じメモリデバイス内に保持す
ることができる。
新たなLA→PAマッピングを指示するポインタをプログラムすることができる(ブロ
ック1564-10)。こうした動作は、リマップ履歴データ構造内の1つのエントリに
対応するマルチ(多)ビット値内の1つのビットをセットすることを含めて、本明細書中
に説明するもののいずれか、またはその等価物を含むことができる。こうしたポインタは
、メモリデバイスの不揮発性の記憶領域に記憶することができる。
方法1564は、リセット型のイベントが発生したか否かを判定することができる(ブ
ロック1564-12)。リセット型のイベントは、メモリデバイスに、現在のファーム
ウェア・イメージから新たにプログラムされた(「有効」な)ファームウェア・イメージ
への論理アドレス・マッピングをリセットさせるイベントとすることができる。リセット
型のイベントは、少数のみを挙げれば、PORイベント、メモリデバイスが特定の命令ま
たはレジスタ書込みを受信すること、あるいは特別な入力ピンにおける信号を含めて、あ
らゆる適切な形態をとることができるが、それらに限定されない。
リセット型のイベントが発生していないものと判定した(ブロック1564-12から
の「いいえ」の)場合、方法1564はルックアップ構造によるファームウェアへのアク
セスを継続することができ(ブロック1564-18)、このことは、ファームウェア・
イメージを新たに受信したファームウェア・イメージに置き換えることを継続することが
できる。
リセット型のイベントが発生したものと判定した(ブロック1564-12からの「は
い」の)場合、メモリデバイスは、ポインタにより最新のLA→PAマッピングの集合に
アクセスすることができる(ブロック1564-14)(この集合は、新たに受信したフ
ァームウェア・イメージに対応する)。次に、メモリデバイスは、新ファームウェア・イ
メージに対応する新たなLA→PAルックアップ構造を作成することができる(ブロック
1564-16)。その結果、ブロック1564-18のファームウェアのアクセスが今
度は新ファームウェア・イメージになる。
本明細書中に説明する実施形態は、本明細書中に説明するファームウェア・イメージの
更新またはその等価物を実行するために呼び出すことができるアプリケーション・プログ
ラミング・インタフェース(API:application programming interface)を含むこと
ができる。新ファームウェア・イメージは、メモリデバイス内のある任意のアドレス範囲
内にロードすることができ、このメモリデバイスは現在のファームウェア・イメージを他
のアドレス範囲(addr_cur_img)内に記憶する。APIは、こうしたアドレス情報を用い
てファームウェアの更新を実行することができる。例えば、APIは、”fota_switch(ad
dr_cur_img, addr_new_img)”の形式を有することができる。
こうした構成は、ファームウェア・データをメモリデバイス内の1つの位置から他の位
置へコピーしなければならない(例えば、ファームウェア・データを一旦書き込む/プロ
グラムする)ことなしに、ファームウェアをアドレス空間内で「リロケート(移転)」す
る(即ち、旧ファームウェアへのアクセスから新ファームウェアへのアクセスに切り換え
る)ことを可能にすることができる。このリロケーション動作は「原子的」(即ち、単一
バスのトランザクション)であり、本質的に即時である。例えば、本明細書中に述べるよ
うに、メモリデバイスに対する命令またはレジスタ書込みは、新ファームウェアへのリマ
ッピング(再マッピング)を導入することができる。
本発明の実施形態は、異なるファームウェア・イメージを記憶するための複数のフラッ
シュメモリの使用を低減または解消することができることが有利である、というのは、異
なるファームウェア・イメージを1つのメモリデバイスに記憶して、新イメージを一度記
憶すると、新イメージへの即時の切り換えを行うことができるからである。このことは必
要とするメモリデバイスがより少数であるので、システムのコストを低減することができ
る。それに加えて、通常は、異なるファームウェア・イメージを有する複数のフラッシュ
メモリを同じバス上に含むシステムが、バス上の1つのデバイス(またはより少数のデバ
イス)だけで、同じ結果を達成することができる。このことは、バスの容量を低減してシ
ステムの性能を増加させる(即ち、バス速度を増加させる)ことができる。
本発明の実施形態は、システムが、1つのチップ選択出力に接続された1つのメモリデ
バイスで、ファームウェア・イメージ間の瞬時の切り換えを行うことを可能にする。この
ことはコストを低減する、というのは、より少数のチップ選択出力を有するコントローラ
・デバイスを使用することができるからである。それに加えて、あるいはその代わりに、
システム設計におけるより大きな自由度が存在し得る、というのは、1つ以上のチョップ
選択出力が、今度は他のユーザ(即ち、ファームウェア・イメージにアクセス中でないユ
ーザ)にとって自由になるからである。
これら及び他の利点は当業者にとって明らかである。
本明細書全体を通して、「一実施形態」または「実施形態」への言及は、その実施形態
に関連して説明する特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態
に含まれることを意味することは明らかなはずである。従って、本明細書の種々の部分に
おける「実施形態」または「一実施形態」または「代案の実施形態」への2回以上の言及
は、必ずしも全部が同じ実施形態を参照するわけではないことを強調し、そのことは明ら
かなはずである。さらに、本発明の1つ以上の実施形態では、特定の特徴、構造、または
特性を適切に組み合わせることができる。
同様に、以上の本発明の好適な実施形態の説明では、発明の種々の態様のうちの1つ以
上の理解に役立つ開示を簡素化する目的で、本発明の種々の特徴は、時として、単一の実
施形態、図面、またはその説明において一緒にグループ化されていることは明らかである
。しかし、こうした開示の方法は、特許請求の範囲が、各請求項中に明示的に記載した以
上の特徴を要求するという意図を反映するものとして解釈するべきでない。むしろ、本発
明の態様は、以上に開示した単一の実施形態の全部の特徴よりも範囲が小さい。従って、
詳細な説明に続く特許請求の範囲は、これにより、この詳細な説明中に明示的に含まれ、
各請求項は、本発明の別個の実施形態として自立する。

Claims (20)

  1. リマップ・データ構造を記憶するように構成されたメモリ回路と、
    状態部分とを具えたメモリデバイスであって、
    前記リマップ・データ構造は、論理アドレス-物理アドレスのマップを、前記メモリデバイスのメモリセルアレイに記憶されている複数のファームウェア・バージョン毎に含み、前記メモリセルアレイは、第1ファームウェア・バージョンを第1組の物理アドレスに記憶し、第2ファームウェア・バージョンを第2組の物理アドレスに記憶するように構成され、前記第1組の物理アドレスは前記第2組の物理アドレスとオーバーラップせず、
    前記状態部分は、前記マップのうちの1つを前記メモリデバイス用の有効マップとして識別するように構成され、前記メモリセルアレイと前記リマップ・データ構造とは同じ集積回路基板で形成されるメモリデバイス。
  2. 前記メモリセルアレイ及び前記リマップ・データ構造に結合された制御論理回路をさらに具え、該制御論理回路は、前記メモリセルアレイ及び前記リマップ・データ構造へのアクセスを可能にするように構成されている、請求項1に記載のメモリデバイス。
  3. 前記有効マップを記憶するように構成された揮発性メモリ回路をさらに具え、前記制御回路は、受信した論理アドレスに応答して前記揮発性メモリ回路にアクセスするように構成されている、請求項2に記載のメモリデバイス。
  4. 前記制御論理回路が命令デコーダをさらに含み、該命令デコーダは、受信した命令に応答して前記リマップ・データ構造へのアクセスを可能にするように構成されている、請求項2に記載のメモリデバイス。
  5. 前記制御論理回路が少なくとも1つのコンフィギュレーション・レジスタをさらに含み、該コンフィギュレーション・レジスタは、前記メモリデバイスへのレジスタ書込み動作によりアクセス可能であり、前記少なくとも1つのコンフィギュレーション・レジスタは、前記リマップ・データ構造用のデータ、及び前記状態部分用のデータの少なくとも一方を記憶するように構成されている、請求項2に記載のメモリデバイス。
  6. 前記制御論理回路がパワーオン・リセット回路をさらに含み、該パワーオン・リセット回路は、前記メモリデバイスに関連する電源オンまたはリセットの事象に応答して、前記有効マップの論理アドレスを、前記メモリデバイスに記憶されている前記複数のファームウェア・バージョンのうちの1つ用の最新のアドレスとして設定するように構成されている、請求項2に記載のメモリデバイス。
  7. 前記メモリセルアレイが、複数のプールの形に配列された複数のフラッシュメモリセルを具え、前記制御論理回路が、前記複数のプールのうちの2つ以上へのアクセスを、ウェア・レベリング・アルゴリズムに従って変化させるように構成されている、請求項2に記載のメモリデバイス。
  8. 前記状態部分が、前記複数のファームウェア・バージョン毎に1ビットを有するマルチビット・ポインタ・データ構造内の少なくとも1ビットを含む、請求項1に記載のメモリデバイス。
  9. 新ファームウェア・イメージをメモリデバイスにおいて受信するステップと、
    前記新ファームウェア・イメージを前記メモリデバイスの第2の不揮発性の記憶位置に置くステップであって、前記第2の不揮発性の記憶位置は、現在のファームウェア・イメージを記憶する前記メモリデバイスの第1の不揮発性の記憶位置とオーバーラップしないステップと、
    前記新ファームウェア・イメージ用の論理アドレス-物理アドレスのマッピングを、前記メモリデバイスのメモリ回路に記憶されているリマップ・データ構造内に置くステップであって、該リマップ・データ構造は、現在のファームウェア・イメージ用の論理アドレス-物理アドレスのマッピングを含むステップと、
    前記新ファームウェア・イメージ用の論理アドレス-物理アドレスのマッピングが有効なファームウェア・イメージであることを示す第1状態値を提供し、前記現在のファームウェア・イメージ用の論理アドレス-物理アドレスのマッピングが無効なファームウェア・イメージであることを示す第2状態値を提供するステップと
    を含む方法。
  10. 前記新ファームウェア・イメージを第2の不揮発性の記憶位置に置くステップが、フラッシュメモリデバイスのセクターをプログラムすることを含む、請求項9に記載の方法。
  11. 前記第1状態値を提供するステップが、マルチビット・ポインタ・データ構造内の少なくとも1ビットをプログラムすることを含み、前記マルチビット・ポインタ・データ構造は、前記メモリデバイスに記憶されている前記論理アドレス-物理アドレスのマッピング毎に1ビットを含む、請求項9に記載の方法。
  12. 前記新ファームウェア・イメージ用の論理アドレス-物理アドレスのマッピングを置くステップが、所定の命令及びデータを前記メモリデバイスにおいて受信すること、及び前記メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むこと、の少なくとも一方を含む、請求項9に記載の方法。
  13. 前記新ファームウェア・イメージ用の前記第1状態値を提供するステップが、所定の命令及びデータを前記メモリデバイスにおいて受信すること、及び前記メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むこと、の少なくとも一方を含む、請求項9に記載の方法。
  14. 所定の事象に応答して、他の論理アドレス-物理アドレスのマッピングを生成して揮発性メモリ内に置くステップであって、前記他の論理アドレス-物理アドレスのマッピングは、前記新ファームウェア・イメージ用の前記論理アドレス-物理アドレスのマッピングに基づくステップと、
    前記メモリデバイスの前記少なくとも1つの所定のレジスタにデータを書き込むステップと
    をさらに含む、請求項9に記載の方法。
  15. 前記所定の事象が、前記メモリデバイスにおけるパワーオン・リセット動作、所定の命令を前記メモリデバイスにおいて受信したこと、及び前記メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むこと、のうちの1つを含む、請求項14に記載の方法。
  16. 不揮発性メモリデバイスと、
    トランシーバと、
    プロセッサ回路とを具えたシステムであって、
    前記不揮発性メモリデバイスは、
    異なる物理アドレスによりアクセス可能な異なるファームウェア・イメージを記憶するように構成されたメモリセルアレイと、
    前記異なるファームウェア・イメージ毎の論理アドレス-物理アドレスのマッピングを記憶するように構成されたマッピング部分と、
    前記システムによってアクセスされる第1ファームウェア・イメージを識別するデータを記憶するように構成された状態部分とを含み、
    前記トランシーバは、第2ファームウェア・イメージを無線ネットワーク経由で受信するように構成され、
    前記プロセッサ回路は、命令を実行して、
    前記メモリセルアレイに記憶されている前記第1ファームウェア・イメージを乱すことなしに、前記第2ファームウェア・イメージを前記メモリセルアレイ内に置き、
    前記第2ファームウェア・イメージ用の論理アドレス-物理アドレスのマッピングを前記マッピング部分内に置き、
    前記状態部分に、前記第1ファームウェア・イメージの使用から前記第2ファームウェア・イメージの使用への切り換えを示させる
    ように構成され、
    前記第2ファームウェア・イメージ用の前記論理アドレス-物理アドレスのマッピングは、前記第2ファームウェア・イメージにアクセスするために使用されるシステム。
  17. 前記プロセッサ回路が、所定の命令及びデータを前記不揮発性メモリデバイスに対して発行すること、及び前記不揮発性メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むこと、の少なくとも一方により、前記第2ファームウェア・イメージ用の前記論理アドレス-物理アドレスのマッピングを前記マッピング部分内に置くように構成されている、請求項16に記載のシステム。
  18. 前記プロセッサ回路が、前記状態部分に、所定の命令及びデータを前記不揮発性メモリデバイスに対して発行すること、及び前記不揮発性メモリデバイスの少なくとも1つの所定のレジスタにデータを書き込むこと、の少なくとも一方による前記切り換えを示させるように構成されている、請求項16に記載のシステム。
  19. 前記第2ファームウェア・イメージの受信前に、前記プロセッサ回路が、前記不揮発性メモリデバイスに記憶されている前記第1ファームウェア・イメージにチップ選択信号によりアクセスするように構成され、前記第2ファームウェア・イメージの受信後に、前記プロセッサ回路が、前記第2ファームウェア・イメージに前記チップ選択信号によりアクセスするように構成されている、請求項16に記載のシステム。
  20. 前記不揮発性メモリデバイスが、前記異なるファームウェア・イメージ毎に1つのプール、該プール毎に異なるマッピング部分、及び該プール毎に異なる状態部分を含み、前記状態部分の各々が、対応するマッピング部分のエントリ毎に1ビットを有するマルチビット・ポインタ・データ構造内の少なくとも1ビットを含む、請求項16に記載のシステム。
JP2020210313A 2017-12-12 2020-12-18 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法 Active JP6999017B2 (ja)

Applications Claiming Priority (4)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020531080A Division JP6814327B1 (ja) 2017-12-12 2018-11-19 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法

Publications (3)

Publication Number Publication Date
JP2021061023A JP2021061023A (ja) 2021-04-15
JP2021061023A5 JP2021061023A5 (ja) 2021-12-02
JP6999017B2 true JP6999017B2 (ja) 2022-01-18

Family

ID=66696768

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020531080A Active JP6814327B1 (ja) 2017-12-12 2018-11-19 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法
JP2020210313A Active JP6999017B2 (ja) 2017-12-12 2020-12-18 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020531080A Active JP6814327B1 (ja) 2017-12-12 2018-11-19 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法

Country Status (5)

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

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
WO2021035156A1 (en) 2019-08-22 2021-02-25 Targus International Llc Systems and methods for participant-controlled video conferencing
TWI726524B (zh) * 2019-12-09 2021-05-01 新唐科技股份有限公司 電子處理裝置及記憶體控制方法
US11435929B2 (en) 2020-08-27 2022-09-06 Dell Products L.P. System and method for content addressable storage system update appliance
CN112764685B (zh) * 2021-01-26 2022-07-15 华中科技大学 一种消除固态盘中预写式日志重复数据写的方法及设备
WO2022204911A1 (en) * 2021-03-30 2022-10-06 Yangtze Memory Technologies Co., Ltd. Memory device with embedded firmware repairing mechanism
DE102021002079B3 (de) * 2021-04-20 2022-05-12 Daimler Ag Verfahren zum effizienten Ablegen von Daten
CN113407934B (zh) * 2021-08-20 2021-12-24 博流智能科技(南京)有限公司 安全的多固件融合***及多固件融合控制方法
CN116302005B (zh) * 2023-05-11 2023-08-22 合肥智芯半导体有限公司 芯片、芯片升级方法、装置、电子设备及可读存储介质
CN116560700B (zh) * 2023-07-11 2023-09-22 沐曦集成电路(上海)有限公司 芯片固件升级***
CN117785755B (zh) * 2024-02-23 2024-05-28 北京超弦存储器研究院 Cxl内存模组及资源配置方法、控制芯片、介质和***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265877A (ja) 2008-04-24 2009-11-12 Kyocera Mita Corp 電子機器
JP2013161117A (ja) 2012-02-01 2013-08-19 Canon Inc 画像形成装置、画像形成装置の制御方法、及びプログラム
US20150248244A1 (en) 2014-03-03 2015-09-03 Dong-young Seo Method of operating a flash memory system using a migration operation
US20160210132A1 (en) 2015-01-21 2016-07-21 HGST Netherlands B.V. Managing wear of system areas of storage devices
US20170168725A1 (en) 2015-12-10 2017-06-15 Kabushiki Kaisha Toshiba Memory system that updates firmware in response to predetermined events

Family Cites Families (65)

* 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
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts 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
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman 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 (ko) * 2006-09-07 2007-12-04 삼성전자주식회사 이동 통신 단말기 및 시스템의 펌웨어 갱신 방법
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
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
US8539471B2 (en) * 2007-12-13 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) Updating firmware of an electronic device
US20090320012A1 (en) 2008-06-04 2009-12-24 Mediatek Inc. Secure booting for updating firmware over the air
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
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
ATE540371T1 (de) * 2008-06-23 2012-01-15 St Ericsson Sa Elektronische vorrichtung und verfahren zur software- oder firmwareaktualisierung einer elektronischen vorrichtung
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
WO2012082792A2 (en) * 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
WO2012109679A2 (en) * 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for application direct virtual memory management
JP5002719B1 (ja) * 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
KR101720101B1 (ko) * 2011-03-18 2017-03-28 삼성전자주식회사 메모리 시스템에 데이터를 쓰는 쓰기 방법 및 메모리 시스템의 데이터 쓰기 방법
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
CN102855151B (zh) 2012-08-21 2016-06-08 武汉电信器件有限公司 不打断业务的光模块固件在应用升级方法
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 (ko) * 2014-02-21 2015-08-31 삼성전자주식회사 펌웨어를 갱신하기 위한 전자 장치 및 방법
US9244767B1 (en) * 2014-07-07 2016-01-26 Sandisk Technologies Inc. Data storage device with in-memory parity circuitry
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
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
KR20160118602A (ko) * 2015-04-02 2016-10-12 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 장치들
EP3133604B1 (en) * 2015-08-17 2020-11-11 Harman Becker Automotive Systems GmbH Method and device for fail-safe erase of flash memory
TWI551991B (zh) * 2015-11-20 2016-10-01 群聯電子股份有限公司 記憶體管理方法與系統及其記憶體儲存裝置
US10958435B2 (en) * 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
KR102456490B1 (ko) * 2016-01-12 2022-10-20 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
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 (ko) * 2016-10-31 2018-05-11 삼성전자주식회사 저장 장치 및 그것의 동작 방법
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
US11580034B2 (en) * 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption 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
US10915440B2 (en) * 2017-11-16 2021-02-09 Micron Technology, Inc. Namespace mapping optimization 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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265877A (ja) 2008-04-24 2009-11-12 Kyocera Mita Corp 電子機器
JP2013161117A (ja) 2012-02-01 2013-08-19 Canon Inc 画像形成装置、画像形成装置の制御方法、及びプログラム
US20150248244A1 (en) 2014-03-03 2015-09-03 Dong-young Seo Method of operating a flash memory system using a migration operation
US20160210132A1 (en) 2015-01-21 2016-07-21 HGST Netherlands B.V. Managing wear of system areas of storage devices
US20170168725A1 (en) 2015-12-10 2017-06-15 Kabushiki Kaisha Toshiba Memory system that updates firmware in response to predetermined events

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6999017B2 (ja) 単一メモリデバイスによりファームウェアを更新するためのメモリデバイス、システム、及び方法
US7155556B2 (en) Devices and methods for converting remote device formats to host device formats for access to host associated resources
US7506099B2 (en) Semiconductor storage apparatus
US6941440B2 (en) Addressing scheme supporting variable local addressing and variable global addressing
US10445088B2 (en) System boot code clone
CN111459844B (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
US7953953B2 (en) Method and apparatus for reducing page replacement time in system using demand paging technique
CN108345545B (zh) 在逻辑地址与物理地址之间执行散列式转译的存储装置
US10324651B2 (en) Data transmission method, and storage controller and list management circuit using the same
KR20200033985A (ko) 논리적/물리적 매핑
JP2004288150A (ja) フラッシュファイルシステム
JP2013137770A (ja) Lbaビットマップの使用
KR101041837B1 (ko) 파일저장 제어장치 및 방법
JP2011258189A (ja) プロセッサ・メインメモリのための持続性メモリ
US20180173623A1 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations
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
CN110597742A (zh) 用于具有持久***存储器的计算机***的改进存储模型
JP2009526294A (ja) メモリ素子を有する電子デバイス及びその動作方法
US20130132659A1 (en) Microcontroller and method of controlling microcontroller
JP2004234473A (ja) 不揮発性記憶装置
JP2003216343A (ja) マイクロコンピュータシステムおよびそのデータアクセス方法
CN103514953A (zh) 对存储在闪存中的数据有地址ram的模拟电可擦存储器
EP4116829A1 (en) Systems and methods for managing variable size load units
US20160062886A1 (en) Method, device and system for data processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211019

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211019

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211221

R150 Certificate of patent or registration of utility model

Ref document number: 6999017

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