EP1352397A1 - Verfahren zum test eines nichtflüchtigen speichers und verwendung eines solchen speichers - Google Patents

Verfahren zum test eines nichtflüchtigen speichers und verwendung eines solchen speichers

Info

Publication number
EP1352397A1
EP1352397A1 EP02710781A EP02710781A EP1352397A1 EP 1352397 A1 EP1352397 A1 EP 1352397A1 EP 02710781 A EP02710781 A EP 02710781A EP 02710781 A EP02710781 A EP 02710781A EP 1352397 A1 EP1352397 A1 EP 1352397A1
Authority
EP
European Patent Office
Prior art keywords
test
data
memory
stored
test pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP02710781A
Other languages
English (en)
French (fr)
Inventor
Wolfgang Rankl
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient 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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of EP1352397A1 publication Critical patent/EP1352397A1/de
Withdrawn legal-status Critical Current

Links

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

Definitions

  • the invention relates to a method for testing a non-volatile memory according to claim 1 and a use of the method according to claims 14 and 15.
  • Chip cards have a wide variety of applications and uses. So-called memory cards are primarily used as telephone cards, health insurance cards or as cards for automatic machines or in public transport. However, their functionality is limited to a specific application.
  • Microprocessor cards also contain a CPU. In addition to the CPU, these cards usually contain an I / O unit, a data,
  • RAM volatile read / write memory
  • EEPROM non-volatile programmable memory
  • ROM non-volatile read-only memory
  • the operating system is mainly stored in the ROM and partly in the EEPROM. Fields of application for such microprocessor cards are: ID cards, electronic payments or access to the digital cellular network (GSM) etc.
  • the manufacturing cycle of a card can be divided into the following sections: The chip and the chip card are initially manufactured. In this first phase, the design of the chip is carried out, the operating system of the chip card is created, the card body and the module are manufactured, and the modules are embedded in the card body.
  • all basic, non-card-specific data is loaded.
  • special tests of the individual hardware components are carried out.
  • the test of the EEPROM is particularly important here, since it is very time-consuming due to the regular write times.
  • all card-specific data relating to the respective application are transferred from the card issuer to the company that personalizes the cards, such as the file tree for the respective application, its name etc.
  • the operating system previously stored in ROM is then completed by Parts of it, such as link tables or certain program code, are written into the EEPROM.
  • all application-specific data are loaded.
  • the throughput is restrictive for both the second and the third phase of the card manufacturing process Bottleneck in the transmission of data and memory access to the EEPRROM can be seen.
  • the card is only operational after the three phases just described have expired. It is therefore necessary to ensure that this complex process runs without errors and that no multiple executions of individual manufacturing steps are necessary because, for example, a single component proves to be defective.
  • Memory module does not work properly, all previous steps have been pointless. It is therefore necessary to recognize early and safely, if possible with no additional effort, whether the components used in the manufacture of the chip card are also working correctly so that the function of the card can be ensured.
  • a microcomputer with a PROM is known from US Pat. No. 5,175,840, which increases the access to the PROM from the outside and thus increases security by providing additional access monitoring means, in particular in the form of a control circuit.
  • this method does not disclose an improved test method.
  • it is disadvantageously necessary to create a specific test pattern (for example a checkerboard pattern) as a test data record and to read this in and out. Only then can the actual data to be saved be transferred to the EEPROM.
  • a major disadvantage with regard to the production time is therefore the additional time required for accessing the memory for test purposes only. Because in order to make the manufacturing process as cost-effective as possible, all necessary steps must be carried out in a time-minimized manner. It proves disadvantageous here that the write and read accesses to the memory modules, in particular to the EEPROM, are very time-consuming. For a check of the read / write memory according to the prior art, in addition to the read / write accesses which are necessary due to the application, additional write and read accesses had to be factored in for checking these modules.
  • EEPROM cells can only be written to and deleted again to a limited extent; the number of possible accesses is physical.
  • EEPROM memory is divided into pages. If only a single bit of an EEPROM memory needs to be changed, the associated page - ie the entire page of the memory - must be deleted beforehand.
  • test patterns In previous tests, it was necessary, depending on the desired test depth, to write several test patterns to the memory, to read them out again and then to compare them for agreement. Only after that could - at positive test result - the data to be stored is written to the EEPROM in an additional access. The tests are necessary, but in their current form they do not significantly extend the manufacturing cycle.
  • test method of the type mentioned in the introduction in which the test is carried out with data to be stored and is integrated in time in a write operation of the memory and in that at least one test pattern is created based on the data to be stored, so that storing data can be regenerated automatically at least from the test pattern last created, the following process steps being carried out at least once in an n-fold iteration:
  • test of a memory component can be optimally integrated into the card's production cycle.
  • the test according to the invention can be activated in particular during or immediately before a write access to the memory which is necessary anyway and without the use of special test data or devices which generate the test data.
  • multi-stage tests with one and the same data set are also possible by means of the method according to the invention.
  • the depth of the test can be changed by repeatedly inverting the data and thus by the number of iterations.
  • the test is carried out in two stages, i.e. with a first inversion of the data and a second re-inversion, so that when the test is successfully completed, the data to be stored are immediately in the memory. This advantageously saves several 5 time-consuming write accesses to the memory.
  • the data to be stored are immediately in the memory, regardless of the test depth or the number of process runs.
  • the test times of the chip card can advantageously be significantly reduced.
  • the method is also used for the temporary swapping out of memory contents.
  • the test pattern is created by inverting the data to be stored, so that after the first positive run of the method, the complement of the data to be stored is in the memory.
  • This test pattern is then inverted again at the end of the first process run.
  • the memory is thus written with the data to be stored, so that after the second process run has been completed positively, the data to be stored are exactly in the non-volatile memory and no additional writing process is necessary.
  • the creation of the test pattern is based on inverting the data to be stored.
  • test pattern can also be derived in another way from the data to be stored, for example by means of an XOR link or the like.
  • the method is also used sensibly for cases in which memory space that is no longer required is released for other applications - the so-called garbage collection.
  • flash memory cells such as a flash EEPROM or a FeRAM memory
  • flash memory cells such as a flash EEPROM or a FeRAM memory
  • FIG. 1 shows a schematic flow diagram of a method according to the invention.
  • the test is used in the test-initialization-personalization production steps of the chip card.
  • Data to be stored is used in such a way that it is automatically stored in the memory after the last test run and without additional write access.
  • the second use is to use the EEPROM test as a long-term test in order to check the functionality of the memory or memory area before each write access to the memory.
  • the data to be saved is also used to create a test sample.
  • test depth n and thus also the test time can advantageously be variably adjusted. It can therefore be adapted to the respective system conditions.
  • Test patterns and thus the data to be stored are then written to the non-volatile memory, preferably to the EEPROM, in the next method step.
  • the memory content is then read out.
  • the reading out of the memory content is recorded in a test result and compared with the test pattern, that is to say with the data which have been written into the memory. If the two data records do not match, then there is an error and the process terminates with an error message. Otherwise, the method ends successfully and after the test the data to be saved are immediately in the memory.
  • the first test pattern is preferably created during the first run by inverting the data to be stored. The first test pattern is thus the complement of the data to be stored. After the write and subsequent read access to the memory and the comparison of the read and written data, the first test pattern is inverted again, so that a second test pattern now again corresponds identically to the data to be stored. After the process run with the second test pattern, if the test result is positive (i.e. the data written and read match), the data to be stored are in the memory and the test / write process is completed.
  • the method can also be repeated several times by setting the test depth n to more than "2".
  • the operation by means of which the test pattern is created from the data to be stored is one
  • the data to be stored or the test pattern is inverted bit by bit, ie changed from "0" to "1” and from "1" to "0". This has the advantage that each bit in the memory is tested for both values at least once. Thus, the method provides maximum test coverage with a minimal test time, whereby for the write access of the data to be stored no additional access is necessary.
  • Test samples may be different; the only requirement for the selection of the operations is that the data to be stored can be restored after the last run or after the last test pattern.
  • a counter i which is at the beginning of the
  • Method is 1, incremented with each iteration. As long as the counter has not reached the predetermined value of the test depth n - that is, as long as T ⁇ n '- the iteration is run through. This makes it possible to achieve a higher test coverage by selecting the test depth. If, for example, two test patterns - by inverting the data - are used, the iteration can also be run through more than twice in order, for example, to record external disturbing influences which affect the function of the memory. These can be factors such as the changing temperature or the minimally changing voltage level of the circuit.
  • the chip card in particular the operating system, must be equipped with an inverter and possibly with a multiplexer and a counter i so that the data to be stored and then the respective test pattern can be inverted.
  • the chip card must have means for creating a test pattern. This means must be designed in such a way that, at a test depth of n, after the nth test run, the data to be stored can be regenerated from the last test sample.
  • the so-called memory test manager is used. It uses the test procedure described above to check whether the requested memory area is functional.
  • the memory test manager is thus an intermediate instance between a memory manager of the chip card and the memory.

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Test eines programmierbaren Speichers, bei dem der Test in den Vorgang des Programmierens integriert ist und als Prüfmuster die zu speichernden Daten so verwendet, dass nach dem Test unmittelbar die zu speichernden Daten im Speicher stehen, ohne dass ein zusätzlicher Schreibvorgang notwendig ist. Dabei ist die Testtiefe n variabel einstellbar. Das Prüfmuster wird insbesondere durch Invertieren der zu speichernden Daten erstellt und der Test wird zweimal durchlaufen.

Description

Verfahren zum Test eines nichtflüchtigen Speichers und Verwendung eines solchen Verfahrens
Die Erfindung betrifft ein Verfahren zum Test eines nichtflüchtigen Speichers gemäß Anspruch 1 bzw. eine Verwendung des Verfahrens nach den Ansprüchen 14 und 15.
Chipkarten haben unterschiedlichste Anwendungsgebiete und Einsatzzwecke. So werden sogenannte Speicherkarten vornehmlich als Telefonkarten, Krankenversicherungskarten oder als Karten für Automaten oder im öffentlichen Personenverkehr eingesetzt. Ihre Funktionalität ist allerdings auf eine spezifische Anwendung beschränkt.
Mikroprozessorkarten enthalten zusätzlich eine CPU. Üblicherweise enthalten diese Karten neben der CPU eine I/O-Einheit, einen Daten-,
Steuer- und Adreßbus, einen flüchtigen Schreib-/ Lese-Speicher (RAM) und einem nicht-flüchtigen, programmierbaren Speicher (EEPROM) und einen nichtflüchtigen Nur-Lese-Speicher (ROM). Das Betriebssystem ist hauptsächlich im ROM und teilweise im EEPROM abgelegt. Anwendungsfelder für solche Mikroprozessorkarten sind: Ausweiskarten, der elektronische Zahlungsverkehr oder der Zugang zum digitalen Mobilfunknetz (GSM) etc.
Allen Kartentypen ist gemeinsam, daß die Karten in großen Stückzahlen hergestellt werden, so daß der Herstellungsprozeß hinsichtlich Zeit und Kosten optimiert sein muß.
Bei der Aufzählung der möglichen Einsatzbereiche dieser Karten wird deutlich, daß auf die sichere und fehlerfreie Funktion der Karte und seiner Bauteile besonders hoher Wert gelegt werden muß, um insgesamt einen zuverlässigen Betrieb des Kartensystems gewährleisten zu können. Die fehlerfreie Funktion der eingesetzten Bauteile muß deshalb bereits während der Kartenfertigung überprüft werden.
Der fertigungstechnische Zyklus einer Karte läßt sich in folgende Abschnitte einteilen: Anfänglich wird der Chip und die Chipkarte hergestellt. In dieser ersten Phase wird das Design des Chips ausgeführt, das Betriebssystem der Chipkarte erstellt, der Kartenkörper und das Modul hergestellt und es werden die Module in den Kartenkörper eingebettet.
In der zweiten Phase werden alle grundlegenden, nicht kartenindividuellen Daten geladen. In dieser Phase werden spezielle Tests der einzelnen Hardware-Komponenten ausgeführt. Hier ist es wesentlich, einen hohen Durchsatz zu erreichen, damit die Tests möglichst wenig von der teuren Fertigungszeit beanspruchen. Insbesondere der Test des EEPROM 's schlägt hier ins Gewicht, da er durch die regulären Schreibzeiten sehr zeitaufwendig ist. Weiterhin werden alle kartenindividuellen, sich auf die jeweilige Anwendung beziehenden Daten vom Kartenherausgeber an die Firma übergeben, die die Personalisierung der Karten vornimmt, wie beispielsweise den Dateibaum für die jeweilige Anwendung, deren Namen etc. Daraufhin wird das bisher im ROM abgelegte Betriebssystem komplettiert, indem Teile davon, wie Linktabellen oder bestimmter Programmcode, in das EEPROM geschrieben werden. Im nächsten Initialisierungsschritt werden alle anwendungsspezifischen Daten geladen.
Erst daraufhin können in der dritten Phase, der sogenannten Personalisierung, all diejenigen Daten geladen werden, die der kartenbenutzenden Person zugeordnet sind.
Sowohl für die zweite als auch für die dritte Phase des Kartenfertigungsprozesses ist der den Durchsatz beschränkende Flaschenhals in der Übertragung der Daten und den Speicherzugriffen auf das EEPRROM zu sehen.
Erst nach Ablauf der drei eben beschriebenen Phasen ist die Karte einsatzfähig. Damit besteht die Notwendigkeit, sicherzustellen, daß dieses aufwendige Verfahren fehlerfrei abläuft und keine Mehrfachausführungen einzelner Fertigungsschritte erforderlich sind, weil sich beispielsweise ein einzelnes Bauteil als fehlerhaft erweist.
Wird erst nach der Personalisierung der Karte erkannt, daß ein
Speicherbaustein nicht fehlerfrei arbeitet, so sind alle vorhergehenden Schritte sinnlos gewesen. Es ist deshalb notwendig, möglichst ohne zusätzlichen Aufwand, frühzeitig und sicher zu erkennen, ob die bei der Herstellung der Chipkarte verwendeten Bauteile auch fehlerfrei arbeiten, damit die Funktion der Karte sichergestellt werden kann.
Bisher erfolgte ein Test für einen EEPROM-Speicher einer Chipkarte, indem abwechselnd zwei spezielle Prüfmuster auf die Speicherzellen des EEPROMS geschrieben werden. Danach wurde der Speicherinhalt wieder ausgelesen und es wird vom Betriebssystem überwacht, ob das gelesene Datum mit dem Schreibdatum übereinstimmt. Als Prüfmuster wurden alternierend die binäre Codierung „10101010" und die binäre Codierung „01010101" - entsprechend einem Schachbrettmuster - gewählt, was in der Hexadezimalcodierung dem Datum „ AA" bzw. „55" entspricht.
Aus der US-PS 5,175,840 ist ein Microcomputer mit einem PROM bekannt, der durch das Bereitstellen von zusätzlichen Zugriffsüberwachungsmitteln, insbesondere in Form von einem Kontrollschaltkreis, den Zugriff auf das PROM von außen und damit die Sicherheit erhöht. Dieses Verfahren offenbart jedoch kein verbessertes Testverfahren. Bei den Testverfahren aus dem Stand der Technik ist es nachteiligerweise notwendig, ein spezifisches Prüfmuster (beispielsweise ein Schachbrettmuster) als Testdatensatz zu erstellen und dieses ein- und auszulesen. Erst danach können die eigentlichen, zu speichernden Daten an das EEPROM übertragen werden.
Ein wesentlicher Nachteil hinsichtlich der Fertigungsdauer liegt deshalb in der zusätzlich benötigten Zeit für die Zugriffe auf den Speicher lediglich zu Testzwecken. Denn, um den Fertigungsprozeß möglichst kostenminimiert zu gestalten, müssen alle notwendigen Schritte zeitminimiert ausgeführt werden. Hierbei erweist es sich als nachteilig, daß die Schreib- und Lesezugriffe auf die Speicherbausteine, insbesondere auf das EEPROM sehr zeitintensiv sind. Für eine Überprüfung der Schreib-/ Lesespeicher nach dem Stand der Technik mußten nachteiligerweise neben den Schreib-/ Lesezugriffen, die aufgrund der Anwendung notwendig sind, zusätzliche Schreib- und Lesezugriffe für die Überprüfung dieser Bausteine einkalkuliert werden.
EEPROM-Zellen können nur begrenzt oft beschrieben und wieder gelöscht werden; die Anzahl der möglichen Zugriffe ist physikalisch bedingt. Ein
EEPROM Speicher ist in Seiten bzw. Pages untergliedert. Muß nur ein einzelnes Bit eines EEPROM Speichers geändert werden, dann muß vorher die zugehörige Page - also die gesamte Seite des Speichers - gelöscht werden.
Allein dieser Vorgang dauert bei einer 32 Byte großen Speicherseite ca. 10 ms. Auch aus diesem Grund müssen die Zugriffe auf die EEPROM Zellen minimiert werden, um die Lebensdauer der Karte nicht unnötig zu verringern.
Bei den bisherigen Tests war es notwendig, je nach gewünschter Testtiefe, mehrere Testmuster auf den Speicher zu schreiben, wieder auszulesen und diese dann auf Übereinstimmung zu vergleichen. Erst danach konnten - bei positivem Testergebnis - in einem zusätzlichen Zugriff die zu speichernden Daten auf das EEPROM geschrieben werden. Die Tests sind notwendig, verlängern aber in der bisherigen Form den Fertigungszyklus nicht unbeträchtlich.
Aufgabe der vorliegenden Erfindung ist es deshalb, ein Verfahren bereit zu stellen, das eine zeit- und daher kostenminimierte Überprüfung von Schreib-/ Lesespeichern mit beliebiger Testtiefe ermöglicht.
Diese Aufgabe wird erfindungsgemäß durch ein Testverfahren der eingangs genannten Art gelöst, bei dem der Test mit zu speichernden Daten durchgeführt wird und zeitlich in einen Schreibvorgang des Speichers integriert ist und indem mindestens ein Prüfmuster basierend auf den zu speichernden Daten erstellt wird, so daß die zu speichernden Daten zumindest aus dem zuletzt erstellten Prüfmuster automatisch regeneriert werden können, wobei die folgenden Verfahrensschritte in einer n-fachen Iteration mindestens einmal durchlaufen werden:
(1) Erstellen eines Prüfmusters (2) Schreibzugrif f auf den nichtflüchtigen Speicher mit dem Prüfmuster,
(3) Lesezugriff auf den nichtflüchtigen Speicher zur Erfassung eines n-ten Testergebnisses
(4) Vergleich des n-ten Testergebnisses mit dem Prüfmuster auf Übereinstimmung.
Weiterhin wird diese Aufgabe gelöst, indem das soeben beschriebene Verfahren vom Betriebsystem als Dauertest für die eingesetzten Speicherbausteine im Betrieb der Karte verwendet wird oder indem es lediglich bei Bedarf sporadisch als Funktionstest bei den Fertigungsschritten Test, Initialisierung und Personalisierung der Chipkarte verwendet wird. Mit dieser Lösung ist der Test eines Speicherbauteils optimal in den Herstellungszyklus der Karte integrierbar. Der erfindungsgemäße Test ist insbesondere während oder unmittelbar vor einem ohnehin notwendigen Schreibzugriff auf den Speicher aktivierbar und ohne Verwendung von 5 speziellen Prüfdaten bzw. Einrichtungen, die die Prüfdaten generieren.
Vorteilhafterweise sind mittels des erfindungsgemäßen Verfahrens auch mehrstufige Tests mit ein und demselben Datensatz möglich. Durch wiederholte Invertierung der Daten und damit durch die Anzahl der o Iterationen kann der Test in seiner Tiefe verändert werden. In der bevorzugten Ausführungsform wird der Test zweistufig durchgeführt, d.h. mit einer ersten Invertierung der Daten und einer zweiten Re-Invertierung, so daß bei erfolgreichem Abschluß des Tests unmittelbar die zu speichernden Daten im Speicher stehen. Damit können vorteilhafterweise mehrere 5 zeitintensive Schreibzugriffe auf den Speicher eingespart werden. Mit der erfindungsgemäßen Lösung stehen nach erfolgreichem Abschluß des Tests sofort die zu speichernden Daten im Speicher, unabhängig von der Testtiefe bzw. von der Anzahl der Verfahrensdurchläufe.
o Durch die Verwendung der zu speichernden Daten als Testdaten lassen sich vorteilhafterweise die Testzeiten der Chipkarte signifikant reduzieren.
Bisher mußte die CPU mit spezifischen Software-Modulen ausgestattet sein, um die Testmuster so zu erzeugen, daß eine möglichst optimale 5 Testabdeckung erreicht werden konnte. Mit dem erfindungsgemäßen Verfahren ist dies jedoch nicht mehr nötig, da die zu speichernden Daten direkt für den Test verwendet werden können.
Ferner erweist es sich als vorteilhaft, daß automatisch eine optimale 0 Testqualität erreicht wird, indem durch die Invertierung der zu speichernden Daten und die anschließende Re-Invertierung jedes Bit einmal auf „0" und „1" gesetzt und damit getestet wird.
Das Verfahren wird alternativ auch zur temporären Auslagerung von Speicherinhalten eingesetzt.
Wie bereits erläutert, wird das Verfahren in der bevorzugten Ausführungsform der Erfindung zweimal durchlaufen (d.h. n = 2). Beim ersten Durchlauf wird das Prüfmuster durch Invertierung der zu speichernden Daten erstellt, so daß nach dem ersten positiv abgeschlossenen Verfahrensdurchlauf das Komplement der zu speichernden Daten im Speicher steht. Daraufhin wird am Ende des ersten Verfahrensdurchlaufs dieses Prüfmuster nochmals invertiert. Beim zweiten Verfahrensdurchlauf wird der Speicher also mit den zu speichernden Daten beschrieben, so daß nach dem zweiten positiv abgeschlossenen Verfahrensdurchlauf exakt die zu speichernden Daten im nichtflüchtigen Speicher stehen und kein zusätzlicher Schreibvorgang notwendig ist. In dieser Ausführungsform basiert die Erstellung des Prüfmusters also auf dem Invertieren der zu speichernden Daten.
In einer alternativen Ausführungsform kann das Prüfmuster auch auf andere Weise aus den zu speichernden Daten abgeleitet werden, beispielsweise durch eine XOR- Verknüpfung oder ähnliches.
Weiterhin ist es möglich das Verfahren nicht nur zweimal sondern mehrfach zu durchlaufen und das Prüfmuster immer wieder zu invertieren, bis zum Schluß nach dem Ende des letzten Verfahrens wiederum die zu speichernden Daten im Speicher stehen.
Generell läßt sich das beschriebene Verfahren für alle Arten der
Freispeicherverwaltung von Chipkartensystemen einsetzen, indem bei jedem Speicherzugriff und damit aktuell die Funktionsfähigkeit des Speichers bzw. Speicherbereichs überprüft wird. Die hauptsächliche Anwendung liegt allerdings in der Speicherdefragmentierung, bei der Daten aus bestimmten Speicherbereichen verschoben werden müssen.
Doch auch für Fälle, bei denen aktuell nicht mehr benötigter Speicherbereich für andere Anwendungen freigegeben wird - die sogenannte Garbage Collection -wird das Verfahren sinnvoll eingesetzt.
Es ist jedoch erfindungsgemäß auch möglich, Flash-Speicherzellen, wie einen Flash-EEPROM oder einen FeRAM-Speicher zu verwenden, die sehr viel schnellere Zugriffszeiten gestatten als die regulären EEPROM Zellen. Dies führt zu noch besseren Fertigungs- und insbesondere Testzeiten.
Weitere Vorteile, Merkmale und alternative Ausführungsformen der Erfindung ergeben sich aus der nachfolgenden detaillierten Figurenbeschreibung.
Fig. 1 zeigt ein schematisches Ablaufdiagramm eines erfindungsgemäßen Verfahrens.
Unter Bezugnahme auf Fig. 1 wird nachfolgend ein Beispiel für einen möglichen Ablauf des Verfahrens erläutert.
Grundsätzlich gibt es für die Erfindung zwei hauptsächliche Einsatzgebiete:
1. die Verwendung des Verfahrens für den Test eines Speichers vor Inbetriebnahme einer Chipkarte und 2. die Verwendung des Verfahrens während des Betriebs der Chipkarte bei jedem Speicherzugriff als Dauertest, der von einem Memory Test Manager gesteuert wird.
Bei der ersten Ausführungsform wird der Test bei den Fertigungsschritten Test - Initialisierung -Personalisierung' der Chipkarte eingesetzt. Dabei werden zu speichernde Daten so verwendet, daß sie nach dem letzten Testdurchlauf automatisch und ohne einen zusätzlichen Schreibzugriff im Speicher stehen.
Die zweite Verwendung sieht vor, den EEPROM-Test als Dauertest einzusetzen, um vor jedem Schreibzugriff auf den Speicher die Funktionsfähigkeit des Speichers bzw. Speicherbereichs zu überprüfen. Dabei werden auch die zu speichernden Daten zu Erstellung eines Prüfmusters verwendet.
Der erfindungsgemäße Test ist vorteilhafterweise in seiner Testtiefe n und damit auch Testzeit variabel einstellbar. Somit kann er an die jeweiligen Systembedingungen angepaßt werden.
Ist es beispielsweise notwendig einen sehr schnellen aber relativ groben Test, d.h. einen Test mit nur wenig Testabdeckung, einzusetzen, dann wird als Testtiefe n = 1 gewählt, das heißt, daß das erfindungsgemäße Verfahren nur einmal durchlaufen wird. Dann werden die zu speichernden Daten identisch für die Erstellung des ersten und einzigen Prüfmusters verwendet. Das
Prüfmuster und damit die zu speichernden Daten werden dann im nächsten Verfahrensschritt auf den nichtflüchtigen Speicher, vorzugsweise auf das EEPROM, geschrieben. Danach wird der Speicherinhalt ausgelesen. Das Auslesen des Speicherinhaltes wird in einem Testergebnis erfaßt und mit dem Prüfmuster verglichen, also mit den Daten, die in den Speicher geschrieben worden sind. Stimmen die beiden Datensätze nicht überein, so liegt ein Fehler vor und das Verfahren bricht mit einer Fehlermeldung ab. Andernfalls, endet das Verfahren erfolgreich und nach dem Test stehen unmittelbar die zu speichernden Daten im Speicher.
In der hauptsächlichen und bevorzugten Ausführungsform hat der Test jedoch eine Testtiefe von n = 2. Das heißt, daß die Verfahrensschritte des Prüfmustererstellens, des Schreibzugriffes, des Lesezugriffes und des Vergleichs zweimal durchlaufen werden. Vorzugsweise wird das erste Prüfmuster beim ersten Durchlauf durch Invertieren der zu speichernden Daten erstellt. Damit ist das erste Prüfmuster das Komplement der zu speichernden Daten. Nach dem Schreib- und anschließenden Lesezugriff auf den Speicher und dem Vergleich der gelesenen und geschriebenen Daten wird das erste Prüfmuster nochmals invertiert, so daß ein zweites Prüfmuster nun wieder identisch mit den zu speichernden Daten übereinstimmt. Nach dem Verfahrensdurchlauf mit dem zweiten Prüfmuster stehen dann bei positivem Testergebnis (d.h. Übereinstimmung der geschriebenen und gelesenen Daten) die zu speichernden Daten im Speicher und der Test-/Schreibvorgang ist abgeschlossen.
Um eine bessere Testtiefe n zu erzielen, kann das eben beschriebene
Verfahren auch mehrfach wiederholt werden, indem die Testtiefe n auf mehr als „2" gesetzt wird.
In der eben beschriebenen Ausführungsform ist die Operation mittels derer das Prüfmuster aus den zu speichernden Daten erstellt wird, eine
Invertierungs-Operation. Die zu speichernden Daten bzw. das Prüfmuster wird bitweise invertiert, d.h. von „0" auf „1" und von „1" auf „0" gewechselt. Das bringt den Vorteil, das jedes Bit im Speicher zumindest einmal auf beide Werte getestet wird. Somit stellt das Verfahren bei minimaler Testzeit eine maximale Testabdeckung zur Verfügung, wobei für den Schreibzugriff der zu speichernden Daten kein zusätzlicher Zugriff nötig ist.
Alternativ hierzu sind jedoch auch andere Operationen denkbar, wie beispielsweise eine XOR- Verknüpfung.
Weiterhin ist es möglich, nicht - wie beim bisher beschriebenen Verfahren - die Operation auf den zu speichernden Daten und das Komplement dieser Operation abwechselnd auszuführen, sondern, eine Reihe von Operationen zu wählen, die eine maximale Testabdeckung ermöglichen und bei denen nach dem letzten Verfahrensdurchlauf wieder die Originaldaten aus dem letzten Prüfmuster wieder hergestellt werden können. Zur Verdeutlichung soll folgendes Beispiel dienen:
1. Operation : „+1",
2. Operation : „+1" n. Operation : ,,+l" und letzte Operation : ,,-n".
Dabei können die einzelnen Operationen zur Erstellung der jeweiligen
Prüfmuster verschieden sein; die Bedingung für die Wahl der Operationen ist lediglich, daß nach dem letzten Durchlauf bzw. nach dem letzten Prüfmuster die zu speichernden Daten wiederhergestellt werden können. Dabei ist es erstens möglich, die Daten direkt aus dem aktuellen, letzten Prüfmuster abzuleiten (wie bei der Invertierungsoperation) oder zweitens durch eine Analyse der bisherigen Operationen (im Beispiel oben: durch die Anzahl der Inkrementierungen um „1". Das setzt allerdings eine etwas komplexere Analyseeinrichtung zur Regenerierung der zu speichernden Daten voraus, da ein Tracing aller Operationen auf den zu speichernden Daten mitgeführt werden muß. Die kostengünstige Form des Verfahrens ist es deshalb, wenn als Operation die Invertierung eingesetzt wird. Dann gilt es zu unterscheiden, ob das Verfahren eine gerade oder ungerade Testtiefe n hat. Im ersten Fall (n gerade), muß das erste Prüfmuster jeweils invertiert werden und das letzte wird belassen, da es mit den Originaldaten übereinstimmt. Im zweiten Fall (n ungerade) muß das erste Prüfmuster jeweils identisch mit den zu speichernden Daten übereinstimmen.
Als vorteilhaft erweist es sich, daß das Verfahren eine Iteration bestimmter Verfahrensschritte vorsieht. Dabei wird ein Zähler i, der zu Beginn des
Verfahrens auf 1 steht, bei jeder Iteration inkrementiert. Solange der Zähler nicht den vorbestimmten Wert der Testtiefe n erreicht hat - also solange T < n' - wird die Iteration durchlaufen. So ist es möglich, durch die Wahl der Testtiefe eine höhere Testabdeckung zu erzielen. Werden beispielsweise zwei Prüfmuster - durch Invertieren der Daten - verwendet, dann kann die Iteration auch mehr als zweimal durchlaufen werden, um beispielsweise äußere Störeinflüsse, die sich auf die Funktion des Speichers auswirken, zu erfassen. Das können Faktoren sein, wie beispielsweise die sich ändernde Temperatur oder sich minimal verändernde Spannungspegel der Schaltung.
Die Erfindung ist entsprechend in einer Vorrichtung zu sehen, die das eben erläuterte Verfahren zur Ausführung bringt. Dazu muß die Chipkarte, insbesondere das Betriebssystem, mit einem Inverter und gegebenenfalls mit einem Multiplexer und einem Zähler i ausgestattet sein, damit die zu speichernden Daten und anschließend das jeweilige Prüfmuster invertiert werden können. Soll jedoch das Prüfmuster nicht durch eine Invertierungs-Operation erstellt werden, so muß die Chipkarte Mittel zum Erstellen eines Prüfmusters aufweisen. Dieses Mittel muß so ausgelegt sein, daß aus bei einer Testtiefe von n, nach dem n-ten Testdurchlauf die zu speichernden Daten aus dem letzten Prüfmuster regeneriert werden können. Soll der EEPROM-Test während des Betriebs der Karte eingesetzt werden, so wird der sogenannte Memorytestmanager eingesetzt. Er überprüft, nach dem oben beschriebenen Testverfahren, ob der angeforderte Speicherbereich funktionsfähig ist. Der Memorytestmanager ist somit eine Zwischeninstanz zwischen einem Memorymanager der Chipkarte und dem Speicher.

Claims

Patentansprüche
1. Verfahren zum Test eines programmierbaren Speichers, bei dem der Test mit zu speichernden Daten durchgeführt wird und zeitlich in einen Programmiervorgang des Speichers integriert ist und indem mindestens ein Prüfmuster basierend auf den zu speichernden Daten erstellt wird, so daß die zu speichernden Daten zumindest aus einem zuletzt erstellten Prüfmuster automatisch regeneriert werden können, wobei die folgenden Verfahrensschritte mindestens einmal durchlaufen werden: - Erstellen des Prüfmusters
Schreibzugriff auf den Speicher mit dem Prüfmuster,
Lesezugriff auf den Speicher zur Erfassung eines i-ten Testergebnisses
Vergleich des i-ten Testergebnisses mit dem Prüfmuster auf
Übereinstimmung.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der Iterationen eine Testtiefe (n) definiert, mit n > 1 und wobei n geradzahlig ist.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß im ersten Verfahrensschritt das erste Prüfmuster durch Invertieren der zu speichernden Daten erstellt wird und daß nach dem letzten Verfahrensdurchlauf die zu speichernden Daten durch Invertieren des letzten Prüfmusters regeneriert werden.
4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Iteration zweimal durchlaufen wird und daß zwei Prüfmuster verwendet werden, wobei das erste Prüfmuster das Komplement der zu speichernden Daten ist und wobei das zweite Prüfmuster die zu speichernden Daten sind.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der Iterationen nicht geradzahlig ist (n = 1,3,5,7 ) ist und daß im ersten Verfahrensschritt das erste Prüfmuster identisch aus den zu speichernden Daten erstellt wird und daß die weiteren Prüfmuster nach jedem Verfahrensdurchlauf jeweils invertiert werden.
6. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das Prüfmuster automatisch aufgrund der zu speichernden Daten erstellt wird.
7. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Speicher ein nichtflüchtiger Schreib- /Lesespeicher, insbesondere ein EEPROM, ist.
8. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Speicher ein Flash- oder ein FeRAM-Speicher ist.
9. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Test automatisch vor jedem Schreibzugriff auf den Speicher erfolgt.
10. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Prüfmuster durch mindestens eine Operation auf den zu speichernden Daten erstellt werden, so daß die zu speichernden Daten nach dem letzten Verfahrensdurchlauf automatisch aus dem letzten Prüfmuster regeneriert werden können.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die Operation eine XOR- Verknüpfung ist.
12. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das Verfahren bei Nichtübereinstimmung des i-ten Testergebnisses mit dem i-ten Prüfmuster mit einer Fehlermeldung abbricht.
13. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das Prüfmuster von Iteration zu Iteration neu erstellt wird und nicht mit den anderen Prüfmustern übereinstimmen muß.
14. Verwendung des Verfahrens nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das Verfahren vom Betriebsystem bei jedem
Schreibzugriff auf den Speicher als Dauertest eingesetzt wird.
15. Verwendung des Verfahrens nach einem der Ansprüche 1 mit 13, dadurch gekennzeichnet, daß das Verfahren vor Inbetriebnahme des Speichers einmalig als Funktionstest verwendet wird.
EP02710781A 2001-01-11 2002-01-08 Verfahren zum test eines nichtflüchtigen speichers und verwendung eines solchen speichers Withdrawn EP1352397A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE2001101234 DE10101234A1 (de) 2001-01-11 2001-01-11 Verfahren zum Text eines nichtflüchtigen Speichers und Verwendung eines solchen Verfahrens
DE10101234 2001-01-11
PCT/EP2002/000110 WO2002063634A1 (de) 2001-01-11 2002-01-08 Verfahren zum test eines nichtflüchtigen speichers und verwendung eines solchen verfahrens

Publications (1)

Publication Number Publication Date
EP1352397A1 true EP1352397A1 (de) 2003-10-15

Family

ID=7670389

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02710781A Withdrawn EP1352397A1 (de) 2001-01-11 2002-01-08 Verfahren zum test eines nichtflüchtigen speichers und verwendung eines solchen speichers

Country Status (3)

Country Link
EP (1) EP1352397A1 (de)
DE (1) DE10101234A1 (de)
WO (1) WO2002063634A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111161786A (zh) * 2019-12-28 2020-05-15 上海仪电智能电子有限公司 一种提高矢量图形深度利用效率的大容量存储器测试方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014002369B4 (de) * 2014-02-18 2020-03-05 Giesecke+Devrient Mobile Security Gmbh Speicherprogrammierung in einem Sicherheitsmodul

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2557838B2 (ja) * 1986-02-18 1996-11-27 株式会社東芝 Icカ−ド
JP2514954B2 (ja) * 1987-03-13 1996-07-10 三菱電機株式会社 Icカ−ド
GB2228113B (en) * 1989-02-10 1993-01-27 Plessey Co Plc Circuit arrangement for verifying data stored in a random access memory
JPH03137900A (ja) * 1989-07-27 1991-06-12 Nec Corp 不揮発性半導体メモリ
JPH10125092A (ja) * 1996-10-22 1998-05-15 Advantest Corp フラッシュメモリ試験装置
DE19711478A1 (de) * 1997-03-19 1998-10-01 Siemens Ag Integrierte Schaltung und Verfahren zum Testen der integrierten Schaltung
JPH10275500A (ja) * 1997-04-01 1998-10-13 Nec Corp 半導体メモリのテスト方法及びテスト回路
US5991213A (en) * 1997-04-30 1999-11-23 Texas Instruments Incorporated Short disturb test algorithm for built-in self-test

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111161786A (zh) * 2019-12-28 2020-05-15 上海仪电智能电子有限公司 一种提高矢量图形深度利用效率的大容量存储器测试方法
CN111161786B (zh) * 2019-12-28 2024-02-27 上海仪电智能电子有限公司 一种提高矢量图形深度利用效率的大容量存储器测试方法

Also Published As

Publication number Publication date
DE10101234A1 (de) 2002-07-18
WO2002063634A1 (de) 2002-08-15

Similar Documents

Publication Publication Date Title
DE102005013285B4 (de) Verfahren zum Konfigurieren eines Steuergeräts und Steuergerät
DE102013222321A1 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
WO2000070620A1 (de) Speicheranordnung mit adressverwürfelung
DE19930169B4 (de) Testeinrichtung und Verfahren zum Prüfen eines Speichers
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE10034878C2 (de) Verfahren zum Überprüfen eines Bauelementes und Bauelement mit Testspeicher
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE10292320T5 (de) Verfahren und Vorrichtung zum Analysieren und Reparieren von Speicher
DE19724471C2 (de) Vorrichtung und Verfahren zum Einschreiben von Daten in einen nichtflüchtigen Speicher
EP1352397A1 (de) Verfahren zum test eines nichtflüchtigen speichers und verwendung eines solchen speichers
DE10030990B4 (de) Verfahren zum Beschreiben und Löschen eines nichtflüchtigen Speicherbereichs
DE10134654A1 (de) Verfahren zur Fehleranalyse von Speichermodulen
DE102006000883A1 (de) Betriebsverfahren für ein Speicherbauelement
DE10252059B3 (de) Verfahren zum Betreiben einer Speicheranordnung
WO2001053944A2 (de) Redundanter datenspeicher
EP0715313B1 (de) Verfahren zur Programmierung eines elektrisch löschbaren, nichtflüchtigen Speichers in einem elektronischen Rechengerät sowie Steuergerät zur Verwendung bei dem Verfahren
DE10148521B4 (de) Integrierter Speicher sowie Verfahren zum Betrieb eines integrierten Speichers und eines Speichersystems mit mehreren integrierten Speichern
DE112017008201T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE102016225308A1 (de) Verfahren und Vorrichtung zum Kalibrieren eines Steuergerätes
DE10328238B4 (de) Verfahren zum Laden von Chipkarten mit Initialisierungs- und/oder Personalisierungsdaten
DE10110272B4 (de) Halbleiterspeicher
DE112020007747T5 (de) Flash-Speicherverwaltungsvorrichtung und Flash-Speicherverwaltungsverfahren
EP1517333B1 (de) Zustandskennzeichen (Flag) für einen bezüglich Löschen und Schreiben asymmetrischen Speicher
DE102022209019A1 (de) Steuergerät und Verfahren zum Initialisieren eines Steuergeräts
DE102015101327B4 (de) Verfahren zur Anpassung der Aufteilung von Busleitungen eines Kommunikationsbusses in einem Computersystem

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030811

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20040128

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

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20161206