EP2593869A1 - Method and apparatus for checking a main memory of a processor - Google Patents

Method and apparatus for checking a main memory of a processor

Info

Publication number
EP2593869A1
EP2593869A1 EP11728847.2A EP11728847A EP2593869A1 EP 2593869 A1 EP2593869 A1 EP 2593869A1 EP 11728847 A EP11728847 A EP 11728847A EP 2593869 A1 EP2593869 A1 EP 2593869A1
Authority
EP
European Patent Office
Prior art keywords
memory
test
main memory
cache
cache memory
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
EP11728847.2A
Other languages
German (de)
French (fr)
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
Publication of EP2593869A1 publication Critical patent/EP2593869A1/en
Withdrawn legal-status Critical Current

Links

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

Definitions

  • the invention relates to a method for testing a main memory of a processor. Furthermore, the dung ⁇ OF INVENTION relates to an apparatus for testing a main memory of a processor.
  • processor In modern computer systems, it is common that the processor has the largest possible and cost-effective main memory. For the execution of programs by the processor while various memory accesses, such as loading / reading, storing and / or writing data, operands and / or commands are required.
  • the invention is therefore the object of a method for testing a main memory of a processor to accel ⁇ nigen. Furthermore, it is an object of the invention to simplify a device for checking the main memory.
  • the startup sequence which may have been interrupted before the memory test is executed, is restarted or continued.
  • the cache memory is then disconnected from the main memory and the run-up sequence interrupted before the memory test is executed is restarted or continued.
  • the bit patterns read out from the main memory are compared with generated desired bit patterns.
  • the memory test is executed before a start of the operating system, wherein the currently running startup sequence is a pre-program or an initialization program of a computer program of the processor.
  • the processor is preferably designed as a microprocessor.
  • Microprocessors are processors in which all components are arranged on a microchip.
  • a pattern of zeroes and / or ones becomes the particular word by word, cells ⁇ wise and / or block-wise testing of the main memory as a bit pattern used.
  • the main memory in equal, independent areas, z.
  • Main memory is larger than the word width of the processor.
  • each memory cell of the main memory is tested several times in a cell-by-cell test. Similarly, ⁇ the tested several times in a block-wise test one or more Speicherblö ⁇ bridge.
  • Each memory cell is a ⁇ be known value and the complement (inversion) of the value written sawn, so that each bit times must hold the value "0" again to the value "1" and a ⁇ .
  • one or more memory cells and / or blocks of the main memory are cyclically tested.
  • the test can be carried out event-controlled.
  • the Spei ⁇ chertest is led from ⁇ the boot loader before starting the operating system.
  • a test of address and / or data ⁇ lines is performed prior to performing a memory test of the main memory. In this case, the tests of address and / or data lines are executed via the direct access of the processor to the main memory and not via the cache memory.
  • the test of the address and / or data lines will thus be carried out in a conventional manner by the random access before the memory test.
  • Ausure ⁇ tion of the test of the address and / or data lines before a memory test in particular possible manufacturing errors, eg. B. line interruptions, short circuits, identi ⁇ fices.
  • the memory test to identify a memory chip failure is particular only be executed if at ⁇ de previous tests, that the test of the address lines and the test of the data lines, correctly, that is error free, run through.
  • temporary program data or variables are buffered in a register during a memory test, in particular after the test of the address and / or data lines and before the memory test. After the memory test, these program data or variables can be read out again and written to the cache memory and / or main memory. Specifically, when the number of registers for temporarily storing the temporary data is insufficient, the startup sequence ⁇ restarts ge and thus repeated to prepare the temporary data again ⁇ . In the event that temporary data discarded during the memory test is no longer needed, the boot sequence will continue.
  • a plurality of cache memories are used, wherein one of the cache memories for storing program code (also program or instruction Called cache) and another cache memory for storing current, ie currently used, data and / or variables, such as program variables and address data (also called data cache) is used.
  • the cache memory storing the program code serves to accelerate the access to the program code.
  • the data cache ie the cache memory storing the temporary data, serves in particular for storing and accelerating accesses to the main memory.
  • the program code and in particular the program code containing the memory test is stored in a read-only memory (ROM).
  • ROM read-only memory
  • the program code containing the memory test is implemented in the main program. This prevents a subroutine call that would cause a healthy stack memory.
  • the memory test may be implemented as a subroutine. In this case, the program is continued in subprogram calls; a return to the main program is prevented because of possibly lost program variables from the cache memory.
  • a cache memory according to the invention between the main memory and the processor arranged such that, during egg ⁇ nes memory testing access to the memory cells of the main memory via the cache memory is such executable that predetermined bit pattern to the cache Memory, in particular in its memory cells and via this into the main memory, in particular in its memory cells writable and read from these via the cache memory again, the processor compares the read out of the main memory nen bit pattern with desired bit patterns, otherwise the cache memory is separated from the main memory and for the recording of temporary data, in particular program data, is available, wherein the size of the cache memory is smaller than the area of the main memory to be tested.
  • a cache memory as a cache with fast access times allows acceleration of memory tests of the main memory.
  • the cache memory can be integrated on the processor chip itself.
  • FIG. 1 schematically shows a block diagram of an execution ⁇ of a device for testing a Schospei- Chers
  • FIG. 2 schematically shows a flow chart of a memory test for the main memory.
  • Figure 1 shows schematically a block diagram of an embodiment of an apparatus for testing a main memory 3 of a processor 1.
  • the processor 1 may be a microprocessor whose components are arranged on a micro-chip (not shown in detail).
  • a cache memory 2 as a buffer or buffer memory is arranged.
  • the processor 1 is connected in a conventional manner via data, address, error and control lines 4 to the cache memory 2 and this to the main memory 3.
  • the processor 1 accesses for checking the main memory 3 with the interposition of the cache memory 2 to the main memory 3 to ⁇ .
  • the access to the main memory 3 via the cache memory 2 takes place only during the memory test, other if necessary, the cache memory 2 is separated from the main memory 3 (indicated by the dashed line 4).
  • the main memory 3 is a conventional large working memory rather of the processor 1.
  • Several memory cells 3.1 to 3.z, z. B. 4 or 8 memory cells 3.1 to 3.z can be combined to form a 32-bit or 64-bit memory word, a memory block, a memory page and / or a memory bank. As a result, a simple addressing of in particular successive, equal and independent areas of the main memory 3 is possible.
  • the cache memory 2 is a fast buffer memory arranged between register memories R of the processor 1 and the main memory 3.
  • the cache memory 2 is outside of the processor ⁇ 1 and thus not arranged on the processor chip.
  • the cache memory 2 may also be arranged on the processor chip (not shown).
  • the cache memory 2 has a comparison with the main memory 3 smaller storage capacity, for example in the kilobyte or megabyte ⁇ range, z. B. 1 MB, with shortest access times in the nanosecond range, whereas the storage capacity of the main memory 3 in the mega-, giga- or tetrabyte range, z. B. 512 MB, with low access times in the millisecond range.
  • the cache memory 2 has, analogously to the main memory 3, a plurality of memory cells 2.1 to 2.n, which are combined or segmented according to specifications correspondingly in words, groups and / or blocks, which are independent of each other. represent areas.
  • the cache memory 2 is used for storage of currently used data and / or variables, in particular special of dynamic program variables, such as address data.
  • the device comprises at least one wide ⁇ ren cache memory 5 with a number of memory cells 5.1 to 5.m.
  • the cache memory 5 is a read memory 7, z.
  • B. a ROM memory (ROM read-only memory), downstream, in which the program code is stored ⁇ chert.
  • FIG. 2 schematically shows a flow chart of a memory test T for the main memory 3.
  • the main memory 3 is regularly checked.
  • a memory test T is performed before the start of the loading ⁇ drive system.
  • the processor 1 does not access the main memory 3 directly but via the cache memory 2.
  • the access is executed by the processor 1 in such a way that at least one bit pattern BM is transferred to the cache memory 2 and via this is written to the main memory 3 and read out of this again.
  • the re-read from the main memory 3 ⁇ BM bit pattern is compared with the generated target bit pattern. In the case of inequality of the two bit patterns, an error of the main memory 3 or a transmission error is inferred.
  • bit pattern BM is a pattern with zeros and / or ones in a predetermined length, z. 8-bit, 16-bit, 32-bit length.
  • bit data BM is used as the bit pattern.
  • the test one or more of the memory cells 3.1 to 3.z of the main memory 3 are tested several times, in particular cyclically.
  • a test of address lines and / or data lines can be carried out in a conventional manner via a direct access and thus without an intermediate memory (shown in dashed lines).
  • the optional test of address and / or Da ⁇ specific addresses are ten Kochen tested on generated bit patterns to shorts manufacturing defects, in particular line interruptions and / or to iden ⁇ ren. Only when the previously executed test of address and / or data lines has been executed without errors, the actual memory test T is started and executed.
  • step S2 the program code for the memory test T, for example a program test with checking of writing and / or reading operations, is called.
  • the program code is preferably called in the main program.
  • temporary and not zutestende but erfor ⁇ derliche for the memory test T data such.
  • temporary program variables, data are temporarily stored in one of the registers 6 and / or register memories R.
  • the register R are as example ⁇ currently unused register of the processor 1.
  • the register memory can be R, and / or additional tabs 6 and disposed outside of the processor. 1
  • a third step S3 access to the cache memory 2 for testing the main memory 3 is then activated. There- This can lead to invalid data, especially temporary program data.
  • the processor 1 is implemented in the test routine is activated, by means of which to test write and / or Le ⁇ seoperationen how commands, queries, not be executed directly to the main memory 3, but to the cache memory.
  • the test routine is, for example, in Ma ⁇ schin language (assembly language) or a higher programming language using an optimizing compiler written to hold temporary data in registers in place of the stack in the cache memory 2 or the main memory 3 and to store.
  • step S4 the memory test T is then executed according to the implemented test routine.
  • the memory tests ⁇ T are defined accesses to the memory cells 2.1 to 2.n of the respective cache memory 2 in terms of type, fre- quency and / or circumferential and controlled.
  • access is defined and controlled by read or write operations.
  • the number of memory cells 3.1 to 3.m to be tested and / or memory blocks of the main memory 3 is specified as the scope.
  • the cache memory 2 is smaller than the area of the main memory 3 to be tested, so that the cache memory 2 is overwritten with bit patterns BM during the memory test T and bit patterns BM are written into the area of the main memory 3 to be tested.
  • bit patterns BM of the region of the main memory 3 to be tested are then read out again via the cache memory 2 and compared with desired bit patterns.
  • the result of the comparison is buffered, for example in a predetermined further register 6 and / or register memories R of the processor 1.
  • step S5 the access to the Hauptspei ⁇ cher 3 via the cache memory 2 is deactivated after completion of the test routine for the memory test T then optional.
  • step S6 the stored result of the comparison of the bit pattern BM read out from the main memory 3 with the target bit patterns is checked. The result of the comparison has been written to the register 6 and / or one of the register R of the processor 1, so that this can be evaluated by an implementing in the processor 1 analysis routine.
  • step S7 the data latched in step S3, and optionally in step S2.1 temporary data are then read again and the original startup sequence of the Prozes ⁇ sors 1 again started or initialized, that is, the broken before executing the memory test T-up sequence is started again, or optionally continued.
  • the memory test T can be started several times, for example cyclically repeated or event-controlled. Insbeson ⁇ particular the memory test T is performed before the start of Trosys ⁇ tems. Also, further steps can be implemented.
  • the memory test T is implemented in particular as a program code or test routine in the main program of the processor 1.
  • the program code of the memory test T can be used as be implemented.
  • subsequent programs are only alsgeru ⁇ fen as a subroutine, since as a result of the memory test T by means of the cache memory ⁇ chers 2 temporary data, in particular address data in the cache memory 2 may have been lost. To enable a safe program flow, therefore, all other programs are called as a subroutine.
  • Main memory 3 on the access to the cache memory 2 all memory cells 3.1 to 3.z of the main memory in ⁇ be tested individually. Through the use of cache memories 2, the memory test T is significantly accelerated.

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

The invention relates to a method and an apparatus for checking a main memory (3) of a processor (1), comprising a cache memory (2) and a plurality of registers (R). According to the invention, before carrying out a memory test (T), a boot-up sequence which may be running at that time is interrupted, temporary data required for the memory test (T) is written to at least one register (6) and is held there, and the access from the cache memory (2) to the main memory (3) is activated. In this case, the access to the main memory (3) is carried out via the cache memory (2, 5) such that bit patterns (BM) are written to the cache memory (2, 5) and, via this, to the main memory (3), and are read out again from the main memory (3) via the cache memory (2) and are compared, wherein that area of the main memory (3) to be tested is larger than the size of the cache memory (2), and the boot-up sequence which was possibly interrupted before carrying out the memory test (T) is restarted or continued once the memory test (T) has been completed.

Description

Beschreibung description
Verfahren und Vorrichtung zum Prüfen eines Hauptspeichers eines Prozessors Method and apparatus for testing a main memory of a processor
Die Erfindung betrifft ein Verfahren zum Prüfen eines Hauptspeichers eines Prozessors. Des Weiteren betrifft die Erfin¬ dung eine Vorrichtung zum Prüfen eines Hauptspeichers eines Prozessors . The invention relates to a method for testing a main memory of a processor. Furthermore, the dung ¬ OF INVENTION relates to an apparatus for testing a main memory of a processor.
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. In modern computer systems, it is common that the processor has the largest possible and cost-effective main memory. For the execution of programs by the processor while various memory accesses, such as loading / reading, storing and / or writing data, operands and / or commands are required.
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 bei¬ spielsweise der Forderung nach kurzen Hochlaufzeiten des Prozessors . Due to safety and / or operating requirements, it is common practice to check parts of the main memory from time to time. Due to the size of the main memory and relatively long access times of the processor to the main memory a memory test takes a lot of time and contradicts ¬ in example the demand for short run-up times of the processor.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Prüfen eines Hauptspeichers eines Prozessors zu beschleu¬ nigen. Des Weiteren ist es Aufgabe der Erfindung eine Vorrichtung zum Prüfen des Hauptspeichers zu vereinfachen. The invention is therefore the object of a method for testing a main memory of a processor to accel ¬ nigen. Furthermore, it is an object of the invention to simplify a device for checking the main memory.
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. The object with regard to the method according to the invention is achieved by the features specified in claim 1. With regard to the device, the object is achieved by the features specified in claim 11.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche. Beim Verfahren zum Prüfen eines Hauptspeichers eines Prozes¬ sors, wobei der Hauptspeicher eine Mehrzahl von Speicherzellen aufweist, wird vor dem Ausführen eines Speichertests eine gegebenenfalls momentan ablaufende Hochlaufsequenz unterbro- chen 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 erfindungsge¬ mäß 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 Haupt- Speichers größer ist als die Größe des Cache-Speichers. An¬ schließ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 ge¬ startet 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 . Advantageous embodiments of the invention are the subject of the dependent claims. In the method for testing a main memory of a Prozes ¬ sors, said main memory having a plurality of memory cells, prior to performing a memory test an optionally currently running up sequence is interrupted and temporary required for the memory test data such. As program variables, written in at least one register or held there. In addition, the access from the cache memory is activated on the main memory, the access to the memory cells of the main memory via a cache memory during the memory test such erfindungsge ¬ Mäss is stated that bit pattern to the cache memory and transfers these to the main memory written and read from the main memory via the cache memory and compared again, wherein the area of the main memory to be tested is greater than the size of the cache memory. Subsequently , the startup sequence , which may have been interrupted before the memory test is executed, is restarted or continued. After the memory test has ended, the cache memory is then disconnected from the main memory and the run-up sequence interrupted before the memory test is executed is restarted or continued. In addition, the bit patterns read out from the main memory are compared with generated desired bit patterns. In particular, the memory test is executed before a start of the operating system, wherein the currently running startup sequence is a pre-program or an initialization program of a computer program of the processor.
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 Haupt- Speicher. 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, zellen¬ weisen 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 zyk¬ lisch in aufeinander folgende Speicherbänke oder -blocke ge¬ schrieben oder aus diesen gelesen. Durch Testen von aufeinan- der folgenden Speicherbänken bzw. -blocken kann die Zugriffszeit verkürzt werden, da die Breite des Datenbusses zum Such a method using at least one fast cache memory with much shorter access times allows a secure and compared to the prior art much faster test procedure for the main memory. In this case, the test of the main memory can be carried out stepwise and / or block by block. The processor is preferably designed as a microprocessor. Microprocessors are processors in which all components are arranged on a microchip. Advantageously, a pattern of zeroes and / or ones becomes the particular word by word, cells ¬ wise and / or block-wise testing of the main memory as a bit pattern used. In this case, for example, the main memory in equal, independent areas, z. As words, blocks, and thus wordwise or blockwise, divided, which can be read or written differently in time. For example, sequential memory words are zyk ¬ cally sequential read the following memory banks or -blocke ge ¬ written or from these in. By testing consecutive memory banks, the access time can be shortened because the width of the data bus is limited to
Hauptspeicher größer als die Wortbreite des Prozessors ist. Main memory is larger than the word width of the processor.
Für einen dauerhaft sicheren Betrieb des Hauptspeichers wer- den bei einer zellenweisen Prüfung ein oder mehrere Speicherzellen des Hauptspeichers mehrfach getestet. Analog dazu wer¬ den bei einem blockweisen Test ein oder mehrere Speicherblö¬ cke mehrfach getestet. Jede Speicherzelle wird mit einem be¬ kannten Wert und dem Komplement (Invertierung) des Wertes be- schrieben, so dass jedes Bit einmal auf den Wert „1" und ein¬ mal den Wert „0" halten muss. For a permanently safe operation of the main memory, one or more memory cells of the main memory are tested several times in a cell-by-cell test. Similarly, ¬ the tested several times in a block-wise test one or more Speicherblö ¬ bridge. Each memory cell is a ¬ be known value and the complement (inversion) of the value written sawn, so that each bit times must hold the value "0" again to the value "1" and a ¬.
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 Spei¬ chertest vom Bootlader vor dem Start des Betriebssystems aus¬ geführt. Darüber hinaus kann nach einem fehlerhaften Programmablauf der Hauptspeichertest vom Prozessor automatisch aktiviert und zumindest einmal oder mehrmals ausgeführt wer¬ den . Zweckmäßigerweise wird vor einem Durchführen eines Speichertests des Hauptspeichers ein Test von Adress- und/oder Daten¬ leitungen 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üh¬ rung des Tests der Adress- und/oder Datenleitungen vor einem Speichertest werden insbesondere mögliche Fertigungsfehler, z. B. Leitungsunterbrechungen, Leitungskurzschlüsse, identi¬ fiziert. Der Speichertest zur Identifizierung eines Speicherchipfehlers wird insbesondere erst dann ausgeführt, wenn bei¬ de vorherigen Tests, d.h. der Test der Adressleitungen und der Test der Datenleitungen, ordnungsgemäß, d.h. fehlerfrei, durchlaufen sind. In a simple embodiment, one or more memory cells and / or blocks of the main memory are cyclically tested. Alternatively or additionally, the test can be carried out event-controlled. For example, the Spei ¬ chertest is led from ¬ the boot loader before starting the operating system. In addition, activated automatically and at least one or more times ¬ executed pursuant to a faulty execution of the memory test by the processor. Conveniently, a test of address and / or data ¬ lines is performed prior to performing a memory test of the main memory. In this case, the tests of address and / or data lines are executed via the direct access of the processor to the main memory and not via the cache memory. The test of the address and / or data lines will thus be carried out in a conventional manner by the random access before the memory test. By means of the Ausfüh ¬ tion of the test of the address and / or data lines before a memory test in particular possible manufacturing errors, eg. B. line interruptions, short circuits, identi ¬ fices. The memory test to identify a memory chip failure is particular only be executed if at ¬ de previous tests, that the test of the address lines and the test of the data lines, correctly, that is error free, run through.
Zur Vermeidung von Datenverlusten werden temporäre Programmdaten oder -variablen während eines Speichertests, insbeson- dere 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 ge¬ startet und somit wiederholt, um die temporären Daten wieder¬ herzustellen. Für den Fall, dass während des Speichertests verworfene temporäre Daten nicht mehr gebraucht werden, wird die Hochlaufsequenz fortgesetzt. To avoid data loss, temporary program data or variables are buffered in a register during a memory test, in particular after the test of the address and / or data lines and before the memory test. After the memory test, these program data or variables can be read out again and written to the cache memory and / or main memory. Specifically, when the number of registers for temporarily storing the temporary data is insufficient, the startup sequence ¬ restarts ge and thus repeated to prepare the temporary data again ¬. In the event that temporary data discarded during the memory test is no longer needed, the boot sequence will continue.
Zur Analyse des ausgeführten Speichertests wird das aus dem Vergleich der Bitmuster resultierende Ergebnis in ein Regis¬ ter des Prozessors geschrieben. For analysis of the storage tests carried out the signal resulting from the comparison of the bit patterns result is written in a Regis ¬ ter of the processor.
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 . In an embodiment of the invention, a plurality of cache memories are used, wherein one of the cache memories for storing program code (also program or instruction Called cache) and another cache memory for storing current, ie currently used, data and / or variables, such as program variables and address data (also called data cache) is used. The cache memory storing the program code serves to accelerate the access to the program code. The data cache, ie the cache memory storing the temporary data, serves in particular for storing and accelerating accesses to the main memory.
Vorzugsweise wird der Programmcode und insbesondere der den Speichertest enthaltende Programmcode in einem Lesespeicher (ROM = read-only-memory-Speicher) hinterlegt. Preferably, the program code and in particular the program code containing the memory test is stored in a read-only memory (ROM).
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 ei¬ nes 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 ausgelese- nen 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. In a development of the invention, the program code containing the memory test is implemented in the main program. This prevents a subroutine call that would cause a healthy stack memory. Alternatively, the memory test may be implemented as a subroutine. In this case, the program is continued in subprogram calls; a return to the main program is prevented because of possibly lost program variables from the cache memory. With regard to the apparatus for testing the main memory, a cache memory according to the invention between the main memory and the processor arranged such that, during egg ¬ nes memory testing access to the memory cells of the main memory via the cache memory is such executable that predetermined bit pattern to the cache Memory, in particular in its memory cells and via this into the main memory, in particular in its memory cells writable and read from these via the cache memory again, the processor compares the read out of the main memory nen bit pattern with desired bit patterns, otherwise the cache memory is separated from the main memory and for the recording of temporary data, in particular program data, is available, wherein the size of the cache memory is smaller than the area of the main memory to be tested.
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. The use of a cache memory as a cache with fast access times allows acceleration of memory tests of the main memory. Preferably, the cache memory can be integrated on the processor chip itself.
Weitere Vorteile, Merkmale und Einzelheiten der Erfindung werden im Folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf Zeichnungen näher beschrieben. Dabei zeigen Further advantages, features and details of the invention are described below with reference to embodiments with reference to drawings. Show
FIG 1 schematisch ein Blockschaltbild einer Ausführungs¬ form einer Vorrichtung zum Prüfen eines Hauptspei- chers, und 1 schematically shows a block diagram of an execution ¬ of a device for testing a Hauptspei- Chers, and
FIG 2 schematisch ein Ablaufdiagramm eines Speichertests für den Hauptspeicher.  2 schematically shows a flow chart of a memory test for the main memory.
Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen. Corresponding parts are provided in all figures with the same reference numerals.
Figur 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 Mikro- chip angeordnet sind (nicht näher dargestellt) . Figure 1 shows schematically a block diagram of an embodiment of an apparatus for testing a main memory 3 of a processor 1. The processor 1 may be a microprocessor whose components are arranged on a micro-chip (not shown in detail).
Zwischen dem Prozessor 1 und dem Hauptspeicher 3 ist ein Cache-Speicher 2 als Zwischenspeicher oder Pufferspeicher ange ordnet. 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 . Between the processor 1 and the main memory 3 is a cache memory 2 as a buffer or buffer memory is arranged. The processor 1 is connected in a conventional manner via data, address, error and control lines 4 to the cache memory 2 and this to the main memory 3.
Dabei greift der Prozessor 1 zum Prüfen des Hauptspeichers 3 unter Zwischenschaltung des Cache-Speichers 2 auf den Haupt¬ Speicher 3 zu. Der Zugriff auf den Hauptspeicher 3 über den Cache-Speicher 2 erfolgt nur während des Speichertests, ande- renfalls ist der Cache-Speicher 2 vom Hauptspeicher 3 getrennt (angedeutet durch die gestrichelte Linie 4) . In this case, the processor 1 accesses for checking the main memory 3 with the interposition of the cache memory 2 to the main memory 3 to ¬. The access to the main memory 3 via the cache memory 2 takes place only during the memory test, other if necessary, the cache memory 2 is separated from the main memory 3 (indicated by the dashed line 4).
Der Hauptspeicher 3 ist ein herkömmlicher großer Arbeitsspei- eher 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) zusammenge- fasst 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. The main memory 3 is a conventional large working memory rather of the processor 1. The access to the main memory 3, for example via 8-bit and / or 16-bit address channels or lines. The main memory 3 comprises groups of memory elements which are combined to form a memory cell 3.1 to 3.z (= smallest addressable unit). Each memory cell 3.1 to 3.z comprises 8 bits (= 1 byte). Several memory cells 3.1 to 3.z, z. B. 4 or 8 memory cells 3.1 to 3.z can be combined to form a 32-bit or 64-bit memory word, a memory block, a memory page and / or a memory bank. As a result, a simple addressing of in particular successive, equal and independent areas of the main memory 3 is possible.
Der Cache-Speicher 2 ist ein schneller Zwischen- oder Puffer- Speicher, 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 Pro¬ zessors 1 und somit nicht auf dem Prozessorchip angeordnet. Alternativ kann der Cache-Speicher 2 auch auf dem Prozessor- chip angeordnet sein (nicht dargestellt) . The cache memory 2 is a fast buffer memory arranged between register memories R of the processor 1 and the main memory 3. In the illustrated embodiment, the cache memory 2 is outside of the processor ¬ 1 and thus not arranged on the processor chip. Alternatively, the cache memory 2 may also be arranged on the processor chip (not shown).
Der Cache-Speicher 2 weist eine gegenüber dem Hauptspeicher 3 kleinere Speicherkapazität beispielsweise im Kilo- oder Mega¬ byte-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 Adress- bereiche darstellen. Der Cache-Speicher 2 dient der Speiche rung von aktuell verwendeten Daten und/oder Variablen, insb sondere von dynamischen Programmvariablen, wie Adressdaten. Darüber hinaus weist die Vorrichtung mindestens einen weite¬ ren Cache-Speicher 5 mit einer Anzahl von Speicherzellen 5.1 bis 5.m auf. Der weitere Cache-Speicher 5 dient der Speiche¬ rung 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 gespei¬ chert ist. The cache memory 2 has a comparison with the main memory 3 smaller storage capacity, for example in the kilobyte or megabyte ¬ range, z. B. 1 MB, with shortest access times in the nanosecond range, whereas the storage capacity of the main memory 3 in the mega-, giga- or tetrabyte range, z. B. 512 MB, with low access times in the millisecond range. The cache memory 2 has, analogously to the main memory 3, a plurality of memory cells 2.1 to 2.n, which are combined or segmented according to specifications correspondingly in words, groups and / or blocks, which are independent of each other. represent areas. The cache memory 2 is used for storage of currently used data and / or variables, in particular special of dynamic program variables, such as address data. In addition, the device comprises at least one wide ¬ ren cache memory 5 with a number of memory cells 5.1 to 5.m. The more cache memory 5 serves the spoke ¬ tion of the program code. In this case, the cache memory 5 is a read memory 7, z. B. a ROM memory (ROM = read-only memory), downstream, in which the program code is stored ¬ chert.
Figur 2 zeigt schematisch ein Ablaufdiagramm eines Speichertests T für den Hauptspeicher 3. FIG. 2 schematically shows a flow chart of a memory test T for the main memory 3.
Im Allgemeinen wird der Hauptspeicher 3 regelmäßig geprüft. Vorzugsweise wird ein Speichertest T vor dem Start des Be¬ triebssystems 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 Haupt¬ speicher 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. In general, the main memory 3 is regularly checked. Preferably, a memory test T is performed before the start of the loading ¬ drive system. In contrast to conventional test methods, in the method according to the invention the processor 1 does not access the main memory 3 directly but via the cache memory 2. The access is executed by the processor 1 in such a way that at least one bit pattern BM is transferred to the cache memory 2 and via this is written to the main memory 3 and read out of this again. Subsequently, the re-read from the main memory 3 ¬ BM bit pattern is compared with the generated target bit pattern. In the case of inequality of the two bit patterns, an error of the main memory 3 or a transmission error is inferred.
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üf erfahren 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 Sl 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 Da¬ tenleitungen werden bestimmte Adressen anhand von erzeugten Bitmustern getestet, um Fertigungsfehler, insbesondere Leitungsunterbrechungen und/oder -kurzschlüsse, zu identifizie¬ ren. 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. Conveniently, as a bit pattern BM is a pattern with zeros and / or ones in a predetermined length, z. 8-bit, 16-bit, 32-bit length. For example, bit data BM is used as the bit pattern. During the test, one or more of the memory cells 3.1 to 3.z of the main memory 3 are tested several times, in particular cyclically. In detail, upon activation of the memory test T and before the memory test T is carried out in a first step S1, optionally a test of address lines and / or data lines can be carried out in a conventional manner via a direct access and thus without an intermediate memory (shown in dashed lines). The optional test of address and / or Da ¬ specific addresses are tenleitungen tested on generated bit patterns to shorts manufacturing defects, in particular line interruptions and / or to iden ¬ ren. Only when the previously executed test of address and / or data lines has been executed without errors, the actual memory test T is started and executed.
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. In step S2, the program code for the memory test T, for example a program test with checking of writing and / or reading operations, is called. The program code is preferably called in the main program.
Vor dem Zugriff des Prozessors 1 auf den Cache-Speicher 2 zum Testen des Hauptspeichers 3 wird eine momentan ablaufende Hochlaufsequenz unterbrochen. Prior to the access of the processor 1 to the cache memory 2 for testing the main memory 3, a currently running startup sequence is interrupted.
Optional oder zusätzlich werden in einem Schritt S2.1 temporäre und nicht zutestende, aber für den Speichertest T erfor¬ derliche Daten, wie z. B. temporäre Programmvariablen, - daten, in einem der Register 6 und/oder Registerspeichern R zwischengespeichert. Die Registerspeicher R sind beispiels¬ weise momentan unbenutzte Register des Prozessors 1. Alterna¬ tiv können die Registerspeicher R und/oder weitere Register 6 auch außerhalb des Prozessors 1 angeordnet sein. Optionally or additionally, in a step S2.1 temporary and not zutestende but erfor ¬ derliche for the memory test T data such. For example, temporary program variables, data, are temporarily stored in one of the registers 6 and / or register memories R. The register R are as example ¬ currently unused register of the processor 1. Alterna tively ¬ the register memory can be R, and / or additional tabs 6 and disposed outside of the processor. 1
In einem dritten Schritt S3 wird dann der Zugriff auf den Cache-Speicher 2 zum Testen des Hauptspeichers 3 aktiviert. Da- bei kann es zu ungültigen Daten, insbesondere von temporären Programmdaten, kommen. In a third step S3, access to the cache memory 2 for testing the main memory 3 is then activated. There- This can lead to invalid data, especially temporary program data.
Im Detail wird die im Prozessor 1 implementierte Testroutine aktiviert, mittels welcher zu testende Schreib- und/oder Le¬ seoperationen, 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 Ma¬ schinensprache (assembly language) oder einer höheren Pro- grammiersprache 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. In detail, the processor 1 is implemented in the test routine is activated, by means of which to test write and / or Le ¬ seoperationen how commands, queries, not be executed directly to the main memory 3, but to the cache memory. 2 The test routine is, for example, in Ma ¬ schin language (assembly language) or a higher programming language using an optimizing compiler written to hold temporary data in registers in place of the stack in the cache memory 2 or the main memory 3 and to store.
Im Schritt S4 wird dann der Speichertest T entsprechend der implementierten Testroutine ausgeführt. Mittels des Speicher¬ tests T werden Zugriffe auf die Speicherzellen 2.1 bis 2.n des betreffenden Cache-Speichers 2 hinsichtlich Art, Häufig- keit und/oder Umfang definiert und gesteuert. Als Art desIn step S4, the memory test T is then executed according to the implemented test routine. By means of the memory tests ¬ T are defined accesses to the memory cells 2.1 to 2.n of the respective cache memory 2 in terms of type, fre- quency and / or circumferential and controlled. As a kind of
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. For example, access is defined and controlled by read or write operations. By way of example, the number of memory cells 3.1 to 3.m to be tested and / or memory blocks of the main memory 3 is specified as the scope.
Im Detail werden in einer ersten Schleife eine der Größe des zu testenden Bereichs des Hauptspeichers 3 entsprechende An¬ zahl 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 Bit¬ muster BM in vorgegebene Speicherzellen 2.1 bis 2.n des Cache-Speichers 2 und von diesen in korrespondierende Speicher¬ zellen 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. In detail, one of the size of the test area of the main memory 3 to be written corresponding to ¬ plurality of bit patterns BM in the cache memory 2 in a first loop. In this case, the cache memory 2 is smaller than the area of the main memory 3 to be tested, so that the cache memory 2 is overwritten with bit patterns BM during the memory test T and bit patterns BM are written into the area of the main memory 3 to be tested. In a second loop, the bit patterns BM of the region of the main memory 3 to be tested are then read out again via the cache memory 2 and compared with desired bit patterns. For example, block, word, and / or cells, bit ¬ pattern BM in predetermined memory cells 2.1 to 2.n of the cache memory 2 and of these written into corresponding memory cells ¬ 3.1 to 3.z of the main memory 3 from this via the Cache memory 2 again read and compared with target bit patterns. The result of the comparison is buffered, for example in a predetermined further register 6 and / or register memories R of the processor 1.
Im Schritt S5 wird nach Beendigung der Testroutine für den Speichertest T dann optional der Zugriff auf den Hauptspei¬ cher 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 . In step S5, the access to the Hauptspei ¬ cher 3 via the cache memory 2 is deactivated after completion of the test routine for the memory test T then optional. In step S6, the stored result of the comparison of the bit pattern BM read out from the main memory 3 with the target bit patterns is checked. The result of the comparison has been written to the register 6 and / or one of the register R of the processor 1, so that this can be evaluated by an implementing in the processor 1 analysis routine.
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 Prozes¬ sors 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. Insbeson¬ dere wird der Speichertest T vor dem Start des Betriebssys¬ tems ausgeführt. Auch können weitere Schritte implementiert werden . In step S7, the data latched in step S3, and optionally in step S2.1 temporary data are then read again and the original startup sequence of the Prozes ¬ sors 1 again started or initialized, that is, the broken before executing the memory test T-up sequence is started again, or optionally continued. The memory test T can be started several times, for example cyclically repeated or event-controlled. Insbeson ¬ particular the memory test T is performed before the start of Betriebssys ¬ tems. Also, further steps can be implemented.
Der Speichertest T ist insbesondere als Programmcode oder Testroutine im Hauptprogramm des Prozessors 1 implementiert. Alternativ kann der Programmcode des Speichertests T als Un- terprogramm implementiert sein. In diesem Fall werden nachfolgende Programme ausschließlich als Unterprogramm aufgeru¬ fen, da infolge des Speichertests T mittels des Cache-Spei¬ chers 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. The memory test T is implemented in particular as a program code or test routine in the main program of the processor 1. Alternatively, the program code of the memory test T can be used as be implemented. In this case, subsequent programs are only aufgeru ¬ fen as a subroutine, since as a result of the memory test T by means of the cache memory ¬ chers 2 temporary data, in particular address data in the cache memory 2 may have been lost. To enable a safe program flow, therefore, all other programs are called as a subroutine.
Mittels des erfindungsgemäßen Verfahrens zum Prüfen des By means of the method according to the invention for testing the
Hauptspeichers 3 über den Zugriff auf den Cache-Speicher 2 können alle Speicherzellen 3.1 bis 3.z des Hauptspeichers in¬ dividuell getestet werden. Durch die Verwendung von Cache- Speichern 2 ist der Speichertest T signifikant beschleunigt. Main memory 3 on the access to the cache memory 2, all memory cells 3.1 to 3.z of the main memory in ¬ be tested individually. Through the use of cache memories 2, the memory test T is significantly accelerated.

Claims

Patentansprüche claims
1. Verfahren zum Prüfen eines Hauptspeichers (3) eines Pro¬ zessors (1), umfassend einen Cache-Speicher (2) und mehrere Register (6) und/oder Registerspeicher (R) , 1. A method for testing a main memory (3) of a Pro ¬ zessors (1) comprising a cache memory (2) and a plurality of registers (6) and / or memory register (R),
d a d u r c h g e k e n n z e i c h n e t, dass vor dem Ausführen eines Speichertests (T) eine gegebenenfalls momen¬ tan 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 Bit¬ muster (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 ge¬ gebenenfalls vor dem Ausführen des Speichertests (T) unter- brochene Hochlaufsequenz nach Ablauf des Speichertests (T) erneut gestartet oder fortgesetzt wird. characterized in that prior to performing a memory test (T) is interrupted an optionally momen ¬ tan running-up sequence for the memory test (T) required data temporary be written in at least one register (6) or held there and accessed from the cache memory ( 2) to the main memory (3) is activated, wherein the access to the main memory (3) via the cache memory (2) is carried out such that Bit ¬ pattern (BM) in the cache memory (2) and via this written to the main memory (3) and read out from the main memory (3) via the cache memory (2) and compared, the area of the main memory (3) to be tested being greater than the size of the cache memory (2) and ge ¬ optionally before executing the memory test (T) sub brochene up sequence after the end of the memory test (T) is restarted or continued.
2. Verfahren nach Anspruch 1, 2. The method according to claim 1,
dadurch gekennzeichnet, dass nach Ablauf des Speichertest (T) der Zugriff des Cache-Speichers (2) auf den Hauptspeicher (3) getrennt wird. characterized in that after the memory test (T) the access of the cache memory (2) to the main memory (3) is disconnected.
3. Verfahren nach Anspruch 1, 3. The method according to claim 1,
dadurch gekennzeichnet, dass im Fall eines vor dem Speicher- test (T) optional durchgeführten Tests von Adressleitungen und/oder Datenleitungen der Speichertest erst nach fehlerfreiem Test der Adressleitungen bzw. Datenleitungen gestartet wird . characterized in that in the case of an optional before the memory test (T) carried out tests of address lines and / or data lines, the memory test is started only after error-free testing of the address lines or data lines.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als Bitmuster (BM) ein Muster mit Nullen und/oder Einsen verwendet wird. 4. The method according to any one of the preceding claims, characterized in that a pattern with zeros and / or ones is used as the bit pattern (BM).
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 Hauptspei¬ chers (3) vor einem Start des Betriebssystems getestet wer- den . 5. The method according to any one of the preceding claims, characterized in that by means of the memory test (T) one or more memory cells (3.1 to 3.z) of the Hauptspei ¬ chers (3) are tested before starting the operating system.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass temporäre, für die Hochlaufse¬ quenz erforderliche Daten vor dem Speichertest (T) in einem Register (6) zwischengespeichert und während oder nach dem Speichertest (T) wieder verwendet/ausgelesen werden. 6. The method according to any one of the preceding claims, characterized in that temporary, necessary for the Hochlaufse ¬ quency data before the memory test (T) in a register (6) and stored during / after the memory test (T) again used / read.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein aus dem Vergleich der Bit- muster (BM) resultierendes Ergebnis in ein Register (6) des Prozessors (1) geschrieben werden. 7. The method according to any one of the preceding claims, characterized in that a resulting from the comparison of the bit pattern (BM) result in a register (6) of the processor (1) are written.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mehrere Cache-Speicher (2, 5) verwendet werden, wobei einer der Cache-Speicher (2) zum8. The method according to any one of the preceding claims, characterized in that a plurality of cache memories (2, 5) are used, wherein one of the cache memory (2) for
Speichern von temporären Daten, wie Programmvariablen, und ein anderer Cache-Speicher (5) zum Speichern vom Programmcode verwendet wird. Storing temporary data, such as program variables, and another cache memory (5) for storing the program code.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Programmcode in einem Lese¬ speicher (7) hinterlegt wird. 9. The method according to any one of the preceding claims, characterized in that the program code in a read ¬ memory (7) is deposited.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der den Speichertest (T) ausfüh¬ rende Programmcode im Hauptprogramm oder in einem Unterpro¬ gramm ohne Rücksprungoption implementiert wird. 10. The method according to any one of the preceding claims, characterized in that the memory test (T) ausfüh ¬ ing program code is implemented in the main program or in a Unterpro ¬ gram without return option.
11. Vorrichtung zum Prüfen eines Hauptspeichers (3) eines Prozessors (1), umfassend einen Cache-Speicher (2) und mehre¬ re Register ( 6) , 11. Device for checking a main memory (3) of a processor (1), comprising a cache memory (2) and several registers ¬ (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 Ca¬ che-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) . characterized in that between the main memory (3) and the processor (1) at least one cache memory (2, 5) is arranged such that during the execution of a memory test (T) access to the main memory (3) via the cache memory (2, 5) is executable such that predeterminable bit pattern (BM) in the cache memory (2, 5 3) and readable from the main memory (3) again, the processor (1) comparing the bit pattern (BM) read from the main memory (3) with desired bit patterns, otherwise the approx ¬ Memory (2) is separated from the main memory (3), wherein the size of the cache memory (2) is smaller than the area to be tested of the main memory (3).
EP11728847.2A 2010-07-16 2011-07-01 Method and apparatus for checking a main memory of a processor Withdrawn EP2593869A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010027287A DE102010027287A1 (en) 2010-07-16 2010-07-16 Method and device for checking a main memory of a processor
PCT/EP2011/061098 WO2012007295A1 (en) 2010-07-16 2011-07-01 Method and apparatus for checking a main memory of a processor

Publications (1)

Publication Number Publication Date
EP2593869A1 true EP2593869A1 (en) 2013-05-22

Family

ID=44627767

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11728847.2A Withdrawn EP2593869A1 (en) 2010-07-16 2011-07-01 Method and apparatus for checking a main memory of a processor

Country Status (7)

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

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 (en) * 2020-11-30 2024-04-09 北京泽石科技有限公司 Test system and test method thereof

Family Cites Families (17)

* 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 (en) * 1993-11-10 1997-10-22 日本電気エンジニアリング株式会社 Cache memory test method for information processing device
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
US5831987A (en) * 1996-06-17 1998-11-03 Network Associates, Inc. Method for testing cache memory systems
JPH10171676A (en) * 1996-12-10 1998-06-26 Toshiba Corp Test facilitation circuit for microprocessor
KR100339502B1 (en) * 1999-06-02 2002-05-31 윤종용 Merged data line test circuit to test merged data lines with dividing manner and test method using the same
DE19939764A1 (en) * 1999-08-21 2001-02-22 Philips Corp Intellectual Pty Method for operating a storage system and storage system
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 (en) * 2008-12-19 2010-06-23 和硕联合科技股份有限公司 Test device simulating a plurality of memories and test method thereof
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2012007295A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112006002842B4 (en) Memory diagnostic device
DE102005028827A1 (en) Flash memory device and method for defect block treatment
WO2005073865A2 (en) Device for transmitting data between memories
DE10131388B4 (en) Integrated dynamic memory and method for operating the same
EP0104635A2 (en) Digital computer test method and configuration
DE112019002336T5 (en) STORAGE POOL ASSIGNMENT FOR A MULTICORE SYSTEM
DE69518468T2 (en) Procedure for testing large memory arrays during system initialization
DE102018123978A1 (en) METHOD AND DEVICE FOR MEMORY CONTROLLER RECOGNITION OF PROVIDER-SPECIFIC NON-VOLATILE MEMORY DEVICES
DE102015210651A1 (en) Circuit and method for testing an error correction capability
EP2593869A1 (en) Method and apparatus for checking a main memory of a processor
WO2004064075A1 (en) Method for the recognition and/or correction of memory access errors and electronic circuit arrangement for carrying out said method
EP2539899B1 (en) Method for checking the functionality of a memory element
EP0075713A2 (en) Additional functional unit in a microprocessor, microprocessor system and operating method thereof
EP1750283B1 (en) Verification of an address decoder
EP1595212A2 (en) Method and device for monitoring an electronic circuit
EP3186709A1 (en) Method for protecting user data of a storage device, and electronic computing system
DE102004059392B4 (en) Method for reassignment of a command memory, subsystem for carrying out such a method, and microcontroller
DE102018210733A1 (en) Method for monitoring at least one computing unit
DE102019208129B4 (en) Electronic control unit
DE19940871A1 (en) Diagnostic device for random access memory used in microcomputer of motor vehicle engine, performs failure prevention process based on diagnostic result stored in predefined register during failure
DE102023100783A1 (en) Method and processor circuit for determining an enumeration of device functions in a PCI bus of a vehicle
EP0919917B1 (en) Method to test the buffer memory of a microprocessor system
EP2002446B1 (en) Method for operating a memory unit comprising the marking of memory blocks that are identified as defective
WO2009103728A1 (en) Method and device for storing information data
DE102005015319B4 (en) Electrical system with faulty memory areas and method for testing memory areas

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20130111

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20150917

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20160128