JP6832448B2 - プログラムの更新方法および装置 - Google Patents

プログラムの更新方法および装置 Download PDF

Info

Publication number
JP6832448B2
JP6832448B2 JP2019553265A JP2019553265A JP6832448B2 JP 6832448 B2 JP6832448 B2 JP 6832448B2 JP 2019553265 A JP2019553265 A JP 2019553265A JP 2019553265 A JP2019553265 A JP 2019553265A JP 6832448 B2 JP6832448 B2 JP 6832448B2
Authority
JP
Japan
Prior art keywords
image
block
memory
program
programming
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
JP2019553265A
Other languages
English (en)
Other versions
JP2020515975A (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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2020515975A publication Critical patent/JP2020515975A/ja
Application granted granted Critical
Publication of JP6832448B2 publication Critical patent/JP6832448B2/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/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station

Description

本発明は、プログラムの更新方法に関する。本発明は、さらに、対応装置、対応コンピュータプログラム並びに対応記憶媒体に関する。
その内容が電気的に消去可能な不揮発性電子メモリ素子は、当業者に、電気的に消去可能なプログラミング可能読取り専用メモリ(electrically erasable programmable read−only memory,EEPROM)として既知である。以下の説明の範囲内において、用語“EEPROM”は、この場合、他の語義で使用され、通常のEEPROMのほかに、同様に、最新の、ブロックごとに消去可能な、いわゆるフラッシュメモリを含む。少ないエネルギー消費で不揮発性記憶を可能にするために、従来技術の車両電子装置において、このフラッシュEEPROMメモリが優先的に使用され、フラッシュEEPROMメモリにおいて、個々のメモリセル内に記憶される情報は、金属絶縁体半導体電界効果トランジスタ(metal insulator semiconductor field−effect transistor,MISFET)のフローティングゲート上またはチャージ・トラッピング・メモリ素子内に充電の形で記憶される。基本的に、メモリセルは、ここでは、いわゆるセルアレイ(cell arrey)内のマトリックスとして配置され、この場合、座標を介して、メモリセルの列または行の選択のためにアドレス導線が使用され、かつ他の座標内でデータ導線がメモリセルに通じている。
メモリ密度を増大させるために、ここでは、時々、マルチレベルセル(multi−level cells,MLCs)が使用され、マルチレベルセルにおいては、セルごとに1ビットより多くが記憶される。これを可能にするように、2つより多い可能な状態を区別しかつ1ビットより多くを記憶可能にするために、1つのメモリセル内に記憶される充填量が細かく配分され、かつ読取りにおいてもまたより正確に評価される。これは、シングルレベルセル(single−level cell,SLC)に比較して、より遅い読取りおよび書込み速度という欠点を含む。MLCは、さらに、本質的に、場合により発生する充填損失に、より敏感に応答する。
独国特許出願公開第102014223035号明細書に、コンピュータシステムの内部における、揮発性メモリのメモリインタフェースと、特にMLC−NANDメモリのメモリインタフェースと、およびマイクロコントローラのインタフェースとの間のデータ伝送方法が紹介され、この方法は、マイクロコントローラのブート過程の開始時にMLC−NANDメモリのメモリインタフェースからデータを読み取り、かつ読み取られたデータを揮発性メモリのメモリインタフェースに提供することを含む。
独国特許出願公開第102014223035号明細書
本発明は、独立請求項に記載のプログラムの更新方法、対応装置、対応コンピュータプログラム並びに対応記憶媒体を提供する。
本発明による手法は、ここでは、最新のシステムにおいて、車両電子システムのソフトウェア(SW)の工場側による更新の高コストにより、インストラクションおよびデータを含むイメージ(image)がオンエア・インタフェース(over the air,OTA)を介して変更されることが多くなっているという知見に基づいている。このような更新を実行するために、種々の可能性が提供され、これらはそれぞれ種々の利点および欠点を有する。
通常の方法は、2つのシステムイメージを取得することによるものであり、1つのシステムイメージから、エンジン制御の場合、例えばエンジン運転が保持され、一方、新たなシステムイメージが当該制御装置(electronic control unit,ECU)に伝送される。エンジンの次の始動において、制御装置は、新たなシステムイメージに基づいて運転可能である。
この通常の方法を支援するために、両方のシステムイメージが同時に不揮発性メモリ(non−volatile memory,NVM)内に記憶されなければならないので、OTAが不可能な場合、制御装置が必要とするだけ多くのメモリ位置が倍増される。これは、そのOTA可能性が車両メーカまたは原車両メーカ(original equipment manufacturer,OEM)により最終的に使用されたか否かとは無関係に、対応制御装置の製造において高い部品コストという欠点を含む。
したがって、更新のために2つのシステムイメージを記憶する間、メモリセルをMLCとして、すなわち少なくとも二段で使用することが提案される。この方法の利点は、通常の方法に比較してその少ないメモリセル需要にある。MLC技術を使用することにより、むしろ、追加メモリ容量の一部分が必要とされるにすぎない。
従属請求項に記載の手段により、独立請求項に記載の基本的概念の変更および改善が可能である。すなわち、車両制御装置において、マイクロコントローラ(μC)に基づいてOTA更新の範囲内で方法を使用するように設計されていてもよい。このようにして、使用において、通常のようにコスト上の欠点を有しながらより多くのフラッシュメモリを有するμCが使用されるか、またはOTAで両方のシステムイメージをNVM内に取得するために低下されたシステム性能(performance)が許容されるかが決定されてもよい。
本発明の実施例が図面に示されかつ以下の記載により詳細に説明される。
図1は、第1実施形態による方法の流れ図を示す。 図2は、方法の第1ステップを示す。 図3は、方法の第2ステップを示す。 図4は、方法の第3ステップを示す。 図5は、方法の第4ステップを示す。 図6は、方法の結果を示す。 図7は、第2実施形態による制御装置を略図で示す。
図1は、ここでは、図2ないし6のそれぞれ1つと共に説明されている、提案された方法(10)の基本的な機能態様を示す。最後の図において、SLCモードで操作されるセルがここでは実線で示され、これに対してMLCモードで操作されるセルは破線で示されている。
図2は、この場合、はじめに、正常操作状態(11)を示し、正常操作状態において、プログラムの第1イメージが関連するアドレス空間(18)内で実行され、その間、全てのメモリブロックのセルは、SLCとして、すなわち単段で操作される。個々のブロックは、ここでは、それぞれ1Mバイトを含んでもよく、この場合、このときの更新のために、必ずしもプログラムのアドレス空間(18)によって含められない、はじめはまだ使用されていない同一サイズの安全ブロック(19)が提供されている。
図3は、新たなイメージの要求による構成を示す。ここでは、1つのブロックの内容が安全ブロック(19)内に複写(12)された。元のブロックに付属されたはじめのアドレス領域は、このときハードウェア的に安全ブロック(19)上に対応付けられ、したがって、安全ブロックは、実行中のプログラムの観点から、同様にプログラムのアドレス空間(18)内に「はめ込まれて」いる。
ここで、図4に示されているように、元のブロックがMLCモードに切り換えられ、かつ第1イメージに追加して、ブロックサイズに対応する第2イメージ(17)の一部がプログラミングされる(13)。プログラムのアドレス空間(18)内のプログラミングされるブロックは常にほぼ安全ブロック(19)に対して「交換されて」いるので、第1イメージの機能可能性はこのプログラミング過程によって影響されない。
次に、MLCブロックは再び上記の意味において元のアドレスにはめ込み可能であり(14)、その間、MLCブロックは多段モードのままであるので、第1イメージは図5のようにさらに実行可能である。それに対応して、全てのブロックがMLCモードに存在しかつ両方のイメージが完全にNVM内に存在するまで他のブロックにより実行され(判定15−図1)、これが図6に示す状態(16)に対応する。
この終端状態(16)において、選択的に、プログラムの第1または第2イメージが実行可能である。第2イメージ(17)の機能性が、例えばこのように更新された車両の種々の制御装置と結合して保証された後に、連続操作におけるプログラムの信頼性を最大にするために、ブロックは、順序が逆の方法で、再び単段モードに戻されてもよい。
この方法(10)は、図7の略図が示すように、例えばソフトウェアまたはハードウェアにおいて、あるいはソフトウェアおよびハードウェアからなる混合形式において、制御装置(20)内において実行可能である。
10 方法
11 実行、正常操作状態
12 複写
13 プログラミング
14 切換
15 判定
16 実行、終端状態
17 第2イメージ
18 アドレス空間
19 安全ブロック
20 制御装置

Claims (12)

  1. プログラムのアドレス空間(18)がブロック上に対応付けられかつブロックが単段モードで操作される間に、プログラムの第1イメージが実行(11)され、
    第1イメージの一部が、ブロック内の特定のブロック上に対応付けられたアドレス空間(18)の内部のアドレス領域から、メモリの安全ブロック(19)内に複写(12)され、
    アドレス領域が一時的に安全ブロック(19)に対応付けられた間に、ブロックはマルチレベルモードに移行されかつ第1イメージの一部に追加してプログラムの第2イメージ(17)の一部によりプログラミング(13)され、
    ブロックがマルチレベルモードのままである間に、アドレス領域が再びブロックに対応付けられるように切り換え(14)られ、
    第2イメージ(17)のプログラミング(13)が完了しない(15、N)間は、第2イメージ(17)の他の部分により複写(12)、プログラミング(13)および切換(14)が反復され、
    第2イメージ(17)のプログラミング(13)が完了した(15、Y)とき、選択的に、第1イメージまたは第2イメージ(17)が実行(16)されること、
    を特徴とする、複数のブロックを含むメモリ内のプログラムの更新方法(10)。
  2. 実行(16)の間に第2イメージ(17)の機能性が検査され、
    機能性が保証されているとき、ブロックがシングルレベルモードに戻される、
    ことを特徴とする請求項1に記載の方法(10)。
  3. マルチレベルセルの情報の評価を可能にするために、メモリがより多くのアクセスタイムで操作されることを特徴とする請求項1に記載の方法(10)。
  4. 制御装置は正常なシングルレベルモードで操作可能であり、この場合、アクセスタイムはより短く、したがって、性能はより高く、
    制御装置はマルチレベルモードで操作可能であり、この場合、アクセスタイムはより長く、したがって、性能はより低いこと、
    を特徴とする請求項1に記載の方法(10)。
  5. プログラムは、自動車の付属装置または内燃機関を制御するように適合されていることを特徴とする請求項1〜4のいずれか一項に記載の方法(10)。
  6. プログラミングの前に第2イメージ(17)がオンエア・インタフェースを介して自動車内に伝送されることを特徴とする請求項5に記載の方法(10)。
  7. メモリが不揮発性であることを特徴とする請求項1〜6のいずれか一項に記載の方法(10)。
  8. メモリがフラッシュEEPROM、NANDフラッシュまたはNORフラッシュであることを特徴とする請求項7に記載の方法(10)。
  9. 請求項1〜8のいずれか一項に記載の方法(10)を実行するように設計されているコンピュータプログラム。
  10. 請求項9に記載のコンピュータプログラムがその上に記憶されている、マシンが読取り可能な記憶媒体。
  11. 請求項1〜8のいずれか一項に記載の方法(10)を実行するように設計されている装置(20)。
  12. マイクロコントローラの形の、請求項11に記載の装置(20)。
JP2019553265A 2017-03-29 2018-03-06 プログラムの更新方法および装置 Active JP6832448B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102017205274.0 2017-03-29
DE102017205274.0A DE102017205274A1 (de) 2017-03-29 2017-03-29 Verfahren und Vorrichtung zum Aktualisieren eines Programmes
PCT/EP2018/055466 WO2018177698A1 (de) 2017-03-29 2018-03-06 Verfahren und vorrichtung zum aktualisieren eines programmes

Publications (2)

Publication Number Publication Date
JP2020515975A JP2020515975A (ja) 2020-05-28
JP6832448B2 true JP6832448B2 (ja) 2021-02-24

Family

ID=61599145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553265A Active JP6832448B2 (ja) 2017-03-29 2018-03-06 プログラムの更新方法および装置

Country Status (7)

Country Link
US (1) US10990381B2 (ja)
EP (1) EP3602275A1 (ja)
JP (1) JP6832448B2 (ja)
KR (1) KR102434821B1 (ja)
CN (1) CN110462585B (ja)
DE (1) DE102017205274A1 (ja)
WO (1) WO2018177698A1 (ja)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886287B1 (en) * 2003-08-27 2011-02-08 Avaya Inc. Method and apparatus for hot updating of running processes
US7752617B2 (en) * 2003-11-20 2010-07-06 International Business Machines Corporation Apparatus, system, and method for updating an embedded code image
DE602004013120T2 (de) * 2004-03-10 2009-05-14 Sony Ericsson Mobile Communications Ab Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen
DE102005059593A1 (de) 2005-05-25 2006-11-30 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung bei einem Speicher für ein Steuergerät
US7779401B2 (en) * 2006-06-26 2010-08-17 Research In Motion Limited Method and system for generating a reverse binary patch for undoing a software update
US20080163201A1 (en) * 2006-12-29 2008-07-03 Fabrice Jogand-Coulomb Apparatuses for launching a program application
TWI397071B (zh) * 2008-12-31 2013-05-21 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
TWI459294B (zh) * 2011-03-18 2014-11-01 Phoenix Tech Ltd Bios程式的更新方法與其電腦系統
CN103620567A (zh) * 2011-06-07 2014-03-05 Lsi公司 主机看到的设备固件更新效果的管理
US8923045B2 (en) * 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
JP2014005894A (ja) * 2012-06-26 2014-01-16 Suzuki Motor Corp 自動変速機の変速制御装置
US20150120988A1 (en) * 2013-10-28 2015-04-30 Skymedi Corporation Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same
US9043537B1 (en) * 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9436456B2 (en) * 2014-04-17 2016-09-06 Myine Electronics, Inc. System and method for management of software updates at a vehicle computing system
DE102014223035A1 (de) 2014-11-12 2016-05-12 Robert Bosch Gmbh Verfahren und Speicherverwaltungsvorrichtung zum Übertragen von Daten innerhalb eines Compuer-Systems, Speichersystem und Computer-System
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
CN110462585A (zh) 2019-11-15
KR20190131535A (ko) 2019-11-26
DE102017205274A1 (de) 2018-10-04
EP3602275A1 (de) 2020-02-05
WO2018177698A1 (de) 2018-10-04
US20200026509A1 (en) 2020-01-23
JP2020515975A (ja) 2020-05-28
KR102434821B1 (ko) 2022-08-22
US10990381B2 (en) 2021-04-27
CN110462585B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US8966163B2 (en) Non-volatile memory device and method for programming the same
US8463826B2 (en) Incremental garbage collection for non-volatile memories
KR100805840B1 (ko) 캐시를 이용한 플래시 메모리 장치 및 그것의 프로그램방법
US9182928B2 (en) Lower page only host burst writes
US20100020601A1 (en) Multi-Bit Flash Memory Devices and Methods of Programming and Erasing the Same
US10168913B2 (en) Data storage device and data maintenance method thereof
JP2008502090A (ja) ユーザにより密度/動作性能を設定可能なメモリデバイス
CN106802767B (zh) 数据配置方法及应用其的电子系统
KR20150129941A (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR20140133427A (ko) 플래시 메모리에 저장된 데이터를 관리하는 방법 및 관련 메모리 장치 및 제어기
US9940058B2 (en) Data storage device and data maintenance method thereof
JP2008546053A (ja) 磁気抵抗ランダム・アクセス・メモリ(mram)を用いた不揮発性メモリ・システム
US10013210B2 (en) Data storage device and data maintenance method thereof
US20150228332A1 (en) Method for writing data into flash memory and associated memory device and flash memory
US20140254263A1 (en) Write Sequence Providing Write Abort Protection
TW201533740A (zh) 存取快閃記憶體的方法及相關的控制器與記憶裝置
US20170285953A1 (en) Data Storage Device and Data Maintenance Method thereof
KR100823169B1 (ko) 향상된 동작 특성을 갖는 플래시 메모리 시스템 및 그것의액세스 방법
US8010734B2 (en) Method and system for reading instructions from NAND flash memory and writing them into SRAM for execution by a processing device
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN109992443B (zh) 一种nand闪存数据检查方法
JP6832448B2 (ja) プログラムの更新方法および装置
US11966606B2 (en) Memory system and method
US9740602B2 (en) Memory orprating method and memory device using the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191001

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210201

R150 Certificate of patent or registration of utility model

Ref document number: 6832448

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250