DE4139151A1 - Verfahren zum selbsttest von mikroprogrammierten prozessoren - Google Patents

Verfahren zum selbsttest von mikroprogrammierten prozessoren

Info

Publication number
DE4139151A1
DE4139151A1 DE19914139151 DE4139151A DE4139151A1 DE 4139151 A1 DE4139151 A1 DE 4139151A1 DE 19914139151 DE19914139151 DE 19914139151 DE 4139151 A DE4139151 A DE 4139151A DE 4139151 A1 DE4139151 A1 DE 4139151A1
Authority
DE
Germany
Prior art keywords
test
self
command
microinstruction
microprogram
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.)
Granted
Application number
DE19914139151
Other languages
English (en)
Other versions
DE4139151C2 (de
Inventor
Thomas Dipl Ing Schwair
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19914139151 priority Critical patent/DE4139151A1/de
Publication of DE4139151A1 publication Critical patent/DE4139151A1/de
Application granted granted Critical
Publication of DE4139151C2 publication Critical patent/DE4139151C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

Steigenden Leistungsanforderungen an Datenverarbeitungsein­ richtungen wird auf Prozessorebene dadurch häufig Rechnung getragen, daß von Chipgeneration zu Chipgeneration die Ar­ beitsgeschwindigkeit und die Zahl der Funktionselemente des Chips wächst. Eine höhere Prozessortaktrate aber bedingt auch geringere Signallaufzeiten. Das macht es erforderlich, daß die relevanten Funktionselemente auf dem Prozessor ver­ kleinert werden und daß die Verdrahtungslänge geringer wird.
Die zunehmende Integration der Mikroprozessoren wird nicht schritthaltend von einer Integration der Gehäuse, in denen diese Mikroprozessoren eingesetzt werden, begleitet. Dies hat zur Folge, daß immer weniger Signale aus dem Inneren des Prozessors über Pins nach außen geführt werden können. Man spricht in diesem Zusammenhang von einer höheren logischen und sequentiellen Tiefe der Schaltung.
Die Qualitätsanforderungen an die zu fertigenden Erzeugnisse und das Renommee eines Herstellers beim Kunden erlauben es nicht, daß schadhafte Bauelemente in Enderzeugnisse gelangen oder zum Kunden ausgeliefert werden.
Fertigungs- und Betriebstests stellen sicher, daß schadhafte Chips ausgesondert werden können. Je früher ein schadhaftes Bauteil im Fertigungsprozeß bekannt ist, desto geringer sind die für die Qualitätsicherung aufzuwendenden Kosten. Der An­ teil der Testkosten an den Fertigungskosten eines Chips ist nicht vernachlässigbar. Der finanzielle Aufwand für die Test­ vorbereitung und die Testdurchführung kann mehr als 50% der Herstellungskosten betragen.
Es gibt verschiedene Arten Bausteintests durchzuführen. Man unterscheidet grob zwischen externen Tests und Selbsttests.
Das Testverfahren muß sicherstellen, daß jedes speichernde Element der Schaltung und jeder Knoten einmal mit einer 0 und einmal mit einer 1 beaufschlagt wird. Weiterhin muß ge­ währleistet sein, daß diese Zustände auch von außen be­ obachtet werden können.
Beim externen Test wird eine gefertigte Schaltung auf dem Chip durch ihre Pads, oder bereits im Gehäuse eingebaut durch ihre Pins adaptiert und somit eine Verbindung zum Testautomaten hergestellt. Über den Testautomaten wird nun versucht, durch Anlegen geeigneter Bitmuster an die Eingänge der Schaltung entsprechende Fehlerzustände, d. h. 0- und 1- Zustände, an Schaltungsknoten und in den Speicherelementen des Chips einzustellen und durch Beobachtung der Schaltungs­ ausgänge entsprechende Fehler festzustellen.
Der Aufwand für die Erstellung dieser Bitmuster ist groß und er wächst mit zunehmender sequentieller und logischer Tiefe eines Bausteins. Damit verbunden ist auch die Testdauer, die entsprechend der logischen und sequentiellen Tiefe des Bau­ steins wächst. Entsprechend aufwendig muß auch die Elektronik und der Speicherausbau des Testautomaten beschaffen sein. Dies hat zur Folge, daß die Testautomaten zum Test solcher Schaltungen sehr teuer sind. Da auch die Testdauer wegen der sequentiellen und logischen Tiefe der Bauelemente immer länger wird, hat dies einen Kostenanstieg beim Test solcher Bauelemente zur Folge.
Es ist heute schon erkennbar, daß ab einer bestimmten Schal­ tungskomplexität ein externer Test wirtschaftlich nicht mehr sinnvoll ist. Es bleibt also nur noch der Selbsttest solcher digitalen Schaltungen. Ein weiterer Nachteil von externen Tests ist, daß Bausteine nicht mit ihrer realen Arbeitsgeschwin­ digkeit betrieben werden können.
Beim Selbsttest wird versucht, die Funktionen des Testauto­ maten teilweise oder ganz auf den Baustein zu verlagern. Bei diesen Funktionen handelt es sich um die Testkonfiguration, die Testmustererzeugung, den Testdatentransport, die Testda­ tenauswertung und die Ablaufsteuerung des Tests. In jedem Falle ist ein spezieller Aufbau des Bausteins erforderlich mit dem diese Funktionen durchgeführt werden könnnen oder mit dem auch Funktionsblöcke aus den Schaltungsteilen gebildet werden können.
Die Selbsttestarchitektur des Prozessors unterscheidet sich von der Betriebsarchitektur des Prozessors. Für mikropro­ grammierte Prozessoren bieten sich prinzipiell zwei unter­ schiedliche Methoden an. Man unterscheidet hardwarebasierende Selbsttestarchitekturen und firmwarebasierende Selbsttests­ architekturen.
Bei den Ausführungen über Selbsttest wird auf M-Gerner/B. Müller/G. Sandweg "Selbsttest digitaler Schaltungen" R. Oldenburg Verlag 1990 Bezug genommen. Bei hardwarebasierenden Selbsttestsarchitekturen werden alle Funktionen des Selbsttests durch umkonfigurierte Funktionslogik oder durch zusätzlich implementierte Schaltungsteile durchgeführt. In der Regel kommen Scan-Path-Architekturen oder Boundary-Scan-Architek­ turen in Verbindung mit linear rückgekoppelten Schieberegi­ stern zur Anwendung. Auch für spezielle Hardwareausprägungen, wie z. B. Speicherbereiche existieren effiziente optimierte Verfahren, die im Selbsttestfall eingesetzt werden können.
Bei firmwarebasierenden Selbsttestarchitekturen wird der Selbsttest durch ein Programm realisiert, welches auf dem Chip abgespeichert ist. Diese Architekturen sind besonders für den Selbsttest von mikroprogrammierten Prozessoren geeignet.
Bislang gibt es keine methodischen und strukturierten An­ sätze für die Entwicklung von vollständigen, firmwarebasie­ renden on-chip Selbsttests für mikroprogrammierte Prozessoren.
Einige Vorteile von Selbsttestarchitekturen sind:
  • - Es können einfache Testautomaten eingesetzt werden, da Pro­ zessoren Teilaufgaben übernehmen.
  • - Es können mehrere Chips parallel auf einem Wafer getestet werden.
  • - Der Funktionstest kann vor dem teuren Parametertest stattfinden.
  • - Die Tests finden mit Betriebsfrequenz statt.
  • - Die Tests können auch unter rauhen Umgebungsbedingungen stattfinden.
  • - Die Tests können auch während des Betriebs des Prozessors im Endsystem stattfinden.
Die der Erfindung zugrundeliegende Aufgabe besteht darin, ein Verfahren anzugeben, mit dem Selbsttests an mikropro­ grammierten Prozessoren durchgeführt werden können.
Diese Aufgabe wird gemäß den Merkmalen des Patentanspruchs 1 gelöst.
Besonders vorteilhaft an firmwarebasierenden Selbsttest-Ver­ fahren ist, daß sie keine Zusatzhardware auf dem Silizium benötigen. Dadurch reduziert sich die vom Mikroprozessor eingenommene Siliziumfläche und der Hardware-Testaufwand pro­ portional zur Flächeneinsparung.
Mit der Verwendung von Mikrobefehlssequenzen können auch gleichzeitig die Inhalte des Mikroprogrammspeichers überprüft werden.
Es kann vorteilhaft sein, daß so entstandene Selbsttestmikro­ programm mehrmals ablaufen zu lassen, wenn beim ersten Durch­ lauf nicht der gewünschte Fehlererkennungsgrad erreicht wird. Ein weiterer Vorteil besteht darin, Mikrobefehlsse­ quenzen zu verwenden, die Maschinenbefehlen entsprechen. Es ist somit nicht erforderlich, separate Befehlssequenzen in Mikroprogrammspeicher nur für den Testzweck abzulegen.
Zur Erhöhung des Fehlererkennungsgrades im Selbsttest und zur Vermeidung von zyklischen Abläufen im Prozessor ist es vorteilhaft in den Registern Eingangsdaten (Initialisierungs­ daten) vorzugeben und die Maschinenbefehle, die das Selbst­ testprogramm bilden, in bestimmter Weise anzuordnen.
Da während des Selbsttests immer auf dieselben Register und die darin enthaltbaren Daten zugegriffen wird, ist dar­ auf zu achten, daß die Startdaten in den Registern und die Abarbeitungsfolge der Mikrobefehlssequenzen während des Selbst­ tests, so gewählt bzw. vorgegeben werden, daß nach jeweils einem Durchlauf des Selbsttestmikroprogramms sich die in den Registern enthaltenen Daten von denjenigen Daten unterschei­ den, die sich dort zu Beginn des jeweiligen Selbsttestmikro­ programm-Durchlaufs befanden.
Um sicherzugehen, daß bei der Abarbeitung des Selbsttest­ mikroprogramms der gesamte Inhalt des Mikroprogrammspeichers überprüft wird, ist es vorteilhaft, den gesamten Maschinen­ befehlsatz des Mikroprozessors bei der Bildung des Selbst­ testprogramms zu verwenden.
Ein weiterer Vorteil beim Selbsttest entsteht daraus, daß man den Prozessor den gesamten Zustandsraum durchlaufen läßt, den sein Betriebsmikroprogramm aufspannt. Dadurch stellt man sicher, daß auch wirklich alle möglichen Zustände durch den Selbsttest angesprochen werden können und somit kann man auch sichergehen, daß alle möglichen Zustände an den entsprechenden Schaltungsknoten und in den entsprechen­ den Registern auch einmal eingestellt wurden und beobachtbar sind.
Um die Zeitdauer für den Selbsttest zu minimieren und einen bestimmten Fehlererkennungsgrad einzustellen, ist es sinnvoll, bei einer mehrmaligen Abarbeitung des Selbst­ testmikroprogramms einen Abarbeitungzähler zu verwenden, der sicherstellt, daß nur eine bestimmte Anzahl von Testdurch­ läufen stattfindet.
Um die Leistungsfähigkeit des Mikroprozessors im Normalablauf d. h. im Betriebsfall durch die Vorkehrungen für die Bildung eines Selbsttestmikroprogramms nicht zu beeinträchtigen, ist es besonders vorteilhaft, die Verkettung der Maschinenbefehle zu einem Selbsttestmikroprogramm durch eine Bedingung zu veran­ lassen, die im Mikrobefehlsformat vorhanden ist und die vom Mikrobefehlsdecoder erkannt wird.
Für Mikroprozessoren mit kleinem Maschinenbefehlssatz ist es besonders sinnvoll, die einzelnen Maschinenbefehle durch direkte Sprungbefehle zu verketten, da so möglichst wenig Speicherplatz im Mikroprogrammspeicher für den Selbsttest zusätzlich benötigt wird.
Um auch bei Mikroprozessoren mit großen Maschinenbefehlssätzen die Übersichtlichkeit des Selbsttestmikroprogramms zu gewähr­ leisten und eine leichte Änderbarkeit desselben zu ermöglichen, ist es besonders vorteilhaft, die einzelnen Maschinenbefehle durch ein Hauptprogramm in Verbindung mit einem bedingten Re­ turnbefehl der nur im Selbsttestfall ausgeführt wird, miteinander zu verketten.
Um einen von außen möglichst unabhängigen Ablauf des Selbsttests zu gestatten, ist es vorteilhaft, dieses Haupt­ programm im Mikrobefehlsspeicher des Mikroprozessors ab­ zulegen.
Um im Normalbetrieb des Prozessors Performanceverluste durch Einführung und Abarbeitung zusätzlicher Selbsttestbefehle zu vermeiden (bedingter Sprungbefehl, bedingter Return­ befehl) ist es vorteilhaft, im einen Fall den bedingten Sprung­ befehl mit dem End-Befehl zu kombinieren und im anderen Fall den bedingten Returnbefehl mit dem End-Befehl zu kombinieren. So kann man sicherstellen, daß im Betriebsfall und im Selbst­ testfall die gleiche Anzahl von Befehlen ausgeführt wird und keine Performanceverluste im Normalbetrieb auftreten.
Damit alle beim Selbsttest eingestellten Fehler nicht maskiert werden und von außen beobachtbar sind, ist es vorteilhaft, Zwi­ schensignaturen zu bilden, die in jedem Fall zu einer fehler­ haften Endsignatur führen, wenn ein Fehler auftritt.
Anhand von Figuren werden die Erfindung und ihre Ausführungs­ beispiele im Folgenden näher erläutert.
Fig. 1 zeigt die Modellarchitektur eines Prozessorkerns.
Fig. 2 zeigt eine Datenschleife durch den Modellprozessor.
Fig. 3 zeigt den Unterschied von Normalbetrieb und Test­ betrieb des Mikroprozessors.
Fig. 4 zeigt mit der Verkettung durch bedingte Sprungbe­ fehle ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens.
Fig. 5 zeigt mit der Verkettung durch Unterprogrammaufrufe, die aus einem Hauptprogramm heraus erfolgen, ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens.
Fig. 1 zeigt die Modellarchitektur eines Prozessorkerns. Sie besteht aus einem Kontrollteil KT und einem Datenteil DT. Der Kontrollteil setzt sich aus einer Ein- und Ausgabeschnitt­ stelle EA, einem Maschinenbefehlsdecoder MD, einem Mikro­ befehlszähler MZ, einem Mikroprogrammspeicher MS, einem Mikrobefehlsregister MR, einem Mikrobefehlsdecoder MID und einem Pufferregister P zusammen. Der Datenteil besteht aus einem Rechenwerk RW, einem Konstantenblock KB und einem Registerblock RB sowie den Bussen B-Bus und A-Bus.
Der Prozessor läßt sich in einem Kontrollteil KT und einem Datenteil DT gliedern. Im Kontrollteil liegt eine Ein- und Ausgabeschnittstelle EA, welche zwei Eingaberegister und ein Ausgaberegister für die Operanden und das Ergebnis ent­ hält. Der Maschinenbefehl im Befehlsregister wird an den Maschinenbefehlsdecoder MD angelegt, der die Startadresse für die zugehörige Mikroprogrammsequenz erzeugt und sie an den Mikrobefehlszähler MZ übergibt.
Die Mikrobefehle sind im Mikroprogrammspeicher MS (ROM: Read Only Memory) auf dem Baustein fest abgespeichert. Der Mikro­ befehlszähler MZ adressiert den Mikroprogammspeicher MS. Der Mikrobefehl wird im Mikrobefehlsregister MR zwischen­ gespeichert. Der Mikrobefehlsdecoder MID erzeugt zusammen mit dem Taktgenerator TG alle Steuersignale für die Ausführung des Befehls. Diese Steuersignale werden für die Dauer eines Befehlszyklus im Pufferregister P zwischengespeichert.
Für die Ausführung eines Rechenwerkbefehls werden die Operanden vom Konstantenblock KB und dem Registerblock RB über die beiden Datenbusse A-Bus und B-Bus in das Rechenwerk RW trans­ portiert. Der Registerblock RB hat dazu zwei Leseausgänge um gleichzeitig zwei zu verarbeitende Variablen in das Rechen­ werk RW transportieren zu können. Nach der Operation wird das Ergebnis über den A-Bus in den Registerblock RB zurückgeschrie­ ben.
Fig. 2 zeigt den Kontroll- und Datenflußgraphen und die Prozessorteilarchitektur. Der Datenflußgraph DG weist folgende Komponenten auf: Ein Rechenwerk RW, eine Ein- und Ausgabe EA, ein Register RB und ein Konstantenregister KB. Es wird veran­ schaulicht wie bei einem LOAD, STORE, ADD- Befehl die Daten zwischen Ein- und Ausgabe EA Register RB Konstantenregister KB und Rechenwerk RW in den einzelnen Bearbeitungsschrit­ ten fließen. Man erkennt im Graphen, daß sich zwischen dem Register RB und dem Rechwerk RW eine kleine Schleife aus­ bildet und zwischen der Ein- und Ausgabe, dem Register RB dem Rechenwerk RW eine große Schleife ausbildet.
Genauer wird das noch dargestellt in der Prozessorteil­ architektur DA. Sie zeigt ein Rechenwerk RW, ein Konstan­ tenregister KB, ein Register RB und eine Ein- und Ausgabe­ schnittstelle EA. Zwischen dem Register RB und dem Rechenwerk RW ist eine kleine Schleife KS eingetragen und zwischen der Ein- und Ausgabe EA dem Register RB und dem Rechenwerk RW ist eine große Schleife GS eingezeichnet. Die große Schleife kann mit dem üblichen Prozessoraufbau nicht realisiert werden. Es ist aber denkbar, daß innerhalb der Mikroprozessorperipherie eine Zusatzhardware installiert wird, die einen zusätzlichen Datenweg implementiert und somit die Ausbildung einer großen Schleife GS ermöglicht.
Das vorgeschlagene Selbsttestmikroprogramm der Firmware besteht aus der Verschachtelung der Gesamtheit der Betriebs­ routinen und von Routinen mit Selbsttestfunktionen, d. h. sämtliche Betriebsroutinen und Selbsttestroutinen bilden im Selbsttestfall ein Mikroprogramm TP zum Selbsttest der mikroprogrammierten Prozessorstruktur.
Durch die Mikroprogrammierung des Prozessors wird der gesamte mögliche Zustandsraum, das sind die Inhalte aller speichern­ den Elemente im Kontrollteil KT und Datenteil DT auf den Anteil reduziert, der durch das Betriebsmikroprogramm aufgespannt wird. Es ist beim Selbsttest deshalb nur erforderlich, die für das konkrete Mikroprogramm relevanten Kontrollmechanis­ men und die damit durchgeführten Datenmanipulationen zu testen. Alle anderen möglichen Zustände der Mikroarchitek­ tur sind für den Selbsttest irrelevant.
Für den Selbsttest des Prozessors werden die Betriebsroutinen BR des Mikroprogramms in für den Test optimaler Weise zyklisch verkettet und nacheinander abgearbeitet. Dadurch wird be­ wirkt, daß Daten zwischen den Funktionsblöcken des Datenteils auf den Transportmedien, (z. B. interne Busse) kreisen (RB, KB, RW, B-Bus). Diese Daten werden im Selbsttestfall für die Funk­ tionsblöcke zu Testmustern und nach Durchlaufen der Funktions­ blöcke zu Testantworten, die auf Fehler untersucht werden können. Durch Einstellung eines definierten Ausgangszustandes I und entsprechendes zyklisches Verketten der einzelnen Mikro­ befehlssequenzen (S1 bis Si), die jeweils einen Maschinenbe­ fehl repräsentieren, kann der Fehlererkennungsgrad für den Selbsttest optimiert werden. Es ist sicherzustellen, daß der Prozessor während des Selbsttests den Zustandsraum, den sein Betriebsmikroprogramm aufspannt, möglichst vollständig durch­ läuft. Es dürfen dabei einzelne Prozessorzustände mehrmals durchlaufen werden, jedoch muß gewährleistet sein, daß der Prozessor niemals in Zyklen einmündet, die er nicht wieder verlassen kann, da dann ein vollständiger Durchlauf aller Zustände nicht mehr möglich ist. Ein höherer Fehlererkennungs­ grad wird dadurch erreicht, daß das Selbsttestprogramm TP mehrmals durchlaufen wird. Der Prozessor setzt bei jedem neuen Durchlauf der Selbsttestschleife auf die Daten auf, die in die Registern (KB, RB) stehen und die vom letzten Durchlauf des Selbsttests generiert wurden. Über die Selbst­ testinitialisierung I der Register KB und RB des Mikropro­ zessors und eine entsprechende Verknüpfung der Betriebsrou­ tinen BR für den Selbsttest kann man sicherstellen, daß der Prozessor zyklenfrei arbeitet.
Im Selbsttestfall geschieht folgendes: Über die Ein- und Ausgabeschnittstelle EA werden die Register RB und KB zur Initialisierung beschickt. Anschließend werden die Maschinen­ befehle, d. h. die entsprechenden Mikrobefehlssequenzen abgear­ beitet, so wie es durch ein Testmikroprogramm festgelegt ist. Während des Ablaufs des Selbsttestsmikroprogramms kreisen die Daten zwischen dem Register RB und dem Rechenwerk RW auf der kleinen Schleife KS.
Fig. 3 zeigt den Unterschied zwischen Normalbetrieb und Testbetrieb des Mikroprozessors. Es ist der Normalbetrieb FA und der Testbetrieb TA des Mikroprogramms dargestellt. Im Normalbetrieb wird über eine Sprungtabelle JT im Mikropro­ grammspeicher MS jede einzelne Mikrobefehlssequenz, die einem Maschinenbefehl entspricht, S1, S2, S3 bis SI separat gemäß den Betriebserfordernissen abgearbeitet und nach ihrer Abarbeitung beendet E.Im Testbetrieb TA wird zunächst über die Sprungta­ belle JT der Selbsttest eingeleitet I. Anschließend erfolgt die Abarbeitung der Maschinenbefehle, die aus Mikrobefehlsse­ quenzen S1, S2 bis Si bestehen, nacheinander, wie es in der Figur durch die Pfeile angedeutet werden soll. Die Reihenfolge der Abarbeitung der Mikrobefehlssequenzen ist durch die Ver­ knüpfung nach dem erfindungsgemäßen Verfahren im Selbsttest mikroprogramm vorgegeben. Nach der ensprechenden Abarbeitung aller Mikrobefehlssequenzen wird überprüft, wie oft das Test­ programm bereits durchlaufen wurde, ist die entsprechende Durchlaufzahl TC erreicht, wird entsprechend zum Ende weiter verzweigt. Ist sie noch nicht erreicht, wird das Testprogramm von neuem abermals abgearbeitet.
Fig. 4 zeigt ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens. Die Verkettung der Mikrobefehlssequenzen erfolgt durch bedingte Sprungbefehle, die für den Selbsttestfall (ST) speziell in die Mikrobefehlssequenzen eingefügt sind uno nur dann auch ausgeführt werden. Es sind dargestellt Betriebs­ routinen S1, S2, S3, S4 und S5. Jede Betriebsroutine besteht aus einzelnen Mikrobefehlen, z. B. MOVE, SUB, JUMP, ADD, EXOR, COMP. S1 beginnt mit einem Movebefehl. Dann werden die rest­ lichen Befehle der Mikrobefehlssequenz S1 abgearbeitet bis im Selbsttestfall der Befehl JUMP ST erreicht wird und von dort nach Adresse 2 gesprungen wird. An Adresse 2 steht die Mikro­ befehlssequenz S2. Diese beginnt mit einem SUB-Befehl und enthält weitere Mikrobefehle bis zum JUMP-Befehl der nach Adresse 4 verweist und dort steht dann die Mikrobefehlssequenz S4, welche mit einem EXOR-Befehl beginnt. Die Ausführung dieser Mikrobefehlssequenz S4 ist nicht an die Selbsttestbedingung ST geknüpft, d. h. es wird auch im Normalbetrieb ausgeführt. In der Mikrobefehlssequenz S4 wird dann schließlich der Befehl JUMP adr 3 erreicht und es wird zurück zur Mikrobefehlssequenz S2 verzweigt, woraufhin der ADD-Befehl folgt. Weiter hinten in dieser Mikrobefehlssequenz steht dann der JUMP ST adr 6 Befehl. Dieser verzweigt zur Mikrobefehlssequenz S3. Von dort wird dann weiter mit einem JUMP ST adr 9 Befehl zur Mikrobefehlssequenz S5 verwiesen, die mit einem MOVE-Befehl beginnt. In der Mikro­ befehlssequenz S5 ist kein weiterer Selbttestsprungbefehl enthalten und nach Abarbeitung dieser Mikrobefehlssequenz wird der Selbsttest durch den END-Befehl beendet.
In Fig. 5 ist ein weiteres Ausführungsbeispiel des erfin­ dungsgemäßen Verfahrens dargestellt. Die Verkettung der Mikrobefehlssequenzen durch Unterprogrammaufruf aus einem Hauptprogramm, das nur im Selbsttestfall (ST) ausgeführt wird und beim Initialisieren I des Selbsttests gestartet wird. Es ist dargestellt ein Hauptprogramm HP und Mikrobefehlsse­ quenzen, S1, S2, S3 und S4. Zunächst wird über den Eintrag im Hauptprogramm HP CALL adr 3 ein Aufruf der Mikrobefehlssequenz S1 bewirkt. Diese beginnt mit einem MOVE-Befehl, enthält mehre­ re weitere Befehle bis zu einem NAND-Befehl. Nach einem NAND- Befehl folgt dann ein RETURN ST-Befehl. Dieser Befehl steht vor einem END-Befehl dieser Mikrobefehlssequenz und verzweigt im Selbsttestfall zurück zum Hauptprogramm. Weiter im Hauptpro­ gramm folgt dann der Befehl CALL adr 6. Dieser verweist auf die Mikrobefehlsequenz S2, die wiederum verschiedene Mikrobefehle enthält, u. a. den Aufruf CALL adr 4, der auf eine Mikrobefehls­ sequenz S3 verweist und nicht an eine Selbsttestbedingung ge­ knüpft ist. Die Mikrobefehlssequenz S3 beginnt mit einem ADD- Befehl, enthält verschiedene weitere Mikrobefehle bis zu einem NAND-Befehl und nach diesem NAND-Befehl wird dann der RETURN- Befehl ausgeführt, der zu einem ADD-Befehl der Mikrobefehls­ sequenz S2 zurückverzweigt. S2 wird dann im Selbsttest nicht beendet, sondern es wird der RETURN ST Befehl ausgeführt, der zurück auf das Hauptprogramm verweist. Im Hauptprogramm folgt dann nach verschiedenen weiteren Aufrufen der Befehl CALL adr 56, der auf die Mikrobefehlssequenz S4 verweist, die mit einem COMP-Befehl beginnt, dann verschiedene weitere Mikrobefehle enthält bis schließlich ein SHIFT-Befehl abge­ arbeitet wird. Auf den SHIFT-Befehl folgt ein RETURN-Befehl, der an eine Selbsttestbedingung ST geknüpft ist und der dazu führt, daß im Selbsttestfall wieder zum Hauptprogramm HP zurückverzweigt wird. Der Endbefehl wird nur ausgeführt, wenn kein Selbsttest stattfindet. Wieder im Hauptprogramm angelangt, folgt kein weiterer Selbsttestaufruf, d. h. das Selbsttest­ mikroprogramm ist beendet.

Claims (13)

1. Verfahren zum Selbsttest eines mikroprogrammierten Prozes­ sors, bei dem
  • a) Mikrobefehlssequenzen (SA . . . SI), miteinander verknüpft werden, sodaß sie ein Selbsttest- Mikroprogramm (TP) bilden,
  • b) zu Beginn des Selbsttests eine Initialisierung durchgeführt wird,
  • c) beim Selbsttest dieses Mikroprogramm mindestens ein Mal abgearbeitet wird,
  • d) bei mehrmaligem Mikroprogrammdurchlauf die Ergebnisse des jeweils vorangegangenen Durchlaufs die Datengrundlage für den nächsten Selbsttestdurchlauf darstellen,
  • e) zur Fehlerauswertung Signaturen gebildet werden.
2. Verfahren nach Anspruch 1, bei dem die Mikrobefehlsse­ quenzen Maschinenbefehlen entsprechen.
3. Verfahren nach Anspruch 1 oder 2, bei dem durch die Anordnung der Mikrobefehlssequenzen und Initialisierungsdaten sichergestellt wird, daß der Prozessor nicht in Endloszyklen einmünden kann.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem alle Mikrobefehlssequenzen, die in einem Mikroprogrammspeicher des Prozessors enthalten sind, zum Testen verwendet werden.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem der Prozessor im Selbsttest veranlaßt wird, den gesamten Zustands­ raum, den sein implementiertes Mikroprogramm aufspannt, zu durchlaufen.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem durch einen Abarbeitungszähler der gewünschte Fehlererkennungsgrad sichergestellt wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem die Verkettung im Selbsttestfall durch eine zusätzliche Bedingung gebildet wird, die im Mikrobefehlsformat vorhanden ist und vom Mikrobefehlsdecoder erkannt wird.
8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem die Verkettung der Mikrobefehlssequenzen durch bedingten Sprung erfolgt.
9. Verfahren nach einem der Ansprüche 1 bis 7, bei dem die Verkettung durch Unterprogrammaufruf aus einem Hauptprogramm in Verbindung mit einem bedingten Return Befehl zustande kommt.
10. Verfahren nach Anspruch 9, bei dem das Hauptprogramm im Mikrobefehlsspeicher gespeichert ist.
11. Verfahren nach einem der Ansprüche 1 bis 8, bei dem der bedingte Sprungbefehl und ein Endbefehl zu einem neuen Mikro­ befehl kombiniert sind, so daß im Selbsttestfall der Sprung- und im Betriebsfall der Endbefehl ausgeführt wird.
12. Verfahren nach Anspruch 9, bei dem der bedingte Return-Befehl und ein Endbefehl zu einem neuen Mikrobefehl kombiniert sind, so daß im Selbsttestfall der Return-Be­ fehl und im Betrieb der End-Befehl ausgeführt wird.
13. Verfahren nach einem der Ansprüche 1 bis 12, bei dem Fehlermaskierung vermieden wird, indem Zwischensignaturen gebildet werden, die bei jedem festgestellten Fehler zu einer fehlerhaften Endsignatur führen.
DE19914139151 1991-11-28 1991-11-28 Verfahren zum selbsttest von mikroprogrammierten prozessoren Granted DE4139151A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19914139151 DE4139151A1 (de) 1991-11-28 1991-11-28 Verfahren zum selbsttest von mikroprogrammierten prozessoren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19914139151 DE4139151A1 (de) 1991-11-28 1991-11-28 Verfahren zum selbsttest von mikroprogrammierten prozessoren

Publications (2)

Publication Number Publication Date
DE4139151A1 true DE4139151A1 (de) 1993-06-03
DE4139151C2 DE4139151C2 (de) 1993-09-23

Family

ID=6445789

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19914139151 Granted DE4139151A1 (de) 1991-11-28 1991-11-28 Verfahren zum selbsttest von mikroprogrammierten prozessoren

Country Status (1)

Country Link
DE (1) DE4139151A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629116B1 (en) 2000-05-05 2003-09-30 Koninklijke Philips Electronics N.V. Random sequence generators
US7155351B2 (en) 2001-09-28 2006-12-26 Robert Bosch Gmbh Method for verifying the calculator core of a microprocessor or a microcontroller

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2756033C2 (de) * 1976-12-16 1982-04-29 Mark Il'ič Baksanskij Verfahren und Einrichtung zur Diagnose von Störungen von durch ein Hauptmikroprogramm gesteuerten Rechenmaschinen mittels eines diagnostischen Mikroprogramms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2756033C2 (de) * 1976-12-16 1982-04-29 Mark Il'ič Baksanskij Verfahren und Einrichtung zur Diagnose von Störungen von durch ein Hauptmikroprogramm gesteuerten Rechenmaschinen mittels eines diagnostischen Mikroprogramms

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hunger A., Mikroprozessor-Selbsttest auf der Basis des Befehlssatzes, in: Elektronische Rechenanlagen 24(1982), H. 1, S. 8-15 *
IBM Technical Disclosure Bulletin, Vol. 33, No. 9, Februar 1991, S. 13 u. 14 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629116B1 (en) 2000-05-05 2003-09-30 Koninklijke Philips Electronics N.V. Random sequence generators
US7155351B2 (en) 2001-09-28 2006-12-26 Robert Bosch Gmbh Method for verifying the calculator core of a microprocessor or a microcontroller

Also Published As

Publication number Publication date
DE4139151C2 (de) 1993-09-23

Similar Documents

Publication Publication Date Title
DE69915377T2 (de) Auf-chip fehlersuchsystem
DE19833208C1 (de) Integrierte Schaltung mit einer Selbsttesteinrichtung zur Durchführung eines Selbsttests der integrierten Schaltung
EP1248198B1 (de) Programmgesteuerte Einheit mit Emulations-Einheiten
DE19531653C2 (de) Einchip-Mikroprozessor mit eingebauter Selbsttestfunktion
DE3853613T2 (de) Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.
EP1199726B1 (de) Verfahren und Vorrichtung zur Prüfung von integrierten Schaltkreisen
DE3638572C2 (de)
DE68923086T2 (de) Verfahren zum Testen von hierarchisch organisierten integrierten Schaltungen und integrierte Schaltungen, geeignet für einen solchen Test.
DE4027510C2 (de)
DE69827159T2 (de) Boundary-scan-system mit adressabhängingen befehlen
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
DE3903835A1 (de) Verfahren und vorrichtung zum pruefen von mikroprozessorsystemen unter verwendung von speicheremulationstechniken
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE19952262A1 (de) Schaltungssystem und Verfahren zum Prüfen von Mikroprozessoren
DE60306164T2 (de) Verfahren und kontrolllogik zum ansteuern von mehreren taps (test access ports) über einen einzigen tap
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE112008002912T5 (de) Verfahren zum gemeinschaftlichen Verwenden einer Testressource an einer Mehrzahl von Teststellen, automatische Testausrüstung, Handhabungseinrichtung zum Laden und Entladen von zu testenden Bauelementen und Testsystem
DE4139151C2 (de)
DE3882425T2 (de) Datenübertragungssteuerungsvorrichtung für Direktspeicherzugriff.
DE69122001T2 (de) Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle
DE3886203T2 (de) Prozessor-Prozessor-Synchronisierung.
DE3138989A1 (de) Zusaetzliche funktionseinheit in einem mikroprozessor, mikroprozessorsystem und verfahren zu seinem betrieb
EP1296152A1 (de) Elektronischer Baustein und Verfahren zu dessen Qualifizierungsmessung
DE69833123T2 (de) Schaltungsanordnung zum testen eines kerns

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee