[go: up one dir, main page]

DE102015219266A1 - Method for testing a memory unit of a microcontroller - Google Patents

Method for testing a memory unit of a microcontroller Download PDF

Info

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
Application number
DE102015219266.0A
Other languages
German (de)
Inventor
Carsten Gebauer
Simon Hufnagel
Evgeniya Ballmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102015219266.0A priority Critical patent/DE102015219266A1/en
Priority to CN201610870941.XA priority patent/CN107025946A/en
Publication of DE102015219266A1 publication Critical patent/DE102015219266A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-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 WO 2013/102230 A1 beschreibt beispielsweise das Testen eines Hauptspeichers eines Integrierten Schaltkreises. Ein "Built-In-Self-Test"-Modul (BBISTM) wählt einen Teil des Hauptspeichers aus, schreibt diesen Teil in einen temporären Speicher und testet den Teil des Hauptspeichers. Auch in der US 2014/0289575 A1 und der US 8 020 053 B2 wird jeweils ein MBIST-Verfahren beschrieben.The WO 2013/102230 A1 describes, for example, the testing of a main memory of an integrated circuit. A built-in self-test module (BBISTM) selects a portion of main memory, writes that portion to temporary memory, and tests the portion of main memory. Also in the US 2014/0289575 A1 and the US 8 020 053 B2 In each case an MBIST method is described.

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

1 zeigt schematisch eine bevorzugte Ausgestaltung eines erfindungsgemäßen Mikrocontrollers, der dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen. 1 schematically shows a preferred embodiment of a microcontroller according to the invention, which is adapted to perform a preferred embodiment of a method according to the invention.

2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm. 2 schematically shows a preferred embodiment of a method according to the invention as a block diagram.

3 zeigt schematisch einen Teil einer bevorzugten Ausgestaltung eines erfindungsgemäßen Mikrocontrollers, der dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen. 3 schematically shows a part of a preferred embodiment of a microcontroller according to the invention, which is adapted to carry out a preferred embodiment of a method according to the invention.

4 zeigt schematisch einen Teil einer bevorzugten Ausgestaltung eines erfindungsgemäßen Mikrocontrollers, der dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen. 4 schematically shows a part of a preferred embodiment of a microcontroller according to the invention, which is adapted to carry out a preferred embodiment of a method according to the invention.

Ausführungsform(en) der ErfindungEmbodiment (s) of the invention

In 1 ist eine bevorzugte Ausgestaltung eines erfindungsgemäßen Mikrocontrollers schematisch dargestellt und mit 100 bezeichnet. Der Mikrocontroller 100 kann vorzugsweise in ein Steuergerät eines Kraftfahrzeugs implementiert sein, beispielsweise in ein Motorsteuergerät. Der Mikrocontroller 100 weist eine Speichereinheit 101 in Form eines RAM-Speichers und eine Prozessoreinheit 102, beispielsweise einen Multicore-Prozessor auf. In 1 a preferred embodiment of a microcontroller according to the invention is shown schematically and with 100 designated. The microcontroller 100 may preferably be implemented in a control unit of a motor vehicle, for example in an engine control unit. The microcontroller 100 has a storage unit 101 in the form of a RAM memory and a processor unit 102 , For example, a multi-core processor.

Der Mikrocontroller 100 umfasst ein Kommunikationssystem 103 z.B. in Form eines On-Chip-Bussystems oder einer Crossbar. Die Prozessoreinheit ist beispielsweise über ein Interface 102b an das Kommunikationssystem 103 angebunden. The microcontroller 100 includes a communication system 103 eg in the form of an on-chip bus system or a crossbar. The processor unit is for example via an interface 102b to the communication system 103 tethered.

Die Speichereinheit 101 weist eine oder mehrere Speicherbänke 130 in Form von RAM-Bänken auf. In diesem Beispiel weist die Speichereinheit zwei Speicherbänke bzw. RAM-Bänke 131 und 132 auf. Es versteht sich, dass die Speichereinheit 101 eine zweckmäßige Anzahl (kann auch nur eine sein) von Speicherbänken aufweisen kann. Weiterhin ist eine Zusatz-Speicherbank 140 bzw. Zusatz-RAM-Bank vorgesehen. Die RAM-Bänke 130 und die Zusatz-RAM-Bank 140 sind in diesem Beispiel baugleich ausgebildet und weisen jeweils dieselbe Speicherkapazität auf. Die einzelnen RAM-Bänke 131 und 132 können jedoch auch unterschiedlich groß sein. In diesem Fall ist die Zusatz-RAM-Bank 140 zweckmäßigerweise mindestens so groß wie die größte der RAM-Bänke 131 und 132. The storage unit 101 has one or more memory banks 130 in the form of RAM banks. In this example, the memory unit has two memory banks or RAM banks 131 and 132 on. It is understood that the storage unit 101 may be a convenient number (may be only one) of memory banks. Furthermore, an additional memory bank 140 or additional RAM bank provided. The RAM banks 130 and the additional RAM bank 140 are identical in construction in this example and each have the same storage capacity. The individual RAM banks 131 and 132 however, they can be different in size. In this case, the additional RAM bank 140 suitably at least as large as the largest of the RAM banks 131 and 132 ,

Ein Speichercontroller 110 (sog. "RAM Bank Decoder") registriert Zugriffswünsche auf Speicherinhalte in den RAM-Bänken 130 und 140 und leitet diese an die jeweiligen RAM-Bänke weiter. Der Speichercontroller steht jeweils über separate Kommunikationskanäle 131a, 132a, 140a mit jeder einzelnen RAM-Bank 131, 132, 140 in Kommunikationsverbindung, wobei von den Kommunikationskanälen 131a, 132a, 140a wenigstens zwei beliebige gleichzeitig nutzbar sind. Somit kann zu einem Zeitpunkt gleichzeitig auf wenigstens zwei unterschiedliche RAM-Bänke wahlfrei zugegriffen werden.A memory controller 110 (so-called "RAM Bank Decoder") registers access requests to memory contents in the RAM banks 130 and 140 and forwards them to the respective RAM banks. The memory controller is in each case via separate communication channels 131 . 132a . 140a with every single RAM bank 131 . 132 . 140 in communication connection, whereby of the communication channels 131 . 132a . 140a at least any two can be used simultaneously. Thus, at a time, at least two different RAM banks can be accessed at random simultaneously.

Ein Bus-Interface 150 ist an das Kommunikationssystem 103 angebunden (siehe Bezugszeichen 150b). Zugriffswünsche, die von externen Quellen (z.B. Prozessoreinheit 102, DMA Controller, ...) über das Kommunikationssystem 103 übermittelt werden, werden von dem Bus-Interface 150 empfangen und über einen Kommunikationskanal 150a an den Speichercontroller 110 übermittelt. A bus interface 150 is to the communication system 103 connected (see reference numeral 150b ). Access requests made by external sources (eg processor unit 102 , DMA controller, ...) via the communication system 103 are transmitted by the bus interface 150 received and over a communication channel 150a to the memory controller 110 transmitted.

Eine Testeinheit 120 in Form eines sog. "Online-Memory-Built-In-Self-Test-Controllers" ist zum Durchführen von Tests der RAM-Bänke 130 bzw. 140 vorgesehen. Die Tests werden im Zuge eines sogenannten "Memory Built In Self Test" (MBIST) durchgeführt. Die Testeinheit 120 steht über ein Interface bzw. einen Kommunikationskanal 120a mit dem Speichercontroller 110 in Kommunikationsverbindung. Die Testeinheit 120 kann je nach benötigter Flexibilität hinsichtlich der durchzuführenden Speichertestsequenzen in unterschiedlicher Form implementiert werden, beispielsweise als Sequenzer, State-Machine, CPU, etc.A test unit 120 in the form of a so-called "online memory built-in self-test controller" is for performing tests of the RAM banks 130 respectively. 140 intended. The tests are carried out as part of a so-called "Memory Built In Self Test" (MBIST). The test unit 120 is via an interface or a communication channel 120a with the memory controller 110 in communication connection. The test unit 120 can be implemented in different forms depending on the required flexibility with regard to the memory test sequences to be performed, for example as a sequencer, state machine, CPU, etc.

Wird im Zuge eines Tests ein Fehler einer der RAM-Bänke festgestellt, kann eine entsprechende Meldung über einen Kanal 122a an eine Fehlerverwaltung 122 (sog. "Error Management Unit") übermittelt werden. Die Fehlerverwaltung 122 kann beispielsweise als Software in der Prozessoreinheit 102 ausgeführt werden oder als separate Hardware Einheit in den Mikrocontroller 100 integriert sein.If a fault in one of the RAM banks is detected during a test, a corresponding message can be sent via a channel 122a to a fault management 122 (so-called "Error Management Unit"). The error management 122 For example, as software in the processor unit 102 be run or as a separate hardware unit in the microcontroller 100 be integrated.

Weiterhin sind Konfigurationsregister 121 (online MBIST Register) vorgesehen, welche über ein Interface bzw. einen Kommunikationskanal 121a mit der Testeinheit 120 in Kommunikationsverbindung steht. Insbesondere erfolgt die Steuerung der Testeinheit 120 (z.B. Auswahl von Speichertestsequenz, Konfiguration des zu testenden Adressbereichs, etc.) über die Konfigurationsregister 121.Furthermore, there are configuration registers 121 (Online MBIST register) provided, which via an interface or a communication channel 121 with the test unit 120 is in communication connection. In particular, the control of the test unit takes place 120 (eg selection of memory test sequence, configuration of the address range to be tested, etc.) via the configuration registers 121 ,

Die Konfigurationsregister 121 sind weiterhin über ein Interface 121b an das Kommunikationssystem 103 angebunden. Somit können die Konfigurationsregister 121 über das Kommunikationssystem 103 Konfigurationsdaten empfangen, gemäß welchen die Tests der RAM-Bänke durchgeführt werden sollen. Diese Konfigurationsdaten können über das Interface 121a an die Testeinheit 120 übermittelt werden. Weiterhin kann die Testeinheit über das Interface 121a Statusmeldungen bezüglich der durchgeführten Tests an die Konfigurationsregister 121 übermitteln, welches diese Statusmeldungen wiederum über das Kommunikationssystem 103 bereitstellt.The configuration registers 121 are still via an interface 121b to the communication system 103 tethered. Thus, the configuration registers 121 over the communication system 103 Receive configuration data according to which the tests of the RAM banks are to be performed. This configuration data can be accessed via the interface 121 to the test unit 120 be transmitted. Furthermore, the test unit via the interface 121 Status messages regarding the tests performed on the configuration registers 121 transmit these status messages via the communication system 103 provides.

Um die Tests der RAM-Bänke gemäß den empfangenen Konfigurationsdaten durchzuführen, übermittelt die Testeinheit 120 über das Interface 120a entsprechende Test-Zugriffswünsche an den Speichercontroller 110.To perform the tests of the RAM banks according to the received configuration data, the test unit transmits 120 over the interface 120a corresponding test access requests to the memory controller 110 ,

Um Test einzelner RAM-Bänke 130 bzw. 140 durchzuführen und gleichzeitig auf sämtliche Speicherinhalte der Speichereinheit 101 zugreifen zu können, ist der Mikrocontroller 100 dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welches in 2 schematisch als ein Blockdiagramm dargestellt ist.To test individual RAM banks 130 respectively. 140 and at the same time to all memory contents of the memory unit 101 to be able to access is the microcontroller 100 arranged to perform a preferred embodiment of a method according to the invention, which in 2 is shown schematically as a block diagram.

In 3 ist ein Teil des Mikrocontrollers 100 aus 1 detaillierter schematisch dargestellt. Die 2 und 3 werden im Folgenden gemeinsam erläutert.In 3 is part of the microcontroller 100 out 1 shown in more detail schematically. The 2 and 3 are explained together below.

In einem Schritt 200 wird die Testeinheit 120 aktiviert. Beispielsweise kann eine externe Quelle zu diesem Zweck über das Kommunikationssystem 103 Konfigurationsdaten an die Konfigurationsregister 121 übermitteln. In one step 200 becomes the test unit 120 activated. For example, an external source may be for this purpose via the communication system 103 Configuration data to the configuration registers 121 to transfer.

In einem Schritt 201 wird zunächst von der Testeinheit 120 ein Test der Zusatz-RAM-Bank 140 durchgeführt. Zu diesem Zweck übermittelt die Testeinheit 120 einen entsprechenden Test-Zugriffswunsch an den Speichercontroller 110, welcher diese Zugriffe an die Adresse der Zusatz-RAM-Bank 140 leitet und woraufhin die Testeinheit 120 Testsequenzen im Zuge des "Memory Built In Self Test" (MBIST) durchführt.In one step 201 is first from the test unit 120 a test of the auxiliary RAM bank 140 carried out. For this purpose, the test unit transmits 120 a corresponding test access request to the memory controller 110 which assigns these accesses to the address of the additional RAM bank 140 directs and whereupon the test unit 120 Test sequences in the course of the "Memory Built-In Self Test" (MBIST) performs.

In Schritt 202 wird überprüft, ob die Zusatz-RAM-Bank 140 einen Fehler aufweist. Wenn dies der Fall ist, wird das Verfahren gemäß Schritt 203 abgebrochen und eine entsprechende Meldung wird an die Fehlerverwaltung 122 übermittelt. Wenn die Zusatz-RAM-Bank 140 keinen Fehler aufweist, wird gemäß Schritt 204 von der Testeinheit eine als erstes zu testende RAM-Bank der RAM-Bänke 130 bestimmt, beispielsweise die RAM-Bank 131. In step 202 will check if the additional RAM bank 140 has an error. If so, the procedure in step 203 aborted and a corresponding message is sent to the error management 122 transmitted. If the additional RAM bank 140 has no error, is in accordance with step 204 from the test unit, a RAM bank of the RAM banks to be tested first 130 determines, for example, the RAM bank 131 ,

In Schritt 210 wird durch den Speichercontroller 110 ein Evakuierungs- bzw. Umkopiervorgang durchgeführt, im Zuge dessen der Speicherinhalt der RAM-Bank 131 in die Zusatz-RAM-Bank 140 geschrieben wird.In step 210 is through the memory controller 110 carried out an evacuation or Umkopiervorgang, in the course of which the memory contents of the RAM bank 131 in the additional RAM bank 140 is written.

Insbesondere erfolgt diese Auslagerung des Speicherinhalts kontinuierlich mit aufsteigenden Adressen innerhalb der RAM-Bank 131. In Schritt 211 wird ein Evakuierungszeiger (sog. "Evacuation Pointer") auf die kleinste Adresse innerhalb der RAM-Bank 131 gesetzt. Zu diesem Zweck kann in dem Speichercontroller 110 eine entsprechende Evakuierungszeiger-Einheit 310 (sog. "Evacuation Pointer Management Unit") vorgesehen sein. Der Evakuierungszeiger kennzeichnet insbesondere den Fortschritt der Auslagerung des Speicherinhalts bzw. die entsprechende interne Adresse des Auslagerungsfortschritts.In particular, this swapping out of the memory contents occurs continuously with ascending addresses within the RAM bank 131 , In step 211 becomes an Evacuation Pointer to the smallest address within the RAM bank 131 set. For this purpose, in the memory controller 110 a corresponding evacuation pointer unit 310 (so-called "Evacuation Pointer Management Unit"). The evacuation pointer particularly identifies the progress of the paging of the memory contents or the corresponding internal address of the paging progress.

Ein Datum (z.B. ein Wort) an der entsprechenden Adresse wird in Schritt 212 eingelesen und in Schritt 213 an eine korrespondierende interne Adresse der Zusatz-RAM-Bank 140 geschrieben. In Schritt 214 wird von dem Speichercontroller 110 überprüft, ob während dieses Umkopiervorgags des entsprechenden Datums (insbesondere zwischen Lesen der Daten gemäß Schritt 212 und vor Neukonfiguration des Evakuierungszeigers gemäß Schritt 216) ein Zugriffswunsch, beispielsweise von einer externen Quelle, auf dieses Datum erfolgt. Wenn dies der Fall ist, werden die Schritte 212 und 213 erneut durchgeführt und das Datum wird erneut in die Zusatz-RAM-Bank 140 kopiert (sog. "Re-Evacuation").A date (eg a word) at the corresponding address will be in step 212 read in and in step 213 to a corresponding internal address of the additional RAM bank 140 written. In step 214 is from the memory controller 110 checks whether during this Umkopiervorgags the corresponding date (in particular between reading the data according to step 212 and before reconfiguring the evacuation pointer according to step 216 ) an access request, for example from an external source, is made on this date. If this is the case, the steps become 212 and 213 performed again and the date is again in the additional RAM bank 140 copied (so-called "re-evacuation").

Zu diesem Zweck kann in dem Speichercontroller eine entsprechende Beobachtungseinheit 320 (sog. "Re-Evacuation Requirement Detection Unit", 3) vorgesehen sein. Insbesondere wird zu diesem Zweck überprüft, ob ein Datum an der ursprünglichen Adresse durch eine externe Quelle überschrieben wird. Ist dies der Fall, wird von der Beobachtungseinheit 320 ein entsprechendes Signal ("Re-Evacuation Required Signal") gesetzt und an die Testeinheit 120 übermittelt, woraufhin der Umkopiervorgang wiederholt wird.For this purpose, a corresponding observation unit can be provided in the memory controller 320 (so-called Re-Evacuation Requirement Detection Unit, 3 ) be provided. In particular, it is checked for this purpose whether a date at the original address is overwritten by an external source. If this is the case, the observation unit will 320 a corresponding signal ("Re-Evacuation Required Signal") is set and sent to the test unit 120 transmitted, whereupon the Umkopiervorgang is repeated.

Alternativ können die Schritte 212, 213 und 215 auch atomar, d.h. ohne Unterbrechungsmöglichkeit durch externe Zugriffe, erfolgen. In diesem Fall ist keine Wiederholung ("Re-Evacuation") nötig.Alternatively, the steps 212 . 213 and 215 Atomic, ie without interruption by external access, done. In this case, no repetition ("re-evacuation") is necessary.

Nachdem das Datum erfolgreich in die Zusatz-RAM-Bank 140 kopiert wurde und kein externer Zugriff auf dieses Datum während des Umkopiervorgangs erfolgt ist, wird in Schritt 215 von dem Speichercontroller 110 überprüft, ob ein Zugriffswunsch beispielsweise von einer externen Quelle auf den Speicherinhalt der RAM-Bank 131 erfolgt. Zu diesem Zweck wird in Schritt 214 die durch die externe Quelle im Zuge des Zugriffswunschs angesprochene Adresse insbesondere mit dem Evakuierungszeiger verglichen, beispielsweise von einer Adressiereinheit 330 ("Bank Address Remapping Unit", 3) des Speichercontrollers 110.After the date succeeds in the additional RAM bank 140 has been copied and no external access has been made to this date during the copy process, in step 215 from the memory controller 110 checks whether an access request for example from an external source to the memory contents of the RAM bank 131 he follows. For this purpose, in step 214 the addressed by the external source in the course of the access request address in particular compared to the evacuation pointer, for example, from an addressing unit 330 ("Bank Address Remapping Unit", 3 ) of the memory controller 110 ,

Wenn die angesprochene Adresse kleiner als der Evakuierungszeiger ist, ist der entsprechende Speicherinhalt bereits in die Zusatz-RAM-Bank 140 geschrieben worden und der Zugriffswunsch wird an die Zusatz-RAM-Bank 140 weiter geleitet. Andernfalls wurde der Speicherinhalt noch nicht kopiert und der Zugriff erfolgt auf den Speicherinhalt innerhalb der RAM-Bank 131.If the addressed address is smaller than the evacuation pointer, the corresponding memory content is already in the additional RAM bank 140 has been written and the access request is to the add-on RAM bank 140 passed on. Otherwise, the memory contents have not yet been copied and the access is made to the memory contents within the RAM bank 131 ,

Der Evakuierungszeiger wird daraufhin in Schritt 216 auf die nächsthöhere Adresse innerhalb der RAM-Bank 131 erhöht. In Schritt 217 wird überprüft, ob alle Wörter und somit der komplette Speicherinhalt der RAM-Bank 131 in die Zusatz-RAM-Bank 140 geschrieben wurden. Wenn dies nicht der Fall ist, werden die Schritte 212 bis 216 für das nächste Wort wiederholt.The evacuation pointer will then be in step 216 to the next higher address within the RAM bank 131 elevated. In step 217 It checks if all the words and thus the complete memory contents of the RAM bank 131 in the additional RAM bank 140 were written. If not, the steps become 212 to 216 repeated for the next word.

Sobald der komplette Speicherinhalt der RAM-Bank 131 in die Zusatz-RAM-Bank 140 evakuiert wurde, wird in Schritt 220 der Test der RAM-Bank 131 durchgeführt. Die Testeinheit 120 übermittelt entsprechende Test-Zugriffswunsche an den Speichercontroller 110, insbesondere an einen Autorisierungseinheit 340 (sog. "Access Arbitration Unit", 3). Eine Aufgabe der Autorisierungseinheit 340 besteht insbesondere darin, Zugriffskollisionen (also gleichzeitige Zugriffsversuche) auf dieselbe RAM-Bank zu erkennen und diese zu serialisieren. Dies geschieht sowohl während der Evakuierungs- als auch während der Testphase. Test-Zugriffswünsche werden von der Autorisierungseinheit 340 insbesondere an eine Vermittlungseinheit 350 (sog. "Routing Unit", 3) übermittelt und von dieser an die zu testende RAM-Bank 131 geleitet und die Testsequenzen werden in der RAM-Bank 131 durchgeführt.Once the full memory contents of the RAM bank 131 in the additional RAM bank 140 is evacuated, is in step 220 the test of the RAM bank 131 carried out. The test unit 120 sends appropriate test access requests to the memory controller 110 , in particular to an authorization unit 340 (so-called "Access Arbitration Unit", 3 ). A task of the authorization unit 340 consists in particular of detecting access collisions (ie concurrent access attempts) on the same RAM bank and serializing them. This happens during the evacuation as well as during the test phase. Test access requests are made by the authorization unit 340 in particular to a switching unit 350 (so-called "routing unit", 3 ) and from there to the RAM bank to be tested 131 passed and the test sequences are in the RAM bank 131 carried out.

In Schritt 230 wird überprüft, ob während des durchgeführten Tests Zugriffswünsche auf die Speicherinhalte der RAM-Bänke 130 erfolgen. Die Autorisierungseinheit 340 empfängt entsprechende Zugriffswünsche und prüft diese. Wenn die Zugriffswünsche zulässig sind, werden diese an die Vermittlungseinheit 350 übermittelt. In step 230 Checks whether requests for access to the memory contents of the RAM banks during the test 130 respectively. The authorization unit 340 receives corresponding access requests and checks them. If the access requests are allowed, they will be sent to the exchange unit 350 transmitted.

In Schritt 231 werden, gleichzeitig zu dem durchgeführten Test, die Zugriffswünsche an die entsprechende RAM-Bank weitergeleitet und es wird auf die entsprechenden Speicherinhalte zugegriffen. Wenn dabei auf den Speicherinhalt der aktuell getesteten RAM-Bank 131 zugegriffen werden soll, wird dieser Zugriff an die Zusatz-RAM-Bank 140 weitergeleitet. Wenn auf einen Speicherinhalte einer aktuell nicht getesteten RAM-Bank zugegriffen werden soll, beispielsweise auf die RAM-Bank 132, wird der Zugriff an diese RAM-Bank 132 geleitet.In step 231 At the same time as the test being performed, the access requests are forwarded to the corresponding RAM bank and the corresponding memory contents are accessed. When doing so, the memory contents of the currently tested RAM bank 131 is to be accessed, this access is to the additional RAM bank 140 forwarded. When a memory content of a currently untested RAM bank is to be accessed, for example, the RAM bank 132 , will access this RAM bank 132 directed.

Wenn der Test beendet ist, wird überprüft ob ein Fehler der getesteten RAM-Bank 131 vorliegt. Ist dies der Fall, wird das Verfahren gemäß Schritt 203 abgebrochen und eine entsprechende Meldung wird an die Fehlerverwaltung 122 übermittelt. When the test is finished, it is checked if there is an error in the tested RAM bank 131 is present. If so, the procedure in step 203 aborted and a corresponding message is sent to the error management 122 transmitted.

Die Einheiten 310 bis 350 des Speichercontrollers 110 sind vorzugsweise als separate digitale Hardwareeinheiten ausgeführt und arbeiten insbesondere gleichzeitig. Somit können die Schritte 211 bis 217 insbesondere gleichzeitig durchgeführt werden und die entsprechenden Aufgaben können parallel erledigt werden.The units 310 to 350 of the storage controller 110 are preferably designed as separate digital hardware units and work in particular simultaneously. Thus, the steps 211 to 217 in particular at the same time and the corresponding tasks can be done in parallel.

Analog können auch die Schritte 220 und 230 insbesondere gleichzeitig durchgeführt werden. Während Schritt 220 durchgeführt wird, wird insbesondere für jeden einzelnen Zugriff (Testzugriff und externer Zugriff) geprüft, ob dieser sofort durchgeführt werden kann oder nicht. Schritt 220 und Schritt 230 können also parallel erfolgen.The steps can also be analogous 220 and 230 be carried out in particular simultaneously. During step 220 is performed is checked in particular for each access (test access and external access), whether this can be done immediately or not. step 220 and step 230 can be done in parallel.

Beispielsweise kann für jeden einzelnen externen Zugriff durch die Adressiereinheit 330 bei Bedarf die Bank Adresse angepasst werden, unabhängig davon, ob von der Testeinheit 120 aktuell Evakuierungsvorgänge oder Testzugriffe durchgeführt werden. Analoges gilt für die Autorisierungseinheit 340.For example, for each individual external access by the addressing unit 330 If necessary, the bank address can be adjusted, regardless of whether by the test unit 120 currently evacuation operations or test accesses are performed. The same applies to the authorization unit 340 ,

Wenn die RAM-Bank 131 keinen Fehler aufweist, kann gemäß einer ersten bevorzugten Ausführungsform in Schritt 251 der Speicherinhalt aus der Zusatz-RAM-Bank 140 zurück in die getestete RAM-Bank 131 geschrieben werden, analog zu Schritt 210. In Schritt 260 wird überprüft, ob alle RAM-Bänke geprüft wurden. Ist dies nicht der Fall, werden die Schritt 204 bis 251 erneut durchgeführt und der Speicherinhalt der nächsten RAM-Bank, beispielsweise der RAM-Bank 132, wird getestet, angedeutet durch Bezugszeichen 281. Zu diesem Zweck wird der Speicherinhalt der RAM-Bank 132 in Schritt 210 ebenfalls in die Zusatz-RAM-Bank 140 geschrieben. If the RAM bank 131 has no error, according to a first preferred embodiment in step 251 the memory contents from the additional RAM bank 140 back to the tested RAM bank 131 be written, analogous to step 210 , In step 260 Checks whether all RAM banks have been checked. If this is not the case, the step will be 204 to 251 performed again and the memory contents of the next RAM bank, such as the RAM bank 132 , is tested, indicated by reference numerals 281 , For this purpose, the memory contents of the RAM bank 132 in step 210 also in the additional RAM bank 140 written.

Gemäß einer alternativen bevorzugten Ausführungsform wird in Schritt 252 der Speicherinhalt aus der Zusatz-RAM-Bank 140 nicht zurück in die getestet RAM-Bank 131 geschrieben. Wenn in Schritt 260 noch nicht alle RAM-Bänke geprüft wurden, werden die Schritte 204 bis 252 erneut durchgeführt. In diesem Fall wird der Speicherinhalt der nächsten RAM-Bank (beispielsweise RAM-Bank 132) in Schritt 210 bevorzugt in die zuvor getestete RAM-Bank (beispielsweise RAM-Bank 131) geschrieben, angedeutet durch Bezugszeichen 282. Wenn gemäß Schritt 230 ein Zugriffswunsch auf diese nächste RAM-Bank 132 registriert wird, wird dieser Zugriffswunsch in Schritt 231 an die zuvor getestete RAM-Bank 131 umgeleitet und es wird auf den Speicherinhalt in dieser zugegriffen.According to an alternative preferred embodiment, in step 252 the memory contents from the additional RAM bank 140 not back in the tested RAM bank 131 written. When in step 260 not all RAM banks have been tested yet, the steps become 204 to 252 carried out again. In this case, the memory contents of the next RAM bank (for example, RAM bank 132 ) in step 210 preferably in the previously tested RAM bank (for example RAM bank 131 ), indicated by reference numerals 282 , If according to step 230 an access request to this next RAM bank 132 is registered, this access request is in step 231 to the previously tested RAM bank 131 is redirected and it is accessed on the memory contents in this.

Das Verfahren wird solange durchgeführt, bis in Schritt 260 festgestellt wird, dass alle RAM-Bänke 130 getestet wurden und keine Fehler der RAM-Bänke 130 vorliegt. In diesem Fall wird die Testeinheit in Schritt 270 deaktiviert.The process is carried out until in step 260 it is found that all RAM banks 130 were tested and no errors of RAM banks 130 is present. In this case, the test unit will be in step 270 disabled.

Alternativ kann die Testeinheit in Schritt 270 auch erneut mit dem Testen sämtlicher RAM-Bänke 130 und der Zusatz-RAM-Bank 140 beginnen. Zu diesem Zweck werden sämtliche Schritte beginnend bei Schritt 201 erneut wiederholt, angedeutet durch Bezugszeichen 271, um Speicherfehler, die während des Betriebs des Mikrocontrollers 100 auftreten, möglichst rasch zu entdecken.Alternatively, the test unit in step 270 again with the testing of all RAM banks 130 and the additional RAM bank 140 kick off. For this purpose, follow all steps beginning with step 201 repeated again, indicated by reference numerals 271 to memory errors during the operation of the microcontroller 100 occur as quickly as possible.

Falls von der Testeinheit 120 Speichertestsequenzen eingesetzt werden, die schreibende Zugriffe enthalten, besteht die Gefahr, dass im Falle eines Fehlers der Testeinheit 120 Nutzdaten verfälscht werden. Der Betrieb der Testeinheit kann daher mit Fehlererkennungsmechanismen abgesichert werden. In 4 ist eine derartige Testeinheit 120 schematisch dargestellt.If from the test unit 120 Memory test sequences are used that contain write access, there is a risk that in case of failure of the test unit 120 User data are corrupted. The operation of the test unit can therefore be secured with error detection mechanisms. In 4 is such a test unit 120 shown schematically.

In dieser Ausgestaltung umfasst die Testeinheit 120 eine definierte Anzahl von Control-&-Address-Registern 410 sowie von Daten-Registern 420, welche die Befehlssequenz eines Speichertests bzw. die dabei eingesetzten Testdaten umfassen. Ein derartiger Befehlssatz umfasst insbesondere mindestens die Befehle "Save <address>", "Write <address><data>", "Read <address> <data>" und "Restore".In this embodiment, the test unit comprises 120 a defined number of Control & Address registers 410 and data registers 420 which comprise the command sequence of a memory test or the test data used thereby. In particular, such an instruction set comprises at least the commands "Save <address>", "Write <address><data>","Read<address><data>" and "Restore".

Durch den Befehl "Save <address>" wird der aktuelle Inhalt einer Speicherzelle mit der Adresse "<address>" eingelesen und in der Zusatz-RAM-Bank 140 gespeichert.The command "Save <address>" reads in the current contents of a memory cell with the address "<address>" and in the additional RAM bank 140 saved.

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 410 und 420 umfasst die Testeinheit 120 vorzugsweise weiterhin drei Paare von Prüfsummenregistern 430. Diese können z.B. als Multiple-Input-Signature-Register (MISR) implementiert sein. Next to these registers 410 and 420 includes the test unit 120 preferably still three pairs of checksum registers 430 , These can eg be implemented as a Multiple Input Signature Register (MISR).

Ein erstes Paar umfasst beispielsweise die Prüfsummenregister "Address(Ref)" 431 und "Data(Ref)" 432. Diese Prüfsummenregister 431 und 432 werden insbesondere genutzt, um vor dem eigentlichen Speichertest eine Referenzsignatur zu berechnen. Dazu werden die einzelnen Befehle inkl. der 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 das Prüfsummenregister "Address(Rest)" 435 eingespeist.For example, a first pair includes the checksum registers "Address (Ref)". 431 and "Data (Ref)" 432 , These checksum registers 431 and 432 are used in particular to calculate a reference signature before the actual memory test. For this purpose, the individual commands including the 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 included in the checksum register "Address (Rest)" 435 fed.

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)" 433 bzw." Data(Exe)" 434 eingespeist. Im Falle eines "Save"-Befehls werden zusätzlich die aus dem Speicher gelesenen Daten in das Prüfsummenregister "Data(Save)" 436 eingespeist.During the execution of the memory test, the memory accesses are processed one after the other and, in addition, the commands including the addresses as well as the written or the read data are written to the check sum registers "Address (Exe)". 433 or "Data (Exe)" 434 fed. In the case of a "Save" command, the data read from the memory are also written to the "Data (Save)" checksum register. 436 fed.

Bei der Ausführung des abschließenden "Restore"-Befehls werden vor der Wiederherstellung der Daten die Inhalte der Prüfsummenregister "Address(Ref)" 431 und "Address(Exe)" 433 sowie "Data(Ref)" 431 und "Data(Exe)" 434 jeweils miteinander verglichen. Eine Abweichung der jeweiligen Prüfsummen deutet auf einen Fehler in der Testeinheit 120 bzw. in der getesteten RAM-Bank hin. When executing the final "Restore" command, before restoring the data, the contents of the checksum registers "Address (Ref)" 431 and "Address (Exe)" 433 as well as "Data (Ref)" 431 and "Data (Exe)" 434 each compared with each other. A deviation of the respective checksums indicates an error in the test unit 120 or in the tested RAM bank.

Im Anschluss werden die Prüfsummenregister "Address(Exe)" 433 und "Data(Exe)" 434 zurückgesetzt und die Wiederherstellung der Daten durchgeführt. Dabei werden für jeden Zugriff die Adresse und die wiederhergestellten Daten in die Prüfsummenregister "Address(Exe)" 433 bzw. "Data(Exe)" 434 eingespeist. Afterwards the checksum registers "Address (Exe)" 433 and "Data (Exe)" 434 reset and the restoration of data performed. For each access, the address and the restored data are written to the check sum register "Address (Exe)". 433 or "Data (Exe)" 434 fed.

Nachdem alle Daten wiederhergestellt wurden, erfolgt ein erneuter Prüfsummenvergleich zwischen "Address(Exe)" 433 und "Address(Rest)" 435 sowie "Data(Exe)" 434 und "Data(Save)" 436. Eine Abweichung der jeweiligen Prüfsummen deutet auf einen Fehler in der Testeinheit 120 bzw. in den wiederhergestellten Daten hin.After all data has been restored, a new checksum comparison between "Address (Exe)" 433 and "Address (Remainder)" 435 and "Data (Exe)" 434 and "Data (Save)" 436 , A deviation of the respective checksums indicates an error in the test unit 120 or in the recovered data.

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)" 343 und "Data(Exe)" 434 wird in diesem Fall vor der Durchführung des "Restore" Befehls mit den offline berechneten Prüfsummen verglichen.If the memory test sequence, the address sequence and the test data used are already 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. The contents of the checksum registers "Address (Exe)" 343 and "Data (Exe)" 434 In this case, it will be compared to the off-line checksums before running the "Restore" command.

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)

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 (220), – 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 (231) 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 (231) und auf den Speicherinhalt der jeweiligen Speicherbank (132) der übrigen Speicherbänke (130, 131, 132) zugegriffen wird.Method for testing a storage unit ( 101 ) of a microcontroller ( 100 ), wherein the memory unit ( 101 ) one or more memory banks ( 130 . 131 . 132 ), an additional memory bank ( 140 ) and a test unit ( 120 ) for performing tests of one of the one or more memory banks ( 130 . 131 . 132 ), wherein the memory unit ( 101 ) via at least two simultaneously usable communication channels ( 131 . 132a ) for random access to one of the one or more memory banks ( 130 . 131 . 132 ) and the additional memory bank ( 140 ), wherein a memory content of a memory bank to be tested ( 131 ) of the one or more memory banks ( 130 . 131 . 132 ) in the additional memory bank ( 140 ) is written ( 210 ), - where an access request of the test unit ( 120 ) to the memory bank to be tested ( 131 ) and whereby a test of the memory bank to be tested ( 131 ) through the test unit ( 120 ) is carried out ( 220 ), Wherein - when, while the test is being performed, - an access request to the memory contents of the memory bank to be tested ( 131 ), the access request to the additional memory bank ( 140 ) is redirected ( 231 ) and the memory contents in the additional memory bank ( 140 ), an access request to a memory content of one of the remaining memory banks ( 132 ) of the one or more memory banks ( 130 . 131 . 132 ), the access request to the respective memory bank ( 132 ) ( 231 ) and the memory contents of the respective memory bank ( 132 ) of the remaining memory banks ( 130 . 131 . 132 ) is accessed. Verfahren nach Anspruch 1, wobei der Test der zu testenden Speicherbank (131) durchgeführt wird (220) und gleichzeitig auf den Speicherinhalt in der Zusatz-Speicherbank (140) zugegriffen wird (231) und/oder wobei der Test der zu testenden Speicherbank (131) durchgeführt wird (220) und gleichzeitig auf den Speicherinhalt der jeweiligen übrigen Speicherbank (132) der einen oder mehreren Speicherbänke (130, 131, 132) zugegriffen wird (231).Method according to claim 1, wherein the test of the memory bank to be tested ( 131 ) is carried out ( 220 ) and at the same time to the memory contents in the additional memory bank ( 140 ) is accessed ( 231 ) and / or wherein the test of the memory bank to be tested ( 131 ) is carried out ( 220 ) and at the same time on the memory contents of the respective remaining memory bank ( 132 ) of the one or more memory banks ( 130 . 131 . 132 ) is accessed ( 231 ). Verfahren nach Anspruch 1 oder 2, wobei, nachdem der Test durchgeführt wurde, der Speicherinhalt aus der Zusatz-Speicherbank (140) zurück in die getestete Speicherbank (131) kopiert wird (151).The method of claim 1 or 2, wherein after the test has been performed, the memory contents from the additional memory bank ( 140 ) back into the tested memory bank ( 131 ) is copied ( 151 ). Verfahren nach Anspruch 3, wobei, nachdem der Speicherinhalt aus der Zusatz-Speicherbank (140) zurück in die getestete Speicherbank (131) kopiert wurde, ein Speicherinhalt einer als nächstes zu testenden Speicherbank (132) der einen oder mehreren Speicherbänke (130, 131, 132) in die Zusatz-Speicherbank (140) kopiert wird, der Test der als nächstes zu testenden Speicherbank (132) durchgeführt wird und nach durchgeführtem Test der entsprechende Speicherinhalt zurück in die getestete Speicherbank (132) kopiert wird. Method according to claim 3, wherein, after the memory contents have been read from the additional memory bank ( 140 ) back into the tested memory bank ( 131 ), a memory content of a memory bank to be tested next ( 132 ) of the one or more memory banks ( 130 . 131 . 132 ) in the additional memory bank ( 140 ), the test of the next memory bank to be tested ( 132 ) and, after the test has been carried out, the corresponding memory content is returned to the tested memory bank ( 132 ) is copied. Verfahren nach Anspruch 1 oder 2, wobei, nachdem der Test durchgeführt wurde, der Speicherinhalt aus der Zusatz-Speicherbank (140) nicht zurück in die getestete Speicherbank (131) kopiert wird (252).The method of claim 1 or 2, wherein after the test has been performed, the memory contents from the additional memory bank ( 140 ) not back to the tested memory bank ( 131 ) is copied ( 252 ). Verfahren nach Anspruch 5, wobei, nachdem der Test durchgeführt wurde, ein Speicherinhalt einer als nächstes zu testenden Speicherbank (132) der einen oder mehreren Speicherbänke (130, 131, 132) in die zuvor getestete Speicherbank (131) kopiert wird und ein Test der als nächstes zu testenden Speicherbank (132) durchgeführt wird.The method of claim 5, wherein after the test has been performed, a memory content of a memory bank to be next tested ( 132 ) of the one or more memory banks ( 130 . 131 . 132 ) into the previously tested memory bank ( 131 ) and a test of the memory bank to be tested next ( 132 ) is carried out. Verfahren nach Anspruch 6, wobei, wenn, während der Test der als nächstes zu testenden Speicherbank (132) durchgeführt wird, ein Zugriffswunsch auf einen Speicherinhalt dieser als nächstes zu testenden Speicherbank (132) registriert wird, der Zugriffswunsch an die zuvor getestete Speicherbank (131) umgeleitet wird und auf den Speicherinhalt in der zuvor getesteten Speicherbank (131) zugegriffen wird.The method of claim 6, wherein, when testing the next memory bank to be tested ( 132 ), an access request to a memory content of this memory bank to be tested next ( 132 ), the access request to the previously tested memory bank ( 131 ) and the memory contents in the previously tested memory bank ( 131 ) is accessed. Verfahren nach einem der vorstehenden Ansprüche, wobei die einzelnen Speicherbänke der einen oder mehreren Speicherbänke (130, 131, 132) und die Zusatz-Speicherbank (140) dieselbe oder im Wesentlichen dieselbe Speicherkapazität aufweisen.Method according to one of the preceding claims, wherein the individual memory banks of the one or more memory banks ( 130 . 131 . 132 ) and the additional memory bank ( 140 ) have the same or substantially the same storage capacity. Verfahren nach einem der vorstehenden Ansprüche, wobei im Zuge des durchgeführten Tests der zu testenden Speicherbank (131) eine Fehlererkennung der Testeinheit (120) durchgeführt wird, insbesondere durch eine Fehlererkennung mittels Prüfsummen, durch Prüfsummenregister (430), durch Prüfsummenvergleich von Prüfsummenregistern (430) und/oder durch Berechnen einer Referenzsignatur.Method according to one of the preceding claims, wherein in the course of the test carried out the memory bank to be tested ( 131 ) an error detection of the test unit ( 120 ) is performed, in particular by an error detection using checksums, by checksum register ( 430 ), by checksum comparison of checksum registers ( 430 ) and / or by calculating a reference signature. Speichercontroller (110) für eine Speichereinheit (101) eines Mikrocontrollers (100), welche Speichereinheit (101) eine oder mehrere Speicherbänke (130, 131, 132) und eine Zusatz-Speicherbank (140) aufweist, wobei der Speichercontroller (110) ü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), und über eine Testeinheit (120) zum Durchführen von Tests einer der einen oder mehreren Speicherbänke (130, 131, 132) verfügt.Memory controller ( 110 ) for a storage unit ( 101 ) of a microcontroller ( 100 ), which storage unit ( 101 ) one or more memory banks ( 130 . 131 . 132 ) and an additional memory bank ( 140 ), wherein the memory controller ( 110 ) via at least two simultaneously usable communication channels ( 131 . 132a ) for random access to one of the one or more memory banks ( 130 . 131 . 132 ) and the additional memory bank ( 140 ), and via a test unit ( 120 ) for performing tests of one of the one or more memory banks ( 130 . 131 . 132 ). Speichercontroller (110) nach Anspruch 10, der der dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 9 durchzuführen.Memory controller ( 110 ) according to claim 10, which is adapted to perform a method according to any one of claims 1 to 9. Mikrocontroller (100), aufweisend: – eine Speichereinheit (101) mit einer oder mehreren Speicherbänken (130, 131, 132) und einer Zusatz-Speicherbank (140), – eine Testeinheit (120) zum Durchführen von Tests einer der einen oder mehreren Speicherbänke (130, 131, 132), und – einen Speichercontroller (110) nach Anspruch 10 oder 11. Microcontroller ( 100 ), comprising: A storage unit ( 101 ) with one or more memory banks ( 130 . 131 . 132 ) and an additional memory bank ( 140 ), - a test unit ( 120 ) for performing tests on one of the one or more memory banks ( 130 . 131 . 132 ), and - a memory controller ( 110 ) according to claim 10 or 11. Computerprogramm, das einen Speichercontroller (110) dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 9 durchzuführen, wenn es auf dem Speichercontroller (110) ausgeführt wird. Computer program that has a memory controller ( 110 ) to perform a method according to one of claims 1 to 9, when it is stored on the memory controller ( 110 ) is performed. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 13.Machine-readable storage medium with a computer program stored thereon according to claim 13.
DE102015219266.0A 2015-10-06 2015-10-06 Method for testing a memory unit of a microcontroller Pending DE102015219266A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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