DE102017108288B4 - Aktualisieren eines Speichers - Google Patents

Aktualisieren eines Speichers Download PDF

Info

Publication number
DE102017108288B4
DE102017108288B4 DE102017108288.3A DE102017108288A DE102017108288B4 DE 102017108288 B4 DE102017108288 B4 DE 102017108288B4 DE 102017108288 A DE102017108288 A DE 102017108288A DE 102017108288 B4 DE102017108288 B4 DE 102017108288B4
Authority
DE
Germany
Prior art keywords
memory
memory area
image
data
area
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
DE102017108288.3A
Other languages
English (en)
Other versions
DE102017108288A1 (de
Inventor
Thomas Kern
Ulrich Backhausen
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102017108288.3A priority Critical patent/DE102017108288B4/de
Priority to US15/955,327 priority patent/US10599350B2/en
Publication of DE102017108288A1 publication Critical patent/DE102017108288A1/de
Application granted granted Critical
Publication of DE102017108288B4 publication Critical patent/DE102017108288B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0009RRAM elements whose operation depends upon chemical change
    • G11C13/0011RRAM elements whose operation depends upon chemical change comprising conductive bridging RAM [CBRAM] or programming metallization cells [PMCs]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • G11C2013/0042Read using differential sensing, e.g. bit line [BL] and bit line bar [BLB]

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 Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zum Aktualisieren eines Speichers, der einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst:(a) Verwenden eines ersten Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird;(b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist;(c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich;(d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.

Description

  • HINTERGRUND DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung betreffen einen effizienten Ansatz zum Aktualisieren von Daten eines Speichers.
  • US 2014/0282470 A1 betrifft die drahtlose Übertragung von elektronischen Bildern zwischen einem oder mehreren Fahrzeugen und einem Steuersubsystem sowie ein Remote-Update von elektronischen Bildern.
  • ZUSAMMENFASSUNG
  • Eine erste Ausführungsform betrifft ein Verfahren zum Aktualisieren eines Speichers, der einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst:
    1. (a) Verwenden eines ersten Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird;
    2. (b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist;
    3. (c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich;
    4. (d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  • Eine zweite Ausführungsform betrifft eine Vorrichtung zum Aktualisieren eines Speichers,
    • - wobei der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst,
    • - wobei die Vorrichtung eine Verarbeitungseinheit umfasst, die eingerichtet ist zum:
      1. (a) Verwenden eines Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird;
      2. (b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist;
      3. (c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich;
      4. (d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  • Eine dritte Ausführungsform betrifft ein Computerprogrammprodukt, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, das Softwarecodeteile zum Durchführen der Schritte des hier beschriebenen Verfahrens umfasst.
  • Eine vierte Ausführungsform betrifft ein computerlesbares Medium, das computerausführbare Anweisungen aufweist, die dazu ausgelegt sind, zu bewirken, dass ein Computersystem die Schritte des hier beschriebenen Verfahrens durchführt.
  • Figurenliste
  • Ausführungsformen sind unter Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen dazu, das Grundprinzip zu veranschaulichen, so dass nur für das Verständnis des Grundprinzips notwendige Aspekte veranschaulicht werden. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen die gleichen Bezugszeichen ähnliche Merkmale.
    • 1 zeigt ein symbolisches Diagramm eines Speicherarrays, das zwei getrennte Speicherbereiche umfasst, die über eine symbolische Schicht zu Lese-/Schreib-Zwecken verbunden sind;
    • 2 zeigt das Speicherarray in einem normalen Modus, wobei das Speicherarray als ein differenzieller Lesespeicher betrieben wird;
    • 3 zeigt das Speicherarray, das in einem ersten SOTA-Modus betrieben wird;
    • 4 zeigt das Speicherarray, das in einem zweiten SOTA-Modus betrieben wird;
    • 5 zeigt das Speicherarray, das in einem dritten SOTA-Modus betrieben wird;
    • 6 zeigt das Speicherarray, das in einem vierten SOTA-Modus betrieben wird;
    • 7 zeigt das Speicherarray, das nach dem Abschließen von SOTA wieder als ein differenzieller Lesespeicher betrieben wird;
    • 8 zeigt ein schematisches Flussdiagramm, das Schritte zum Veranschaulichen einer Aktualisierung des differenziellen Lesespeichers umfasst;
    • 9 zeigt das Speicherarray, das als differenzieller Lesespeicher betrieben wird und Informationen basierend auf einem Zugriff auf eine Adresse des Speicherarrays bereitstellt;
    • 10 zeigt das Speicherarray, das in zwei Speicherbereiche unterteilt ist, wobei ein Speicherbereich einem Schreibvorgang unterzogen wird und der andere Speicherbereich (zur gleichen Zeit oder im Wesentlichen zur gleichen Zeit) einem Lesevorgang unterzogen wird; und
    • 11 zeigt ein System, das eine elektronische Steuereinheit (ECU: Electronic Control Unit) umfasst, die über eine zentrale Speicherung aktualisiert werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • In dem Automobilgebiet gibt es einen zunehmenden Bedarf daran, dass Produktrückrufe und andere Aktualisierungen, die Software in dem Fahrzeug einbeziehen, online, z. B. über eine Internetverbindung, ausgeführt werden. Ein(e) beliebige(r) Download, Aktualisierung oder Revision von Daten, der/die online über eine Luftschnittstelle durchgeführt wird, z. B. eine Mobilkommunikationsschnittstelle, wird auch als SOTA (Software over the Air - Software über die Luft) bezeichnet. Die Vorteile von SOTA erstrecken sich von lediglich einer Korrektur von Fehlern zu dem Hinzufügen neuer Software, die in dem Fahrzeug bequem ohne jegliche signifikante Ausfallszeit installiert werden kann. Daher muss der Benutzer das Fahrzeug nicht mehr zu der Werkstatt fahren und darauf warten, dass die Aktualisierung durchgeführt wird.
  • SOTA kann zunehmend von Erstausrüstern (OEMs: Original Equipment Manufacturers) verwendet werden, die von einer Aktualisierung der Funktionalität und der Merkmale des Fahrzeugs „über die Luft“ (online) profitieren.
  • Insbesondere kann eines der folgenden Szenarien (1) bis (3) verwendet werden, um SOTA zu ermöglichen:
    • (1) Das Fahrzeug kann einen Mikrocontroller, einen PFlash-Speicher und eine Kommunikationsschnittstelle umfassen. Der Mikrocontroller kann über einen Bus mit dem PFlash-Speicher und der Kommunikationsschnittstelle gekoppelt sein. Die Kommunikationsschnittstelle ist (über eine Internet-über-die-Luft-Verbindung) mit einer zentralen Speichereinheit in dem Fahrzeug, insbesondere einer externen (fernen) Entität, die eine solche zentrale Speicherung umfasst, verbindbar. Die Mikrosteuerung, der PFlash-Speicher und die Kommunikationsschnittstelle können Teil einer elektronischen Steuereinheit (ECU) des Fahrzeugs sein. In diesem Szenario (1) wird die Softwareaktualisierung von der zentralen Speicherung über die Kommunikationsschnittstelle zu dem PFlash-Speicher ausgeführt. Es wird angemerkt, dass der Mikrocontroller stattdessen wenigstens einen Kern und/oder wenigstens eine CPU (Central Processing Unit - zentrale Verarbeitungseinheit) umfassen kann. Es ist auch eine Möglichkeit, dass der Mikrocontroller den PFlash-Speicher und/oder die Kommunikationsschnittstelle umfasst.
    • (2) Im Gegensatz zu dem Szenario (1) umfasst die ECU eine zusätzliche serielle Peripherieschnittstelle (SPI: Serial Peripheral Interface), die mit dem Bus verbunden ist. Eine lokale Speicherung, die Teil der ECU sein kann, ist mit der SPI verbunden. In diesem Szenario (2) wird die Softwareaktualisierung von der zentralen Speicherung über die Kommunikationsschnittstelle zu der lokalen Speicherung ausgeführt. Dieses Szenario (2) verringert die Ausfallzeit im Vergleich zu dem Szenario (1), aber erhöht die Kosten aufgrund zusätzlicher erforderlicher Komponenten.
    • (3) Im Gegensatz zu dem Szenario (1) umfasst die ECU einen zusätzlichen PFlash-Speicher, der mit dem Bus verbunden ist. In diesem Szenario (3) kann die Softwareaktualisierung in den verdoppelten (zweiten) PFlash-Speicher durchgeführt werden und können die Speicher nach einem erfolgreichen Download ausgewechselt werden. Im Vergleich zu den Szenarien (1) und (2) verringert dieses Szenario die Ausfallzeit weiter, aber es erhöht auch die Kosten aufgrund des teuren zweiten PFlash-Speichers weiter.
  • Es wird angemerkt, dass der PFlash-Speicher ein beliebiger Code-Flash-Speicher oder Anweisung-Flash-Speicher sein kann, der einen Code und/oder statische oder niederfrequente Datenteile umfassen kann.
  • Herkömmliche Eingebetteter-Flash-Technologien (im Gegensatz zu alleinstehenden Speichern) können insbesondere auf einer 1-Bit-Pro-Zelle-Lösung basieren, d. h. ein Bit an Informationen wird in einer einzigen Speicherzelle gespeichert. Dies gilt insbesondere für PFlash-Lösungen, weil sie keine hohen Aktualisierungsraten aufzeigen und dementsprechend keinen signifikanten Stress und/oder eine Verschlechterung durch hohe Schreib/Lösch-Zyklen aushalten. Klassische und ausgereifte Eingebetteternichtflüchtiger-Speicher-Konzepte, wie Floating-Gate-Flash, erzeugen erheblich mehr Integrationsprobleme beim Erreichen fortschrittlicher Technologieknoten (z. B. Einsetzen von High-k-Metall-Gate-Prozessen). Diese einfachere Integration in einen CMOS-ase-Prozess (ase: advanced silicon etching - fortschrittliches Siliciumätzen) und schließlich niedrigere Kosten machen aufkommende Speicherlösungen, wie PCRAM, ReRAM, MRAM und andere, attraktiv. Jedoch fehlt aufkommenden Speicherkonzepten manchmal Ausgereiftheit und Zuverlässigkeit. Eine Lösung, um diese reduzierte Zuverlässigkeit zu überwinden und angenommen zu werden, z. B. in dem Automobilmarkt, besteht darin, Zuverlässigkeit durch Verwenden eines differenziellen oder komplementären Ansatzes, der z. B. 0,5 Bit/Zelle speichern kann, zu erlangen.
  • Zum Beispiel können komplementäre Zellen verwendet werden, um die Zuverlässigkeit zum Zugreifen auf ein gültiges Bit basierend auf (wenigstens) zwei Speicherzellen aufgrund einer größeren Lesefenstergleichtaktunterdrückung und signifikant niedrigeren Bitausfallsraten zu erhöhen.
  • Dies kann über einen differenziellen Lesespeicher erreicht werden. Ein solcher Speicher kann eine Zuverlässigkeit verbessern, z. B. selbst nach einer großen Anzahl an Schreib/Lösch-Zyklen, erfordert aber (wenigstens) zwei Speicherzellen pro Datenbit. Jedes Datenbit kann durch wenigstens eine wahre Zelle und wenigstens eine komplementäre Zelle repräsentiert werden. Insbesondere kann eine gleiche Zahl an wahren und komplementären Zellen verwendet werden, um ein Bit zu repräsentieren.
  • Zum Beispiel kann eine logische „0“ des Datenbits mit einer physischen „0“ der wahren Zelle und einer physischen „1“ der komplementären Zelle assoziiert werden. Eine logische „1“ des Datenbits kann mit einer physischen „1“ der wahren Zelle und einer physischen „0“ der komplementären Zelle assoziiert werden.
  • Es wird angemerkt, dass eine physische „0“ als eine physische Eigenschaft betrachtet werden kann, die dem Zustand „0“ zugewiesen ist. Entsprechend kann eine physische „1“ als eine physische Eigenschaft betrachtet werden, die dem Zustand „1“ zugewiesen ist.
  • Daher können zwei Speicherzellen eines Speichers komplementäre Informationen speichern, d. h., entgegengesetzte Zustände aufweisen.
  • Die physischen Unterschiede zwischen den Zellen der wahren Zelle und der komplementären Zelle können auf einer Variation einer Spannung, eines Widerstands, eines Stroms und/oder einer Variation eines Signals mit der Zeit basieren.
  • Komplementäre Zellen können in Kombination mit einem SOTA-Ansatz verwendet werden, um eine sichere und zuverlässige Aktualisierung der Software effizient zu ermöglichen und gleichzeitig einen optimierten (reduzierten) Bereich des Speichers zu verwenden.
  • 1 zeigt ein symbolisches Diagramm eines Speicherarrays 101, das einen Speicherbereich 102 und einen Speicherbereich 103 umfasst.
  • Speicherzellen des Speicherbereichs 102 können als wahre Speicherzellen verwendet werden und Speicherzellen des Speicherbereichs 103 können als komplementäre Speicherzellen verwendet werden. In diesem Szenario speichern die Speicherbereiche 102, 103 den gleichen Inhalt, mit der Ausnahme, dass einer der Speicherbereiche das Inverse des anderen Speicherbereichs ist, d. h. jedes Bit an Informationen wird durch eine wahre Speicherzelle, die den wahren Wert trägt, und eine komplementäre Speicherzelle, die den entgegengesetzten (inversen) Wert trägt, repräsentiert. Dies weist einen erheblichen Vorteil auf, weil Zellenfehler detektiert werden können, falls die wahre und die komplementäre Speicherzelle, die mit demselben Bit an Informationen assoziiert sind, den gleichen Wert zeigen, d. h., entweder zeigen beide Zellen den Wert „0“ oder den Wert „1“, was - gemäß der Definition des differenziellen Lesespeichers - kein gültiger Zustand ist.
  • Eine symbolische Schicht 104 umfasst einen Leseverstärker 105, der mit beiden Speicherbereichen 102, 103 verbunden ist. Der Leseverstärker 105 ist eingerichtet zum
    • - differenziellen Lesen komplementärer Zellen (d. h. einer Zelle, die den wahren Wert eines Bits an Informationen umfasst, aus dem Speicherbereich 102 und einer Zelle, die den komplementären Wert dieses Bits an Informationen umfasst, aus dem Speicherbereich 103) oder
    • - Lesen von entweder Zellen des Speicherbereichs 102 oder des Speicherbereichs 103 (in einem Eintaktmodus).
  • Der Leseverstärker 105 kann insbesondere beide Speicherbereiche 102, 103 während eines Eintaktbetriebs zur gleichen Zeit oder im Wesentlichen zur gleichen Zeit lesen. Zum Beispiel kann der Inhalt, der aus dem Speicherbereich 103 gelesen wird, verifiziert werden und wird das normale Eintaktlesen für diesen Inhalt in dem Speicherbereich 102 durchgeführt (d. h., ein Inhalt, der aus dem Speicherbereich 102 gelesen wird, wird verifiziert, indem auch der Speicherbereich 103 gelesen wird).
  • Außerdem ist eine Schnittstelle 106 dargestellt, die zum Schreiben von Daten in Speicherzellen von entweder dem Speicherbereich 102 oder dem Speicherbereich 103 verwendet werden kann.
  • Die Speicherzellen des Speicherbereichs 102 können unabhängig von einem Lesevorgang der Speicherzellen des Speicherbereichs 103 gelesen und/oder beschrieben werden und umgekehrt.
  • 2 zeigt das Speicherarray 101 mit dem Speicherbereich 102, der ein Abbild AT (das einem Abbild A entspricht) umfasst, und dem Speicherbereich 103, der ein komplementäres Abbild Ac umfasst. Daher wird ein Bit an Informationen, das in dem Speicherarray 101 gespeichert wird, zwei (komplementären) Speicherzellen zugeordnet, d. h. einer wahren Speicherzelle des Speicherbereichs 102 (auch als wahre Zelle bezeichnet), die den wahren Wert zeigt, und einer komplementären Speicherzelle des Speicherbereichs 103 (auch als komplementäre Zelle bezeichnet), die den komplementären Wert zeigt (d. h. der entgegengesetzte oder umgekehrte Wert der assoziierten wahren Zelle).
  • Der Leseverstärker 105 arbeitet als ein Differenzenverstärker. Der Inhalt, der aus dem Speicherarray 101 erhalten wird, entspricht einem Abbild A, wobei die wahren Zellen das wahre Abbild AT (das dem Abbild A entspricht) umfassen und die komplementären Zellen das komplementäre Abbild Ac (das dem inversen Abbild A entspricht) umfassen.
  • In diesem Modus wird nur ein Lesezugriff hinsichtlich des Speicherarrays 101 ausgeführt. Ein Wert „0“ wird gelesen, falls die wahre Zelle den Wert „0“ aufweist und die assoziierte komplementäre Zelle den Wert „1“ aufweist. Ein Wert „1“ wird gelesen, falls die wahre Zelle den Wert „1“ aufweist und die assoziierte komplementäre Zelle den Wert „0“ aufweist.
  • 3 zeigt das Speicherarray 101 in einem ersten SOTA-Modus, wobei nur der Speicherbereich 102 gelesen wird.
  • In dem ersten SOTA-Modus arbeitet der Leseverstärker 105 als ein Eintaktverstärker, der nur das Abbild „A“ von dem wahren Abbild AT des Speicherbereichs 102 (der wahren Zellen) ohne Berücksichtigung des Inhalts des Speicherbereichs 103 bereitstellt.
  • 4 zeigt das Speicherarray 101, das in einem zweiten SOTA-Modus betrieben wird. Der Leseverstärker 105 arbeitet immer noch als ein Eintaktverstärker, der nur das Abbild A von dem wahren Abbild AT des Speicherbereichs 102 (der wahren Zellen) bereitstellt.
  • Außerdem wird ein Abbild Bc in die Speicherzellen des Speicherbereichs 103 geschrieben. Das Abbild Bc kann ein komplementäres Abbild eines Abbildes B sein. Es wird angemerkt, dass das Abbild B verschieden von dem Abbild A sein kann.
  • Vorteilhafterweise kann auf den Speicherbereich 102 und den Speicherbereich 103 unabhängig voneinander zugegriffen werden, was Lesen des Abbildes A aus dem Speicherbereich 102 und Schreiben oder Verifizieren des Abbildes Bc in den Speicherbereich 103 effizient ermöglicht.
  • 5 zeigt das Speicherarray 101 in einem dritten SOTA-Modus. Der Leseverstärker 105 arbeitet als ein Eintaktverstärker, der nun das Abbild B von dem komplementären Abbild Bc des Speicherbereichs 103 bereitstellt.
  • Mit anderen Worten werden, nachdem die aktualisierten Daten in den Speicherbereich 103 eingegeben wurden, diese Daten nun über den Leseverstärker 105 verwendet. In dieser Phase trägt der Speicherbereich 103 die Benutzerdaten in einer komplementären Form (d. h. Bc), was das Invertieren dieser Daten erfordern kann (z. B. an dem Leseverstärker 105 oder an einer beliebigen anderen Komponente), um bei dem Abbild B anzukommen. Außerdem trägt der Speicherbereich 102 in dieser Phase immer noch das Abbild AT (d. h. A), das - nach dem erfolgreichen Aktualisieren des Speicherbereichs 103 - nicht mehr benötigt wird.
  • 6 zeigt das Speicherarray 101 in einem vierten SOTA-Modus. Der Leseverstärker 105 arbeitet immer noch als ein Eintaktverstärker, der das Abbild B von dem komplementären Abbild Bc des Speicherbereichs 103 bereitstellt.
  • Das Abbild BT (=B) wird in den Speicherbereich 102 geschrieben. Dies kann erreicht werden, indem das invertierte Abbild Bc von dem Speicherbereich 103 in den Speicherbereich 102 kopiert wird oder indem das Abbild BT von z. B. einem zentralen Datenspeicher erhalten wird.
  • 7 zeigt das Speicherarray 101, nachdem die SOTA abgeschlossen wurde. Der Leseverstärker 105 arbeitet (wieder) als ein Differenzenverstärker. Der Inhalt, der von dem Speicherarray 101 erhalten wurde, entspricht einem Abbild B, wobei die wahren Zellen (d. h. des Speicherbereichs 102) das wahre Abbild BT (das dem Abbild B entspricht) umfassen und die komplementären Zellen (d. h. des Speicherbereichs 103) das komplementäre Abbild Bc umfassen.
  • In diesem Modus wird nur ein Lesezugriff hinsichtlich des Speicherarrays 101 ausgeführt. Ein Wert „0“ wird gelesen, falls die wahre Zelle den Wert „0“ aufweist und die assoziierte komplementäre Zelle den Wert „1“ aufweist. Ein Wert „1“ wird gelesen, falls die wahre Zelle den Wert „1“ aufweist und die assoziierte komplementäre Zelle den Wert „0“ aufweist.
  • 2 bis 7 entsprechen daher einem Übergang von Modi, die in 8 zusammengefasst sind:
    • Schritt 801: Der beschriebene SOTA-Ansatz beginnt mit zwei Speicherbereichen 102, 103 des Speicherarrays 101, die komplementäre Daten eines Abbildes A tragen.
    • Schritt 802: In dem ersten SOTA-Modus ist der Lesezugriff auf die Daten (des Abbildes A) auf den Speicherbereich 102 begrenzt.
    • Schritt 803: In dem zweiten SOTA-Modus wird ein aktualisiertes Abbild B (in seiner wahren Form BT oder in seiner komplementären Form Bc) in den Speicherbereich 103 geschrieben.
    • Schritt 804: In dem dritten SOTA-Modus wird das aktualisierte Abbild B statt des Abbildes A verwendet, indem der Lesezugriff auf den Speicherbereich 103 (statt des Speicherbereichs 102) begrenzt wird.
    • Schritt 805: In dem vierten SOTA-Modus wird das aktualisierte (oder neue) Abbild B in den Speicherbereich 102 geschrieben (z. B. kopiert): Falls die wahre Form BT des Abbildes B in den Speicherbereich 103 geschrieben wurde, wird die komplementäre Form Bc des Abbildes B in den Speicherbereich 102 geschrieben; falls die komplementäre Form Bc des Abbildes B in den Speicherbereich 103 geschrieben wurde, wird die wahre Form BT des Abbildes B in den Speicherbereich 102 geschrieben.
    • Schritt 806: Das Speicherarray 101 wird als ein differenzieller Lesespeicher betrieben, wobei die Speicherbereiche 102, 103 komplementäre Daten des Abbildes B umfassen.
  • Ein Auslöser 807 kann verwendet werden, um einen Übergang von dem Schritt 801 zu dem Schritt 802 zu beginnen. Ein solcher Auslöser kann eine Erneuerungsanfrage nach einem Verifizierungsvorgang sein oder er kann auf einem Erneuerungszyklus basieren, der gemäß einem vorbestimmten regelmäßigen oder nichtregelmäßigen Zeitplan ausgelöst wird. Bei Schritt 802 kann überprüft werden, ob eine SOTA ausstehend ist oder ausgeführt werden könnte/sollte. Bei der Bestätigung kann die SOTA initiiert werden. Falls keine SOTA ausstehend ist, kann zu Schritt 801 zurückgekehrt werden (wie durch eine gestrichelte Linie 808 angegeben ist). Der Auslöser 807 kann jedoch auf einer SOTA-Anfrage und dementsprechend einem Schritt zum Initiieren der Aktualisierungsprozedur basieren.
  • 9 zeigt das Speicherarray 101 aktiv in einem normalen Modus (gemäß 2 und 7 und gemäß Schritten 801 und 806). Der Leseverstärker ist in einem differenziellen Lesebetrieb und das Speicherarray 101 wird als ein komplementärer Speicher verwendet, der eine erhöhte Redundanz zu Fehlerdetektionszwecken bereitstellt, da jedes Bit an Informationen auf zwei komplementäre Speicherzellen aufgeteilt wird.
  • Eine Leseadresse 901 wird verwendet, um auf das Speicherarray 101 zuzugreifen und Daten 902 werden als Ergebnis eines solches Lesezugriffs geliefert.
  • 10 zeigt das Speicherarray 101, das in zwei Speicherbereiche 102 und 103 unterteilt ist. Die Speicherbereiche 102 und 103 können physisch voneinander getrennt sein. Für jeden der Speicherbereiche können getrennte Lese- und Schreib/Verifizierung-Adressen verwendet werden, um auf Daten zuzugreifen/diese zu schreiben. Außerdem können ein getrennter Schreib/Verifizierung-Bus und ein getrennter Lesebus für die Speicherbereiche 102, 103 bereitgestellt sein.
  • 10 zeigt das Beispiel während des zweiten SOTA-Modus, bei dem das Abbild A aus dem Speicherbereich 102 gelesen wird, indem eine Leseadresse 1001 bereitgestellt und Daten 1002 erhalten werden. Außerdem wird das Abbild B (in wahrer oder komplementärer Form) 1004 über eine getrennte Schreibadresse 1003 in den Speicherbereich 103 geschrieben.
  • Während dieses zweiten SOTA-Modus liest der Leseverstärker nur Daten aus dem Speicherbereich 102.
  • 11 zeigt eine beispielhafte ECU 1101 (ECU: Elektronische Steuereinheit), die Teil eines Fahrzeugs, insbesondere eines Fahrzeugs, sein kann. Die ECU umfasst eine CPU 1102, einen PFlash-Speicher 1104 und eine Kommunikationsschnittstelle 1103. Die CPU 1102 kann über einen Bus 1105 mit dem PFlash-Speicher 1104 und der Kommunikationsschnittstelle 1103 gekoppelt sein. Die Kommunikationsschnittstelle 1103 ist (über eine Internet-über-die-Luft-Verbindung) mit einer zentralen Speicherung 1106, insbesondere einer externen (fernen) Entität, die eine solche zentrale Speicherung 1106 umfasst, verbindbar. Der PFlash-Speicher 1104 kann dem Speicherarray 101, wie in z. B. 10 gezeigt, entsprechen.
  • Die CPU 1102, der PFlash-Speicher 1104, die Kommunikationsschnittstelle 1103 und der Bus 1105 können in einem verbesserten Mikrocontrollersystem, wie etwa der Aurix™-Vorrichtung von Infineon, integriert sein.
  • Die Softwareaktualisierung wird durch Übertragen von Daten von der zentralen Speicherung 1106 über die Kommunikationsschnittstelle 1103 zu dem PFlash-Speicher 1104 ausgeführt.
  • Vorteilhafterweise schlägt die hier präsentierte Lösung eine Trennung der wahren Daten und der komplementären Daten eines differenziellen Lesespeichers vor. Aufgrund einer solchen Trennung kann ein differenzieller Lesemodus von einem Eintaktmodus getrennt werden, wobei nur einer der Speicherbereiche vorübergehend das erste Abbild von Daten bereitstellt.
  • Während dieser Zeit wird der andere Speicherbereich mit einem überarbeiteten zweiten Abbild von Daten aktualisiert, das aktiviert wird, nachdem die Aktualisierung erfolgreich war. Dann kann das veraltete erste Abbild der Daten durch das komplementäre zweite Abbild überschrieben werden.
  • Es ist jedoch eine Möglichkeit, das zweite Abbild anfänglich in seiner wahren oder komplementären Form in den Speicherbereich zu schreiben, der der SOTA unterzogen wird. Nach dieser Aktualisierung empfängt der andere Speicherbereich das jeweilige andere (komplementäre oder wahre) Abbild.
  • Es ist ein anderer Vorteil, dass SOTA aufgrund des begrenzten zusätzlichen erforderlichen Flash-Speichers mit einem hohen Grad an Zuverlässigkeit und Flexibilität bei reduzierten Kosten erreicht werden kann,
  • Der Speicher kann vorteilhafterweise dazu in der Lage sein, getrennte Schreib- (einschl. Verifizierungs-) und Lesezugriffe (gleichzeitig oder im Wesentlichen gleichzeitig) auf die unterschiedlichen Speicherbereiche zu ermöglichen. Die Aktualisierung der Software kann daher während der Laufzeit eines Fahrzeugs durchgeführt werden.
  • Es ist eine andere Möglichkeit, dass einige Speicherbereiche (mehr als zwei) verwendet werden, um die Flexibilität und/oder den Redundanzgrad weiter zu erhöhen. Zum Beispiel kann ein Bit an Informationen auf mehr als eine Speicherzelle verteilt werden (z. B. über einen Code). Falls z. B. ein einziges Bit an Informationen in drei Bits codiert wird, kann jedes solche Bit durch eine physisch getrennte Speicherzelle eines z. B. physisch getrennten Speicherbereichs implementiert werden. Verschiedene Codes können verwendet werden, um ein einzelnes Bit auf einige Bits zu verteilen. Dies erleichtert Fehlerdetektions- und/oder Fehlerkorrekturfähigkeiten und verbessert diese sogar.
  • Es ist anzumerken, dass SOTA ein Beispiel ist, das in Kombination mit den hier beschriebenen Lösungen verwendet werden kann. Jedoch ist die Erfindung nicht auf das SOTA-Szenario begrenzt. Es kann für einen beliebigen anderen Ansatz anwendbar sein, der vorübergehend einen Teil eines Speichers für Aktualisierungs-, Korrektur- oder Revisionszwecke nutzt.
  • Die hier vorgeschlagenen Beispiele können insbesondere auf wenigstens einer der folgenden Lösungen basieren. Insbesondere könnten Kombinationen der folgenden Merkmale benutzt werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens könnten mit einem oder mehreren beliebigen Merkmalen der Einrichtung, der Vorrichtung oder des Systems kombiniert werden oder umgekehrt.
  • Es ist ein Verfahren zum Aktualisieren eines Speichers bereitgestellt, der einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst:
    1. (a) Verwenden eines ersten Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird;
    2. (b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist;
    3. (c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich;
    4. (d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  • Das erste Abbild von Daten und das zweite Abbild von Daten sind unterschiedliche Abbilder. Diese Abbilder verweisen auf unterschiedlichen Inhalt und sie sind nicht nur komplementäre Abbilder. Ein inverses Abbild wird auch als ein komplementäres Abbild bezeichnet.
  • In einem differenziellen Speicher weist jedes Bit wenigstens zwei Repräsentationen auf, d. h. wenigstens eine wahre Zelle und wenigstens eine komplementäre Zelle. Die wahre Zelle ist in dem ersten Speicherbereich gespeichert und die komplementäre Zelle ist in dem zweiten Speicherbereich gespeichert. Der Speicher (auch als ein Speicherarray bezeichnet) kann in einem differenziellen Lesemodus betrieben werden, wobei die wahre Speicherzelle und die komplementäre Speicherzelle (die beide ein einziges Bit an Informationen repräsentieren) verwendet werden, um den Wert des Bits (d. h. entweder „0“ oder „1“) zu bestimmen. Außerdem kann jeder Speicherbereich in einem sogenannten Eintaktmodus betrieben werden, wobei das Bit an Informationen von entweder dem ersten Speicherbereich oder dem zweiten Speicherbereich ohne Berücksichtigung des jeweiligen anderen Speicherbereichs erhalten wird. Dies ist anwendbar, falls „das erste Abbild von Daten verwendet wird“ oder „das zweite Abbild von Daten verwendet wird“. Dies trifft insbesondere auf einen Teil der Daten zu. Dies trifft auch zu, falls ermöglicht wird, dass wenigstens ein Teil solcher Daten verwendet wird. In diesem Fall kann der jeweilige andere Speicherbereich reprogrammiert werden (d. h., Daten können in diesen Speicherbereich geschrieben werden).
  • Es wird angemerkt, dass „Verwenden des ersten/zweiten Abbildes von Daten“ insbesondere auf Nutzen der jeweiligen gespeicherten Daten während einer Laufzeit einer Maschine, einer Vorrichtung oder eines Systems, insbesondere eines Fahrzeugs, verweist. Daher können diese gespeicherten Daten verwendet werden, um die Einheit zu betreiben, während der andere Speicherbereich aktualisiert wird. Dies ermöglicht einen hohen Grad an Flexibilität, weil der differenzielle Betriebsmodus für eine begrenzte Zeitperiode ausgesetzt wird, um das Abbild von Daten zu aktualisieren. Nach der (erfolgreichen) Aktualisierung kann wieder in den differenziellen Betriebsmodus eingetreten werden.
  • Verwenden des Speichers als differenzieller Speicher verweist insbesondere auf „Verwenden des Speichers als ein differenzieller Lesespeicher“, d. h. einen differenziellen Speicher in einem Lesemodus. Ein Differenzenleseverstärker vergleicht Werte, die in zwei assoziierten Speicherzellen gespeichert sind, wobei diese Zellen über den ersten und zweiten Speicherbereich verteilt sein können und wobei eine der Speicherzellen im Vergleich zu der anderen Speicherzelle den inversen Wert aufweist.
  • Es wird angemerkt, dass Aktualisieren auf eine beliebige Änderung oder Revision von Daten verweisen kann. Daher können die Daten, die in dem ersten Speicherbereich gespeichert sind, veraltet oder fehlerhaft sein und können sie aktualisiert werden müssen. Dies wird erreicht, indem der zweite Speicherbereich aktualisiert wird, während immer noch mit den Daten gearbeitet wird, die in dem ersten Speicherbereich gespeichert sind. Nach der erfolgreichen Aktualisierung wechselt der Betrieb zum Verwenden der Daten (zweites Abbild), die in dem zweiten Speicherbereich gespeichert sind. Dann wird das inverse (oder komplementäre) Abbild, das in dem zweiten Speicherbereich gespeichert ist, in den ersten Speicherbereich geschrieben. Danach können beide Abbilder, die in dem ersten und zweiten Speicherbereich gespeichert sind, als ein differenzieller (Lese-) Speicher verwendet werden.
  • Bei einer Ausführungsform befinden sich der erste Speicherbereich und der zweite Speicherbereich in unterschiedlichen physischen Speichern.
  • Die Speicherbereiche können sich in unterschiedlichen Chips oder in unterschiedlichen Vorrichtungen befinden.
  • Bei einer Ausführungsform ist der Speicher ein Flash-Speicher, insbesondere ein PFlash-Speicher.
  • Der PFlash-Speicher kann ein beliebiger Code-Flash-Speicher, Programm-Flash-Speicher oder Anweisung-Flash-Speicher sein, der Code und/oder Datenteile umfassen kann.
  • Bei einer Ausführungsform weisen der erste Speicherbereich und der zweite Speicherbereich getrennte Lese-, Schreib- und/oder Verifizierungserreichbarkeiten auf.
  • Sie können insbesondere verschiedene Lese-, Schreib- und/oder Verifizierungsbusse aufweisen. Es ist insbesondere vorteilhaft, zu ermöglichen, dass separate (und wenigstens vorübergehend gleichzeitige) Lese-, Schreib- und/oder Verifizierungsvorgänge in den Speicherbereichen durchgeführt werden.
  • Bei einer Ausführungsform umfasst das Verfahren ferner vor Schritt (a):
    • - Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  • Daher ist ein Bit an Informationen über wenigstens eine Speicherzelle des ersten Speicherbereichs und wenigstens eine Speicherzelle des zweiten Speicherbereichs verteilt. In dem differenziellen Betriebsmodus (d. h., der Speicher wird als differenzieller Speicher verwendet) wird ein Bit an Informationen bestimmt, indem die assoziierten Speicherzellen kombiniert werden.
  • Bei einer Ausführungsform umfasst das Verfahren ferner vor Schritt (a) oder vor Schritt (b):
    • - Empfangen einer Aktualisierungsanforderung.
  • Bei einer Ausführungsform gilt:
    • - die Aktualisierungsanforderung ist eine Aktualisierung-über-die-Luft-Anforderung, insbesondere eine SOTA-Anforderung oder -Nachricht, und
    • - das zweite Abbild von Daten wird über eine Luftschnittstelle, insbesondere eine Mobilkommunikationsschnittstelle, bereitgestellt.
  • Bei einer Ausführungsform ist der Speicher Teil einer elektronischen Steuereinheit eines Fahrzeugs, insbesondere eines Autos.
  • Bei einer Ausführungsform ist das Durchführen der Schritte (a) bis (c) auf einen vorbestimmten Zeitbereich begrenzt.
  • Daher kann eine begrenzte Zeit zum Durchführen der tatsächlichen Aktualisierung bereitgestellt sein. Falls ein Zeitlimit erreicht wird, bevor die Aktualisierung abgeschlossen ist, kann sie als ungültig betrachtet werden. Insbesondere kann ein Zurückkehren zu dem Zustand vor dem Einleiten der Aktualisierung ausgeführt werden.
  • Außerdem ist eine Vorrichtung zum Aktualisieren einers Speichers vorgeschlagen,
    • - wobei der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst,
    • - wobei die Vorrichtung eine Verarbeitungseinheit umfasst, die eingerichtet ist zum:
      1. (a) Verwenden eines ersten Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird;
      2. (b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist;
      3. (c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich;
      4. (d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  • Es wird angemerkt, dass die Schritte des hier angegebenen Verfahrens ebenfalls auf dieser Verarbeitungseinheit ausführbar sein können.
  • Es wird ferner angemerkt, dass die Verarbeitungseinheit wenigstens ein, insbesondere einige Mittel umfassen kann, die dazu eingerichtet sind, die Schritte des hier beschriebenen Verfahrens auszuführen. Die Mittel können logisch oder physisch getrennt sein; insbesondere können einige logisch getrennte Mittel in wenigstens einer physischen Einheit kombiniert sein.
  • Die Verarbeitungseinheit kann wenigstens eines von dem Folgenden umfassen: einen Prozessor, einen Mikrocontroller, einen festverdrahteten Schaltkreis, einen ASIC, ein FPGA, eine logische Vorrichtung.
  • Bei einer Ausführungsform ist die Vorrichtung Teil einer elektronischen Steuereinheit eines Fahrzeugs.
  • Bei einer Ausführungsform wird das zweite Abbild von Daten über eine Luftschnittstelle, insbesondere eine Mobilkommunikationsschnittstelle, bereitgestellt.
  • Bei einer Ausführungsform umfasst das Speicherarray wenigstens eines von Folgendem:
    • - Floating-Gate-Zellen,
    • - PCRAM,
    • - RRAM,
    • - MRAM,
    • - CBRAM
    • - FERAM
    • - MONOS- Vorrichtungen,
    • - Nanokristallzellen,
    • - ROM.
  • Ferner ist ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist und das Softwarecodeteile zum Durchführen der Schritte des Verfahrens, wie hier beschrieben, umfasst.
  • Außerdem ist ein computerlesbares Medium bereitgestellt, das computerausführbare Anweisungen aufweist, die dazu ausgelegt sind, zu bewirken, dass ein Computersystem die Schritte des wie hier beschriebenen Verfahrens durchführt.
  • Bei einem oder mehreren Beispielen können die hier beschriebenen Funktionen wenigstens teilweise in Hardware implementiert sein, wie etwa als spezielle Hardwarekomponenten oder als ein Prozessor. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination davon implementiert sein. Falls sie in Software implementiert sind, können die Funktionen als eine oder mehrere Anweisungen oder Code auf einem computerlesbaren Medium gespeichert oder über ein solches übertragen werden und können durch eine hardwarebasierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien beinhalten, die einem greifbaren Medium, wie etwa Datenspeichermedien, oder Kommunikationsmedien einschließlich eines beliebigen Mediums entsprechen, das einen Transfer eines Computerprogramms von einer Stelle zu einer anderen, z. B. gemäß einem Kommunikationsprotokoll, ermöglicht. Auf diese Weise können computerlesbare Medien allgemein (1) greifbaren, computerlesbaren Speichermedien, die nichtflüchtig sind, oder (2) einem Kommunikationsmedium, wie etwa einem Signal oder einer Trägerwelle, entsprechen. Datenspeichermedien können beliebige verfügbare Medien sein, auf die von einem oder mehreren Computern oder von einem oder mehreren Prozessoren zugegriffen werden kann, um Anweisungen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium beinhalten.
  • Als Beispiel und nicht als Beschränkung können derartige computerlesbare Speichermedien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher, magnetische Plattenspeicher oder andere magnetische Speichervorrichtungen, Flash-Speicher oder ein beliebiges anderes Medium, das zum Speichern von gewünschtem Programmcode in der Form von Anweisungen oder Datenstrukturen verwendet werden kann und auf das von einem Computer zugegriffen werden kann, umfassen. Ebenfalls wird eine beliebige Verbindung ordnungsgemäß als ein computerlesbares Medium, d. h. als ein computerlesbares Übertragungsmedium, bezeichnet. Falls zum Beispiel Anweisungen von einer Website, einem Server oder einer anderen fernen Quelle unter Verwendung eines Koaxialkabels, Glasfaserkabels, einer verdrillten Doppelleitung, digitalen Teilnehmeranschlusses (DSL - Digital Subscriber Line) oder drahtloser Technologien, wie etwa Infrarot, Funk und Mikrowellen, übertragen werden, dann sind das Koaxialkabel, das Glasfaserkabel, die verdrillte Doppelleitung, der DSL oder die drahtlosen Technologien, wie etwa Infrarot, Funk und Mikrowellen, in der Definition von Medium eingeschlossen. Es versteht sich allerdings, dass computerlesbare Speichermedien und Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere transiente Medien beinhalten, sondern stattdessen auf nichttransiente, greifbare Speichermedien abzielen. Disk und Disc beinhalten, so wie sie hier verwendet werden, eine Compact Disc (CD), eine Laser Disc, eine optische Disc, eine Digital Versatile Disc (DVD), eine Floppy-Disk und eine Blu-ray Disc, wobei Disks Daten üblicherweise magnetisch reproduzieren, wohingegen Discs Daten optisch mit Lasern reproduzieren. Kombinationen des Obigen sollten ebenfalls innerhalb des Umfangs von computerlesbaren Medien enthalten sein.
  • Anweisungen können durch einen oder mehrere Prozessoren ausgeführt werden, wie etwa durch eine oder mehrere Zentralverarbeitungseinheiten (CPU), digitale Signalprozessoren (DSPs), Mehrzweckmikroprozessoren, anwendungsspezifische integrierte Schaltkreise (ASICs), feldprogrammierbare Logik-Arrays (FPGAs), oder eine andere äquivalente integrierte oder diskrete Logikschaltungsanordnung. Dementsprechend kann sich der Ausdruck „Prozessor“, so wie er hier verwendet wird, auf eine beliebige der vorausgehenden Strukturen oder eine beliebige andere für eine Implementation der vorliegend beschriebenen Techniken geeignete Struktur beziehen. Zusätzlich dazu kann die hier beschriebene Funktionalität bei manchen Aspekten innerhalb dedizierter Hardware- und/oder Software-Module bereitgestellt sein, die zum Codieren und Decodieren konfiguriert sind, oder in einem kombinierten Codec integriert sein. Auch könnten die Techniken vollständig in einem oder mehreren Schaltkreisen oder Logikelementen implementiert sein.
  • Die Techniken dieser Offenbarung können in einer breiten Vielfalt an Vorrichtungen oder Einrichtungen implementiert werden, einschließlich eines drahtlosen Handapparats, eines integrierten Schaltkreises (IC) oder eines Satzes von ICs (z. B. eines Chipsatzes). Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionale Aspekte von Vorrichtungen zu betonen, die dazu konfiguriert sind, die offenbarten Techniken durchzuführen, aber nicht notwendigerweise eine Realisierung durch verschiedene Hardwareeinheiten erfordern. Eher können, wie oben beschrieben, verschiedene Einheiten in einer einzigen Hardwareeinheit kombiniert oder durch eine Ansammlung von interoperativen Hardwareeinheiten bereitgestellt werden, einschließlich, wie oben beschrieben, eines oder mehrerer Prozessoren zusammen mit geeigneter Software und/oder Firmware.
  • Obwohl verschiedene Ausführungsbeispiele der Erfindung offenbart worden sind, wird es für einen Fachmann ersichtlich, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, die manche der Vorteile der Erfindung erzielen werden, ohne vom Wesen und Schutzumfang der Erfindung abzuweichen. Es wird für einen Durchschnittsfachmann offensichtlich, dass andere Komponenten, die dieselben Funktionen durchführen, geeignet substituiert werden können. Es sollte erwähnt werden, dass Merkmale, die mit Bezugnahme auf eine spezielle Fig.erklärt wurden, mit Merkmalen anderer Figuren kombiniert werden können, selbst in jenen Fällen, in denen dies nicht ausdrücklich erwähnt worden ist. Ferner können die Verfahren der Erfindung entweder in reinen Softwareimplementierungen unter Verwendung der geeigneten Prozessoranweisungen oder in Hybridimplementierungen, die eine Kombination von Hardwarelogik und Softwarelogik benutzen, um dieselben Ergebnisse zu erzielen, erzielt werden. Derartige Modifikationen des erfinderischen Konzepts sollen durch die angehängten Ansprüche abgedeckt werden.

Claims (15)

  1. Verfahren zum Aktualisieren eines Speichers, der einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst: (a) Verwenden eines ersten Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird; (b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist; (c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich; (d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  2. Verfahren nach einem der vorhergehenden Ansprüche, bei dem sich der erste Speicherbereich und der zweite Speicherbereich in unterschiedlichen physischen Speichern befinden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Speicher ein Flash-Speicher, insbesondere ein PFlash-Speicher, ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der erste Speicherbereich und der zweite Speicherbereich getrennte Lese-, Schreib- und/oder Verifizierungserreichbarkeiten aufweisen.
  5. Verfahren nach einem der vorhergehenden Ansprüche, das ferner vor Schritt (a) Folgendes umfasst: - Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  6. Verfahren nach einem der vorhergehenden Ansprüche, das ferner vor Schritt (a) oder vor Schritt (b) Folgendes umfasst: - Empfangen einer Aktualisierungsanforderung.
  7. Verfahren nach Anspruch 6, - bei dem die Aktualisierungsanforderung eine Aktualisierung-über-die-Luft-Anforderung, insbesondere eine SOTA-Anforderung oder -Nachricht, ist und - bei dem das zweite Abbild von Daten über eine Luftschnittstelle, insbesondere eine Mobilkommunikationsschnittstelle, bereitgestellt wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Speicher Teil einer elektronischen Steuereinheit eines Fahrzeugs, insbesondere eines Autos, ist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Durchführen der Schritte (a) bis (c) auf einen vorbestimmte Zeitbereich begrenzt ist.
  10. Vorrichtung zum Aktualisieren eines Speichers, - bei der der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich umfasst, - wobei die Vorrichtung eine Verarbeitungseinheit umfasst, die eingerichtet ist zum: (a) Verwenden eines ersten Abbildes von Daten, das in dem ersten Speicherbereich gespeichert ist, während ein zweites Abbild von Daten in den zweiten Speicherbereich geschrieben wird; (b) Wechseln zum Verwenden des zweiten Abbildes von Daten, das in dem zweiten Speicherbereich gespeichert ist; (c) Schreiben eines inversen Abbildes des zweiten Abbildes in den ersten Speicherbereich; (d) Verwenden des ersten Speicherbereichs und des zweiten Speicherbereichs als ein differenzieller Speicher.
  11. Vorrichtung nach Anspruch 11, bei der die Vorrichtung Teil einer elektronischen Steuereinheit eines Fahrzeugs ist.
  12. Vorrichtung nach Anspruch 11, bei der das zweite Abbild von Daten über eine Luftschnittstelle, insbesondere eine Mobilkommunikationsschnittstelle, bereitgestellt wird.
  13. Vorrichtung nach Anspruch 11, bei der das Speicherarray wenigstens eines von Folgendem umfasst: - Floating-Gate-Zellen, - PCRAM, - RRAM, - MRAM, - CBRAM - FERAM - MONOS- Vorrichtungen, - Nanokristallzellen, - ROM.
  14. Computerprogrammprodukt, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist und das Softwarecodeteile zum Durchführen der Schritte des Verfahrens nach Anspruch 1 umfasst.
  15. Computerlesbares Medium, das computerausführbare Anweisungen aufweist, die dazu eingerichtet sind, zu bewirken, dass ein Computersystem die Schritte des Verfahrens nach Anspruch 1 durchführt.
DE102017108288.3A 2017-04-19 2017-04-19 Aktualisieren eines Speichers Active DE102017108288B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017108288.3A DE102017108288B4 (de) 2017-04-19 2017-04-19 Aktualisieren eines Speichers
US15/955,327 US10599350B2 (en) 2017-04-19 2018-04-17 Using a differential memory storage architecture for updating a memory area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017108288.3A DE102017108288B4 (de) 2017-04-19 2017-04-19 Aktualisieren eines Speichers

Publications (2)

Publication Number Publication Date
DE102017108288A1 DE102017108288A1 (de) 2018-10-25
DE102017108288B4 true DE102017108288B4 (de) 2020-06-04

Family

ID=63714645

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017108288.3A Active DE102017108288B4 (de) 2017-04-19 2017-04-19 Aktualisieren eines Speichers

Country Status (2)

Country Link
US (1) US10599350B2 (de)
DE (1) DE102017108288B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021201580A1 (de) * 2021-02-18 2022-08-18 Infineon Technologies Ag Speichervorrichtung und Verfahren zum Ändern von Speicherzellen einer Speichervorrichtung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282470A1 (en) 2013-03-13 2014-09-18 Arynga Inc. Remote transfer of electronic images to a vehicle
DE102015222099A1 (de) * 2015-11-10 2017-05-11 Robert Bosch Gmbh Verfahren und Steuergerät zum koordinierten Aktualisieren eines einfachen Moduls mit differentiellen Aktualisierungsdaten

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836859B2 (en) * 2001-08-15 2004-12-28 Sun Microsystems, Inc. Method and system for version control in a fault tolerant system
US7805658B2 (en) * 2007-02-12 2010-09-28 International Business Machines Corporation DRAM Cache with on-demand reload
US9464905B2 (en) * 2010-06-25 2016-10-11 Toyota Motor Engineering & Manufacturing North America, Inc. Over-the-air vehicle systems updating and associate security protocols
KR20140060912A (ko) * 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치
US20140143768A1 (en) * 2012-11-19 2014-05-22 International Business Machines Corporation Monitoring updates on multiple computing platforms
US9405618B2 (en) * 2014-05-28 2016-08-02 Infineon Technologies Ag Marker programming in non-volatile memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282470A1 (en) 2013-03-13 2014-09-18 Arynga Inc. Remote transfer of electronic images to a vehicle
DE102015222099A1 (de) * 2015-11-10 2017-05-11 Robert Bosch Gmbh Verfahren und Steuergerät zum koordinierten Aktualisieren eines einfachen Moduls mit differentiellen Aktualisierungsdaten

Also Published As

Publication number Publication date
US10599350B2 (en) 2020-03-24
US20180307424A1 (en) 2018-10-25
DE102017108288A1 (de) 2018-10-25

Similar Documents

Publication Publication Date Title
EP0721644B1 (de) Verfahren zur vollständigen neuprogrammierung eines löschbaren, nichtflüchtigen speichers
DE102013211077B4 (de) Verfahren zum Testen eines Speichers und Speichersystem
DE102019109672A1 (de) Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates
DE112018006702T5 (de) Bestimmung der zuverlässigkeit von fahrzeugsteuerbefehlen unter verwendung eines abstimmungsmechanismus
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE102017128999A1 (de) Lesebetrieb und weiches Dekodierungs-Timing
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE102012201154A1 (de) Transaktionsspeicher
DE102017119065B4 (de) Aktualisieren eines Speichers
DE2225841A1 (de) Verfahren und anordnung zur systematischen fehlerpruefung eines monolithischen halbleiterspeichers
DE102022101477A1 (de) Nichtflüchtige speichervorrichtungen, systeme und verfahren für einen schnellen, sicheren, stabilen systemboot
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102021106971A1 (de) Speichersteuerung zum auflösen von string-zu-string-kurzschlüssen
DE102018124836A1 (de) Neuartiger speicherbaustein
EP1924916A2 (de) Speicheranordnung und betriebsverfahren dafür
DE112016006293T5 (de) Informationsverarbeitungsvorrichtung und Informationsverarbeitungsverfahren
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
DE102017108288B4 (de) Aktualisieren eines Speichers
DE102019201607A1 (de) Steuerungssystem für ein Kraftfahrzeug
DE112019000179T5 (de) Fahrzeugsteuervorrichtung und programmaktualisierungssystem
DE102015105414A1 (de) Bearbeiten eines Zielspeichers
DE102016203283A1 (de) Verfahren zum Betreiben eines Mikroprozessors
DE102017119068B4 (de) Aktualisieren eines Speichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final