DE4139151A1 - Verfahren zum selbsttest von mikroprogrammierten prozessoren - Google Patents
Verfahren zum selbsttest von mikroprogrammierten prozessorenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring 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.
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)
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)
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 |
-
1991
- 1991-11-28 DE DE19914139151 patent/DE4139151A1/de active Granted
Patent Citations (1)
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)
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)
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 |