DE102016209535A1 - Verfahren und Vorrichtung zum Prüfen eines Befehlscache - Google Patents

Verfahren und Vorrichtung zum Prüfen eines Befehlscache Download PDF

Info

Publication number
DE102016209535A1
DE102016209535A1 DE102016209535.8A DE102016209535A DE102016209535A1 DE 102016209535 A1 DE102016209535 A1 DE 102016209535A1 DE 102016209535 A DE102016209535 A DE 102016209535A DE 102016209535 A1 DE102016209535 A1 DE 102016209535A1
Authority
DE
Germany
Prior art keywords
instruction
processor
procedure
machine
instruction sequence
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.)
Pending
Application number
DE102016209535.8A
Other languages
English (en)
Inventor
Clemens Kutz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102016209535.8A priority Critical patent/DE102016209535A1/de
Publication of DE102016209535A1 publication Critical patent/DE102016209535A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren (10) zum Prüfen eines Befehlscache, gekennzeichnet durch folgende Merkmale: – der Prozessor wird in einen vorgegebenen Anfangszustand versetzt (11), – ein durch ein erstes Befehlswort kodierter erster Maschinenbefehl wird durch den Prozessor verarbeitet (12), – ein durch ein zweites Befehlswort kodierter zweiter Maschinenbefehl wird durch den Prozessor verarbeitet (13), wobei das zweite Befehlswort ein Einer-Komplement des ersten Befehlswortes ist, und – der Prozessor wird auf einen vorgegebenen Endzustand geprüft (14).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Prüfen eines Befehlscache. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.
  • Stand der Technik
  • Als Cache wird in der Rechnerarchitektur jedweder Puffer-Speicher bezeichnet, der zur Vermeidung teils wiederholter Zugriffe auf ein langsames Hintergrundmedium oder aufwändiger Neuberechnungen dient. Daten oder Befehle, die einmal geladen oder erzeugt werden, verbleiben hierzu zeitweise im Cache, sodass sie bei künftigem Bedarf schneller abgerufen werden können. Mitunter werden auch Daten, deren Bedarf absehbar scheint, vorauseilend vom Hintergrundmedium abgerufen und im Cache bereitgestellt (read ahead).
  • Superskalare Prozessoren mit moderner Pipelinetechnik verfügen in der Regel über getrennte Caches für Programme und Daten. Eine derartige Rechnerarchitektur ist dem Fachmann als Harvard-Cachearchitektur geläufig und wird nach dem Stand der Technik bereits in eingebetteten Steuergeräten (electronic control units) eingesetzt.
  • EP1639466 (A1) offenbart ein Verfahren zur Fehlererkennung bei einem Cachespeicher zur Speicherung von Daten, wobei der Zugriff auf die im Cachespeicher abgelegten Daten durch diesen zugeordnete Adressen erfolgt und zu den abgelegten Daten zugeordneten Adressen wenigstens eine erste Prüfsignatur bestehend aus wenigstens einem ersten Signaturbit erzeugt und ebenfalls im Cachespeicher abgelegt wird.
  • Offenbarung der Erfindung
  • Die Erfindung stellt ein Verfahren zum Prüfen eines Befehlscache, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium, insbesondere einen Festwertspeicher, gemäß den unabhängigen Ansprüchen bereit.
  • Der erfindungsgemäße Ansatz gründet auf der Erkenntnis, dass bekannte Verfahren, durch welche unterschiedliche Funktionen von Programmcaches geprüft werden können, sehr umfangreich und laufzeitintensiv sind. Bestimmte Testprogramme und -sequenzen müssen zwingend aus dem Direktzugriffsspeicher (random-access memory, RAM) ausgeführt werde. Der Anspruch derartiger Tests ist zudem mitunter höher, als es unter funktionalen Sicherheitsaspekten zweckmäßig erscheint.
  • Ein Vorzug der vorgeschlagenen Lösung liegt demgegenüber in der Schaffung eines Softwaretestverfahrens, mit dem die korrekte Arbeitsweise des Programmcache effizient nachgewiesen werden kann. Das besagte Testverfahren ist dabei geeignet, sowohl einmalig bei In- oder Außerbetriebnahme als auch zyklisch ausgeführt zu werden. Hierzu wird erfindungsgemäß der Anspruch des Tests auf eine korrekte Ausführung von Maschinencode reduziert, während auf einen Nachweis der Verkürzung der Ladezeit des Codes zugunsten einer laufzeiteffizienten Implementierung verzichtet wird. Der Selbsttest ist zu diesem Zweck derart aufgebaut, dass es einen Startzustand gibt, der nur bei korrekter Durchführung aller Selbsttestoperationen zum richtigen Ergebnis führt.
  • Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann vorgesehen sein, einen erfindungsgemäßen Selbsttest ausschließlich aus dem Festwertspeicher (read-only memory, ROM) auszuführen. Der Begriff „Festwertspeicher“ wird hierbei in einem weiten Wortsinn verwendet und umfasst insbesondere elektrisch löschbare programmierbare Nur-Lese-Speicher (electrically erasable programmable read-only memory, EEPROM) und sogenannte Flash-EEPROMs neuerer Bauart.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
  • 1 das Flussdiagramm eines Verfahrens gemäß einer ersten Ausführungsform.
  • 2 schematisch ein Steuergerät gemäß einer zweiten Ausführungsform.
  • Ausführungsformen der Erfindung
  • 1 illustriert die grundlegenden Schritte eines Verfahrens (10) zum Prüfen des Programm- oder Befehlscache eines Prozessors gemäß einer Ausführungsform der Erfindung.
  • Der Prozessor wird demnach zunächst in einen vorgegebenen Anfangszustand versetzt (Prozess 11), welcher im Wesentlichen durch eine vorgegebene Wertebelegung zweier oder mehrerer Register Rx, Ry des Prozessors definiert ist. Sodann verarbeitet (Prozess 12) der Prozessor die auf einem Festwertspeicher gespeicherte, n ∊
    Figure DE102016209535A1_0002
    Maschinenbefehle umfassende Befehlsfolge P, wobei die Maschinenbefehle vorliegend durch Befehlsworte Di, i ∊ {1, ..., n} einer festen Wortbreite kodiert werden. Jeder von P umfasste Maschinenbefehl verändert hierbei das oder die Register Rx auf bekannte Art und Weise, sodass nach Verarbeitung von P der Wert des Registers oder der Register Rx gleichsam eine Signatur S1 dieser Befehlsfolge darstellt.
  • Unmittelbar darauf verarbeitet (Prozess 13) der Prozessor eine ebenfalls im Festwertspeicher abgelegte zweite Befehlsfolge P* der Länge n. Als erfindungswesentlich erweist sich hierbei die Wahl der Befehlsworte
    Figure DE102016209535A1_0003
    j ∊ {1, ..., n}, welche die von P* umfassten Maschinenbefehle kodieren: Insofern findet jedes in P enthaltene Befehlswort Di in P* eine Entsprechung
    Figure DE102016209535A1_0004
    die dem Einer-Komplement seiner Binärdarstellung entspricht. Entsprechend obiger Ausführungen stellt nach Verarbeitung von P* der Wert des Registers oder der Register Ry auf diese Weise gleichsam eine Signatur S2 dieser zweiten Befehlsfolge dar.
  • Wenn die resultierende, aus den Befehlsfolgen P und P* bestehende Gesamtsequenz Q ohne Unterbrechung ausgeführt wird, kann anhand der Signaturen S1 und S2 somit die korrekte Funktionalität des Programmcache nachgewiesen werden. Die Maschinenbefehle der ersten Befehlsfolge P und somit auch jene der zweiten Befehlsfolge P* sind hierbei vorzugsweise wiederholungsfrei gewählt.
  • Dieses Verfahren (10) kann beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in einem Steuergerät (20) implementiert sein, wie die schematische Darstellung der 2 verdeutlicht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 1639466 A1 [0004]

Claims (10)

  1. Verfahren (10) zum Prüfen eines Befehlscache eines Prozessors, gekennzeichnet durch folgende Merkmale: – der Prozessor wird in einen vorgegebenen Anfangszustand versetzt (11), – ein durch ein erstes Befehlswort kodierter erster Maschinenbefehl wird durch den Prozessor verarbeitet (12), – ein durch ein zweites Befehlswort kodierter zweiter Maschinenbefehl wird durch den Prozessor verarbeitet (13), wobei das zweite Befehlswort ein Einer-Komplement des ersten Befehlswortes ist, und – der Prozessor wird auf einen vorgegebenen Endzustand geprüft (14).
  2. Verfahren (10) nach Anspruch 1, gekennzeichnet durch folgendes Merkmal: – der Anfangszustand und der Endzustand sind durch vorgegebene Wertebelegungen mindestens eines Registers des Prozessors definiert.
  3. Verfahren (10) nach Anspruch 1 oder 2, gekennzeichnet durch folgende Merkmale: – eine erste Befehlsfolge, welche den ersten Maschinenbefehl umfasst, wird durch den Prozessor verarbeitet, – eine zweite Befehlsfolge, welche den zweiten Maschinenbefehl umfasst, wird durch den Prozessor verarbeitet und – jeder von der zweiten Befehlsfolge umfasste Maschinenbefehl ist das Einer-Komplement eines von der ersten Befehlsfolge umfassten Maschinenbefehles.
  4. Verfahren (10) nach Anspruch 3, gekennzeichnet durch folgendes Merkmal: – die erste Befehlsfolge und die zweite Befehlsfolge weisen eine übereinstimmende Länge auf.
  5. Verfahren (10) nach Anspruch 4, gekennzeichnet durch folgendes Merkmal: – die erste Befehlsfolge und die zweite Befehlsfolge sind wiederholungsfrei.
  6. Verfahren (10) nach Anspruch 4 oder 5, gekennzeichnet durch folgendes Merkmal: – für jeden Maschinenbefehl mit einem bestimmten Index in der ersten Befehlsfolge trägt das Einer-Komplement in der zweiten Befehlsfolge denselben Index.
  7. Verfahren (10) nach einem der Ansprüche 3 bis 6, gekennzeichnet durch folgendes Merkmal: – das Verarbeiten (13) der zweiten Befehlsfolge folgt unmittelbar auf das Verarbeiten (12) der ersten Befehlsfolge.
  8. Computerprogramm, welches eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7 auszuführen.
  9. Maschinenlesbares Speichermedium, insbesondere Festwertspeicher, auf dem das Computerprogramm nach Anspruch 8 gespeichert ist.
  10. Vorrichtung (20), die eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7 auszuführen.
DE102016209535.8A 2016-06-01 2016-06-01 Verfahren und Vorrichtung zum Prüfen eines Befehlscache Pending DE102016209535A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016209535.8A DE102016209535A1 (de) 2016-06-01 2016-06-01 Verfahren und Vorrichtung zum Prüfen eines Befehlscache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016209535.8A DE102016209535A1 (de) 2016-06-01 2016-06-01 Verfahren und Vorrichtung zum Prüfen eines Befehlscache

Publications (1)

Publication Number Publication Date
DE102016209535A1 true DE102016209535A1 (de) 2017-12-21

Family

ID=60480981

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016209535.8A Pending DE102016209535A1 (de) 2016-06-01 2016-06-01 Verfahren und Vorrichtung zum Prüfen eines Befehlscache

Country Status (1)

Country Link
DE (1) DE102016209535A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118427030A (zh) * 2024-07-05 2024-08-02 长沙麟卓信息科技有限公司 一种基于随机指令集的哈佛架构多级指令缓存测算方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1639466A1 (de) 2003-06-18 2006-03-29 Robert Bosch Gmbh Verfahren und vorrichtung zur fehlererkennung für einen cachespeicher und entsprechender cachespeicher

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1639466A1 (de) 2003-06-18 2006-03-29 Robert Bosch Gmbh Verfahren und vorrichtung zur fehlererkennung für einen cachespeicher und entsprechender cachespeicher

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118427030A (zh) * 2024-07-05 2024-08-02 长沙麟卓信息科技有限公司 一种基于随机指令集的哈佛架构多级指令缓存测算方法
CN118427030B (zh) * 2024-07-05 2024-09-13 长沙麟卓信息科技有限公司 一种基于随机指令集的哈佛架构多级指令缓存测算方法

Similar Documents

Publication Publication Date Title
DE112013005882B4 (de) Ausführung eines Gegenverzweigungspfades auf Grundlage eines Zuverlässigkeitsschwellenwertes für eine Verzweigungsvorhersage
DE3242502A1 (de) Tracing-system
EP2943748B1 (de) Verfahren und vorrichtung zum verwalten von kartendaten einer digitalen karte einer navigationseinrichtung
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE102006054169B4 (de) Verfahren und System für eine Zentralisierung einer Prozessabfolgeüberprüfung
DE102016209535A1 (de) Verfahren und Vorrichtung zum Prüfen eines Befehlscache
DE102004046611A1 (de) Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102005053847B4 (de) Speicheranordnungsverfahren und System
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102014115411A1 (de) Datenverarbeitungsanordnung und -verfahren zur sicherstellung der integrität der ausführung eines computerprogramms
DE602005005289T2 (de) Verfahren, System und Computerprogrammprodukt zur Korrektur von Fehlern in einem Festwertspeicher
DE10064025A1 (de) Verfahren mit einem bedingten deterministischen Rücksetzvektor für einen Mikroprozessor
EP1892639B1 (de) Sichere Programmcodeausführung
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
DE102010027287A1 (de) Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors
DE102015211458A1 (de) Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
DE102020206321A1 (de) Verfahren und Vorrichtung zum Prüfen eines technischen Systems
DE102016013669A1 (de) Verfahren zum Betrieb eines Datenkommunikationssystems
DE102015215525A1 (de) Verfahren zur Vermeidung des Betriebs eines ersten Computerprogramms und eines zweiten Computerprogramms auf einem Computer
DE102023004185A1 (de) Verfahren zum Betreiben einer elektronischen Rechenvorrichtung zum Erzeugen einer Steuertabelle für einen Elektromotor, eines Computerprogrammcodes, eines computerlesbaren Speichermediums sowie einer Elektronischen Recheneinrichtung
DE102019217416A1 (de) Verfahren zum Erstellen eines Zugriffsrechteschemas für einen elektronischen Speicher
DE102010014720A1 (de) Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
DE112008000991T5 (de) Verfahren und Vorrichtung zum Testen eines Seitendecoders
DE10110050A1 (de) Verfahren zur Absicherung sicherheitskritischer Programmteile vor versehentlicher Ausführung und eine Speichereinrichtung zur Durchführung dieses Verfahrens
DE102006013762A1 (de) Verfahren zum Betreiben einer Speichereinrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed