DE102009012142B4 - Procedure for securing safety-critical variables - Google Patents

Procedure for securing safety-critical variables Download PDF

Info

Publication number
DE102009012142B4
DE102009012142B4 DE102009012142.0A DE102009012142A DE102009012142B4 DE 102009012142 B4 DE102009012142 B4 DE 102009012142B4 DE 102009012142 A DE102009012142 A DE 102009012142A DE 102009012142 B4 DE102009012142 B4 DE 102009012142B4
Authority
DE
Germany
Prior art keywords
memory
addresses
lockable
procedure according
write
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
DE102009012142.0A
Other languages
German (de)
Other versions
DE102009012142A1 (en
Inventor
Mark H. Costin
Mingguang Yu
James T. Kurnik
Trenton W. Haines
Paul A. Bauerle
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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
Priority claimed from US12/259,587 external-priority patent/US8117412B2/en
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102009012142A1 publication Critical patent/DE102009012142A1/en
Application granted granted Critical
Publication of DE102009012142B4 publication Critical patent/DE102009012142B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren, das umfasst:Speichern von Daten für einen ersten Satz von Adressen in einem Universalspeicher;Speichern von Daten für einen zweiten Satz von Adressen in einem verriegelbaren Speicher;wahlweises Verriegeln des zweiten Satzes von Adressen durch Verhindern von Schreibvorgängen in den verriegelbaren Speicher; undEntriegeln des verriegelbaren Speichers vor Anfordern eines Schreibvorgangs an eine des zweiten Satzes von Adressen,wobei für Daten, die in dem verriegelbaren Speicher gespeichert werden, Fehlerkorrekturcodes berechnet werden, die in dem Universalspeicher gespeichert werden, und wobei die Fehlerkorrekturcodes fertiggestellt werden, nachdem die Daten in dem verriegelbaren Speicher gespeichert wurden und der verriegelbare Speicher wieder verriegelt wurde.A method comprising: storing data for a first set of addresses in a general-purpose memory; storing data for a second set of addresses in a lockable memory; optionally locking the second set of addresses by preventing writes to the lockable memory; andunlocking the lockable memory prior to requesting a write to one of the second set of addresses, wherein error correction codes are stored for data stored in the lockable memory and stored in the universal memory and the error correction codes are completed after the data in the lockable memory has been saved and the lockable memory has been locked again.

Description

GEBIETTERRITORY

Die vorliegende Offenbarung bezieht sich auf ein Verfahren zur Sicherung sicherheitskritischer Variablen und insbesondere auf ein Verfahren zur Sicherung sicherheitskritischer Variablen im Speicher eines Fahrzeugs.The present disclosure relates to a method for saving safety-critical variables and in particular to a method for saving safety-critical variables in the memory of a vehicle.

HINTERGRUNDBACKGROUND

Die hier gegebene Hintergrundbeschreibung dient zur allgemeinen Darstellung des Kontexts der Offenbarung.The background description given here serves to provide a general representation of the context of the disclosure.

In 1A ist ein Funktionsblockschaltplan eines Prozessorsystems gemäß dem Stand der Technik dargestellt. Ein Prozessor 100 führt Anweisungen aus und liest und speichert Daten. Die Daten können in einem Speicher 104 gespeichert werden. In verschiedenen Implementierungen kann der Prozessor 100 Anweisungen aus dem Speicher 104 oder aus einem anderen Speicher (nicht gezeigt), der einen Flash-Speicher oder einen Nur-Lese-Speicher enthalten kann, ausführen.In 1A a functional block diagram of a processor system according to the prior art is shown. A processor 100 executes instructions and reads and stores data. The data can be stored in a memory 104 get saved. In various implementations, the processor can 100 Instructions from memory 104 or from other memory (not shown), which may include flash memory or read-only memory.

Wenn der Prozessor 100 sicherheitskritische Variablen in den Speicher 104 schreibt, verwendet der Prozessor 100 ein Doppelspeichermodul 108. Sicherheitskritische Variablen können z. B. die Drosselklappenstellung enthalten. Falls der gespeicherte Wert der gewünschten Drosselklappenstellung fehlerhaft erhöht wird, kann eine Erhöhung des Drehmoments auftreten, die der Fahrer nicht erwartete. Somit speichert das Doppelspeichermodul 108 zwei Kopien der sicherheitskritischen Variablen von dem Prozessor 100 in dem Speicher 104. Diese Kopien können verglichen werden, um versehentliche Änderungen an einer oder der anderen der Kopien zu detektieren.If the processor 100 safety-critical variables in the memory 104 writes, the processor uses 100 a double memory module 108 , Safety-critical variables can e.g. B. contain the throttle valve position. If the stored value of the desired throttle valve position is incorrectly increased, an increase in torque may occur which the driver did not expect. The double memory module thus saves 108 two copies of the safety critical variables from the processor 100 in the store 104 , These copies can be compared to detect accidental changes to one or the other of the copies.

Ein Direktspeicherzugriffsmodul (DMA-Modul) 112 kommuniziert mit dem Speicher 104. In verschiedenen Implementierungen kann sich das DMA-Modul 112 an dem Bus zwischen dem Doppelspeichermodul 108 und dem Speicher 104 befinden. Das DMA-Modul 112 überträgt im Auftrag von Peripheriegeräten 116 Daten zu und von dem Speicher 104. Das DMA-Modul 112 ermöglicht Speicherübertragungen, ohne den Prozessor 100 zu belasten.A direct memory access module (DMA module) 112 communicates with the memory 104 , The DMA module can be used in various implementations 112 on the bus between the dual memory module 108 and memory 104 are located. The DMA module 112 transmits on behalf of peripheral devices 116 Data to and from memory 104 , The DMA module 112 enables memory transfers without the processor 100 to charge.

In 1B ist ein Funktionsblockschaltplan des Speichers 104 gezeigt. Das Doppelspeichermodul 108 kann Kopien der sicherheitskritischen Variablen in zwei Speicherblöcken speichern. Zum Beispiel kann eine erste Variable bei 120-1 und bei 120-2 gespeichert werden. Die Doppelspeicherung kann ebenfalls für die Variable 2, für die Variable 3 usw. ausgeführt werden.In 1B is a functional block diagram of the memory 104 shown. The double storage module 108 can store copies of the safety-critical variables in two memory blocks. For example, a first variable can be stored at 120-1 and at 120-2. Double storage can also be used for the variable 2 , for the variable 3 etc. are executed.

Wenn der Prozessor 100 einen Lesevorgang einer der sicherheitskritischen Variablen anfordert, vergleicht das Doppelspeichermodul 108 die zwei aus dem Speicher 104 gelesenen Werte. Eine Differenz zwischen den zwei Werten signalisiert eine Fehlerbedingung. Zum Beispiel kann eine Diskrepanz zwischen den Werten einer gewünschten Drosselklappenstellung veranlassen, dass der Prozessor 100 die niedrigere der zwei Drosselklappenstellungen wählt.If the processor 100 the double memory module compares a read request for one of the safety-critical variables 108 the two from memory 104 read values. A difference between the two values indicates an error condition. For example, a discrepancy between the values of a desired throttle position may cause the processor 100 selects the lower of the two throttle positions.

Die Druckschrift DE 10 2004 051 950 A1 beschreibt ein System mit einem Universalspeicher, der Daten für einen ersten Satz von Adressen enthält, und einem verriegelbaren Speicher, der Daten für einen zweiten Satz von Adressen enthält. Ferner umfasst das System eine Speichermanagementeinheit, die wahlweise Daten in den Universalspeicher oder in den verriegelbaren Speicher schreibt und die den verriegelbaren Speicher wahlweise durch Verhindern von Schreibvorgängen in den verriegelbaren Speicher verriegelt. Außerdem ist ein Prozessor vorgesehen, der die Speichermanagementeinheit vor Anfordern eines Schreibvorgangs an eine des zweiten Satzes von Adressen anweist, den verriegelbaren Speicher zu entriegeln.The publication DE 10 2004 051 950 A1 describes a system having a universal memory that contains data for a first set of addresses and a lockable memory that contains data for a second set of addresses. The system further includes a memory management unit that selectively writes data to the universal memory or to the lockable memory and that optionally locks the lockable memory by preventing write operations to the lockable memory. A processor is also provided which instructs the memory management unit to unlock the lockable memory prior to requesting a write to one of the second set of addresses.

Die Druckschrift DE 10 2005 045 399 A1 beschreibt ein Datenverarbeitungssystem mit einer getaktet arbeitenden Ausführungseinheit, einem Taktgenerator zum Liefern eines Taktsignals für die Ausführungseinheit und einer Überwachungseinheit zum Überwachen des ordnungsgemäßen Arbeitens der Ausführungseinheit.The publication DE 10 2005 045 399 A1 describes a data processing system with a clocked execution unit, a clock generator for supplying a clock signal for the execution unit and a monitoring unit for monitoring the correct functioning of the execution unit.

Die Druckschrift DE 10 2005 034 572 A1 beschreibt ein Verfahren, bei dem eine Überprüfung der Datenintegrität bei der Speicherung von Daten in einem Speicher vorgenommen wird. Dazu wird vor der Übertragung der Daten in den Speicher ein Prüfwert aus den Daten errechnet, der zusammen mit den Daten abgespeichert wird und zudem mindestens zweimal abgelegt wird.The publication DE 10 2005 034 572 A1 describes a method in which data integrity is checked when data is stored in a memory. For this purpose, a test value is calculated from the data before the data is transferred to the memory, which is stored together with the data and is also stored at least twice.

Die Druckschrift US 4 473 878 A beschreibt ein weiteres System mit einem Universalspeicher und einem verriegelbaren Speicher.The publication US 4,473,878 A describes another system with a universal memory and a lockable memory.

ZUSAMMENFASSUNGSUMMARY

Ein erfindungsgemäßes Verfahren umfasst das Speichern von Daten für einen ersten Satz von Adressen in einem Universalspeicher, das Speichern von Daten für einen zweiten Satz von Adressen in einem verriegelbaren Speicher, das wahlweise Verriegeln des zweiten Satzes von Adressen durch Verhindern von Schreibvorgängen in den verriegelbaren Speicher, und das Entriegeln des verriegelbaren Speichers vor Anfordern eines Schreibvorgangs an eine des zweiten Satzes von Adressen. Für Daten, die in dem verriegelbaren Speicher gespeichert werden, werden Fehlerkorrekturcodes berechnet, die in dem Universalspeicher gespeichert werden. Die Fehlerkorrekturcodes werden fertiggestellt, nachdem die Daten in dem verriegelbaren Speicher gespeichert wurden und der verriegelbare Speicher wieder verriegelt wurde.A method according to the invention comprises storing data for a first set of addresses in a universal memory, storing data for a second set of addresses in a lockable memory, optionally locking the second set of addresses by preventing write operations into the lockable memory, and unlocking the lockable memory before requesting a write to one of the second set of addresses. For data, that are stored in the lockable memory are calculated error correction codes that are stored in the universal memory. The error correction codes are completed after the data has been stored in the lockable memory and the lockable memory has been locked again.

Figurenlistelist of figures

Die vorliegende Offenbarung wird umfassender aus der ausführlichen Beschreibung und aus den beigefügten Zeichnungen verständlich, in denen:

  • 1A ein Funktionsblockschaltplan eines Prozessorsystems gemäß dem Stand der Technik ist;
  • 1B ein Funktionsblockschaltplan des Speichers aus 1A gemäß dem Stand der Technik ist;
  • 2A ein Funktionsblockschaltplan eines beispielhaften Prozessorsystems gemäß den Prinzipien der vorliegenden Offenbarung ist;
  • 2B eine beispielhafte Anordnung des verriegelbaren Speichers aus 2A gemäß den Prinzipien der vorliegenden Offenbarung ist;
  • 3A-3B Funktionsblockschaltpläne weiterer beispielhafter Prozessorsysteme gemäß den Prinzipien der Offenbarung sind; und
  • 4 ein Ablaufplan ist, der einen beispielhaften Betrieb des Prozessorsystems aus 2A gemäß den Prinzipien der vorliegenden Offenbarung zeigt.
The present disclosure will become more fully understood from the detailed description and the accompanying drawings, in which:
  • 1A Figure 3 is a functional block diagram of a processor system according to the prior art;
  • 1B a functional block diagram of the memory 1A according to the state of the art;
  • 2A FIG. 4 is a functional block diagram of an exemplary processor system in accordance with the principles of the present disclosure;
  • 2 B an exemplary arrangement of the lockable memory 2A in accordance with the principles of the present disclosure;
  • 3A-3B Functional block diagrams of further exemplary processor systems according to the principles of the disclosure; and
  • 4 is a flowchart that shows exemplary operation of the processor system 2A according to the principles of the present disclosure.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Die folgende Beschreibung ist dem Wesen nach lediglich beispielhaft. Der Klarheit halber sind in den Zeichnungen zum Identifizieren ähnlicher Elemente dieselben Bezugszeichen verwendet. Wie der Ausdruck wenigstens eines von A, B und C hier verwendet wird, soll er ein logisches (A oder B oder C) unter Verwendung eines nichtausschließenden Oder bedeuten. Es ist festzustellen, dass Schritte innerhalb eines Verfahrens in anderer Reihenfolge ausgeführt werden können, ohne die Prinzipien der vorliegenden Offenbarung zu ändern.The following description is merely exemplary in nature. For purposes of clarity, the same reference numbers are used in the drawings to identify similar elements. As the term at least one of A, B and C is used herein, it is intended to mean a logical (A or B or C) using a non-exclusive or. It should be appreciated that steps within a method can be performed in a different order without changing the principles of the present disclosure.

Wie der Begriff Modul hier verwendet wird, bezieht er sich auf eine anwendungsspezifische integrierte Schaltung (ASIC), auf eine elektronische Schaltung, auf einen Prozessor (gemeinsam genutzt, dediziert oder Gruppe) und auf Speicher, die eines oder mehrere Software- oder Firmwareprogramme ausführen, auf eine Kombinationslogikschaltung und/oder auf andere geeignete Komponenten, die die beschriebene Funktionalität bereitstellen.As used herein, the term module refers to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group), and memory that executes one or more software or firmware programs, a combination logic circuit and / or other suitable components that provide the functionality described.

In 2A ist ein Funktionsblockschaltplan eines beispielhaften Prozessorsystems gemäß den Prinzipien der vorliegenden Offenbarung dargestellt. Ein Prozessor 200 speichert Daten innerhalb eines verriegelbaren Speichers 202 und eines Universalspeichers 204 eines Speichermoduls 206. Auf den verriegelbaren Speicher und auf den Universalspeicher 202 und 204 wird durch eine Speichermanagementeinheit (MMU) 208 zugegriffen. Bis ein besonderes Ereignis wie etwa ein durch die MMU 208 empfangener Entriegelungsbefehl auftritt, kann der Zugriff auf Adressen innerhalb des verriegelbaren Speichers 202 verhindert werden.In 2A A functional block diagram of an exemplary processor system according to the principles of the present disclosure is presented. A processor 200 stores data within a lockable memory 202 and a universal storage 204 of a memory module 206 , On the lockable memory and on the universal memory 202 and 204 is managed by a memory management unit (MMU) 208 accessed. Until a special event such as one by the MMU 208 received unlock command occurs, access to addresses within the lockable memory 202 be prevented.

In verschiedenen Implementierungen können der verriegelbare Speicher und der Universalspeicher 202 und 204 als ein einzelner gemeinsamer Speicher implementiert sein. Die MMU 208 kann einen Abschnitt (wie etwa einen Bereich von Adressen) des gemeinsamen Speichers definieren, um als der verriegelbare Speicher 202 zu dienen. Daraufhin kann der Rest des gemeinsamen Speichers als der Universalspeicher 204 dienen.Lockable memory and universal memory can be used in different implementations 202 and 204 be implemented as a single shared memory. The MMU 208 may define a portion (such as a range of addresses) of the shared memory to be the lockable memory 202 to serve. Then the rest of the shared memory can be used as the universal memory 204 serve.

Ein Direktspeicherzugriffsmodul (DMA-Modul) 212 kommuniziert mit dem verriegelbaren Speicher und mit dem Universalspeicher 202 und 204. Das DMA-Modul 212 ermöglicht die Datenübertragung zu und von Peripheriegeräten 214, ohne den Betrieb des Prozessors 200 zu erfordern. Da das DMA-Modul 212 direkt mit dem verriegelbaren Speicher und mit dem Universalspeicher 202 und 204 in Wechselwirkung steht, kann der verriegelbare Speicher 202 nicht vor Schreibvorgängen durch das DMA-Modul 212 geschützt werden.A direct memory access module (DMA module) 212 communicates with the lockable memory and with the universal memory 202 and 204 , The DMA module 212 enables data transfer to and from peripheral devices 214 , without operating the processor 200 to require. Because the DMA module 212 directly with the lockable memory and with the universal memory 202 and 204 interacts, the lockable memory 202 not before writes by the DMA module 212 to be protected.

Um diese Anfälligkeit abzuschwächen, kann durch den Prozessor 200 ein DMA-Diagnosemodul 220 betätigt werden. Das DMA-Diagnosemodul 220 überprüft den richtigen Betrieb des DMA-Moduls 212. Zum Beispiel kann das DMA-Diagnosemodul 220 das DMA-Modul 212 anweisen, Daten an einen spezifischen Ort in dem verriegelbaren Speicher 202 und/oder in dem Universalspeicher 204 zu schreiben. Dieser spezifische Ort kann daraufhin durch den Prozessor 200 gelesen werden, um zu überprüfen, dass das DMA-Modul 212 an die richtige Adresse schreibt. Der Betrieb des DMA-Diagnosemoduls 220 kann z. B. beim Hochfahren, in periodischen Intervallen oder in irgendeiner anderen durch den Prozessor 200 spezifizierten Zeit initiiert werden.To mitigate this vulnerability, the processor can 200 a DMA diagnostic module 220 be operated. The DMA diagnostic module 220 checks the correct operation of the DMA module 212 , For example, the DMA diagnostic module 220 the DMA module 212 instruct data to a specific location in the lockable memory 202 and / or in the universal memory 204 to write. This specific location can then be accessed by the processor 200 read to verify that the DMA module 212 write to the right address. Operation of the DMA diagnostic module 220 can e.g. B. when starting up, at periodic intervals or in any other by the processor 200 specified time can be initiated.

Die durch den Prozessor 200 in den verriegelbaren Speicher und in den Universalspeicher 202 und 204 geschriebenen Daten können durch ein Fehlerkorrekturcodemodul (ECC-Modul) 230 geschützt werden. Das ECC-Modul 230 kann zu von dem Prozessor 200 empfangenen Daten einen ECC-Code wie etwa eine Prüfsumme oder ein Paritätsbit hinzufügen. Außerdem kann das ECC-Modul 230 Daten von dem Prozessor 200 unter Verwendung eines ECC-Prozesses wie etwa einer Reed-Solomon-Codierung codieren. Wenn Daten zurückgelesen werden, kann das ECC-Modul 230 prüfen, dass keine Fehler eingeführt worden sind, und möglicherweise einige oder alle der detektierten Fehler korrigieren.By the processor 200 in the lockable memory and in the universal memory 202 and 204 Written data can be saved by an error correction code module (ECC module) 230 to be protected. The ECC module 230 may be from the processor 200 add an ECC code such as a checksum or a parity bit to received data. In addition, the ECC module 230 Data from the processor 200 encode using an ECC process such as Reed-Solomon coding. If data is read back, the ECC module can 230 check that no errors have been introduced and possibly correct some or all of the detected errors.

Das ECC-Modul 230 kann alle durch den Prozessor 200 geschriebenen Werte oder ausgewählte Werte wie etwa sicherheitskritische Variablen bearbeiten. Durch das ECC-Modul 230 bestimmte Prüfsummen oder andere Werte werden in den Universalspeicher 204 geschrieben. Dadurch, dass sie in den Universalspeicher geschrieben werden, kann der verriegelbare Speicher 202 wieder verriegelt werden, während die Prüfsumme noch berechnet wird. Dies minimiert die Zeitdauer, die der verriegelbare Speicher 202 entriegelt bleibt.The ECC module 230 can all through the processor 200 edit written values or selected values such as safety-critical variables. Through the ECC module 230 certain checksums or other values are stored in the universal memory 204 written. Because they are written to the universal memory, the lockable memory can 202 locked again while the checksum is still being calculated. This minimizes the amount of time that the lockable memory 202 remains unlocked.

Variable wie etwa sicherheitskritische Variable können ebenfalls durch ein transponierendes Doppelspeichermodul 240 geschützt werden. Das transponierende Doppelspeichermodul 240 kann zwei Kopien jeder Variablen in den verriegelbaren Speicher 202 und/oder in den Universalspeicher 204 schreiben. Nur beispielhaft kann das transponierende Doppelspeichermodul 240 eine Kopie der Variablen in den verriegelbaren Speicher 202 und die andere Kopie in den Universalspeicher 204 schreiben.Variables such as safety-critical variables can also be transposed by a double storage module 240 to be protected. The transposing double storage module 240 can have two copies of each variable in the lockable memory 202 and / or in the universal memory 204 write. The transposing double storage module can only be used as an example 240 a copy of the variables in lockable memory 202 and the other copy to universal storage 204 write.

Das Schreiben in den verriegelbaren Speicher 202 kann zunächst erfordern, dass ein Entriegelungsbefehl an die MMU 208 gesendet wird. Um zu verhindern, dass andere Routinen auf den verriegelbaren Speicher 202 zugreifen, während er entriegelt ist, können Unterbrechungen gesperrt werden, während der verriegelbare Speicher 202 entriegelt ist.Writing to lockable memory 202 may initially require an unlock command to the MMU 208 is sent. To prevent other routines from entering the lockable memory 202 access while it is unlocked, interruptions can be locked while the lockable memory 202 is unlocked.

Das transponierende Doppelspeichermodul 240 kann eine Kopie einer Variablen an den Beginn eines Speicherblocks schreiben und kann eine weitere Kopie dieser selben Variablen an das Ende eines anderen Speicherblocks schreiben. Nur beispielhaft können die Kopien der Variablen völlig gleich sein oder Varianten voneinander sein. Nur beispielhaft können die zwei Kopien die Einer- oder Zweierkomplemente voneinander sein. Diese Kopien können als Doppelwerte oder Doppel voneinander bezeichnet werden.The transposing double storage module 240 can write a copy of a variable to the beginning of one memory block and can write another copy of this same variable to the end of another memory block. As an example only, the copies of the variables can be completely the same or variants of one another. By way of example only, the two copies can be the one's or two's complement of one another. These copies can be referred to as double values or double from each other.

In 2B ist eine beispielhafte Anordnung des verriegelbaren Speichers 202 gezeigt. Der für die erste Variable geschriebene Datenwert kann an den Ort 250-1 geschrieben werden, während das Doppel dieses Werts an den Ort 250-2 geschrieben werden kann. Zum Beispiel kann das Doppel das Einerkomplement oder das Zweierkomplement sein. Die Variable 2 kann an den Ort 250-3, benachbart zu der Variable 1, geschrieben werden, während das Doppel der Variablen 2 an den Ort 250-4, benachbart zu dem Doppel der Variablen 1, geschrieben werden kann.In 2 B Figure 4 is an exemplary arrangement of the lockable memory 202 shown. The data value written for the first variable can be stored there 250-1 be written while double this value in place 250-2 can be written. For example, the double can be one's complement or two's complement. The variable 2 can to the place 250 - 3 , adjacent to the variable 1 , be written while double the variables 2 to the place 250 - 4 , adjacent to the double of the variables 1 , can be written.

Während eines Lesevorgangs überprüft das transponierende Doppelspeichermodul 240, dass der gespeicherte Wert und sein gespeichertes Doppel äquivalent sind. Wenn sie es nicht sind, kann der Prozessor 200 eine Abhilfemaßnahme ergreifen. Eine Abhilfemaßnahme kann ebenfalls ergriffen werden, wenn das ECC-Modul 230 einen Fehler identifiziert, selbst wenn dieser Fehler durch das ECC-Modul 230 korrigiert worden ist.The transposing double memory module checks during a read process 240 that the stored value and its stored double are equivalent. If they are not, the processor can 200 to take remedial action. Remedial action can also be taken if the ECC module 230 identified an error even if this error is caused by the ECC module 230 has been corrected.

Die Abhilfemaßnahme kann z. B. die Verwendung eines Standardwerts für die Variable, die verfälscht worden zu sein scheint, enthalten. Außerdem kann die Abhilfemaßnahme das Einstellen eines Motorcodes oder Fehlercodes und das Leuchtenlassen einer Störungsanzeigelampe wie etwa einer Prüfe-Motor-Lampe enthalten. Außerdem kann die Abhilfemaßnahme den Versuch zur Neuberechnung der Variablen enthalten.The remedy can e.g. For example, use a default value for the variable that appears to have been tampered with. In addition, the remedial action may include setting an engine code or trouble code and lighting a fault indicator lamp such as a test engine lamp. The remedial action can also include trying to recalculate the variables.

Einschränkendere Abhilfemaßnahmen können das Herunterfahren des Motors oder das Sperren der Drosselsteuerung, was ermöglichen kann, dass ein Drosselklappenwert in eine Standardstellung wie etwa in eine Höchstdrehzahlstellung im Leerlauf zurückkehrt, enthalten. Außerdem kann die Abhilfemaßnahme das Einstellen der Drosselklappe auf eine vorgegebene Leerlaufstellung enthalten, die kleiner als die Höchstdrehzahl im Leerlauf ist. Außerdem kann die Abhilfemaßnahme das Einstellen eines Maximalgrenzwerts für das Öffnen der Drosselklappe enthalten. Außerdem kann die Abhilfemaßnahme das Begrenzen der durch den Motor erzeugten Beschleunigung und/oder Leistung wie etwa durch Begrenzen der Drehmomentanforderungen auf einen Maximalwert enthalten. Falls ein Fehler bestehen bleibt oder wiederkehrt, kann der Prozessor 100 von einer weniger starken zu einer stärkeren Abhilfemaßnahme erhöhen.More restrictive remedies may include shutting down the engine or locking throttle control, which may allow a throttle valve value to return to a standard position, such as an idle maximum speed position. The remedial action may also include setting the throttle valve to a predetermined idle position that is less than the maximum idle speed. The remedial action may include setting a maximum throttle opening limit. In addition, the remedial action may include limiting the acceleration and / or power generated by the engine, such as by limiting the torque requirements to a maximum value. If an error persists or recurs, the processor can 100 from a less severe to a stronger remedial action.

In 3A-3B sind Funktionsblockschaltpläne weiterer beispielhafter Prozessorsysteme gemäß den Prinzipien der Offenbarung dargestellt, wobei das in 3A gezeigte Prozessorsystem kein Ausführungsbeispiel der Erfindung darstellt. In 3A ist die MMU 208 abwesend, sodass der verriegelbare Speicher innerhalb eines Speichermoduls 300 nicht definiert worden ist. Sicherheitskritische Variablen werden innerhalb eines Universalspeichers 302 weiter durch das ECC-Modul 230 und durch das transponierende Doppelspeichermodul 240 geschützt. Außerdem wird der Betrieb des DMA-Moduls 212 durch Nutzung des DMA-Diagnosemoduls 220 überprüft.In 3A-3B Functional block diagrams of further exemplary processor systems according to the principles of the disclosure are shown, wherein the in 3A processor system shown does not represent an embodiment of the invention. In 3A is the MMU 208 absent, so the lockable memory within a memory module 300 has not been defined. Safety-critical variables are stored in a universal memory 302 further through the ECC module 230 and through the transposing double storage module 240 protected. It also runs the DMA module 212 by using the DMA diagnostic module 220 checked.

In 3B befindet sich eine Speichermanagementeinheit (MMU) 304 zwischen dem verriegelbaren Speicher und dem Universalspeicher 202 und 204 und dem DMA-Modul 212. Die MMU 304 kann dann den verriegelbaren Speicher 202 vor fehlerhaften Schreibvorgängen durch das DMA-Modul 212 schützen. In verschiedenen Implementierungen können versuchte Schreibvorgänge in den verriegelbaren Speicher 202 von dem DMA-Modul 212 durch die MMU 304 vollständig gesperrt werden. Alternativ können Schreibvorgänge in den verriegelbaren Speicher 202 zugelassen werden, wenn der verriegelbare Speicher 202 entriegelt ist.In 3B there is a memory management unit (MMU) 304 between the lockable memory and the universal memory 202 and 204 and the DMA module 212 , The MMU 304 can then lock the memory 202 before incorrect write operations by the DMA module 212 protect. In various implementations, attempted writes can be made to lockable memory 202 from the DMA module 212 by the MMU 304 be completely blocked. Alternatively, writes can be made to the lockable memory 202 be allowed if the lockable memory 202 is unlocked.

Alternativ kann die MMU 304 einen Entriegelungsbefehl von dem DMA-Modul 212 erfordern, bevor sie Schreibvorgänge in den verriegelbaren Speicher 202 zulässt. In verschiedenen Implementierungen kann eine reservierte Adresse als ein Signal zu der MMU 304, dass ein zulässiger Schreibvorgang in den verriegelbaren Speicher 202 erwünscht ist, verwendet werden. Zum Beispiel kann eines der Peripheriegeräte 214, das eine zulässige Notwendigkeit zum Schreiben in den verriegelbaren Speicher 202 besitzt, zunächst einen Scheinzugriff auf die reservierte Adresse ausführen. Die MMU 304 kann daraufhin den nachfolgenden Schreibvorgang in den verriegelbaren Speicher 202 zulassen.Alternatively, the MMU 304 an unlock command from the DMA module 212 require before writing to lockable memory 202 allows. In various implementations, a reserved address can be sent as a signal to the MMU 304 that an allowable write to the lockable memory 202 is desired to be used. For example, one of the peripheral devices 214 which is a legitimate need to write to lockable memory 202 has a fictitious access to the reserved address. The MMU 304 can then write the subsequent write to the lockable memory 202 allow.

In 4 zeigt ein Ablaufplan den beispielhaften Betrieb eines Prozessorsystems wie etwa des in 2A gezeigten. Die Steuerung beginnt in Schritt 402, in dem ein verriegelbarer Bereich des Speichers verriegelt wird. In verschiedenen Implementierungen kann der verriegelbare Bereich des Speichers standardmäßig verriegelt sein. Die Steuerung wird in Schritt 404 fortgesetzt, in dem DMA-Diagnosen ausgeführt werden.In 4 shows a flowchart of exemplary operation of a processor system such as that in FIG 2A . shown Control begins in step 402 in which a lockable area of the memory is locked. In various implementations, the lockable area of memory can be locked by default. The control is in step 404 continued by running DMA diagnostics.

Die DMA-Diagnosen können einmal pro Schlüsselzyklus ausgeführt werden. Zum Beispiel kann eine DMA-Diagnose dadurch ausgeführt werden, dass eine DMA-Übertragung eines bekannten Werts an einen vorgegebenen Ort des Speichers angewiesen wird. Der vorgegebene Ort kann sich innerhalb des verriegelbaren Bereichs oder eines Universalbereichs des Speichers befinden. Alternativ können Übertragungen sowohl in den verriegelbaren Abschnitt als auch in den Universalabschnitt initiiert werden.The DMA diagnostics can be run once per key cycle. For example, DMA diagnosis can be performed by instructing DMA transfer of a known value to a predetermined location of the memory. The predetermined location can be within the lockable area or a universal area of the memory. Alternatively, transmissions can be initiated into both the lockable section and the universal section.

Daraufhin kann der vorgegebene Ort gelesen und mit dem bekannten Wert verglichen werden, um die Integrität des DMA-Prozesses zu überprüfen. Eine Störung während der DMA-Übertragung oder ein Fehler beim Vergleich des gelesenen Werts mit dem bekannten Wert kann dazu führen, dass ein Fehlercode wie etwa ein Code P0606 eingestellt wird. Nachdem der Fehlercode eingestellt worden ist, kann eine weitere Abhilfemaßnahme ausgeführt werden.The predetermined location can then be read and compared to the known value to check the integrity of the DMA process. A disturbance during the DMA transfer or an error in comparing the read value with the known value can lead to the setting of an error code such as a code P0606. After the error code has been set, another remedial action can be taken.

Die Steuerung wird in Schritt 406 fortgesetzt, in dem die Steuerung bestimmt, ob ohne die richtige Berechtigung ein Schreibvorgang auf den verriegelbaren Bereich angefordert worden ist. Wenn das der Fall ist, geht die Steuerung zu Schritt 408 über; andernfalls geht die Steuerung zu Schritt 410 über. Die richtige Berechtigung kann dadurch bestimmt werden, ob der Schreibvorgang durch eine Standardschreibroutine oder durch eine verriegelbare Schreibroutine initiiert wurde. Die Standardschreibroutine hätte nicht die Berechtigung zum Ändern des verriegelbaren Speichers. The control is in step 406 continued, in which the controller determines whether a write to the lockable area has been requested without the correct authorization. If so, control transfers to step 408 about; otherwise control goes to step 410 about. The correct authorization can be determined by whether the write process was initiated by a standard write routine or by a lockable write routine. The standard write routine would not have permission to change lockable memory.

In Schritt 408 kann die Zieladresse des Schreibvorgangs zu Diagnosezwecken aufgezeichnet werden. Da der Schreibvorgang nicht berechtigt war, werden keine Daten an die Zieladresse geschrieben. Die Steuerung wird in Schritt 412 fortgesetzt, in dem ein Zähler inkrementiert wird. Beim Motorstart kann der Zähler auf null zurückgesetzt werden. Daraufhin wird die Steuerung in Schritt 414 fortgesetzt, in dem die Steuerung bestimmt, ob der Zähler größer als ein Schwellenwert ist. Wenn das der Fall ist, wird die Steuerung an Schritt 416 übertragen; andernfalls kehrt die Steuerung zu Schritt 406 zurück.In step 408 the destination address of the write process can be recorded for diagnostic purposes. Since the write process was not authorized, no data is written to the target address. The control is in step 412 continues by incrementing a counter. The counter can be reset to zero when the engine is started. Then the control in step 414 where control determines whether the counter is greater than a threshold. If so, control continues to step 416 transfer; otherwise control returns to step 406 back.

In Schritt 416 wird ein Fehlercode eingestellt. Zum Beispiel kann ein Code P0604 eingestellt werden. Wenn ein Fehlercode eingestellt wird, kann eine Störungsanzeigelampe leuchtengelassen werden. Außerdem können andere Abhilfemaßnahmen ausgeführt werden. In verschiedenen Implementierungen kann die ausgeführte Abhilfemaßnahme auf dem Wert des Zählers beruhen. Während der Wert des Zählers zunimmt, kann die Stärke der Abhilfemaßnahme zunehmen.In step 416 an error code is set. For example, a code P0604 can be set. If an error code is set, a malfunction indicator lamp can be lit. Other remedial actions can also be taken. In various implementations, the remedial action taken may be based on the value of the counter. As the value of the counter increases, the strength of the remedial action can increase.

In Schritt 410 bestimmt die Steuerung, ob ein berechtigter Schreibvorgang in einem verriegelbaren Bereich erwünscht ist. Wenn das der Fall ist, wird die Steuerung an Schritt 418 übertragen; andernfalls wird die Steuerung an Schritt 420 übertragen. In Schritt 418 liest die Steuerung die Variable aus dem verriegelbaren Bereich des Speichers. Die Steuerung wird in Schritt 422 fortgesetzt, in dem die Steuerung die verriegelte Variable mit einer Doppelspeichervariablen und/oder mit einer Prüfsumme überprüft. In verschiedenen Implementierungen können entweder Doppelspeichervariablen oder Prüfsummen weggelassen sein. Eine einzelne Prüfsumme kann sowohl die verriegelte Variable als auch die Doppelspeichervariable erfassen. Alternativ können die verriegelte Variable und die Doppelspeichervariable durch verschiedene Prüfsummen erfasst werden.In step 410 The controller determines whether an authorized write in a lockable area is desired. If so, control continues to step 418 transfer; otherwise the controller will step on 420 transfer. In step 418 the controller reads the variable from the lockable area of the memory. The control is in step 422 continued by the control checking the locked variable with a double memory variable and / or with a checksum. In various implementations, either double memory variables or checksums can be omitted. A single checksum can capture both the locked variable and the double memory variable. Alternatively, the locked variable and the double memory variable can be recorded by different checksums.

Die Doppelspeichervariable kann sich in dem verriegelbaren Bereich des Speichers oder dem Universalspeicher befinden. Die Prüfsumme befindet sich im Universalspeicher. Die Prüfsumme kann einen Abschnitt des verriegelbaren Speichers erfassen, der die verriegelte Variable und andere verriegelte Variablen enthält. Es kann ein Prüfsummenwert berechnet und mit der gespeicherten Prüfsumme verglichen werden.The double memory variable can be located in the lockable area of the memory or in the universal memory. The checksum is in the universal memory. The checksum may capture a portion of the lockable memory that contains the locked variable and other locked variables. It can be a checksum value calculated and compared with the stored checksum.

Eine Diskrepanz zwischen der berechneten Prüfsumme und der gespeicherten Prüfsumme kann angeben, dass die verriegelte Variable, die Prüfsumme oder die andere durch die Prüfsumme erfasste Variable verfälscht worden ist. Außerdem kann die Prüfsummenberechnung fehlerhaft sein. Falls die verriegelte Variable unvereinbar mit der Doppelspeichervariable ist oder der Prüfsummenvergleich fehlschlägt, schlägt der Schreibvorgang fehl und wird die Steuerung an Schritt 424 übertragen. Alternativ (nicht gezeigt) kann der Schreibvorgang weiter ausgeführt werden, wonach die Steuerung an den Schritt 424 übertragen wird.A discrepancy between the calculated checksum and the stored checksum can indicate that the locked variable, the checksum or the other variable detected by the checksum has been corrupted. In addition, the checksum calculation can be incorrect. If the locked variable is incompatible with the double memory variable or if the checksum comparison fails, the write process fails and the controller goes to step 424 transfer. Alternatively (not shown), the writing process can continue, after which control passes to the step 424 is transmitted.

Falls die verriegelte Variable mit der Doppelspeichervariable vereinbar und die Prüfsumme richtig ist, wird die Steuerung an Schritt 426 übertragen. In Schritt 426 kann der in die verriegelte Variable zu schreibende Wert ratenbegrenzt und/oder größenbegrenzt werden. Zum Beispiel kann jeder Änderung des Werts der verriegelten Variablen eine Obergrenze auferlegt werden. Außerdem kann ein Maximalwert der verriegelten Variablen definiert werden.If the locked variable is compatible with the double memory variable and the checksum is correct, the control goes to step 426 transfer. In step 426 the value to be written into the locked variable can be rate-limited and / or size-limited. For example, any change in the value of the locked variable can be subject to an upper limit. A maximum value of the locked variables can also be defined.

Die Steuerung wird in Schritt 428 fortgesetzt, in dem die Steuerung Unterbrechungen sperrt und den verriegelbaren Bereich des Speichers entriegelt. Während der verriegelbare Speicher entriegelt ist, wodurch der verriegelbare Speicher für andere Funktionen freiliegt, werden die Unterbrechungen gesperrt, sodass Unterbrechungen nicht bedient werden können. Die Steuerung wird in Schritt 430 fortgesetzt, in dem der Schreibwert, der in Schritt 426 begrenzt worden sein kann, in der verriegelten Variablen gespeichert wird.The control is in step 428. continued, in which the controller blocks interruptions and unlocks the lockable area of the memory. While the lockable memory is unlocked, thereby exposing the lockable memory to other functions, the interruptions are blocked so that interruptions cannot be operated. The control is in step 430 continued in which the spelling value in step 426 may have been limited in which locked variables are stored.

Falls die Doppelspeichervariable im verriegelbaren Speicher gespeichert wird, kann die Doppelspeichervariable ebenfalls aktualisiert werden. In verschiedenen Implementierungen kann die Doppelspeichervariable das Einerkomplement der verriegelten Variablen sein. Die Steuerung wird in Schritt 432 fortgesetzt, in dem die Steuerung den verriegelbaren Speicher verriegelt und Unterbrechungen wieder freigibt.If the double memory variable is stored in the lockable memory, the double memory variable can also be updated. In various implementations, the double memory variable can be the one's complement of the locked variable. The control is in step 432 continued, in which the controller locks the lockable memory and releases interruptions.

Die Steuerung wird in Schritt 434 fortgesetzt, in dem die Steuerung die Prüfsumme aktualisiert. In verschiedenen Implementierungen kann die Prüfsumme durch Inkrementieren der früheren Prüfsumme auf der Grundlage des gespeicherten Schreibwerts aktualisiert werden. Alternativ kann die Prüfsumme aus allen Variablen innerhalb des Abschnitts des Speichers, den die Prüfsumme erfasst, neu berechnet werden. Daraufhin kehrt die Steuerung zu Schritt 406 zurück.The control is in step 434 in which the controller updates the checksum. In various implementations, the checksum can be updated by incrementing the previous checksum based on the stored write value. Alternatively, the checksum can be recalculated from all variables within the section of memory that the checksum captures. The controller then returns to step 406 back.

In Schritt 420 bestimmt die Steuerung, ob ein zugelassener Lesevorgang von einem verriegelbaren Speicherbereich angefordert wird. Wenn das der Fall ist, wird die Steuerung an Schritt 450 übertragen, andernfalls wird die Steuerung an Schritt 452 übertragen. In verschiedenen Implementierungen kann ein Lesevorgang aus dem verriegelten Speicher über dieselbe Routine wie ein Lesevorgang in irgendeinen anderen Bereich des Speichers initiiert werden. Ferner kann zugelassen werden, dass irgendein Prozess Werte aus dem verriegelbaren Bereich des Speichers liest.In step 420 The controller determines whether an approved read is requested from a lockable memory area. If so, control continues to step 450 otherwise control is transferred to step 452 transfer. In various implementations, a read from locked memory can be initiated through the same routine as a read to any other area of memory. Furthermore, any process can be allowed to read values from the lockable area of memory.

In Schritt 450 wird die durch die Leseanforderung identifizierte verriegelte Variable gelesen. Die Steuerung wird in Schritt 454 fortgesetzt, in dem die Steuerung überprüft, dass die verriegelte Variable mit der gespeicherten Doppelvariablen und/oder mit der Prüfsumme vereinbar ist. Wenn das der Fall ist, wird die Steuerung an Schritt 456 übertragen; andernfalls wird die Steuerung an Schritt 458 übertragen. In Schritt 456 gibt die Steuerung den Wert von der verriegelten Variablen zurück und wird in Schritt 452 fortgesetzt.In step 450 the locked variable identified by the read request is read. The control is in step 454 continued, in which the controller checks that the locked variable is compatible with the stored double variable and / or with the checksum. If so, control continues to step 456 transfer; otherwise the controller will step on 458 transfer. In step 456 the controller returns the value of the locked variable and is in step 452 continued.

In Schritt 458 gibt die Steuerung einen Standardwert zurück. Dieser Standardwert kann im verriegelbaren Speicher oder im Universalspeicher gespeichert werden. Alternativ kann der Standardwert durch die Funktion geliefert werden, die den Lesevorgang aus dem verriegelbaren Bereich anfordert. Auf diese Weise spezifiziert die Funktion den Wert, den sie verwenden wird, wenn der Schreibvorgang fehlschlägt.In step 458 the controller returns a default value. This default value can be stored in lockable memory or in universal memory. Alternatively, the default value can be provided by the function that requests the read operation from the lockable area. In this way, the function specifies the value it will use if the write fails.

Daraufhin wird die Steuerung in Schritt 424 fortgesetzt. Falls der Lese- oder Schreibausfall in Schritt 424 das Ergebnis eines Prüfsummenfehlers ist, wird die Steuerung an Schritt 470 übertragen; andernfalls wird die Steuerung an Schritt 472 übertragen. In Schritt 470 berechnet die Steuerung eine Prüfsumme neu und wird in Schritt 474 fortgesetzt. In Schritt 474 vergleicht die Steuerung die neu berechnete Prüfsumme mit der gespeicherten Prüfsumme. Falls sie gleich sind, wird die Steuerung an Schritt 472 übertragen; andernfalls wird die Steuerung an Schritt 476 übertragen. Falls die neue Prüfsumme gleich der gespeicherten Prüfsumme ist, wurde die in Schritt 422 oder 454 berechnete Prüfsumme offensichtlich falsch berechnet.Then the control in step 424 continued. If the read or write failure in step 424 is the result of a checksum error, control passes to step 470 transfer; otherwise the controller will step on 472 transfer. In step 470 the controller recalculates a checksum and is in step 474 continued. In step 474 the controller compares the newly calculated checksum with the saved checksum. If they are the same, control goes to step 472 transfer; otherwise the controller will step on 476 transfer. If the new checksum is equal to the saved checksum, it was in step 422 or 454 The calculated checksum is obviously incorrectly calculated.

In Schritt 476 stimmen sowohl die neu berechnete Prüfsumme als auch die berechnete Prüfsumme aus Schritt 422 oder 454 nicht mit der gespeicherten Prüfsumme überein. Somit kann die gespeicherte Prüfsumme ersetzt werden. In verschiedenen Implementierungen kann die Prüfsumme ersetzt werden, wenn die neu berechnete Prüfsumme an die berechnete Prüfsumme angepasst ist. Falls diese Prüfsummen nicht gleich sind, kann eine Abhilfemaßnahme ausgeführt werden. Daraufhin wird die Steuerung in Schritt 472 fortgesetzt.In step 476 both the newly calculated checksum and the calculated checksum from step are correct 422 or 454 does not match the saved checksum. The saved checksum can thus be replaced. In various implementations, the checksum can be replaced if the newly calculated checksum is adapted to the calculated checksum. If these checksums are not the same, remedial action can be taken. Then the control in step 472 continued.

In Schritt 472 erhöht die Steuerung den Wert eines Rückwärtszählzeitgebers. Der Rückwärtszählzeitgeber kann periodisch abnehmen. Somit kann der Rückwärtszählzeitgeber null erreichen, falls der Rückwärtszählzeitgeber für eine Zeitdauer nicht erhöht worden ist. Falls der Rückwärtszählzeitgeber häufiger erhöht wird, steigt der Wert in dem Rückwärtszählzeitgeber dagegen an. Die Steuerung wird in Schritt 478 fortgesetzt, in dem die Steuerung bestimmt, ob der Wert des Rückwärtszählzeitgebers größer als ein Schwellenwert ist. Wenn das der Fall ist, wird die Steuerung an Schritt 480 übertragen; andernfalls kehrt die Steuerung zu Schritt 406 zurück. In Schritt 480 führt die Steuerung eine Abhilfemaßnahme aus. In verschiedenen Implementierungen kann die Abhilfemaßnahme das Abschalten des Motors sein, wonach die Steuerung endet.In step 472 the controller increments the value of a countdown timer. The countdown timer can periodically decrease. Thus, the countdown timer can reach zero if the countdown timer has not been incremented for a period of time. On the other hand, if the countdown timer is increased more often, the value in the countdown timer increases. The control is in step 478 in which control determines whether the countdown timer value is greater than a threshold. If so, control continues to step 480 transfer; otherwise control returns to step 406 back. In step 480 the control performs a remedial action. In various implementations, the remedial action may be to shut down the engine, after which control ends.

In Schritt 452 bestimmt die Steuerung, ob eine Prüfung des verriegelbaren Bereichs durchgeführt werden sollte. Wenn das der Fall ist, wird die Steuerung an Schritt 482 übertragen; andernfalls kehrt die Steuerung zu Schritt 406 zurück. Nur beispielhaft kann die Prüfung in periodischen Intervallen ausgeführt werden. In Schritt 482 versucht die Steuerung, in einen Bereich im verriegelbaren Speicher zu schreiben. In Schritt 484 wird die Steuerung fortgesetzt, wobei die Steuerung bestimmt, ob der versuchte Schreibvorgang als unberechtigt detektiert wurde. Wenn das der Fall ist, kehrt die Steuerung zu Schritt 406 zurück; andernfalls wird die Steuerung an Schritt 486 übertragen. In Schritt 486 kann ein Fehlercode eingestellt werden. Außerdem kann eine andere Abhilfemaßnahme ausgeführt werden. Daraufhin kehrt die Steuerung zu Schritt 406 zurück.In step 452 the controller determines whether a lockable area check should be performed. If so, control continues to step 482 transfer; otherwise control returns to step 406 back. The test can only be carried out at periodic intervals as an example. In step 482 the controller tries to write to an area in lockable memory. In step 484 control continues, with the controller determining whether the attempted write operation was detected as unauthorized. If so, control returns to step 406 back; otherwise the controller will step on 486 transfer. In step 486 an error code can be set. Another remedial action can also be taken. The controller then returns to step 406 back.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

402402
Verriegle verriegelbaren SpeicherLock lockable memory
404404
Führe DMA-Diagnose ausRun DMA diagnostics
406406
Versuchter Schreibvorgang in verriegelbaren Bereich detektiert?Attempted write operation detected in lockable area?
410410
Schreibvorgang in verriegelbaren Bereich?Write to lockable area?
418, 450418, 450
Lies verriegelte VariableRead locked variable
422, 454422, 454
Überprüfe verriegelte Variable mit Doppelspeichervariable und/oder PrüfsummeCheck locked variable with double memory variable and / or checksum
426426
Ratenbegrenze und/oder größenbegrenze wahlweise SchreibwertRate limit and / or size limit optionally writing value
428428
Sperre Unterbrechungen und entriegle verriegelbaren SpeicherLock interruptions and unlock lockable memory
430430
Speichere Schreibwert in verriegelter Variablen und DoppelspeichervariablenStore write value in locked variables and double memory variables
432432
Verriegle verriegelbaren Speicher und gib Unterbrechungen freiLock lockable memory and release interruptions
434434
Aktualisiere PrüfsummeUpdate checksum
408408
Zeichne Zieladresse aufRecord destination address
412412
Inkrementierte ZählerIncremented counters
414414
Zähler > Schwellenwert?Counter> threshold?
416416
Stelle Fehlercode einSet error code
420420
Lesevorgang aus verriegelbarem Bereich?Reading process from lockable area?
456456
Gib Wert der verriegelten Variablen zurückReturn the value of the locked variable
458458
Gib Standardwert zurückReturn default value
424424
Prüfsummenfehler?Checksum?
470470
Berechne Prüfsumme neuRecalculate checksum
474474
Neue Prüfsumme = Gespeicherte Prüfsumme?New checksum = saved checksum?
476476
Ersetze PrüfsummeReplace checksum
452452
Prüfung durchführen?Perform audit?
482482
Versuche Schreibvorgang in verriegelbaren SpeicherTry writing to lockable memory
484484
Schreibvorgang detektiert?Writing process detected?
486486
Stelle Fehlercode einSet error code
472472
Erhöhe RückwärtszählzeitgeberIncrease countdown timer
478478
Rückwärtszählzeitgeber > Schwellenwert?Countdown timer> threshold?
480480
Schalte Motor abTurn off the engine

Claims (10)

Verfahren, das umfasst: Speichern von Daten für einen ersten Satz von Adressen in einem Universalspeicher; Speichern von Daten für einen zweiten Satz von Adressen in einem verriegelbaren Speicher; wahlweises Verriegeln des zweiten Satzes von Adressen durch Verhindern von Schreibvorgängen in den verriegelbaren Speicher; und Entriegeln des verriegelbaren Speichers vor Anfordern eines Schreibvorgangs an eine des zweiten Satzes von Adressen, wobei für Daten, die in dem verriegelbaren Speicher gespeichert werden, Fehlerkorrekturcodes berechnet werden, die in dem Universalspeicher gespeichert werden, und wobei die Fehlerkorrekturcodes fertiggestellt werden, nachdem die Daten in dem verriegelbaren Speicher gespeichert wurden und der verriegelbare Speicher wieder verriegelt wurde.Procedure that includes: Storing data for a first set of addresses in a universal memory; Storing data for a second set of addresses in a lockable memory; selectively locking the second set of addresses by preventing writes to the lockable memory; and Unlocking the lockable memory before requesting a write to one of the second set of addresses, wherein, for data stored in the lockable memory, error correction codes are calculated which are stored in the universal memory, and the error correction codes are completed after the data has been stored in the lockable memory and the lockable memory has been relocked. Verfahren nach Anspruch 1, das ferner das wahlweise Ausführen einer Abhilfemaßnahme umfasst, wenn ein versuchter Schreibvorgang in dem verriegelbaren Speicher detektiert wird, während der zweite Satz von Adressen verriegelt ist. Procedure according to Claim 1 , further comprising optionally performing a remedial action if an attempted write is detected in the lockable memory while the second set of addresses is locked. Verfahren nach Anspruch 2, bei dem die Abhilfemaßnahme das Initiieren einer Motorabschaltung und/oder das Begrenzen eines Drehmoments des Motors und/oder das Begrenzen einer Beschleunigung eines Fahrzeugs und/oder das Begrenzen einer Drosselklappenstellung des Motors und/oder das Einstellen eines Fehlercodes enthält.Procedure according to Claim 2 wherein the remedial action includes initiating engine shutdown and / or limiting engine torque and / or limiting acceleration of a vehicle and / or limiting engine throttle position and / or setting an error code. Verfahren nach Anspruch 2, das ferner umfasst: Anfordern eines Probeschreibvorgangs an den zweiten Satz von Adressen, während der zweite Satz von Adressen verriegelt ist; und Ausführen einer Abhilfemaßnahme, wenn der Probeschreibvorgang nicht detektiert wird.Procedure according to Claim 2 , further comprising: requesting a trial write to the second set of addresses while the second set of addresses is locked; and performing a remedial action if the trial write operation is not detected. Verfahren nach Anspruch 1, das ferner umfasst: wahlweises Codieren zu schreibender Daten; Schreiben der codierten Daten; Lesen der codierten Daten; und Prüfen der codierten Daten, die gelesen wurden, auf Fehler.Procedure according to Claim 1 , further comprising: optionally encoding data to be written; Writing the encoded data; Reading the encoded data; and checking the encoded data that has been read for errors. Verfahren nach Anspruch 1, das ferner umfasst: Speichern einer ersten Version eines Werts an einem ersten Ende eines ersten Speicherbereichs des zweiten Satzes von Adressen; und Speichern einer zweiten Version des Werts an einem ersten Ende eines zweiten Speicherbereichs des zweiten Satzes von Adressen.Procedure according to Claim 1 further comprising: storing a first version of a value at a first end of a first storage area of the second set of addresses; and storing a second version of the value at a first end of a second memory area of the second set of addresses. Verfahren nach Anspruch 6, bei dem die erste und die zweite Version Kopien voneinander sind oder Einerkomplemente voneinander sind oder Zweierkomplemente voneinander sind.Procedure according to Claim 6 in which the first and second versions are copies of one another, or one's complement, or two's complement. Verfahren nach Anspruch 6, bei dem der erste und der zweite Speicherbereich benachbart sind und die ersten Enden des ersten und des zweiten Speicherbereichs an distalen Enden liegen.Procedure according to Claim 6 , in which the first and the second storage area are adjacent and the first ends of the first and the second storage area are at distal ends. Verfahren nach Anspruch 1, das ferner umfasst: Direktzugriffe auf den ersten und auf den zweiten Satz von Adressen über einen Direktspeicherzugriff (DMA); Anweisen einer Übertragung eines vorgegebenen Werts an eine ausgewählte Adresse des ersten oder des zweiten Satzes von Adressen; Lesen des ausgewählten Werts; und Vergleichen des gelesenen Werts mit dem vorgegebenen Wert.Procedure according to Claim 1 , further comprising: direct access to the first and second set of addresses via direct memory access (DMA); Instructing a transfer of a predetermined value to a selected address of the first or second set of addresses; Reading the selected value; and comparing the read value with the predetermined value. Verfahren nach Anspruch 1, das ferner umfasst: Sperren von Unterbrechungen, während der zweite Satz von Adressen entriegelt ist; und Verriegeln des zweiten Satzes von Adressen nach Anfordern des Schreibvorgangs.Procedure according to Claim 1 , further comprising: disabling interrupts while the second set of addresses is unlocked; and locking the second set of addresses after requesting the write.
DE102009012142.0A 2008-03-12 2009-03-06 Procedure for securing safety-critical variables Active DE102009012142B4 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3590108P 2008-03-12 2008-03-12
US61/035,901 2008-03-12
US12/259,587 US8117412B2 (en) 2008-03-12 2008-10-28 Securing safety-critical variables
US12/259,587 2008-10-28

Publications (2)

Publication Number Publication Date
DE102009012142A1 DE102009012142A1 (en) 2009-10-08
DE102009012142B4 true DE102009012142B4 (en) 2020-02-13

Family

ID=41051656

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009012142.0A Active DE102009012142B4 (en) 2008-03-12 2009-03-06 Procedure for securing safety-critical variables

Country Status (1)

Country Link
DE (1) DE102009012142B4 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473878A (en) * 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
DE102004051950A1 (en) * 2004-10-25 2006-04-27 Robert Bosch Gmbh Clock switching unit for microprocessor system, has switching unit by which switching can be done between two operating modes, where unit is formed so that clock switching takes place with one processor during switching of modes
DE102005034572A1 (en) * 2005-07-22 2007-01-25 Continental Teves Ag & Co. Ohg Data consistency examining method for use in brake system control device of motor vehicle, involves calculating test value of data during storing process, where test value is stored twice in area of end of storage area
DE102005045399A1 (en) * 2005-09-23 2007-03-29 Robert Bosch Gmbh Data processing system, has monitoring unit connected to clock generator to lower frequency of clock signal when it has been established that monitoring unit is functioning improperly

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473878A (en) * 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
DE102004051950A1 (en) * 2004-10-25 2006-04-27 Robert Bosch Gmbh Clock switching unit for microprocessor system, has switching unit by which switching can be done between two operating modes, where unit is formed so that clock switching takes place with one processor during switching of modes
DE102005034572A1 (en) * 2005-07-22 2007-01-25 Continental Teves Ag & Co. Ohg Data consistency examining method for use in brake system control device of motor vehicle, involves calculating test value of data during storing process, where test value is stored twice in area of end of storage area
DE102005045399A1 (en) * 2005-09-23 2007-03-29 Robert Bosch Gmbh Data processing system, has monitoring unit connected to clock generator to lower frequency of clock signal when it has been established that monitoring unit is functioning improperly

Also Published As

Publication number Publication date
DE102009012142A1 (en) 2009-10-08

Similar Documents

Publication Publication Date Title
DE102007063638B4 (en) electronic controls
EP2318920B1 (en) Control appliance for a vehicle, and method for updating data for a control appliance for a vehicle
DE102011075776A1 (en) Method and system for updating a shared memory
EP2907072B1 (en) Method for controlling separated running of linked program blocks and control device
DE112016005096B4 (en) Electronic control device and electronic control method
DE102014222860A1 (en) Electronic vehicle control unit
DE112016002785T5 (en) Electronic control units for vehicles
WO2019072840A1 (en) Apparatus for protecting diagnosis commands to a controller, and corresponding motor vehicle
EP1804144A1 (en) Monitoring the control program of a control unit of a machine
EP1955164A1 (en) Program-controlled unit and method for the operation thereof
US8117412B2 (en) Securing safety-critical variables
DE102013221098B4 (en) VEHICLE CONTROL UNIT
DE102009012142B4 (en) Procedure for securing safety-critical variables
EP1913478A1 (en) Microprocessor system for controlling and/or regulating at least partly security-critical processes
DE102016200130B4 (en) Electronic control device
DE102007010264B4 (en) Method for operating a first and a second control device and device arrangement with the first and the second control device
DE102006036384A1 (en) Microprocessor system for controlling or regulating at least partially safety-critical processes
DE10311250B4 (en) Microprocessor system and method for protecting the system from the replacement of components
WO2022042950A1 (en) Device for capturing and processing a measurement value of a sensor in a motor vehicle
EP1293858B1 (en) Method for protecting a microcomputer system against software manipulation
DE102017208872A1 (en) Electronic control unit
DE102018219700B4 (en) Control device
DE112020007129T5 (en) INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
EP3876123B1 (en) Arrangement and operating method for a secure start-up of an electronic device
DE102022128183B3 (en) Method for starting a data processing device, data processing device and motor vehicle

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8180 Miscellaneous part 1

Free format text: PFANDRECHT

8127 New person/name/address of the applicant

Owner name: GM GLOBAL TECHNOLOGY OPERATIONS LLC , ( N. D. , US

R081 Change of applicant/patentee

Owner name: GM GLOBAL TECHNOLOGY OPERATIONS LLC (N. D. GES, US

Free format text: FORMER OWNER: GM GLOBAL TECHNOLOGY OPERATIONS, INC., DETROIT, MICH., US

Effective date: 20110323

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final