Warning: fopen(111data/log202008092333.log): failed to open stream: No space left on device in /home/pde321/public_html/header.php on line 107

Warning: flock() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 108

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 113
Programmgesteuerte Einheit und Verfahren zum Erkennen und/oder Analysieren von Fehlern in programmgesteuerten Einheiten - Dokument DE19941099A1
 
PatentDe  


Dokumentenidentifikation DE19941099A1 29.03.2001
Titel Programmgesteuerte Einheit und Verfahren zum Erkennen und/oder Analysieren von Fehlern in programmgesteuerten Einheiten
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Mayer, Albrecht, Dr., 82041 Deisenhofen, DE;
Pfab, Stefan, 82049 Pullach, DE;
Kaibel, Martin, 81371 München, DE
Vertreter Jannig & Repkow Patentanwälte, 86199 Augsburg
DE-Anmeldedatum 30.08.1999
DE-Aktenzeichen 19941099
Offenlegungstag 29.03.2001
Veröffentlichungstag im Patentblatt 29.03.2001
IPC-Hauptklasse G05B 19/048
IPC-Nebenklasse G06F 11/00   
Zusammenfassung Die beschriebene programmgesteuerte Einheit zeichnet sich dadurch aus, daß sie sich während der Programmausführung im Ansprechen auf ein vorbestimmtes Ereignis in einen Zustand versetzen kann, in welchem ausgewählte oder alle der zu Scan-Ketten verschaltbaren Elemente ihren Zustand nicht mehr ändern können. Verschaltet man anschließend die zu einer Scan-Kette verschaltbaren Elemente zu einer Scan-Kette und liest diese aus, so kann man aus den dabei erhaltenen Daten schnell und zuverlässig in der programmgesteuerten Einheit vorhandene Fehler erkennen und/oder analysieren.

Beschreibung[de]

Die vorliegende Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1 und ein Verfahren gemäß dem Oberbegriff des Patentanspruchs 7, d. h. eine programmgesteuerte Einheit mit zu einer oder mehreren Scan-Ketten verschaltbaren Elementen und ein Verfahren zum Erkennen und/oder Analysieren von Fehlern in programmgesteuerten Einheiten unter Verwendung von Scan-Ketten.

Programmgesteuerte Einheiten wie insbesondere Mikroprozessoren, Mikrocontroller, Signalprozessoren und dergleichen sowie Verfahren zum Testen derselben sind seit langem in einer Vielzahl von Ausführungsformen bekannt.

Programmgesteuerte Einheiten mit Scan-Ketten und Verfahren zum Testen von programmgesteuerten Einheiten unter Verwendung von Scan-Ketten ermöglichen es, programmgesteuerte Einheiten besonders schnell und zuverlässig nach Fehlern zu untersuchen.

Die Scan-Ketten-Elemente sind üblicherweise ausgewählte oder alle Flip-Flops der zu testenden Schaltung. Diese Flip-Flops lassen sich beim Testen der zu testenden Schaltung zu einer oder mehreren Scan-Ketten verschalten. Die Flip-Flops werden dabei in Reihe hintereinandergeschaltet, wobei der Eingangsanschluß eines jeweiligen Flip-Flops mit dem Ausgangsanschluß des in der Reihe vor ihm stehenden Flip-Flops verbunden ist, und wobei der Ausgangsanschluß eines jeweiligen Flip-Flops mit dem Eingangsanschluß des in der Reihe nach ihm kommenden Flip-Flops verbunden ist.

Eine solche Scan-Kette, genauer gesagt deren im betrachteten Beispiel durch Flip-Flops gebildeten Elemente können relativ einfach initialisiert werden. Ein an den Eingangsanschluß des ersten Flip-Flops der Scan-Kette angelegtes Signal, genauer gesagt der sich im Ansprechen darauf einstellende Zustand des betreffenden Flip-Flops wird nämlich mit dem Takt eines an die Flip-Flops angelegten Taktsignals von Flip-Flop zu Flip- Flop weitergeschoben; jedes Flip-Flop der Scan-Kette nimmt mit jedem Taktimpuls den Zustand des in der Scan-Kette vor ihm stehenden Flip-Flops an.

Soll das x-te Flip-Flop der Scan-Kette in den Zustand A versetzt werden, so muß "nur" an den Eingangsanschluß des ersten Flip-Flops der Scan-Kette ein Signal angelegt werden, durch welches dieses Flip-Flop und die nachgeschalteten Flip-Flops in den Zustand A versetzbar sind, und die Scan-Kette (alle Flip-Flops derselben) mit x Taktimpulsen beaufschlagt werden.

Umgekehrt können am letzten Flip-Flop der Scan-Kette die Zustände der einzelnen Flip-Flops zu einem bestimmten Zeitpunkt sequentiell ausgelesen werden.

Enthält die Scan-Kette n Flip-Flops, so läuft der Test einer zu testenden Schaltung nach dem Scan-Verfahren wie folgt ab: Zunächst wird die Schaltung in die Scan-Betriebsart versetzt, wodurch sich die erwähnte Scan-Kette bildet. Diese Scan-Kette wird durch sequentielles Anlegen von n Eingangssignalen und n Taktimpulsen in einen definierten Anfangszustand versetzt. Danach wird die Scan-Kette aufgelöst, und die zu testende Schaltung kurzzeitig testweise in Betrieb genommen. Dabei verändern sich zumindest teilweise die Zustände der anfänglich initialisierten Flip-Flops, wobei sich aus der bestimmungsgemäßen Funktion der zu testenden Schaltung ermitteln läßt, in welchem (Soll-)Zustand die Flip-Flops sich zu einem jeweiligen Zeitpunkt befinden müßten. Verschaltet man die Flip-Flops nach einer gewissen Zeit wieder zur Scan- Kette und beaufschlagt sie mit Taktsignalen, so werden am Ende der Scan-Kette (aus dem Ausgangsanschluß des letzten Flip-Flops der Scan-Kette) sequentiell im Takt der Taktsignale Daten herausgeschoben, welche den (Ist-)Zustand der Flip-Flops der Scan-Kette zum Zeitpunkt des Endes des Test- Betriebs der Schaltung repräsentieren. Vergleicht man sodann den wie beschrieben ermittelten Ist-Zustand der Flip-Flops der Scan-Kette mit dem bekannten Soll-Zustand derselben, so läßt sich daran ersehen, ob die zu testende Schaltung fehlerfrei läuft oder nicht.

Bei geeigneter Vorgehensweise lassen sich auf die beschriebene Art und Weise fast alle Fehler in programmgesteuerten Einheiten schnell und einfach erkennen.

Die Erfahrung zeigt jedoch, daß bestimmte Fehler bei einem wie vorstehend beschrieben durchgeführten Schaltungstest nicht erkannt werden. Dies betrifft insbesondere Fehler, die nur unter ganz bestimmten Bedingungen auftreten. Solche Fehler sind beispielsweise Fehler, die nur zu einem bestimmten Zeitpunkt nach der Inbetriebnahme der Schaltung in einer ganz bestimmten Umgebung auftreten (beispielsweise Fehler, die nur ungefähr 30 Sekunden nach der Inbetriebnahme der Schaltung bei einer Umgebungstemperatur von -20°C und einer Versorgungsspannung von 5,3 V auftreten).

Solche Fehler lassen sich derzeit nicht, jedenfalls nicht zuverlässig, erkennen und analysieren. Dies ist häufig selbst dann der Fall, wenn die Umstände, unter welchen die Fehler auftreten, bekannt sind.

Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1 und das Verfahren gemäß dem Oberbegriff des Patentanspruchs 7 derart weiterzubilden, daß sich auch solche Fehler schnell und zuverlässig erkennen und/oder analysieren lassen, die nur unter bestimmten Umständen auftreten.

Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden Teil des Patentanspruchs 1 beanspruchten Merkmale (Vorrichtung) bzw. durch die im kennzeichnenden Teil des Patentanspruchs 7 beanspruchten Merkmale (Verfahren) gelöst.

Demnach ist vorgesehen,

  • - daß sich die programmgesteuerte Einheit während der Programmausführung im Ansprechen auf ein vorbestimmtes Ereignis in einen Zustand versetzen kann, in welchem ausgewählte oder alle der zu Scan-Ketten verschaltbaren Elemente ihren Zustand nicht mehr ändern können (kennzeichnender Teil des Patentanspruchs 1) bzw.
  • - daß die Scan-Ketten ausgelesen werden, nachdem während der Ausführung eines Programms durch die programmgesteuerte Einheit ein vorbestimmtes Ereignis aufgetreten ist (kennzeichnender Teil des Patentanspruchs 7).

Versetzt sich die programmgesteuerte Einheit während der Programmausführung im Ansprechen auf ein vorbestimmtes Ereignis in einen Zustand, in welchem ausgewählte oder alle der zu Scan-Ketten verschaltbaren Elemente ihren Zustand nicht mehr ändern können, und verschaltet man anschließend die zu einer Scan-Kette verschaltbaren Elemente zu einer Scan-Kette und liest diese aus, so kann man aus den dabei erhaltenen Daten schnell und zuverlässig auch solche Fehler in der programmgesteuerten Einheit erkennen, die nur unter bestimmten Umständen auftreten.

Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen, der nachfolgenden Beschreibung und der Figur entnehmbar.

Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Figur näher erläutert.

Die Figur zeigt schematisch den Aufbau der nachfolgend näher beschriebenen programmgesteuerten Einheit.

Bei der nachfolgend beschriebenen programmgesteuerten Einheit handelt es sich um einen Mikroprozessor, einen Mikrocontroller, einen Signalprozessor oder dergleichen.

Der prinzipielle Aufbau der betrachteten programmgesteuerten Einheit ist in der Figur dargestellt. Der Vollständigkeit halber sei darauf hingewiesen, daß in der Figur nur die vorliegend besonders interessierenden Bestandteile der programmgesteuerten Einheit gezeigt sind.

Der vollständige Aufbau von programmgesteuerten Einheiten, deren Funktion und deren Wirkungsweise sind allgemein bekannt und bedürfen keiner näheren Erläuterung.

Die betrachtete programmgesteuerte Einheit läßt sich unter Verwendung einer oder mehrerer Scan-Ketten testen. Sie zeichnet sich dadurch aus, daß sie sich während der Programmausführung im Ansprechen auf ein vorbestimmtes Ereignis in einen Zustand versetzen kann, in welchem ausgewählte oder alle der zu Scan-Ketten verschaltbaren Elemente ihren Zustand nicht mehr ändern können. Verschaltet man anschließend die zu Scan-Ketten verschaltbaren Elemente zu einer oder mehreren Scan-Ketten und liest diese aus, so erhält man damit die Zustände der Scan-Ketten-Elemente zum Zeitpunkt des vorbestimmten Ereignisses. Repräsentiert das vorbestimmte Ereignis eine Fehlfunktion der programmgesteuerten Einheit oder ein kurz davor oder danach liegendes Ereignis, so kann aus den aus den Scan-Ketten ausgelesenen Daten die Ursache der Fehlfunktion ermittelt und/oder analysiert werden.

Um die Abweichungen der aus den Scan-Ketten ausgelesenen Daten gegenüber den Daten, die man im ungestörten Normalfall erhalten würde, erkennen zu können, vergleicht man diese vorzugsweise mit den entsprechenden Daten einer die betreffende Fehlfunktion nicht aufweisenden programmgesteuerten Einheit.

Die in der Figur dargestellten Bestandteile der programmgesteuerten Einheit umfassen eine CPU, einen Taktgenerator CGU, eine On-Chip-Debug-Support-Einheit OCDS, ein JTAG-Modul JTAG, und eine Prozessor-Anhalte-Einheit PSU; ausgewählte oder alle Flip-Flops der programmgesteuerten Einheit können zu einer oder mehreren Scan-Ketten SC verschaltet werden.

Im normalen Betrieb der programmgesteuerten Einheit arbeitet diese, genauer gesagt die CPU derselben, auszuführende Programme ab; die die dabei auszuführenden Befehle repräsentierenden Daten sind in einem innerhalb oder außerhalb der programmgesteuerten Einheit vorgesehenen (in der Figur nicht gezeigten) Programmspeicher gespeichert.

Die CPU und die anderen Komponenten der programmgesteuerten Einheit arbeiten im Takt der vom Taktgenerator TGU erzeugten Taktsignale CLOCK.

Die Scan-Ketten SC und die On-Chip-Debug-Support-Einheit dienen zur Erkennung und/oder Analyse von Hardware- und/oder Softwarefehlern.

Der Aufbau und der Betrieb von Scan-Ketten wurden bereits ausführlich beschrieben und bedürfen keiner weiteren Erläuterung.

Der On-Chip-Debug-Support-Einheit obliegt es, das Auftreten bestimmter Ereignisse zu überwachen und bei Auftreten des betreffenden Ereignisses in vorbestimmter Weise zu reagieren.

Die vorbestimmten Ereignisse bestehen beispielsweise darin, daß die programmgesteuerte Einheit auf eine bestimmte Speicheradresse im Programm- und/oder Datenspeicher zugreift, und/oder daß die programmgesteuerte Einheit vorbestimmte Daten aus dem Programm- und/oder Datenspeicher einliest oder an diesen ausgibt, und/oder daß ein vorbestimmtes Register der programmgesteuerten Einheit einen vorbestimmten Inhalt annimmt, und/oder daß sich sonstige Zustände einstellen, die als Break-Bedingungen in Debuggern verwendet werden können. Das vorbestimmte Ereignis kann auch darin bestehen, daß bestimmte Ereignisse gleichzeitig oder in einer bestimmten Aufeinanderfolge auftreten oder daß eine bestimmte Anzahl von Takten nach dem Auftreten eines bestimmten Ereignisses oder einer bestimmten Ereignisfolge verstrichen ist.

Bekannte On-Chip-Debug-Support-Einheiten reagieren auf das Auftreten des vorbestimmten Ereignisses dadurch, daß

  • - das Auftreten des Ereignisses an einem Ein- und/oder Ausgabeanschluß der programmgesteuerten Einheit signalisiert wird, und/oder
  • - daß ein sogenanntes Monitor-Programm gestartet wird, mit Hilfe dessen der Zustand und das Verhalten der programmgesteuerten Einheit genau kontrollierbar sind, und/oder
  • - daß die programmgesteuerte Einheit veranlaßt wird, die Programmausführung des eigentlich auszuführenden Programms beispielsweise durch wiederholte Ausführung von NOP-Befehlen zu unterbrechen oder zu stoppen.

Bei der vorliegend näher betrachteten programmgesteuerten Einheit ist die OCDS-Einheit zusätzlich oder alternativ in der Lage, die programmgesteuerte Einheit in einen Zustand zu versetzen, in welchem ausgewählte oder alle der zu Scan- Ketten verschaltbaren Elemente ihren Zustand nicht mehr ändern können.

Dies wird im betrachteten Beispiel dadurch erreicht, daß der Taktgenerator CGU deaktiviert wird. Durch den Wegfall der vom Taktgenerator CGU erzeugten Taktsignale wird der augenblickliche Zustand derjenigen Bestandteile der programmgesteuerten Einheit, die vom Taktgenerator CGU mit Taktsignalen versorgt werden, eingefroren.

Der Vollständigkeit halber sei darauf hingewiesen daß das Einfrieren der augenblicklichen Zustände der zu Scan-Ketten verschaltbaren Elemente auch auf mannigfaltige andere Art und Weise bewerkstelligt werden kann.

Im betrachteten Beispiel versorgt der Taktgenerator CGU die gesamte programmgesteuerte Einheit mit Taktsignalen; daher wird vorliegend der Zustand der gesamten programmgesteuerten Einheit eingefroren. Es sei jedoch darauf hingewiesen, daß es nicht zwingend erforderlich ist, die gesamte programmgesteuerte Einheit anzuhalten.

Die Deaktivierung des Taktgenerators CGU erfolgt über die Prozessor-Anhalte-Einheit PSU; diese deaktiviert den Taktgenerator CGU auf Veranlassung der On-Chip-Debug-Support- Einheit OCDS.

Nachdem der Taktgenerator CGU deaktiviert ist, können diejenigen Bestandteile der programmgesteuerten Einheit, die üblicherweise vom Taktgenerator CGU mit Taktsignalen versorgt werden, ihren Zustand nicht mehr ändern.

Es ist aber nach wie vor möglich, die zu Scan-Ketten verschaltbaren Elemente zu einer oder mehreren Scan-Ketten zusammenzuschalten und auszulesen.

Tut man dies, so erhält man umfassende Informationen über den Zustand der programmgesteuerten Einheit zum Zeitpunkt des Auftretens des von der OCDS-Einheit erfaßten vorbestimmten Ereignisses.

Die aus den Scan-Ketten ausgelesenen Daten werden vorzugsweise mit entsprechenden Daten einer fehlerfrei arbeitenden programmgesteuerten Einheit verglichen. Anhand der dabei feststellbaren Unterschiede kann der in der fehlerhaft arbeitenden programmgesteuerten Einheit vorhandene Fehler schnell und einfach erkannt, lokalisiert und/oder analysiert werden.

Die On-Chip-Debug-Support-Einheit OCDS, die Prozessor- Anhalte-Einheit PSU und die Scan-Ketten SC können über das JTAG-Modul extern (von außerhalb der programmgesteuerten Einheit) gesteuert werden.

Das JTAG-Modul ist ein bekanntes Interface und bedarf keiner näheren Erläuterung.

Der OCDS-Einheit ist über das JTAG-Interface unter anderem mitteilbar

  • - ob sie das Auftreten vorbestimmter Ereignisse überwachen soll,
  • - worin das vorbestimmte Ereignis besteht, und/oder
  • - wie die OCDS-Einheit auf das Auftreten des vorbestimmten Ereignisses reagieren soll.

Der Prozessor-Anhalte-Einheit ist über das JTAG-Interface mitteilbar, ob und gegebenenfalls wie sie auf Anforderungen seitens der OCDS-Einheit reagieren soll.

Die Scan-Ketten SC sind über das JTAG-Interface zusammensetzbar, auflösbar, auslesbar und beschreibbar.

Damit sind sämtliche Operationen, die zu einer wie vorstehend beschrieben erfolgenden Erkennung und/oder Analyse von Fehlern in der programmgesteuerten Einheit in dieser durchgeführt werden müssen, über eine Standardschnittstelle von außerhalb der programmgesteuerten Einheit veranlaßbar. Bei entsprechendem Ausbau des die programmgesteuerte Einheit enthaltenden Systems kann so eine Fehlererkennung und eine Fehleranalyse durchgeführt werden, ohne die programmgesteuerte Einheit aus dem sie enthaltenden System entfernen zu müssen. Dies erweist sich als großer Vorteil, weil die Fehlererkennung und Fehleranalyse dadurch maximal einfach und zuverlässig wird.

Durch die beschriebene programmgesteuerte Einheit und das beschriebene Verfahren lassen sich in programmgesteuerten Einheiten vorhandene Fehler auch dann, wenn sie nur unter bestimmten Umständen auftreten, schnell und zuverlässig erkennen und analysieren. CLOCK Taktsignal

CPU CPU

CGU Taktgenerator

OCDS On-Chip-Debug-Support-Einheit

JTAG JTAG-Modul

PSU Prozessor-Anhalte-Einheit

SC Scan-Kette


Anspruch[de]
  1. 1. Programmgesteuerte Einheit mit zu einer oder mehreren Scan-Ketten (SC) verschaltbaren Elementen, dadurch gekennzeichnet, daß sich die programmgesteuerte Einheit während der Programmausführung im Ansprechen auf ein vorbestimmtes Ereignis in einen Zustand versetzen kann, in welchem ausgewählte oder alle der zu Scan-Ketten verschaltbaren Elemente ihren Zustand nicht mehr ändern können.
  2. 2. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Überwachung des Auftretens des vorbestimmten Ereignisses durch eine in der programmgesteuerten Einheit vorgesehene On-Chip-Debug-Support-Einheit (OCDS) erfolgt.
  3. 3. Programmgesteuerte Einheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Versetzen der programmgesteuerten Einheit in einen Zustand, in welchem ausgewählte oder alle der zu Scan-Ketten (SC) verschaltbaren Elemente ihren Zustand nicht mehr ändern können, durch ein Deaktivieren eines die betreffenden Teile der programmgesteuerten Einheit mit Taktsignalen (CLOCK) versorgenden Taktgenerators (CGU) erfolgt.
  4. 4. Programmgesteuerte Einheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die programmgesteuerte Einheit eine Schnittstelle (JTAG) aufweist, über welche zum Erkennen und/oder Analysieren von in der programmgesteuerten Einheit vorhandenen Fehlern vorgesehene Teile der programmgesteuerten Einheit von außerhalb der programmgesteuerten Einheit konfigurierbar und/oder steuerbar sind.
  5. 5. Programmgesteuerte Einheit nach Anspruch 4, dadurch gekennzeichnet, daß über die Schnittstelle (JTAG) das vorbestimmte Ereignis und die Reaktion der programmgesteuerten Einheit auf das Auftreten des vorbestimmte Ereignis einstellbar sind.
  6. 6. Programmgesteuerte Einheit nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß über die Schnittstelle (JTAG) das Verschalten der zu einer Scan-Kette (SC) verschaltbaren Elemente zu einer Scan- Kette sowie das Auslesen und Beschreiben der Scan-Kette veranlaßbar bzw. durchführbar sind.
  7. 7. Verfahren zum Erkennen und/oder Analysieren von Fehlern in programmgesteuerten Einheiten unter Verwendung von Scan- Ketten (SC), dadurch gekennzeichnet, daß die Scan-Ketten ausgelesen werden, nachdem während der Ausführung eines Programms durch die programmgesteuerte Einheit ein vorbestimmtes Ereignis aufgetreten ist.
  8. 8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die programmgesteuerte Einheit im Ansprechen auf das Auftreten des vorbestimmten Ereignisses in einen Zustand versetzt wird, in welchem ausgewählte oder alle der zu Scan- Ketten (SC) verschaltbaren Elemente ihren Zustand nicht mehr ändern können.
  9. 9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß die beim Auslesen der Scan-Ketten (SC) erhaltenen Daten mit Daten verglichen werden, die bei einem unter den selben Bedingungen erfolgenden Auslesen der Scan-Ketten einer fehlerfreien programmgesteuerten Einheit erhalten werden.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com