CN110462585A - 用于更新程序的方法和设备 - Google Patents

用于更新程序的方法和设备 Download PDF

Info

Publication number
CN110462585A
CN110462585A CN201880022109.1A CN201880022109A CN110462585A CN 110462585 A CN110462585 A CN 110462585A CN 201880022109 A CN201880022109 A CN 201880022109A CN 110462585 A CN110462585 A CN 110462585A
Authority
CN
China
Prior art keywords
image
following characteristics
described piece
memory
program
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.)
Granted
Application number
CN201880022109.1A
Other languages
English (en)
Other versions
CN110462585B (zh
Inventor
H-W.施米特
A.奥厄
M.施莱贝
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 CN110462585A publication Critical patent/CN110462585A/zh
Application granted granted Critical
Publication of CN110462585B publication Critical patent/CN110462585B/zh
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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

一种用于在使用MLC技术的情况下在闪速存储器中更新程序的方法(10),其特征在于以下特征:当将程序的地址空间(18)映射到块上并且在单级模式中运行所述块时,实施所述程序的第一映像(11);将所述第一映像的一部分从所述地址空间(18)内的被映射到所述块下的一个块上的地址区域复制(12)到所述存储器的备份块(19)中;当将所述地址区域暂时映射到所述备份块(19)上时,将所述块置于多级模式并且除了所述第一映像的所述部分之外还利用所述程序的第二映像(17)的一部分对所述块进行编程(13);当所述块保持在所述多级模式中时,将所述地址区域又转换(14)到所述块上;只要第二映像(17)是不完整的(15,N),就利用所述映像的其他部分重复复制(12)、编程(13)和转换(14);以及一旦所述第二映像(17)是完整的(15,Y),则可以替代所述第一映像而实施(16)所述第二映像。

Description

用于更新程序的方法和设备
技术领域
本发明涉及用于更新程序的方法。本发明此外涉及相应的设备、相应的计算机程序和相应的存储介质。
背景技术
其内容可被电擦除的非易失性电子存储模块对于本领域技术人员而言作为电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)是已知的。在以下陈述的范围中,术语“EEPROM”在此在广泛词义上被使用并且除了常规的EEPROM之外同样包括较新的–可逐块擦除的–所谓的闪速存储器。为了能够实现在低能量消耗下的非易失性存储,在根据现有技术的车辆电子设备情况下优先地使用所述闪速EEPROM存储器,在所述闪速EEPROM存储器情况下储存在各个存储单元中的信息以电荷的形式被存储在浮栅上或被存储在金属绝缘体半导体场效应晶体管(metal insulatorsemiconductor field-effect transistor,MISFET)的电荷俘获存储元件中。原则上,存储单元在此情况下以所谓的单元阵列(Zellfeld)(cell array)的方式作为矩阵布置,其中,在一个坐标上,地址线用于选择存储单元的列或行,并且在另一坐标中,数据线通向存储单元。
为了提高存储密度,在此情况下有时使用多级单元(multi-level cell,MLC),在所述多级单元中,对于每个单元存储多于一个比特。为了能够实现这一点,储存在存储单元中的电荷量更精细地被计量(dosiert)并且在读出时也更准确地被分析,以便区分多于两个的可能状态并且能够存储多于一个比特。与单级单元(single-level cell,SLC)相比,这引起降低的读和写速度的缺点。此外,MLC显著更敏感地对可能的电荷损失作出反应。
在DE102014223035A1中提出一种用于在计算机系统内在易失性存储器的存储器接口、尤其MLC-NAND存储器的存储器接口和微控制器的接口之间传输数据的方法,所述方法包括:在微控制器的启动(Boot)过程开始时从MLC-NAND存储器的存储器接口读入数据并且将所读入的数据提供给易失性存储器的存储器接口。
发明内容
本发明提供根据独立权利要求所述的用于更新程序的方法、相应的设备、相应的计算机程序以及相应的存储介质。
根据本发明的方案在此情况下所基于的认识为:由车辆电子系统的软件(SW)的与车间绑定的(werkstattgebundenen)更新的高成本决定地,在现代系统中,包括指令和数据的程序或者系统映像(image(映像))越来越多地通过空中接口(over the air(空中),OTA)被改变。为了执行这样的更新,呈现各种可能性;这些可能性分别具有不同的优点和缺点。
一种常规方法基于,提供两个系统映像:在发动机控制的情况下,从一个系统映像例如维持发动机运行,而将一个新的系统映像安装到相关的控制设备(electroniccontrol unit(电子控制单元),ECU)上。在下一次起动发动机时,可以基于该新的系统映像运行控制设备。
为了支持该常规方法,需要比在不具有OTA能力的控制设备情况下多一倍的存储空间,这是因为两个系统映像必须同时被安置在非易失性存储器(non-volatile memory,NVM)中。这引起在制造相应的控制设备时单件造价高的缺点–而与其OTA能力最终是否由车辆制造商或原始设备制造商(original equipment manufacturer,OEM)使用无关。
因此建议:对于两个系统映像的存储时间段,为了更新的目的作为MLC、也即至少两级地使用存储单元。该方法的优点在于其与常规方法相比减少的存储单元需求。更确切地说,通过使用MLC技术,仅仅需要附加存储容量的一小部分。
通过在从属权利要求中列出的措施,在独立权利要求中说明的基本思想的有利改进和改善是可能的。因此可以规定,在车辆控制设备情况下在OTA更新的范围内基于微控制器(μC)应用所述方法。以此方式,可以在该应用中判定:是否以常规的方式(具有相应的成本缺点)使用具有更多闪速存储器的μC或者暂时容受降低的系统性能(performance(性能)),以便在NVM中为OTA提供两个系统映像。
附图说明
在附图中示出并且在以下描述中更详细地阐述本发明的实施例。其中:
图1示出根据第一实施方式的方法的流程图。
图2示出所述方法的第一步骤。
图3示出所述方法的第二步骤。
图4示出所述方法的第三步骤。
图5示出所述方法的第四步骤。
图6示出所述方法的结果。
图7示意性地示出根据第二实施方式的控制设备。
具体实施方式
图1图解所建议的方法(10)的基本功能方面,从现在起应以综述的方式分别利用图2至6之一对所述基本功能方面进行阐述。在后者的图中,在SLC模式下运行的单元在此情况下以实线示出,而在MLC模式下运行的单元以虚线示出。
图2在此首先示出正常的运行状态(11),其中,当所有存储块的单元作为SLC、也即单级地被运行时,在连续的地址空间(18)中实施程序的第一映像(Abbild)。在此情况下,单个块可能分别包括1M字节,其中,相同大小的非强制地由程序的地址空间(18)包括的首先尚未被使用的备份块(Sicherungsblock)(19)准备着用于等待处理的更新。
图3阐明在请求新映像之后的配置。在这里,块的内容已被复制(12)到备份块(19)中。最初分配给原始块的地址区域(Adressbereich)现在按硬件被映射到备份块(19)上,其因此从运行的程序的角度看似乎“插入(eingeblendet)”到程序的地址空间(18)中。
现在,如图4中所示的,最初的块可以被转换到MLC模式,并且除了第一映像(ersten)之外,第二映像(17)的对应于块大小的一部分可以被编程(13)。因为程序的地址空间(18)中的待编程的块仍旧在一定程度上(quasi)以备份块(19)来“交换”,所以第一映像的功能能力不受该编程过程损害。
然后,MLC块又可以在上述意义上在最初的地址处被插入(14),而所述MLC块保持在多级模式中,使得可以如图5中那样继续实施第一映像。以相应的方式对待其他块,直到所有块都处于MLC模式中并且因此两个映像完全存在于NVM中(判定15,图1),这对应于根据图6的状态(16)。
在该最终状态(16)中,可以可选地实施程序的第一或第二映像。在(例如结合如此更新的车辆的不同的控制设备)确保第二映像(17)的功能能力之后,可以根据相反的方法按顺序地又将块转换回到单级模式上,以便在持续运行中使程序的可靠性最大化。
所述方法(10)可以例如以软件或硬件或以由软件和硬件组成的混合形式例如在控制单元(20)中实现,如图7的示意图阐明的那样。

Claims (12)

1.一种用于在包括多个块的存储器中更新程序的方法(10),其特征在于以下特征:
- 当将所述程序的地址空间(18)映射到所述块上并且在单级模式中运行所述块时,实施(11)所述程序的第一映像,
- 将所述第一映像的一部分从所述地址空间(18)内的被映射到所述块下的特定块上的地址区域复制(12)到所述存储器的备份块(19)中,
- 当将所述地址区域暂时映射到所述备份块(19)上时,将所述块置于多级模式并且除了所述第一映像的所述部分之外利用所述程序的第二映像(17)的一部分对所述块进行编程(13),
- 当所述块保持在所述多级模式中时,将所述地址区域又转换(14)到所述块上,
- 只要第二映像(17)是不完整的(15,N),则利用所述映像的其他部分重复复制(12)、编程(13)和转换(14),以及
- 一旦所述第二映像(17)是完整的(15,Y),则可以替代所述第一映像实施(16)所述第二映像。
2.根据权利要求1所述的方法(10),其特征在于以下特征:
- 在所述实施(16)期间检查所述第二映像(17)的功能能力,以及
- 如果所述功能能力得以保证,则使所述块恢复到所述单级模式。
3.根据权利要求1所述的方法(10),其特征在于以下特征:
- 以更多的访问时间运行所述存储器,以便能够实现对多级单元的信息的分析。
4.根据权利要求1所述的方法(10),其特征在于以下特征:
- 能够在正常的SLC模块中运行所述控制设备,其中,所述访问时间较短并且因此性能较高,以及
- 能够在MLC模式中运行所述控制设备,其中,所述访问时间较长并且因此性能较低。
5.根据权利要求1至4中任一项所述的方法(10),其特征在于以下特征:
- 所述程序被适配用于控制机动车中的现场设备、尤其内燃机。
6.根据权利要求5所述的方法(10),其特征在于以下特征:
- 在编程之前,通过空中接口将所述第二映像(17)传输到所述机动车中。
7.根据权利要求1至6中任一项所述的方法(10),其特征在于以下特征:
- 所述存储器是非易失性的。
8.根据权利要求7所述的方法(10),其特征在于以下特征:
- 所述存储器是闪速EEPROM、尤其是NAND或NOR闪速。
9.一种计算机程序,所述计算机程序被设立用于实施根据权利要求1至8中任一项所述的方法(10)。
10.一种机器可读存储介质,在其上存储有根据权利要求9所述的计算机程序。
11.一种设备(20),所述设备被设立用于实施根据权利要求1至8中任一项所述的方法(10)。
12.根据权利要求11所述的设备(20),所述设备为微控制器的形式。
CN201880022109.1A 2017-03-29 2018-03-06 用于更新程序的方法和设备 Active CN110462585B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN110462585A true CN110462585A (zh) 2019-11-15
CN110462585B CN110462585B (zh) 2023-08-08

Family

ID=61599145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880022109.1A Active CN110462585B (zh) 2017-03-29 2018-03-06 用于更新程序的方法和设备

Country Status (7)

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

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114685A1 (en) * 2003-11-20 2005-05-26 Blinick Stephen L.R. Apparatus, system, and method for updating an embedded code image
US7886287B1 (en) * 2003-08-27 2011-02-08 Avaya Inc. Method and apparatus for hot updating of running processes
US20120239920A1 (en) * 2011-03-18 2012-09-20 Abel Yang Approaches for updating bios
US20120246391A1 (en) * 2011-01-27 2012-09-27 Anobit Technologies Block management schemes in hybrid slc/mlc memory
WO2012170521A2 (en) * 2011-06-07 2012-12-13 Lsi Corporation Management of device firmware update effects as seen by a host
US20130322169A1 (en) * 2012-05-31 2013-12-05 Seagate Technology Llc Multi-level cell (mlc) update with protected mode capability
CN104571938A (zh) * 2013-10-28 2015-04-29 擎泰科技股份有限公司 在多层单元存储器存取数据的方法及其多层单元存储装置
US20150143030A1 (en) * 2013-11-21 2015-05-21 Sandisk Technologies Inc. Update Block Programming Order

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE392661T1 (de) * 2004-03-10 2008-05-15 Sony Ericsson Mobile Comm 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 記憶體儲存裝置及其控制方法
JP2014005894A (ja) * 2012-06-26 2014-01-16 Suzuki Motor Corp 自動変速機の変速制御装置
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

Patent Citations (9)

* 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
US20050114685A1 (en) * 2003-11-20 2005-05-26 Blinick Stephen L.R. Apparatus, system, and method for updating an embedded code image
US20120246391A1 (en) * 2011-01-27 2012-09-27 Anobit Technologies Block management schemes in hybrid slc/mlc memory
US20120239920A1 (en) * 2011-03-18 2012-09-20 Abel Yang Approaches for updating bios
WO2012170521A2 (en) * 2011-06-07 2012-12-13 Lsi Corporation Management of device firmware update effects as seen by a host
CN105159699A (zh) * 2011-06-07 2015-12-16 Lsi公司 主机看到的设备固件更新效果的管理
US20130322169A1 (en) * 2012-05-31 2013-12-05 Seagate Technology Llc Multi-level cell (mlc) update with protected mode capability
CN104571938A (zh) * 2013-10-28 2015-04-29 擎泰科技股份有限公司 在多层单元存储器存取数据的方法及其多层单元存储装置
US20150143030A1 (en) * 2013-11-21 2015-05-21 Sandisk Technologies Inc. Update Block Programming Order

Also Published As

Publication number Publication date
KR20190131535A (ko) 2019-11-26
CN110462585B (zh) 2023-08-08
US20200026509A1 (en) 2020-01-23
JP2020515975A (ja) 2020-05-28
US10990381B2 (en) 2021-04-27
JP6832448B2 (ja) 2021-02-24
KR102434821B1 (ko) 2022-08-22
WO2018177698A1 (de) 2018-10-04
DE102017205274A1 (de) 2018-10-04
EP3602275A1 (de) 2020-02-05

Similar Documents

Publication Publication Date Title
US6349056B1 (en) Method and structure for efficient data verification operation for non-volatile memories
US7791952B2 (en) Memory device architectures and operation
TWI317946B (en) Zone boundary adjustment for defects in non-volatile memories
KR101053711B1 (ko) 인터리빙 방식의 메모리를 프로그래밍하고 검증하는 방법, 디바이스 및 시스템
CN101313287B (zh) 经由嵌入式控制器初始化快闪存储设备
KR100894809B1 (ko) 메모리 시스템 및 그것의 프로그램 방법
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
US11804267B2 (en) Memory system having semiconductor memory device that performs verify operations using various verify voltages
US8140216B2 (en) Method of detecting manipulation of a programmable memory device of a digital controller
US20080133824A1 (en) Memory card system including nand flash memory and sram/nor flash memory, and data storage method thereof
US9384839B2 (en) Write sequence providing write abort protection
CN105938724A (zh) 半导体存储装置及存储系统
CN104835526B (zh) 将数据写入至闪存的方法及相关的记忆装置与闪存
US20090300311A1 (en) Selective register reset
US20080181008A1 (en) Flash memory system capable of improving access performance and access method thereof
CN109992443B (zh) 一种nand闪存数据检查方法
CN107729029A (zh) 用于运行存储器的方法和装置
CN110462585A (zh) 用于更新程序的方法和设备
US11081184B2 (en) Method of concurrent multi-state programming of non-volatile memory with bit line voltage step up
US20040133755A1 (en) Minimization of overhead of non-volatile memory operation
US20210134369A1 (en) Method for concurrent programming
CN106155581A (zh) 数据储存装置及其数据维护方法
CN116324996A (zh) 闪存管理装置及闪存管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant