DE102010027287A1 - Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors - Google Patents

Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors Download PDF

Info

Publication number
DE102010027287A1
DE102010027287A1 DE102010027287A DE102010027287A DE102010027287A1 DE 102010027287 A1 DE102010027287 A1 DE 102010027287A1 DE 102010027287 A DE102010027287 A DE 102010027287A DE 102010027287 A DE102010027287 A DE 102010027287A DE 102010027287 A1 DE102010027287 A1 DE 102010027287A1
Authority
DE
Germany
Prior art keywords
memory
test
main memory
cache
main
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.)
Withdrawn
Application number
DE102010027287A
Other languages
English (en)
Inventor
Christian Hildner
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.)
Siemens AG
Original Assignee
Siemens 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 Siemens AG filed Critical Siemens AG
Priority to DE102010027287A priority Critical patent/DE102010027287A1/de
Priority to US13/810,491 priority patent/US20130124925A1/en
Priority to RU2013106793/08A priority patent/RU2013106793A/ru
Priority to EP11728847.2A priority patent/EP2593869A1/de
Priority to PCT/EP2011/061098 priority patent/WO2012007295A1/de
Priority to BR112013001166A priority patent/BR112013001166A2/pt
Priority to CN2011800438059A priority patent/CN103119564A/zh
Publication of DE102010027287A1 publication Critical patent/DE102010027287A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Prüfen eines Hauptspeichers (3) eines Prozessors (1), umfassend einen Cache-Speicher (2) und mehrere Register (R). Erfindungsgemäß wird vor dem Ausführen eines Speichertests (T) eine gegebenenfalls momentan ablaufende Hochlaufsequenz unterbrochen, temporäre für den Speichertest (T) erforderliche Daten werden in mindestens ein Register (6) geschrieben oder dort gehalten und der Zugriff vom Cache-Speicher (2) auf den Hauptspeicher (3) wird aktiviert. Dabei wird der Zugriff auf den Hauptspeicher (3) über den Cache-Speicher (2, 5) derart ausgeführt, dass Bitmuster (BM) in den Cache-Speichers (2, 5) und über diesen in den Hauptspeicher (3) geschrieben und aus dem Hauptspeicher (3) über den Cache-Speicher (2) wieder ausgelesen und verglichen werden, wobei der zu testende Bereich des Hauptspeichers (3) größer ist als die Größe des Cache-Speichers (2) und die gegebenenfalls vor dem Ausführen des Speichertests (T) unterbrochene Hochlaufsequenz nach Ablauf des Speichertests (T) erneut gestartet oder fortgesetzt wird.

Description

  • Die Erfindung betrifft ein Verfahren zum Prüfen eines Hauptspeichers eines Prozessors. Des Weiteren betrifft die Erfindung eine Vorrichtung zum Prüfen eines Hauptspeichers eines Prozessors.
  • In modernen Computersystemen ist es üblich, dass der Prozessor einen möglichst großen und kostengünstigen Hauptspeicher aufweist. Für die Abarbeitung von Programmen durch den Prozessor sind dabei verschiedene Speicherzugriffe, wie Laden/Lesen, Speichern und/oder Schreiben von Daten, Operanten und/oder Befehlen erforderlich.
  • Aufgrund von Sicherheits- und/oder Betriebsanforderungen ist es üblich, Teile des Hauptspeichers von Zeit zu Zeit zu prüfen. Bedingt durch die Größe des Hauptspeichers und relativ langen Zugriffszeiten des Prozessors auf den Hauptspeicher benötigt ein Speichertest viel Zeit und widerspricht beispielsweise der Forderung nach kurzen Hochlaufzeiten des Prozessors.
  • Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Prüfen eines Hauptspeichers eines Prozessors zu beschleunigen. Des Weiteren ist es Aufgabe der Erfindung eine Vorrichtung zum Prüfen des Hauptspeichers zu vereinfachen.
  • Die Aufgabe hinsichtlich des Verfahrens wird erfindungsgemäß durch die im Anspruch 1 angegebenen Merkmale gelöst. Hinsichtlich der Vorrichtung wird die Aufgabe durch die im Anspruch 11 angegebenen Merkmale gelöst.
  • Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
  • Beim Verfahren zum Prüfen eines Hauptspeichers eines Prozessors, wobei der Hauptspeicher eine Mehrzahl von Speicherzellen aufweist, wird vor dem Ausführen eines Speichertests eine gegebenenfalls momentan ablaufende Hochlaufsequenz unterbrochen und temporäre für den Speichertest erforderliche Daten, wie z. B. Programmvariablen, in mindestens ein Register geschrieben oder dort gehalten. Darüber hinaus wird der Zugriff vom Cache-Speicher auf den Hauptspeicher aktiviert, wobei der Zugriff auf die Speicherzellen des Hauptspeichers über einen Cache-Speicher während des Speichertests derart erfindungsgemäß ausgeführt wird, dass Bitmuster in den Cache-Speicher und über diesen in den Hauptspeicher geschrieben und aus dem Hauptspeicher über den Cache-Speicher wieder ausgelesen und verglichen werden, wobei der zu testende Bereich des Hauptspeichers größer ist als die Größe des Cache-Speichers. Anschließend wird die gegebenenfalls vor dem Ausführen des Speichertests unterbrochene Hochlaufsequenz erneut gestartet oder fortgesetzt.
  • Nach Ablauf des Speichertests wird dann der Cache-Speicher wieder vom Hauptspeicher getrennt und die vor dem Ausführen des Speichertests unterbrochene Hochlaufsequenz erneut gestartet oder fortgesetzt. Darüber hinaus werden die aus dem Hauptspeicher wieder ausgelesenen Bitmuster mit erzeugten Soll-Bitmustern verglichen. Insbesondere wird der Speichertest vor einem Start des Betriebssystems ausgeführt, wobei die momentan laufende Hochlaufsequenz ein Vor- oder das Initialisierungsprogramm eines Computerprogramms des Prozessors ist.
  • Ein derartiges Verfahren unter Verwendung von mindestens einem schnellen Cache-Speicher mit wesentlich kürzeren Zugriffszeiten ermöglicht ein sicheres und gegenüber dem Stand der Technik deutlich schnelleres Testverfahren für den Hauptspeicher. Dabei kann der Test des Hauptspeichers stufenweise und/oder blockweise ausgeführt werden.
  • Der Prozessor ist vorzugsweise als ein Mikroprozessor ausgebildet. Mikroprozessoren sind Prozessoren, bei denen alle Komponenten auf einem Mikrochip angeordnet sind.
  • Zweckmäßigerweise wird zum insbesondere wortweisen, zellenweisen und/oder blockweisen Prüfen des Hauptspeichers als Bitmuster ein Muster mit Nullen und/oder Einsen verwendet. Dabei wird beispielsweise der Hauptspeicher in gleichgroße, voneinander unabhängige Bereiche, z. B. Worte, Blöcke, und somit wortweise bzw. blockweise, unterteilt, die zeitlich verschieden gelesen oder beschrieben werden können. Beispielsweise werden aufeinander folgende Speicherworte zyklisch in aufeinander folgende Speicherbänke oder -blöcke geschrieben oder aus diesen gelesen. Durch Testen von aufeinander folgenden Speicherbänken bzw. -blöcken kann die Zugriffszeit verkürzt werden, da die Breite des Datenbusses zum Hauptspeicher größer als die Wortbreite des Prozessors ist.
  • Für einen dauerhaft sicheren Betrieb des Hauptspeichers werden bei einer zellenweisen Prüfung ein oder mehrere Speicherzellen des Hauptspeichers mehrfach getestet. Analog dazu werden bei einem blockweisen Test ein oder mehrere Speicherblöcke mehrfach getestet. Jede Speicherzelle wird mit einem bekannten Wert und dem Komplement (Invertierung) des Wertes beschrieben, so dass jedes Bit einmal auf den Wert „1” und einmal den Wert „0” halten muss.
  • In einer einfachen Ausführungsform werden ein oder mehrere Speicherzellen und/oder -blocks des Hauptspeichers zyklisch getestet. Alternativ oder zusätzlich kann der Test ereignisgesteuert ausgeführt werden. Beispielsweise wird der Speichertest vom Bootlader vor dem Start des Betriebssystems ausgeführt. Darüber hinaus kann nach einem fehlerhaften Programmablauf der Hauptspeichertest vom Prozessor automatisch aktiviert und zumindest einmal oder mehrmals ausgeführt werden.
  • Zweckmäßigerweise wird vor einem Durchführen eines Speichertests des Hauptspeichers ein Test von Adress- und/oder Datenleitungen ausgeführt. Dabei werden die Tests von Adress- und/oder Datenleitungen über den Direktzugriff des Prozessors auf den Hauptspeicher und nicht über den Cache-Speicher ausgeführt. Der Test der Adress- und/oder Datenleitungen wird somit in herkömmlicher Art und Weise durch den Direktzugriff vor dem Speichertest ausgeführt werden. Mittels der Ausführung des Tests der Adress- und/oder Datenleitungen vor einem Speichertest werden insbesondere mögliche Fertigungsfehler, z. B. Leitungsunterbrechungen, Leitungskurzschlüsse, identifiziert. Der Speichertest zur Identifizierung eines Speicherchipfehlers wird insbesondere erst dann ausgeführt, wenn beide vorherigen Tests, d. h. der Test der Adressleitungen und der Test der Datenleitungen, ordnungsgemäß, d. h. fehlerfrei, durchlaufen sind.
  • Zur Vermeidung von Datenverlusten werden temporäre Programmdaten oder -variablen während eines Speichertests, insbesondere nach dem Test der Adress- und/oder Datenleitungen und vor dem Speichertest in einem Register zwischengespeichert. Nach Ablauf des Speichertests können diese Programmdaten oder -variablen wieder ausgelesen und in den Cache-Speicher und/oder Hauptspeicher geschrieben werden. Insbesondere wird, wenn die Anzahl von Registern zur Zwischenspeicherung der temporären Daten nicht ausreicht, die Hochlaufsequenz neu gestartet und somit wiederholt, um die temporären Daten wiederherzustellen. Für den Fall, dass während des Speichertests verworfene temporäre Daten nicht mehr gebraucht werden, wird die Hochlaufsequenz fortgesetzt.
  • Zur Analyse des ausgeführten Speichertests wird das aus dem Vergleich der Bitmuster resultierende Ergebnis in ein Register des Prozessors geschrieben.
  • In einer Weiterbildung der Erfindung werden mehrere Cache-Speicher verwendet, wobei einer der Cache-Speicher zum Speichern von Programmcode (auch Programm- oder Instructions-Cache genannt) und ein weiterer Cache-Speicher zum Speichern von aktuellen, d. h. momentan verwendeten, Daten und/oder Variablen, wie Programmvariablen und Adressdaten, (auch Daten-Cache genannt) verwendet wird. Dabei dient der den Programm-Code speichernde Cache-Speicher der Beschleunigung der Zugriffe auf den Programm-Code. Der Daten-Cache, d. h. der die temporären Daten speichernde Cache-Speicher, dient insbesondere der Speicherung und Beschleunigung der Zugriffe auf den Hauptspeicher.
  • Vorzugsweise wird der Programmcode und insbesondere der den Speichertest enthaltende Programmcode in einem Lesespeicher (ROM = read-only-memory-Speicher) hinterlegt.
  • In einer Weiterbildung der Erfindung wird der den Speichertest enthaltende Programmcode im Hauptprogramm implementiert. Dadurch wird ein Unterprogramm-Aufruf verhindert, der einen funktionsfähigen Stack-Speicher bedingen würde. Alternativ kann der Speichertest als ein Unterprogramm implementiert werden. In diesem Fall erfolgt die Fortsetzung des Programms in Unterprogrammaufrufen; ein Rücksprung in das Hauptprogramm wird aufgrund möglicherweise verlorengegangener Programmvariablen aus dem Cache-Speicher verhindert.
  • Hinsichtlich der Vorrichtung zum Prüfen des Hauptspeichers ist erfindungsgemäß zwischen dem Hauptspeicher und dem Prozessor ein Cache-Speicher derart angeordnet, dass während eines Speichertests ein Zugriff auf die Speicherzellen des Hauptspeichers über den Cache-Speicher derart ausführbar ist, dass vorgebbare Bitmuster in den Cache-Speicher, insbesondere in dessen Speicherzellen und über diesen in den Hauptspeicher, insbesondere in dessen Speicherzellen schreibbar und aus diesen über den Cache-Speicher wieder auslesbar sind, wobei der Prozessor die aus dem Hauptspeicher wieder ausgelesenen Bitmuster mit Soll-Bitmustern vergleicht, anderenfalls der Cache-Speicher vom Hauptspeicher getrennt ist und für die Aufnahme von temporären Daten, insbesondere Programmdaten, zur Verfügung steht, wobei die Größe des Cache-Speichers kleiner ist als der zu testende Bereich des Hauptspeichers.
  • Die Verwendung eines Cache-Speichers als Zwischenspeicher mit schnellen Zugriffszeiten ermöglicht eine Beschleunigung von Speichertests des Hauptspeichers. Vorzugsweise kann dabei der Cache-Speicher auf dem Prozessorchip selbst integriert sein.
  • Weitere Vorteile, Merkmale und Einzelheiten der Erfindung werden im Folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf Zeichnungen näher beschrieben. Dabei zeigen:
  • 1 schematisch ein Blockschaltbild einer Ausführungsform einer Vorrichtung zum Prüfen eines Hauptspeichers, und
  • 2 schematisch ein Ablaufdiagramm eines Speichertests für den Hauptspeicher.
  • Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
  • 1 zeigt schematisch ein Blockschaltbild einer Ausführungsform einer Vorrichtung zum Prüfen eines Hauptspeichers 3 eines Prozessors 1. Bei dem Prozessor 1 kann es sich um einen Mikroprozessor handeln, dessen Komponenten auf einem Mikrochip angeordnet sind (nicht näher dargestellt).
  • Zwischen dem Prozessor 1 und dem Hauptspeicher 3 ist ein Cache-Speicher 2 als Zwischenspeicher oder Pufferspeicher angeordnet. Der Prozessor 1 ist in herkömmlicher Art und Weise über Daten-, Adress-, Fehler- und Steuerleitungen 4 mit dem Cache-Speicher 2 und dieser mit dem Hauptspeicher 3 verbunden.
  • Dabei greift der Prozessor 1 zum Prüfen des Hauptspeichers 3 unter Zwischenschaltung des Cache-Speichers 2 auf den Hauptspeicher 3 zu. Der Zugriff auf den Hauptspeicher 3 über den Cache-Speicher 2 erfolgt nur während des Speichertests, anderenfalls ist der Cache-Speicher 2 vom Hauptspeicher 3 getrennt (angedeutet durch die gestrichelte Linie 4).
  • Der Hauptspeicher 3 ist ein herkömmlicher großer Arbeitsspeicher des Prozessors 1. Der Zugriff auf den Hauptspeicher 3 erfolgt beispielsweise über 8-Bit- und/oder 16-Bit-Adresskanäle oder -leitungen. Der Hauptspeicher 3 umfasst dabei Gruppen von Speicherelementen, die zu einer Speicherzelle 3.1 bis 3.z (= kleinste adressierbare Einheit) zusammengefasst sind. Jede Speicherzelle 3.1 bis 3.z umfasst 8 Bit (= 1 Byte). Mehrere Speicherzellen 3.1 bis 3.z, z. B. 4 oder 8 Speicherzellen 3.1 bis 3.z können zu einem 32-Bit- bzw. 64-Bit-Speicherwort, einem Speicherblock, einer Speicherseite und/oder einer Speicherbank zusammengefasst werden. Hierdurch ist eine einfache Adressierung von insbesondere aufeinander folgenden, gleichgroßen und voneinander unabhängigen Bereichen des Hauptspeichers 3 möglich.
  • Der Cache-Speicher 2 ist ein schneller Zwischen- oder Pufferspeicher, der zwischen Registerspeichern R des Prozessors 1 und dem Hauptspeicher 3 angeordnet ist. Im dargestellten Ausführungsbeispiel ist der Cache-Speicher 2 außerhalb des Prozessors 1 und somit nicht auf dem Prozessorchip angeordnet. Alternativ kann der Cache-Speicher 2 auch auf dem Prozessorchip angeordnet sein (nicht dargestellt).
  • Der Cache-Speicher 2 weist eine gegenüber dem Hauptspeicher 3 kleinere Speicherkapazität beispielsweise im Kilo- oder Megabyte-Bereich, z. B. 1 MByte, mit kürzesten Zugriffszeiten im Nanosekundenbereich auf, wohingegen die Speicherkapazität des Hauptspeichers 3 im Mega-, Giga- oder Tetrabyte-Bereich, z. B. 512 MByte, mit niedrigen Zugriffszeiten im Millisekundenbereich liegt.
  • Der Cache-Speicher 2 weist analog zum Hauptspeicher 3 mehrere Speicherzellen 2.1 bis 2.n auf, die nach Vorgaben entsprechend in Worten, Gruppen und/oder Blöcken zusammengefasst oder segmentiert werden, die voneinander unabhängige Adressbereiche darstellen. Der Cache-Speicher 2 dient der Speicherung von aktuell verwendeten Daten und/oder Variablen, insbesondere von dynamischen Programmvariablen, wie Adressdaten.
  • Darüber hinaus weist die Vorrichtung mindestens einen weiteren Cache-Speicher 5 mit einer Anzahl von Speicherzellen 5.1 bis 5.m auf. Der weitere Cache-Speicher 5 dient der Speicherung des Programmcodes. Dabei ist dem Cache-Speicher 5 ein Lesespeicher 7, z. B. ein ROM-Speicher (ROM = read-only-memory), nachgeschaltet, in welchem der Programmcode gespeichert ist.
  • 2 zeigt schematisch ein Ablaufdiagramm eines Speichertests T für den Hauptspeicher 3.
  • Im Allgemeinen wird der Hauptspeicher 3 regelmäßig geprüft. Vorzugsweise wird ein Speichertest T vor dem Start des Betriebssystems ausgeführt.
  • Gegenüber herkömmlichen Testverfahren wird beim erfindungsgemäßen Verfahren vom Prozessor 1 nicht direkt auf den Hauptspeicher 3 zugegriffen, sondern über den Cache-Speicher 2. Dabei wird der Zugriff vom Prozessor 1 derart ausgeführt, dass zumindest ein Bitmuster BM in den Cache-Speicher 2 und über diesen in den Hauptspeicher 3 geschrieben und aus diesem wieder ausgelesen wird. Anschließend wird das aus dem Hauptspeicher 3 wieder ausgelesene Bitmuster BM mit erzeugten Soll-Bitmuster verglichen. Bei Ungleichheit der beiden Bitmuster wird auf einen Fehler des Hauptspeichers 3 oder einen Übertragungsfehler geschlossen.
  • Zweckmäßigerweise wird als Bitmuster BM ein Muster mit Nullen und/oder Einsen in einer vorgegebenen Länge, z. B. 8-Bit-, 16-Bit-, 32-Bit-Länge, erzeugt. Beispielsweise werden als Bitmuster BM Adressdaten verwendet.
  • Beim Prüfverfahren werden ein oder mehrere der Speicherzellen 3.1 bis 3.z des Hauptspeichers 3 mehrfach, insbesondere zyklisch getestet.
  • Im Detail kann bei Aktivieren des Speichertests T und vor Durchführung des Speichertests T in einem ersten Schritt S1 optional ein Test von Adressleitungen und/oder Datenleitungen in herkömmlicher Art und Weise über einen Direktzugriff und somit ohne Zwischenspeicher durchgeführt werden (gestrichelt dargestellt). Beim optionalen Test der Adress- und/oder Datenleitungen werden bestimmte Adressen anhand von erzeugten Bitmustern getestet, um Fertigungsfehler, insbesondere Leitungsunterbrechungen und/oder -kurzschlüsse, zu identifizieren. Erst wenn der zuvor ausgeführte Test der Adress- und/oder Datenleitungen fehlerfrei ausgeführt worden ist, wird der eigentliche Speichertest T gestartet und ausgeführt.
  • Im Schritt S2 wird der Programmcode für den Speichertest T, beispielsweise ein Programmtest mit Prüfen von Schreib- und/oder Leseoperationen, aufgerufen. Der Aufruf des Programmcodes erfolgt bevorzugt im Hauptprogramm.
  • Vor dem Zugriff des Prozessors 1 auf den Cache-Speicher 2 zum Testen des Hauptspeichers 3 wird eine momentan ablaufende Hochlaufsequenz unterbrochen.
  • Optional oder zusätzlich werden in einem Schritt S2.1 temporäre und nicht zutestende, aber für den Speichertest T erforderliche Daten, wie z. B. temporäre Programmvariablen, -daten, in einem der Register 6 und/oder Registerspeichern R zwischengespeichert. Die Registerspeicher R sind beispielsweise momentan unbenutzte Register des Prozessors 1. Alternativ können die Registerspeicher R und/oder weitere Register 6 auch außerhalb des Prozessors 1 angeordnet sein.
  • In einem dritten Schritt S3 wird dann der Zugriff auf den Cache-Speicher 2 zum Testen des Hauptspeichers 3 aktiviert. Dabei kann es zu ungültigen Daten, insbesondere von temporären Programmdaten, kommen.
  • Im Detail wird die im Prozessor 1 implementierte Testroutine aktiviert, mittels welcher zu testende Schreib- und/oder Leseoperationen, wie Befehle, Abfragen, nicht direkt auf den Hauptspeicher 3, sondern auf den Cache-Speicher 2 ausgeführt werden. Dabei ist die Testroutine beispielsweise in einer Maschinensprache (assembly language) oder einer höheren Programmiersprache unter Verwendung eines optimierenden Compilers geschrieben, um temporäre Daten in Registern anstelle des Stacks im Cache-Speicher 2 oder im Hauptspeicher 3 zu halten und zu speichern.
  • Im Schritt S4 wird dann der Speichertest T entsprechend der implementierten Testroutine ausgeführt. Mittels des Speichertests T werden Zugriffe auf die Speicherzellen 2.1 bis 2.n des betreffenden Cache-Speichers 2 hinsichtlich Art, Häufigkeit und/oder Umfang definiert und gesteuert. Als Art des Zugriffs werden beispielsweise Lese- oder Schreiboperationen definiert und gesteuert. Als Umfang wird beispielsweise die Anzahl von zu testenden Speicherzellen 3.1 bis 3.m und/oder Speicherblöcken des Hauptspeichers 3 vorgegeben.
  • Im Detail werden in einer ersten Schleife eine der Größe des zu testenden Bereichs des Hauptspeichers 3 entsprechende Anzahl von Bitmuster BM in den Cache-Speicher 2 geschrieben. Dabei ist der Cache-Speicher 2 kleiner als der zu testende Bereich des Hauptspeichers 3, so dass der Cache-Speicher 2 beim Ausführen des Speichertests T mit Bitmustern BM überschrieben und Bitmuster BM in den zu testenden Bereich des Hauptspeichers 3 geschrieben werden. In einer zweiten Schleife werden dann die Bitmuster BM des zu testenden Bereichs des Hauptspeichers 3 über den Cache-Speicher 2 wieder ausgelesen und mit Soll-Bitmustern verglichen.
  • Beispielsweise werden block-, wort- und/oder zellenweise Bitmuster BM in vorgegebene Speicherzellen 2.1 bis 2.n des Cache-Speichers 2 und von diesen in korrespondierende Speicherzellen 3.1 bis 3.z des Hauptspeichers 3 geschrieben und aus diesem über den Cache-Speicher 2 wieder ausgelesen und mit Soll-Bitmustern verglichen. Das Ergebnis des Vergleichs wird zwischengespeichert, beispielsweise in einem vorgegebenen weiteren Register 6 und/oder Registerspeichern R des Prozessors 1.
  • Im Schritt S5 wird nach Beendigung der Testroutine für den Speichertest T dann optional der Zugriff auf den Hauptspeicher 3 über den Cache-Speicher 2 deaktiviert.
  • Im Schritt S6 wird das gespeicherte Ergebnis des Vergleichs der aus dem Hauptspeicher 3 ausgelesenen Bitmuster BM mit den Soll-Bitmustern geprüft. Das Ergebnis des Vergleichs ist dazu in das Register 6 und/oder einen der Registerspeicher R des Prozessors 1 geschrieben worden, so dass dieses von einer im Prozessor 1 implementieren Analyseroutine ausgewertet werden können.
  • Im Schritt S7 werden dann die im Schritt S3 und optional im Schritt S2.1 zwischengespeicherten temporären Daten wieder ausgelesen und die ursprüngliche Hochlaufsequenz des Prozessors 1 wieder gestartet bzw. initialisiert, d. h. die vor dem Ausführen des Speichertests T unterbrochene Hochlaufsequenz wird erneut gestartet oder optional fortgesetzt.
  • Der Speichertest T kann mehrfach, beispielsweise zyklisch wiederholt oder ereignisgesteuert gestartet werden. Insbesondere wird der Speichertest T vor dem Start des Betriebssystems ausgeführt. Auch können weitere Schritte implementiert werden.
  • Der Speichertest T ist insbesondere als Programmcode oder Testroutine im Hauptprogramm des Prozessors 1 implementiert. Alternativ kann der Programmcode des Speichertests T als Unterprogramm implementiert sein. In diesem Fall werden nachfolgende Programme ausschließlich als Unterprogramm aufgerufen, da infolge des Speichertests T mittels des Cache-Speichers 2 temporäre Daten, insbesondere Adressdaten im Cache-Speicher 2 verlorengegangen sein können. Um einen sicheren Programmablauf zu ermöglichen, werden daher alle weiteren Programme als Unterprogramm aufgerufen.
  • Mittels des erfindungsgemäßen Verfahrens zum Prüfen des Hauptspeichers 3 über den Zugriff auf den Cache-Speicher 2 können alle Speicherzellen 3.1 bis 3.z des Hauptspeichers individuell getestet werden. Durch die Verwendung von Cache-Speichern 2 ist der Speichertest T signifikant beschleunigt.

Claims (11)

  1. Verfahren zum Prüfen eines Hauptspeichers (3) eines Prozessors (1), umfassend einen Cache-Speicher (2) und mehrere Register (6) und/oder Registerspeicher (R), dadurch gekennzeichnet, dass vor dem Ausführen eines Speichertests (T) eine gegebenenfalls momentan ablaufende Hochlaufsequenz unterbrochen wird, temporäre für den Speichertest (T) erforderliche Daten in mindestens ein Register (6) geschrieben oder dort gehalten werden und der Zugriff vom Cache-Speicher (2) auf den Hauptspeicher (3) aktiviert wird, wobei der Zugriff auf den Hauptspeicher (3) über den Cache-Speicher (2) derart ausgeführt wird, dass Bitmuster (BM) in den Cache-Speichers (2) und über diesen in den Hauptspeicher (3) geschrieben und aus dem Hauptspeicher (3) über den Cache-Speicher (2) wieder ausgelesen und verglichen werden, wobei der zu testende Bereich des Hauptspeichers (3) größer ist als die Größe des Cache-Speichers (2) und die gegebenenfalls vor dem Ausführen des Speichertests (T) unterbrochene Hochlaufsequenz nach Ablauf des Speichertests (T) erneut gestartet oder fortgesetzt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nach Ablauf des Speichertest (T) der Zugriff des Cache-Speichers (2) auf den Hauptspeicher (3) getrennt wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Fall eines vor dem Speichertest (T) optional durchgeführten Tests von Adressleitungen und/oder Datenleitungen der Speichertest erst nach fehlerfreiem Test der Adressleitungen bzw. Datenleitungen gestartet wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als Bitmuster (BM) ein Muster mit Nullen und/oder Einsen verwendet wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mittels des Speichertests (T) ein oder mehrere Speicherzellen (3.1 bis 3.z) des Hauptspeichers (3) vor einem Start des Betriebssystems getestet werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass temporäre, für die Hochlaufsequenz erforderliche Daten vor dem Speichertest (T) in einem Register (6) zwischengespeichert und während oder nach dem Speichertest (T) wieder verwendet/ausgelesen werden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein aus dem Vergleich der Bitmuster (BM) resultierendes Ergebnis in ein Register (6) des Prozessors (1) geschrieben werden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mehrere Cache-Speicher (2, 5) verwendet werden, wobei einer der Cache-Speicher (2) zum Speichern von temporären Daten, wie Programmvariablen, und ein anderer Cache-Speicher (5) zum Speichern vom Programmcode verwendet wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Programmcode in einem Lesespeicher (7) hinterlegt wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der den Speichertest (T) ausführende Programmcode im Hauptprogramm oder in einem Unterprogramm ohne Rücksprungoption implementiert wird.
  11. Vorrichtung zum Prüfen eines Hauptspeichers (3) eines Prozessors (1), umfassend einen Cache-Speicher (2) und mehrere Register (6), dadurch gekennzeichnet, dass zwischen dem Hauptspeicher (3) und dem Prozessor (1) zumindest ein Cache-Speicher (2, 5) derart angeordnet ist, dass während der Ausführung eines Speichertests (T) ein Zugriff auf den Hauptspeicher (3) über den Cache-Speicher (2, 5) derart ausführbar ist, dass vorgebbare Bitmuster (BM) in den Cache-Speicher (2, 5) und über diesen in den Hauptspeicher (3) schreibbar und aus dem Hauptspeicher (3) wieder auslesbar sind, wobei der Prozessor (1) die aus dem Hauptspeicher (3) wieder ausgelesenen Bitmuster (BM) mit Soll-Bitmustern vergleicht, anderenfalls der Cache-Speicher (2) vom Hauptspeicher (3) getrennt ist, wobei der die Größe des Cache-Speichers (2) kleiner ist als der zu testende Bereich des Hauptspeichers (3).
DE102010027287A 2010-07-16 2010-07-16 Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors Withdrawn DE102010027287A1 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE102010027287A DE102010027287A1 (de) 2010-07-16 2010-07-16 Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors
US13/810,491 US20130124925A1 (en) 2010-07-16 2011-07-01 Method and apparatus for checking a main memory of a processor
RU2013106793/08A RU2013106793A (ru) 2010-07-16 2011-07-01 Способ и устройство для проверки основной памяти процессора
EP11728847.2A EP2593869A1 (de) 2010-07-16 2011-07-01 Verfahren und vorrichtung zum prüfen eines hauptspeichers eines prozessors
PCT/EP2011/061098 WO2012007295A1 (de) 2010-07-16 2011-07-01 Verfahren und vorrichtung zum prüfen eines hauptspeichers eines prozessors
BR112013001166A BR112013001166A2 (pt) 2010-07-16 2011-07-01 método e aparelho para verificar uma memória principal de um processador
CN2011800438059A CN103119564A (zh) 2010-07-16 2011-07-01 用于检查处理器的主存储器的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010027287A DE102010027287A1 (de) 2010-07-16 2010-07-16 Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors

Publications (1)

Publication Number Publication Date
DE102010027287A1 true DE102010027287A1 (de) 2012-01-19

Family

ID=44627767

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010027287A Withdrawn DE102010027287A1 (de) 2010-07-16 2010-07-16 Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors

Country Status (7)

Country Link
US (1) US20130124925A1 (de)
EP (1) EP2593869A1 (de)
CN (1) CN103119564A (de)
BR (1) BR112013001166A2 (de)
DE (1) DE102010027287A1 (de)
RU (1) RU2013106793A (de)
WO (1) WO2012007295A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740105B2 (en) * 2014-04-04 2020-08-11 Texas Instruments Incorporated Processor subroutine cache
US9904626B2 (en) * 2014-08-29 2018-02-27 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and system on chip
CN112486748B (zh) * 2020-11-30 2024-04-09 北京泽石科技有限公司 测试系统及其测试方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5831987A (en) * 1996-06-17 1998-11-03 Network Associates, Inc. Method for testing cache memory systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891811A (en) * 1987-02-13 1990-01-02 International Business Machines Corporation Efficient address test for large memories
US5357521A (en) * 1990-02-14 1994-10-18 International Business Machines Corporation Address sensitive memory testing
JP2665718B2 (ja) * 1993-11-10 1997-10-22 日本電気エンジニアリング株式会社 情報処理装置のキャッシュメモリテスト方法
US5479413A (en) * 1994-06-06 1995-12-26 Digital Equipment Corporation Method for testing large memory arrays during system initialization
US5778434A (en) * 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
US5740353A (en) * 1995-12-14 1998-04-14 International Business Machines Corporation Method and apparatus for creating a multiprocessor verification environment
JPH10171676A (ja) * 1996-12-10 1998-06-26 Toshiba Corp マイクロプロセッサのテスト容易化回路
KR100339502B1 (ko) * 1999-06-02 2002-05-31 윤종용 다수개의 데이터 라인을 구분되게 테스트하는 통합 데이터 라인 테스트 회로 및 이를 이용하는 테스트 방법
DE19939764A1 (de) * 1999-08-21 2001-02-22 Philips Corp Intellectual Pty Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
US6510530B1 (en) * 1999-09-23 2003-01-21 Nortel Networks Limited At-speed built-in self testing of multi-port compact sRAMs
US6694468B1 (en) * 2000-03-01 2004-02-17 Intel Corporation Method and apparatus to test memory
US20030204840A1 (en) * 2002-04-30 2003-10-30 Youfeng Wu Apparatus and method for one-pass profiling to concurrently generate a frequency profile and a stride profile to enable data prefetching in irregular programs
US7213187B2 (en) * 2005-01-19 2007-05-01 Faraday Technology Corp. Digital logic test method to systematically approach functional coverage completely and related apparatus and system
CN101751312A (zh) * 2008-12-19 2010-06-23 和硕联合科技股份有限公司 模拟多个存储装置的测试装置及其测试方法
US20100280817A1 (en) * 2009-04-30 2010-11-04 Spansion Llc Direct pointer access and xip redirector for emulation of memory-mapped devices
US8458403B2 (en) * 2009-11-24 2013-06-04 Honeywell International Inc. Architecture and method for cache-based checkpointing and rollback

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5831987A (en) * 1996-06-17 1998-11-03 Network Associates, Inc. Method for testing cache memory systems

Also Published As

Publication number Publication date
RU2013106793A (ru) 2014-08-27
BR112013001166A2 (pt) 2016-05-31
US20130124925A1 (en) 2013-05-16
WO2012007295A1 (de) 2012-01-19
CN103119564A (zh) 2013-05-22
EP2593869A1 (de) 2013-05-22

Similar Documents

Publication Publication Date Title
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
DE102006036070B4 (de) Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb
EP1008993A2 (de) Schreib/Lesespeicher mit Selbsttestvorrichtung und zugehöriges Testverfahren
DE102010027287A1 (de) Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors
DE10256487B4 (de) Integrierter Speicher und Verfahren zum Testen eines integrierten Speichers
EP2539899B1 (de) Verfahren zur überprüfung der funktionsfähigkeit eines speicherelements
DE602005005289T2 (de) Verfahren, System und Computerprogrammprodukt zur Korrektur von Fehlern in einem Festwertspeicher
DE10127194B4 (de) Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
DE10134654A1 (de) Verfahren zur Fehleranalyse von Speichermodulen
EP1750283B1 (de) Überprüfung eines Adressdecoders
DE102005037226A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
DE10305008A1 (de) Verfahren und Vorrichtung zur Überwachung einer elektronischen Steuerung
EP3186709A1 (de) Verfahren zur absicherung von nutzdaten eines speichers und elektronisches rechensystem
DE112017008201T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE102019208129B4 (de) Elektronische Steuereinheit
EP0919917B1 (de) Verfahren zum Testen des Pufferspeichers eines Mikroprozessorsystems
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
EP1425665A1 (de) Verfahren und einrichtung zum testen eines speichers
DE102014203963A1 (de) Verfahren und Vorrichtung zum Kontrollieren eines Speichers
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit
DE102016209535A1 (de) Verfahren und Vorrichtung zum Prüfen eines Befehlscache
DE102005015319B4 (de) Elektrisches System mit fehlerhaften Speicherbereichen und Verfahren zum Testen von Speicherbereichen
WO2002099650A2 (de) Verfahren zur verwaltung eines speichers einer chipkarte
DE102023202348A1 (de) Verfahren zum Testen eines Computerprogramms
DE102019217416A1 (de) Verfahren zum Erstellen eines Zugriffsrechteschemas für einen elektronischen Speicher

Legal Events

Date Code Title Description
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140201