DE102015219266A1 - Method for testing a memory unit of a microcontroller - Google Patents
Method for testing a memory unit of a microcontroller Download PDFInfo
- Publication number
- DE102015219266A1 DE102015219266A1 DE102015219266.0A DE102015219266A DE102015219266A1 DE 102015219266 A1 DE102015219266 A1 DE 102015219266A1 DE 102015219266 A DE102015219266 A DE 102015219266A DE 102015219266 A1 DE102015219266 A1 DE 102015219266A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- bank
- test
- tested
- memory bank
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum Testen einer Speichereinheit (101) eines Mikrocontrollers (100), wobei die Speichereinheit (101) eine oder mehrere Speicherbänke (130, 131, 132), eine Zusatz-Speicherbank (140) und eine Testeinheit (120) zum Durchführen von Tests einer der einen oder mehreren Speicherbänke (130, 131, 132) aufweist, wobei die Speichereinheit (101) über wenigstens zwei gleichzeitig nutzbare Kommunikationskanäle (131a, 132a) zum wahlfreien Zugriff auf jeweils eine der einen oder mehreren Speicherbänke (130, 131, 132) und der Zusatz-Speicherbank (140) verfügt, wobei ein Speicherinhalt einer zu testenden Speicherbank (131) der einen oder mehreren Speicherbänke (130, 131, 132) in die Zusatz-Speicherbank (140) geschrieben wird (210), wobei ein Zugriffswunsch der Testeinheit (120) an die zu testende Speicherbank (131) geleitet wird und wobei ein Test der zu testenden Speicherbank (131) durch die Testeinheit (120) durchgeführt wird, wobei, wenn, während der Test durchgeführt wird, ein Zugriffswunsch auf den Speicherinhalt der zu testenden Speicherbank (131) registriert wird, der Zugriffswunsch an die Zusatz-Speicherbank (140) umgeleitet wird und auf den Speicherinhalt in der Zusatz-Speicherbank (140) zugegriffen wird, ein Zugriffswunsch auf einen Speicherinhalt einer der übrigen Speicherbänke (132) der einen oder mehreren Speicherbänke (130, 131, 132) registriert wird, der Zugriffswunsch an die jeweilige Speicherbank (132) geleitet wird und auf den Speicherinhalt der jeweiligen Speicherbank (132) der übrigen Speicherbänke (130, 131, 132) zugegriffen wird.The invention relates to a method for testing a memory unit (101) of a microcontroller (100), wherein the memory unit (101) has one or more memory banks (130, 131, 132), an additional memory bank (140) and a test unit (120) for the Performing tests on one of the one or more memory banks (130, 131, 132), wherein the memory unit (101) has at least two simultaneously usable communication channels (131a, 132a) for random access to one of the one or more memory banks (130, 131 , 132) and the auxiliary memory bank (140), wherein a memory content of a memory bank (131) of the one or more memory banks (130, 131, 132) to be tested is written into the additional memory bank (210), wherein passing an access request of the test unit (120) to the memory bank (131) to be tested, and wherein a test of the memory bank (131) to be tested is performed by the test unit (120), wherein if, during the Tes t, an access request to the memory contents of the memory bank (131) to be tested is registered, the access request is redirected to the additional memory bank (140) and the memory contents in the additional memory bank (140) are accessed, an access request to a Memory contents of one of the remaining memory banks (132) of the one or more memory banks (130, 131, 132) is registered, the access request is directed to the respective memory bank (132) and the memory contents of the respective memory bank (132) of the remaining memory banks (130, 131, 132) is accessed.
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Testen einer Speichereinheit eines Mikrocontrollers, einen Speichercontroller für eine Speichereinheit eines Mikrocontrollers, einen Mikrocontroller und ein Computerprogramm zur Durchführung des Verfahrens.The present invention relates to a method for testing a memory unit of a microcontroller, a memory controller for a memory unit of a microcontroller, a microcontroller and a computer program for carrying out the method.
Stand der TechnikState of the art
Zum Gewährleisten funktionaler Sicherheit von Speichereinheiten in Mikrocontrollern, wie beispielsweise RAM-Speichern, können diese Speichereinheiten auf Fehler überprüft werden. Zu diesem Zweck kann beispielsweise ein sogenannter "Memory Built In Self Test" (MBIST) durchgeführten werden. Dabei kann es sich beispielsweise um in den Mikrocontroller integrierte Hardwareelemente handeln, welche definierte Speichertestsequenzen durchführen.To ensure functional safety of storage devices in microcontrollers, such as RAM memories, these storage devices can be checked for errors. For this purpose, for example, a so-called "memory built-in self-test" (MBIST) can be performed. This may be, for example, hardware elements integrated in the microcontroller, which execute defined memory test sequences.
Die
Offenbarung der ErfindungDisclosure of the invention
Erfindungsgemäß werden ein Verfahren zum Testen einer Speichereinheit eines Mikrocontrollers, ein Speichercontroller für eine Speichereinheit eines Mikrocontrollers, ein Mikrocontroller und ein Computerprogramm zur Durchführung des Verfahrens mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for testing a memory unit of a microcontroller, a memory controller for a memory unit of a microcontroller, a microcontroller and a computer program for carrying out the method with the features of the independent patent claims are proposed. Advantageous embodiments are the subject of the dependent claims and the following description.
Die Speichereinheit weist eine oder mehrere Speicherbänke und eine Zusatz-Speicherbank auf. Die Speichereinheit ist insbesondere als ein RAM-Speicher des Mikrocontrollers ausgebildet, die Speicherbänke und die Zusatz-Speicherbank insbesondere jeweils als RAM-Bank. The memory unit has one or more memory banks and an additional memory bank. In particular, the memory unit is designed as a RAM memory of the microcontroller, the memory banks and the additional memory bank each in particular as a RAM bank.
Die Speichereinheit verfügt über wenigstens zwei gleichzeitig nutzbare Kommunikationskanäle, von denen jeder zum wahlfreien Zugriff auf jeweils eine der einen oder mehreren Speicherbänke und der Zusatz-Speicherbank nutzbar ist. Insbesondere kann somit gleichzeitig auf wenigstens zwei unterschiedliche Speicherbänke (beliebige Speicherbänke oder Zusatz-Speicherbank) zugegriffen werden.The memory unit has at least two simultaneously usable communication channels, each of which can be used for random access to one of the one or more memory banks and the additional memory bank. In particular, at least two different memory banks (arbitrary memory banks or additional memory bank) can thus be accessed simultaneously.
Die Speichereinheit weist weiterhin eine Testeinheit zum Durchführen von Tests der einen oder mehreren Speicherbänke und optional der Zusatz-Speicherbank auf. Insbesondere werden die Tests im Zuge eines sogenannten "Memory Built In Self Test" (MBIST) durchgeführt. Unter "Memory Built In Self Test" seien insbesondere in den Mikrocontroller integrierte Hardwareelemente zu verstehen, die dazu eingerichtet sind, definierte Speichertestsequenzen automatisiert durchzuführen. Dabei können unterschiedliche Testsequenzen eingesetzt werden. Die Testeinheit ist insbesondere als ein sogenannter "online Memory Built In Self Test Controller" (MBIST-Controller) ausgebildet.The memory unit further comprises a test unit for performing tests of the one or more memory banks and optionally the auxiliary memory bank. In particular, the tests are carried out as part of a so-called "memory built-in self-test" (MBIST). The term "memory-built-in self-test" should in particular be understood to mean hardware elements integrated in the microcontroller, which are set up to carry out defined memory test sequences in an automated manner. Different test sequences can be used. The test unit is designed in particular as a so-called "online memory built-in self-test controller" (MBIST controller).
Die Speichereinheit weist insbesondere eine bevorzugte Ausgestaltung eines erfindungsgemäßen Speichercontrollers auf. Der Speichercontroller steht insbesondere über die wenigstens zwei gleichzeitig nutzbaren Kommunikationskanäle mit der einen oder den mehreren Speicherbänken und der Zusatz-Speicherbank in Kommunikationsverbindung. Somit kann insbesondere gleichzeitig auf wenigstens zwei unterschiedliche Speicherbänke der einen oder mehreren Speicherbänke und der Zusatz-Speicherbank zugegriffen werden. Der Speichercontroller ist, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Zu diesem Zweck registriert der Speichercontroller insbesondere Zugriffswünsche, u.a. auch der Testeinheit, auf die eine oder mehreren Speicherbänke und die Zusatz-Speicherbank und leitet diese entsprechend weiter.In particular, the memory unit has a preferred embodiment of a memory controller according to the invention. The memory controller communicates in particular via the at least two simultaneously usable communication channels with the one or more memory banks and the additional memory bank in communication connection. Thus, in particular, at least two different memory banks of the one or more memory banks and the additional memory bank can be accessed at the same time. The memory controller is, in particular programmatically, configured to perform a preferred embodiment of the method according to the invention. For this purpose, the memory controller registers in particular access requests, i.a. also the test unit, on the one or more memory banks and the additional memory bank and forwards them accordingly.
Im Zuge des Verfahrens wird ein Speicherinhalt einer zu testenden Speicherbank der einen oder mehreren Speicherbänke in die Zusatz-Speicherbank geschrieben. Insbesondere bestimmt die Testeinheit eine der einen oder mehreren Speicherbänke, welche getestet werden soll, und übermittelt einen entsprechenden Zugriffswunsch an den Speichercontroller. Der Speichercontroller und/oder die Testeinheit veranlassen daraufhin das Schreiben des Speicherinhalts in die Zusatz-Speicherbank. Der Zugriffswunsch der Testeinheit wird von dem Speichercontroller an die zu testende Speicherbank geleitet und ein Test der zu testenden Speicherbank wird durch die Testeinheit durchgeführt. In the course of the method, a memory content of a memory bank to be tested of the one or more memory banks is written to the additional memory bank. In particular, the test unit determines one of the one or more memory banks to be tested and transmits a corresponding access request to the memory controller. The memory controller and / or the test unit then cause the writing of the memory contents in the additional memory bank. The access request of the test unit is passed from the memory controller to the memory bank to be tested and a test of the memory bank to be tested is performed by the test unit.
Der Test der Speichereinheit wird insbesondere während des laufenden regulären Betriebs des Mikrocontrollers durchgeführt. Aufgrund der wenigstens zwei Kommunikationskanäle ist es möglich, dass externe Quellen (z.B. Prozessoren im Mikrocontroller, andere Mikrocontroller, Bus-Master) im Zuge des regulären Betriebs unabhängig von dem Test auf Speicherinhalte der einen oder mehreren Speicherbänke zugreifen. Ein entsprechender Zugriffswunsch, der insbesondere über einen geeigneten Kommunikationssystem (z.B. Bus) übermittelt wird, wird von dem Speichercontroller registriert.The test of the memory unit is carried out in particular during the ongoing regular operation of the microcontroller. Due to the at least two communication channels, it is possible for external sources (eg processors in the microcontroller, other microcontrollers, bus masters) to access memory contents of the one or more memory banks independently of the test in the course of regular operation. An appropriate access request, in particular via a suitable Communication system (eg bus) is transmitted, registered by the memory controller.
Wenn, während der Test durchgeführt wird, ein Zugriffswunsch auf den Speicherinhalt der zu testenden Speicherbank von dem Speichercontroller registriert wird, leitet dieser den Zugriffswunsch an die Zusatz-Speicherbank. Während der Test durchgeführt wird, wird in diesem Fall auf den Speicherinhalt in der Zusatz-Speicherbank (und nicht in der zu testenden Speicherbank) zugegriffen, vorteilhafterweise gleichzeitig mit und unabhängig von dem durchgeführten Test.If, during the test, an access request to the memory contents of the memory bank to be tested is registered by the memory controller, it forwards the access request to the additional memory bank. In this case, while the test is being performed, the memory contents in the auxiliary memory bank (and not in the memory bank under test) are accessed, advantageously simultaneously with and independent of the test being performed.
Wenn, während der Test durchgeführt wird, ein Zugriffswunsch auf einen Speicherinhalt einer der übrigen Speicherbänke (soweit vorhanden), welche zum aktuellen Zeitpunkt nicht getestet werden, von dem Speichercontroller registriert wird, wird der Zugriffswunsch an die jeweilige Speicherbank geleitet. Während des durchgeführten Tests wird in diesem Fall über einen der wenigstens zwei Kommunikationskanäle auf den Speicherinhalt der jeweiligen Speicherbank zugegriffen, vorteilhafterweise gleichzeitig mit und unabhängig von dem durchgeführten Test, der einen anderen der wenigstens zwei Kommunikationskanäle nutzt.If, during the test, an access request to a memory content of one of the remaining memory banks (if present), which are not currently being tested, is registered by the memory controller, the access request is directed to the respective memory bank. During the test that has been carried out, in this case the memory contents of the respective memory bank are accessed via one of the at least two communication channels, advantageously simultaneously with and independently of the test carried out, which uses another of the at least two communication channels.
Durch die Auslagerung des Speicherinhalts der zu testenden Speicherbank in die Zusatz-Speicherbank treten insbesondere keine Zugriffskonflikte zwischen externen Quellen und der Testeinheit auf. Zugriffe von externen Quellen auf den Speicherinhalt der zu testenden Speicherbank werden insbesondere ausnahmslos an die Zusatz-Speicherbank umgeleitet. Die durch die Testeinheit erzeugten Testzugriffe auf die zu testende Speicherbank werden an die zu testende Speicherbank geleitet.By outsourcing the memory contents of the memory bank to be tested in the additional memory bank in particular no access conflicts between external sources and the test unit occur. Accesses from external sources to the memory contents of the memory bank to be tested are, in particular, redirected without exception to the additional memory bank. The test accesses to the memory bank to be tested generated by the test unit are passed to the memory bank to be tested.
Durch die wenigstens zwei gleichzeitig und wahlfrei nutzbaren Kommunikationskanäle wird es ermöglicht, dass im laufenden Betrieb des Mikrocontrollers Tests einzelner Speicherbänke durchgeführt werden können und dass dennoch gleichzeitig und ohne Zeitverzögerung auf sämtliche Speicherinhalte der Speichereinheit problemlos zugegriffen werden kann. Insbesondere wird es ermöglicht, dass der Test der zu testenden Speicherbank durchgeführt wird und dass vorteilhafterweise gleichzeitig auf den ausgelagerten Speicherinhalt dieser getesteten Speicherbank und/oder auf die Speicherinhalte der übrigen nicht getesteten Speicherbänke zugegriffen wird. Der durchgeführte Test beeinflusst den regulären Betrieb des Mikrocontrollers nicht. The at least two communication channels which can be used simultaneously and at random make it possible to carry out tests of individual memory banks during operation of the microcontroller, and yet nevertheless to access all memory contents of the memory unit simultaneously and without a time delay. In particular, it is made possible to carry out the test of the memory bank to be tested, and advantageously to simultaneously access the paged memory contents of this tested memory bank and / or the memory contents of the remaining untested memory banks. The test performed does not affect the regular operation of the microcontroller.
Es ist insbesondere nicht nötig, Zugriffswünsche der Testeinheit auf die zu testende Speicherbank, welche im Zuge des durchgeführten Tests registriert werden, und Zugriffswünsche externer Quellen auf die zu testende Speicherbank oder die übrigen Speicherbänke, welche im Zuge des regulären Betriebs des Mikrocontrollers durchgeführt werden, zu priorisieren und gestaffelt abzuarbeiten. Insbesondere wird gewährleistet, dass es zu keiner zeitlichen Beeinflussung und keiner Verzögerung der sonstigen für den regulären Betrieb nötigen Speicherzugriffe von externen Quellen kommt. Es kann gewährleistet werden, dass sowohl der Test als auch Zugriffe auf die Speicherinhalte der einzelnen Speicherbänke jeweils mit einer deterministischen (d.h. vorab bekannten) Dauer durchgeführt werden.In particular, it is not necessary to access requests of the test unit to the memory bank to be tested, which are registered in the course of the test performed, and access requests from external sources to the memory bank to be tested or the remaining memory banks, which are carried out in the course of the regular operation of the microcontroller prioritize and process staggered. In particular, it is ensured that there is no temporal influence and no delay of the other necessary for regular operation memory accesses from external sources. It can be ensured that both the test and accesses to the memory contents of the individual memory banks are each performed with a deterministic (i.e., previously known) duration.
Die Testeinheit kann zusammen mit dem Speichercontroller zum Durchführen des Verfahrens in die Speichereinheit implementiert werden oder es ist auch denkbar, herkömmliche Testeinheiten bzw. herkömmliche Speichercontroller aufzurüsten. Insbesondere bilden Speichercontroller und Testeinheit zusammen ein Test-Modul zum Durchführen des Verfahrens. Tests können durch dieses Test-Modul selbstständig und ohne Einbeziehung von Prozessoren des Mikrocontrollers durchgeführt werden. Beispielsweise kann das Test-Modul zu dessen Systemstart von einem Prozessor oder einer anderen externen Quelle konfiguriert werden und daraufhin die entsprechenden Tests autonom ohne weiteres Eingreifen von Prozessor/externer Quelle durchführen. The test unit can be implemented together with the memory controller for performing the method in the memory unit or it is also conceivable to upgrade conventional test units or conventional memory controllers. In particular, memory controller and test unit together form a test module for performing the method. Tests can be performed by this test module independently and without the involvement of processors of the microcontroller. For example, the test module may be configured to boot from a processor or other external source and then perform the appropriate tests autonomously without further processor / external source intervention.
Durch das Durchführen des Tests durch eine in die Speichereinheit implementierte Testeinheit und nicht durch eine beispielsweise im Prozessor des Mikrocontrollers ausgeführte Software kann die Rechenkapazität des Mikrocontrollers für den regulären Betrieb genutzt werden und muss nicht für die Speichertests aufgewendet werden.By performing the test by a test unit implemented in the memory unit and not by a software executed, for example, in the processor of the microcontroller, the computing capacity of the microcontroller can be used for regular operation and does not have to be used for the memory tests.
Der Test der Speichereinheit kann auf energieeffiziente, aufwandsarme Weise durchgeführt werden, ein Speichertestdurchsatz kann erhöht werden. Das Verfahren ist insbesondere uneingeschränkt multicore-fähig und erlaubt insbesondere den einfachen Einsatz von Virtualisierungslösungen. Insbesondere ist das Verfahren eigensicher, d.h. Fehlfunktionen, welche durch die Testeinheit oder das Test-Modul verursacht werden, werden selbstständig erkannt. Weiterhin können insbesondere Speicherfehlerbilder erkannt werden, die beispielsweise mittels softwarebasierter Speichertests nicht oder nur eingeschränkt erkannt werden können (z.B. Address Decoder Activation, Deactivation Delay Fault).The storage unit test can be performed in an energy-efficient, low-effort manner, and memory test throughput can be increased. The method is in particular fully multicore-capable and in particular allows the simple use of virtualization solutions. In particular, the method is intrinsically safe, i. Malfunctions caused by the test unit or the test module are detected automatically. Furthermore, in particular memory error images can be detected, which can not be recognized, for example by means of software-based memory tests, or only to a limited extent (for example, Address Decoder Activation, Deactivation Delay Fault).
Insbesondere wird durch das Verfahren gewährleistet, dass der Speicherinhalt der zu testenden Speicherbank erhalten bleibt und sowohl während als auch nach dem Test für Zugriffe zur Verfügung steht. Vorzugsweise werden nach dem durchgeführten Test weitere Speicherbänke getestet, insbesondere alle Speicherbänke nacheinander. Die Zusatz-Speicherbank kann insbesondere im Zuge des regulären Betriebs verwendet werden, wenn sie nicht zum Zwischenspeichern während eines durchgeführten Tests verwendet wird.In particular, the method ensures that the memory content of the memory bank to be tested is preserved and is available for access both during and after the test. Preferably, further memory banks are tested after the test carried out, in particular all the memory banks in succession. The additional memory bank can in particular in the course of the regular operation if it is not used for caching during a test run.
Gemäß einer ersten bevorzugten Ausführung wird, nachdem der Test durchgeführt wurde, der Speicherinhalt aus der Zusatz-Speicherbank zurück in die getestete Speicherbank kopiert. Die Zusatz-Speicherbank wird dabei vorzugsweise als eine permanente Schatten-Speicherbank verwendet und als Zwischenspeicher für die Speicherinhalte jeder zu testenden Speicherbank genutzt. Vorteilhafterweise wird, nachdem der Test durchgeführt und der Speicherinhalt von der Zusatz-Speicherbank in die getestete Speicherbank zurückkopiert wurde, ein Speicherinhalt einer als nächstes zu testenden Speicherbank in die Zusatz-Speicherbank kopiert. Nachdem der Test dieser als nächstes zu testenden Speicherbank durchgeführt wurde, wird der entsprechende Speicherinhalt vorzugsweise wieder in die getestete Speicherbank zurückkopiert. Dieser Vorgang wird insbesondere für alle Speicherbänke wiederholt. Diese Ausführung ermöglicht eine besonders einfache Implementierung, da der Speichercontroller Zugriffswünsche auf die aktuell getestete Speicherbank insbesondere stets an die Zusatz-Speicherbank weiterleiten kann.According to a first preferred embodiment, after the test has been performed, the memory contents from the additional memory bank are copied back into the tested memory bank. The additional memory bank is preferably used as a permanent shadow memory bank and used as a buffer for the memory contents of each memory bank to be tested. Advantageously, after the test has been performed and the memory contents have been copied back from the additional memory bank to the tested memory bank, a memory content of a memory bank to be tested next is copied into the additional memory bank. After the test of this memory bank to be tested next has been performed, the corresponding memory content is preferably copied back into the tested memory bank. This process is repeated in particular for all memory banks. This embodiment enables a particularly simple implementation since the memory controller can always forward access requests to the currently tested memory bank, in particular always to the additional memory bank.
Gemäß einer zweiten bevorzugten Ausführung verbleibt der Speicherinhalt nach dem durchgeführten Test in der Zusatz-Speicherbank und wird nicht zurück in die getestete Speicherbank kopiert. Die Rolle einer Schatten-Speicherbank wird vorzugsweise für nachfolgende Tests anderen Speicherbänken zugeordnet. Nach dem durchgeführten Test wird die Zusatz-Speicherbank für den regulären Betrieb des Mikrocontrollers als reguläre Speicherbank verwendet. Bevorzugt wird für weitere durchzuführende Tests jeweils die zuletzt getestete Speicherbank als Schatten-Speicherbank verwendet. Ein Speicherinhalt einer als nächstes zu testenden Speicherbank wird vorteilhafterweise in die zuvor getestete Speicherbank kopiert und ein Test der als nächstes zu testenden Speicherbank wird durchgeführt. Erfolgt während des Tests der als nächstes zu testenden Speicherbank ein Zugriffswunsch auf deren Speicherinhalt, wird dieser Zugriffswunsch an die zuvor getestete Speicherbank umgeleitet und es wird auf den Speicherinhalt in dieser zuvor getesteten Speicherbank zugegriffen. Diese Ausführung erlaubt die Durchführung von Tests insbesondere mit hoher Flexibilität und mit höherem Durchsatz, da ein Rückkopieren unterbleibt.According to a second preferred embodiment, the memory contents remain in the additional memory bank after the test has been carried out and are not copied back into the tested memory bank. The role of a shadow memory bank is preferably assigned to other memory banks for subsequent tests. After the test has been carried out, the additional memory bank is used as a regular memory bank for the regular operation of the microcontroller. Preferably, the last tested memory bank is used as a shadow memory bank for further tests to be carried out. A memory content of a memory bank to be tested next is advantageously copied into the previously tested memory bank and a test of the memory bank to be tested next is performed. If, during the test of the memory bank to be tested next, an access request to its memory contents occurs, this access request is diverted to the previously tested memory bank and the memory contents in this previously tested memory bank are accessed. This design allows tests to be carried out, in particular with high flexibility and higher throughput, since there is no duplication.
Vorteilhafterweise weisen die einzelnen Speicherbänke der einen oder mehreren Speicherbänke und der Zusatz-Speicherbank dieselbe oder im Wesentlichen dieselbe Speicherkapazität auf. Insbesondere sind die Speicherbänke und die Zusatz-Speicherbank jeweils gleich bzw. baugleich ausgebildet. Bei unterschiedlichen Speicherkapazitäten der einzelnen Speicherbänke ist die Speicherkapazität der Zusatz-Speicherbank insbesondere wenigstes so groß wie die größte der Speicherbänke. Somit wird insbesondere gewährleistet, dass die Speicherinhalte einer jeden der Speicherbänke jeweils komplett in der Zusatz-Speicherbank zwischengespeichert werden können und dass auch bei Test einer der Speicherbänke auf den kompletten Speicherinhalt der getesteten Speicherbank zugegriffen werden kann.Advantageously, the individual memory banks of the one or more memory banks and the additional memory bank have the same or substantially the same memory capacity. In particular, the memory banks and the additional memory bank are in each case the same or the same design. With different storage capacities of the individual memory banks, the storage capacity of the additional memory bank is in particular at least as large as the largest of the memory banks. Thus, it is ensured, in particular, that the memory contents of each of the memory banks can each be stored completely in the additional memory bank and that the entire memory content of the tested memory bank can be accessed even when one of the memory banks is tested.
Durch die derartige Ausgestaltung der Zusatz-Speicherbank kann der Speichercontroller insbesondere auf einfache Weise aufgebaut sein, da bei einer Umleitung eines Zugriffswunschs auf die Zusatz-Speicherbank insbesondere nur derjenige Anteil der Speicheradresse von dem Speichercontroller angepasst wird, welcher die entsprechende Speicherbank identifiziert. Der Anteil, welcher den Speicherinhalt innerhalb der Speicherbank identifiziert, kann insbesondere unverändert bleiben.Due to the configuration of the additional memory bank of this type, the memory controller can be constructed in a simple manner, since with a redirection of an access request to the additional memory bank, only that portion of the memory address is adapted by the memory controller which identifies the corresponding memory bank. The portion which identifies the memory contents within the memory bank can, in particular, remain unchanged.
Vorteilhafterweise wird im Zuge des durchgeführten Tests der zu testenden Speicherbank eine Fehlererkennung der Testeinheit durchgeführt. Wenn im Zuge des Tests beispielsweise Speichertestsequenzen ausgeführt werden, welche schreibende Zugriffe enthalten, besteht die Gefahr, dass im Falle eines Fehlers der Testeinheit Nutzdaten verfälscht werden. Durch die Fehlerkennung kann die Testeinheit abgesichert werden und Fehler in der Testeinheit können frühzeitig erkannt und behoben werden. Insbesondere wird die Fehlererkennung mittels Prüfsummen und/oder mittels eines "Error Correcting Codes" (ECC, Fehlerkorrekturverfahren) durchgeführt.Advantageously, in the course of the test carried out on the memory bank to be tested, an error detection of the test unit is carried out. If, for example, memory test sequences are carried out in the course of the test which contain write accesses, there is a risk that in the event of a fault of the test unit user data will be falsified. Due to the error detection, the test unit can be secured and errors in the test unit can be detected and remedied early. In particular, the error detection is performed by means of checksums and / or by means of an "Error Correcting Code" (ECC, error correction method).
Zu diesem Zweck kann die Testeinheit insbesondere Prüfsummenregister aufweisen, z.B. "Multiple-Input-Signature-Register" (MISR). Weiterhin weist die Testeinheit insbesondere weitere Register auf, z.B. Steuerregister, Adressregister, Datenregister, in welchen insbesondere Befehlssequenz und/oder Testdaten für den Speichertest hinterlegt sind.For this purpose, the test unit may in particular comprise checksum registers, e.g. Multiple Input Signature Register (MISR). Furthermore, the test unit has in particular further registers, e.g. Control register, address register, data register in which particular command sequence and / or test data for the memory test are stored.
Bevor der Test der Speicherbank durchgeführt wird, kann eine Referenzsignatur berechnet werden. Dazu werden insbesondere einzelne Befehle und Adressen sowie die zu schreibenden bzw. die bei einem lesenden Zugriff erwarteten Daten in das jeweilige Register eingespeist. Im Falle eines Save-Befehls wird die zu sichernde Adresse zusätzlich in eines der Prüfsummenregister eingespeist. Während der Durchführung des Tests werden Speicherzugriffe durch die Testeinheit der Reihe nach abgearbeitet und zusätzlich die Befehle und Adressen sowie die geschriebenen bzw. die gelesenen Daten in die Prüfsummenregister eingespeist. Im Falle eines Save-Befehls werden zusätzlich die aus dem Speicher gelesenen Daten in die Prüfsummenregister eingespeist. Bei der Ausführung eines abschließenden Restore-Befehls werden vor einer Wiederherstellung der Daten die Inhalte der Prüfsummenregister jeweils miteinander verglichen. Eine Abweichung spezieller Prüfsummen deutet insbesondere auf einen Fehler der Testeinheit oder in der getesteten Speicherbank hin. Im Anschluss werden die Prüfsummenregister insbesondere zurückgesetzt.Before the test of the memory bank is performed, a reference signature can be calculated. In particular, individual commands and addresses as well as the data to be written or the data expected for a read access are fed into the respective register. In the case of a save command, the address to be saved is additionally fed into one of the checksum registers. During the execution of the test, memory accesses are processed by the test unit in sequence and additionally the instructions and addresses as well as the written or the read data are fed into the checksum registers. In the case of a save command, in addition, the data read from the memory is added to the checksum registers fed. When executing a final restore command, the contents of the checksum registers are each compared before recovering the data. A deviation of special checksums in particular indicates a fault of the test unit or in the tested memory bank. Afterwards, the checksum registers are reset in particular.
Wenn der Speicherinhalt aus der Zusatz-Speicherbank wieder zurück in die getestete Speicherbank geschrieben wird, kann insbesondere ein erneuter Prüfsummenvergleich durchgeführt werden. Dabei werden insbesondere für jeden Zugriff die Adresse und die wiederhergestellten Daten in die Prüfsummenregister eingespeist. Nachdem alle Daten wiederhergestellt wurden, erfolgt insbesondere ein erneuter Prüfsummenvergleich der Prüfsummenregister. Eine Abweichung der jeweiligen Prüfsummen deutet auf einen Fehler in der Testeinheit oder in dem wiederhergestellten Speicherinhalt Daten hin.In particular, if the memory contents from the additional memory bank are written back into the tested memory bank, a new checksum comparison can be carried out. In particular, the address and the restored data are fed into the checksum registers for each access. After all data has been restored, in particular, a new checksum comparison of the checksum registers takes place. A deviation of the respective checksums indicates an error in the test unit or in the restored memory contents data.
Wenn die spezielle Speichertestsequenz des durchgeführten Tests, die Adressabfolge und die genutzten Testdaten im Vorfeld bekannt sind, können die Referenzprüfsummen bereits offline berechnet werden. In diesem Fall kann der Berechnungsvorgang der Referenzprüfsummen vor dem eigentlichen Speichertest entfallen. Der Inhalt der Prüfsummenregister wird in diesem Fall vor der Durchführung des Restore-Befehls mit den offline berechneten Prüfsummen verglichen. Alternativ kann die Erkennung von Fehlern in der Testeinheit selbst durch Verwendung des Hardware-Lockstep-Prinzips erfolgen.If the specific memory test sequence of the test performed, the address sequence and the test data used are known in advance, the reference checksums can already be calculated offline. In this case, the calculation process of the reference checksums before the actual memory test can be omitted. In this case, the contents of the checksum registers are compared with the off-line checksums before the Restore command is executed. Alternatively, the detection of errors in the test unit itself can be done by using the hardware lockstep principle.
Das Verfahren eignet sich für Mikrocontroller in einer Vielzahl von unterschiedlichen Bereichen, insbesondere für Mikrocontroller, die in Steuergeräten zur Steuerung von technischen Anlagen, wie beispielsweise Werkzeugmaschinen, Druckmaschinen, Kernkraftwerken, Eisenbahnen, Flugzeugen oder bevorzugt Kraftfahrzeugen, implementiert sind. In Kraftfahrzeugen eignet sich das Verfahren insbesondere für Steuergeräte zur Motorsteuerung und/oder Hybridsteuerung, sowie zur Steuerung von Airbag, ABS, ESP, Lenkungssteuergeräte usw.The method is suitable for microcontrollers in a large number of different areas, in particular for microcontrollers, which are implemented in control units for controlling technical installations, such as, for example, machine tools, printing presses, nuclear power plants, railways, aircraft or, preferably, motor vehicles. In motor vehicles, the method is particularly suitable for control units for engine control and / or hybrid control, and for controlling airbag, ABS, ESP, steering control devices, etc.
Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Also, the implementation of the method in the form of a computer program is advantageous because this causes very low costs, especially if an executive controller is still used for other tasks and therefore already exists.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and embodiments of the invention will become apparent from the description and the accompanying drawings.
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is illustrated schematically by means of embodiments in the drawing and will be described below with reference to the drawing.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
Ausführungsform(en) der ErfindungEmbodiment (s) of the invention
In
Der Mikrocontroller
Die Speichereinheit
Ein Speichercontroller
Ein Bus-Interface
Eine Testeinheit
Wird im Zuge eines Tests ein Fehler einer der RAM-Bänke festgestellt, kann eine entsprechende Meldung über einen Kanal
Weiterhin sind Konfigurationsregister
Die Konfigurationsregister
Um die Tests der RAM-Bänke gemäß den empfangenen Konfigurationsdaten durchzuführen, übermittelt die Testeinheit
Um Test einzelner RAM-Bänke
In
In einem Schritt
In einem Schritt
In Schritt
In Schritt
Insbesondere erfolgt diese Auslagerung des Speicherinhalts kontinuierlich mit aufsteigenden Adressen innerhalb der RAM-Bank
Ein Datum (z.B. ein Wort) an der entsprechenden Adresse wird in Schritt
Zu diesem Zweck kann in dem Speichercontroller eine entsprechende Beobachtungseinheit
Alternativ können die Schritte
Nachdem das Datum erfolgreich in die Zusatz-RAM-Bank
Wenn die angesprochene Adresse kleiner als der Evakuierungszeiger ist, ist der entsprechende Speicherinhalt bereits in die Zusatz-RAM-Bank
Der Evakuierungszeiger wird daraufhin in Schritt
Sobald der komplette Speicherinhalt der RAM-Bank
In Schritt
In Schritt
Wenn der Test beendet ist, wird überprüft ob ein Fehler der getesteten RAM-Bank
Die Einheiten
Analog können auch die Schritte
Beispielsweise kann für jeden einzelnen externen Zugriff durch die Adressiereinheit
Wenn die RAM-Bank
Gemäß einer alternativen bevorzugten Ausführungsform wird in Schritt
Das Verfahren wird solange durchgeführt, bis in Schritt
Alternativ kann die Testeinheit in Schritt
Falls von der Testeinheit
In dieser Ausgestaltung umfasst die Testeinheit
Durch den Befehl "Save <address>" wird der aktuelle Inhalt einer Speicherzelle mit der Adresse "<address>" eingelesen und in der Zusatz-RAM-Bank
Durch den Befehl "Write <address><data>" werden die im entsprechenden Daten-Register enthaltenen Daten "<data>" in den zu testenden RAM-Bank an die Adresse "<address>" geschrieben.By means of the command "Write <address> <data>", the data "<data>" contained in the corresponding data register is written to the address "<address>" in the RAM bank to be tested.
Durch den Befehl "Read <address><data>" wird der aktuelle Inhalt der Adresse "<address>" eingelesen und mit den im entsprechenden Daten-Register enthaltenen Daten "<data>" verglichen. Diese Daten "<data>" des Daten-Register stellen insbesondere einen Erwartungswert für den Vergleich dar.The command "Read <address> <data>" reads the current content of the address "<address>" and compares it with the data "<data>" contained in the corresponding data register. In particular, these data "<data>" of the data register represent an expected value for the comparison.
Der Testdurchgang wird mit dem Befehl "Restore" abgeschlossen. Alle Daten, die zuvor mittels "Save"-Befehlen evakuiert wurden, werden wieder an die ursprünglichen Adressen zurückkopiert.The test run is completed with the "Restore" command. All data previously evacuated using "save" commands is copied back to the original addresses.
Neben diesen Registern
Ein erstes Paar umfasst beispielsweise die Prüfsummenregister "Address(Ref)"
Während der Durchführung des Speichertests werden die Speicherzugriffe der Reihe nach abgearbeitet und zusätzlich die Befehle inkl. der Adressen sowie die geschriebenen bzw. die gelesenen Daten in die Prüfsummenregister "Address(Exe)"
Bei der Ausführung des abschließenden "Restore"-Befehls werden vor der Wiederherstellung der Daten die Inhalte der Prüfsummenregister "Address(Ref)"
Im Anschluss werden die Prüfsummenregister "Address(Exe)"
Nachdem alle Daten wiederhergestellt wurden, erfolgt ein erneuter Prüfsummenvergleich zwischen "Address(Exe)"
Sofern die Speichertestsequenz, die Adressabfolge und die genutzten Testdaten bereits im Vorfeld bekannt sind, können die Referenzprüfsummen bereits offline berechnet werden. In diesem Fall kann der Berechnungsvorgang der Referenzprüfsummen vor dem eigentlichen Speichertest entfallen. Der Inhalt der Prüfsummenregister "Address(Exe)"
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- WO 2013/102230 A1 [0003] WO 2013/102230 A1 [0003]
- US 2014/0289575 A1 [0003] US 2014/0289575 A1 [0003]
- US 8020053 B2 [0003] US8020053 B2 [0003]
Claims (14)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102015219266.0A DE102015219266A1 (en) | 2015-10-06 | 2015-10-06 | Method for testing a memory unit of a microcontroller |
| CN201610870941.XA CN107025946A (en) | 2015-10-06 | 2016-09-30 | For the method for the memory cell for testing microcontroller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102015219266.0A DE102015219266A1 (en) | 2015-10-06 | 2015-10-06 | Method for testing a memory unit of a microcontroller |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102015219266A1 true DE102015219266A1 (en) | 2017-04-06 |
Family
ID=58355976
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102015219266.0A Pending DE102015219266A1 (en) | 2015-10-06 | 2015-10-06 | Method for testing a memory unit of a microcontroller |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN107025946A (en) |
| DE (1) | DE102015219266A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118072806A (en) * | 2022-12-30 | 2024-05-24 | 深圳市速腾聚创科技有限公司 | Memory detection method, integrated circuit device, storage medium and laser radar |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8020053B2 (en) | 2008-10-29 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | On-line memory testing |
| WO2013102230A1 (en) | 2012-01-01 | 2013-07-04 | Bendik Kleveland | Built in self-testing and repair device and method |
| US20140289575A1 (en) | 2002-05-30 | 2014-09-25 | Marvell World Trade Ltd. | Systems and methods for testing pages of data stored in a memory module |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5038788B2 (en) * | 2007-06-18 | 2012-10-03 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
| CN102890648A (en) * | 2011-07-22 | 2013-01-23 | 谢强 | Memory bank test method based on computer bus interface card |
| CN104412327B (en) * | 2013-01-02 | 2019-02-12 | 默思股份有限公司 | Built-in self-test and repair device and method |
| JP6269228B2 (en) * | 2014-03-25 | 2018-01-31 | 株式会社ジェイテクト | RAM inspection method for programmable logic controller and programmable logic controller |
-
2015
- 2015-10-06 DE DE102015219266.0A patent/DE102015219266A1/en active Pending
-
2016
- 2016-09-30 CN CN201610870941.XA patent/CN107025946A/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140289575A1 (en) | 2002-05-30 | 2014-09-25 | Marvell World Trade Ltd. | Systems and methods for testing pages of data stored in a memory module |
| US8020053B2 (en) | 2008-10-29 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | On-line memory testing |
| WO2013102230A1 (en) | 2012-01-01 | 2013-07-04 | Bendik Kleveland | Built in self-testing and repair device and method |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107025946A (en) | 2017-08-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69608641T2 (en) | Failure elimination for control unit for an input / output device | |
| DE102013211077B4 (en) | Method for testing a memory and storage system | |
| EP1952239A1 (en) | Apparatus and method for eliminating errors in a system having at least two execution units with registers | |
| DE102015003194A1 (en) | Method and device for handling safety-critical errors | |
| DE112014000340T5 (en) | Prefetching data for a chip with a parent core and a scout core | |
| DE112015003569T5 (en) | Method and system for using NAND page buffers to improve the transfer buffer utilization of a solid state drive | |
| DE102019131865A1 (en) | METHOD AND DEVICE FOR SELF-DIAGNOSTICING THE RAM ERROR DETECTION LOGIC OF A DRIVELINE CONTROLLER | |
| DE102008004205A1 (en) | Circuit arrangement for error treatment in real-time system e.g. controller, for motor vehicle, has processing units reporting result of inherent error diagnosis by monitoring unit that activates arithmetic units in dependence of result | |
| DE2336020C3 (en) | Address calculation circuit for parity error correction programs | |
| EP1588380B1 (en) | Method for the recognition and/or correction of memory access errors and electronic circuit arrangement for carrying out said method | |
| DE102018124836A1 (en) | NEW STORAGE BLOCK | |
| DE69508034T2 (en) | Fault detection system and method for mirrored storage between double disk storage controllers | |
| DE102013021231A1 (en) | Method for operating an assistance system of a vehicle and vehicle control unit | |
| WO2005078586A2 (en) | Method and device for analyzing integrated systems for critical safety computing systems in motor vehicles | |
| DE102021209362A1 (en) | Method for operating a vehicle control unit | |
| DE102015219266A1 (en) | Method for testing a memory unit of a microcontroller | |
| DE102010010369A1 (en) | Information processing apparatus and error detection method | |
| DE102013108073A1 (en) | DATA PROCESSING ARRANGEMENT AND METHOD FOR DATA PROCESSING | |
| WO2006108849A1 (en) | Method and computer unit for error recognition and error logging in a memory | |
| DE102012217312A1 (en) | Updates to code in processing systems | |
| DE102009002786A1 (en) | Method for testing a memory and control device with means for a memory test | |
| DE2034423B2 (en) | Procedure for troubleshooting a program-controlled switching system | |
| DE10305008A1 (en) | Method and device for monitoring an electronic control | |
| DE102010056232A1 (en) | Method for automatic writing of diagnosis data in control device of motor car, involves reading diagnosis data from collecting units by using cross references, and writing read diagnosis data in control devices | |
| DE102017108288B4 (en) | Update a memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R012 | Request for examination validly filed | ||
| R084 | Declaration of willingness to licence |