-
GEBIET DER ERFINDUNG
-
Die Erfindung bezieht sich auf eine Halbleitervorrichtung, die einen Prozessor mit einer Pipelinearchitektur umfasst, und auf eine Pipeline-Ausgleichseinrichtung [engl.: ”pipeline flattener”]. Ferner bezieht sich die Erfindung auf ein Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung.
-
HINTERGRUND
-
Heutige Mikrocontroller besitzen eine hoch integrierte und komplexe Architektur. Es ist üblich oder gar notwendig, eine Fehlersuchlogik auf dem Chip vorzusehen, die einem Benutzer oder Software-Entwickler ermöglicht, den Programmcode einer gerade in Entwicklung befindlichen Anwendung an der ursprünglichen Anwenderkarte von Fehlern zu bereinigen. Die meisten Mikrocontroller umfassen eine Fehlersucheinheit oder entsprechende Logik, die über eine Schnittstelle, die den weit verbreiteten JTAG-Standard verwendet, gekoppelt ist. Diese zusätzliche Logik muss auf dem Chip implementiert sein, um die benötigte Funktionalität zu erbringen. Ein übliches und grundlegendes Merkmal für die Fehlersuche ist ein Code-Unterbrechungspunkt, der die Ausführung einer Anwendung stoppt, wenn ein im Voraus definierter Befehl erreicht ist. Im Allgemeinen wird der Befehl durch seine Speicheradresse in einem Befehlsregister identifiziert, das oft als Programmzähler (oder kurz PC) bezeichnet wird. Diese Fehlersuchfunktionalität kann durch einfaches Überwachen der Adressleitungen einer Befehlsabrufeinheit des Mikrocontrollers, z. B. durch einen Buskomparator, verwirklicht sein. Jedoch können komplexere Unterbrechungspunkte erwünscht sein. Diese Unterbrechungspunkte können gegebenenfalls nicht nur die Befehlsadresse, sondern auch die Daten, die durch den Befehl übertragen werden, berücksichtigen. Noch komplexere Unterbrechungspunkte können zusätzliche Kriterien berücksichtigen.
-
Ein stoppender Unterbrechungspunkt ist eine der einfachen Fehlersuchaktionen, die die Anwendungsverarbeitung auf die Erfüllung der Unterbrechungsbedingung hin anhält. Es können auch andere Fehlersuchaktionen stattfinden, z. B. eine Ablaufverfolgungstransaktion oder ein Fehlersuch-Interrupt.
-
Es ist ein allgemeines Ziel während der Fehlersuche, den Befehl mit den Daten, die infolge der Ausführung des Befehls übertragen werden, zu korrelieren. Dies kann eine herausfordernde Aufgabe sein, da das Abrufen des Befehls und die korrelierte Datenübertragung nicht zur selben Zeit stattfinden. Bei einem Prozessor ohne Pipeline (CPU) mit einem kombinierten Befehls- und Datenbus (im Folgenden auch als Speicherbus bezeichnet) werden die Befehle nacheinander ausgeführt, wobei eine Korrelation zwischen dem Befehl und der resultierenden Datenübertragung ohne weiteres hergestellt werden kann.
-
6 ist eine schematische Darstellung der Busaktivität für eine Anzahl nachfolgender Buszyklen innerhalb eines solchen Systems. Beispielhalber wird ein erster Befehl In1 abgerufen und infolge dieses Befehls eine Leseoperation ausgeführt. Demgemäß können während der ersten zwei Taktzyklen der Befehlsabruf des ersten Befehls In1 und die jeweilige Leseoperation (Read OP) am Speicherbus überwacht werden. Ferner verursacht dieser erste Befehl In1 eine Schreiboperation (Write OP) an die Speicheradresse Rx0. Diese Aktion kann am CPU-Register überwacht werden. Ein beispielhafter zweiter und dritter Befehl, In2 und In3, führen ähnliche Operationen aus und schreiben Daten an die Speicheradressen Rx1 und Rx2.
-
Jedoch besitzen moderne Prozessoren häufig eine Pipelinearchitektur. Gemäß dieser Prozessorarchitektur wird die Ausführung eines Befehls in mehrere Unteraktionen getrennt, die durch aufeinander folgende Stufen einer Prozessorpipeline ausgeführt werden. Zu einem gegebenen Zeitpunkt können durch die mehreren verschiedenen Pipelinestufen mehrere verschiedene Befehle ausgeführt werden. Diese Technik, die auch als Pipelining bekannt ist, erhöht die Gesamtleistung des Prozessors.
-
7 zeigt beispielhalber fünf Stufen einer herkömmlichen RISC-Maschine. Die verschiedenen Stufen sind: Befehlsabruf (IF), Befehlsdecodierung (ID), Ausführen (EX), Speicherzugriff (MEM) und Registerzurückschreiben (WB). Ein Befehl folgt durch die Pipelinestufen der Prozessorpipeline während nachfolgenden Taktzyklen, wie durch die horizontalen Spalten angegeben ist. Während des beispielhaften Taktzyklus 4 führt der erste Befehl einen Speicherzugriff (MEM) aus, wird der zweite Befehl ausgeführt (EX), wird ein dritter Befehl decodiert (ID) und wird ein vierter Befehl abgerufen (IF). Während des Taktzyklus 4 ist die fünfte Stufe der Pipeline, nämlich das Registerzurückschreiben, untätig.
-
Pipelineprozessoren sind so organisiert, dass die Pipelinestufen halb unabhängig an getrennten Jobs arbeiten können. Jede Stufe ist in einer Kette, d. h. der Pipeline, organisiert und verknüpft, wobei die Ausgabe jeder Stufe einer nachfolgenden Stufe zugeführt wird, bis der Job erledigt ist. Die Gesamtverarbeitungszeit ist wesentlich kürzer. Jedoch ist es nicht möglich, die gesamte Aktivität, die mit der Ausführung des Befehls verbunden ist, allein durch Beobachten der Speicherschnittstelle zu beobachten.
-
Dieses Problem ist in 8, die eine schematische Ansicht der Bustransaktionen eines Pipelineprozessors mit einem kombinierten Befehls- und Datenbus ist, veranschaulicht. Während eines ersten Taktzyklus wird ein beispielhafter erster Befehl In1 abgerufen. In einem zweiten Taktzyklus ist der Speicherbus untätig, und während eines dritten Taktzyklus wird ein zweiter Befehl In2 abgerufen. Ferner führt in einem vierten Taktzyklus der erste Befehl In1 eine Leseoperation aus, während in einem fünften Taktzyklus eine dritte Operation In3 abgeholt wird. Durch einfaches Überwachen der Busaktivität ist es nicht möglich, einen Befehl und eine durch diesen Befehl veranlasste Datenübertragung zu korrelieren.
-
Eine bekannte Gegenmaßnahme gegen dieses Problem besteht darin, eine Pipeline-Ausgleichseinrichtung (auch als Ausgleichsschaltung bekannt) vorzusehen, die die Pipelinesignale puffert oder verzögert. Im Prinzip ist eine Pipeline-Ausgleichseinrichtung eine First-in-first-out-(FIFO)-Schaltung. Verschiedene Signale von verschiedenen Pipelinestufen werden um verschiedene Zeitbeträge verzögert, wobei die Pipeline-Ausgleichseinrichtung sämtliche Informationen eines gegebenen Befehls ausgibt, obwohl diese Informationen zu verschiedenen Zeitpunkten während der Ausführung des Befehls gesammelt wurden. Eine Pipeline-Ausgleichseinrichtung verfolgt sämtliche Aktionen eines Befehls durch die Pipeline. Wenn der Befehl die Pipeline des Prozessors verlässt, kann eine verbundene Fehlersuchlogik den Befehl rekonstruieren. In ihrer einfachsten Version wird der Befehl durch seine Adresse, die zusammen mit dem Befehl durch die Pipelinestufen verfolgt wird, identifiziert.
-
9 zeigt dies für eine beispielhafte Pipeline mit einer Tiefe von fünf Stufen. In einer ersten Stufe wird ein erster Befehl In1 aus dem Befehlsregister abgerufen. Der Befehl wird durch seine Befehlsadresse IAddr identifiziert. Dieser Identifikator wird durch jede Stufe der Pipeline geschickt. Folglich können Datentransaktionen, die durch die Ausführung dieses Befehls bedingt sind, mit dem jeweiligen Befehl korreliert werden. Beispielhalber führt in 9 der fünfte Befehl In5 ein Registerzurückschreiben aus, wobei die Fehlersuchlogik diese Aktion mit Hilfe der Adresse IAddr (In5) mit dem Befehl korrelieren kann.
-
Jedoch besitzt eine Pipeline-Ausgleichseinrichtung eine hohe Gatterzahl, die nahezu gleich der Anzahl von Gattern ist, die für die Prozessorpipeline selbst verwendet werden. Wenn eine 32-Bit-Adresse in Betracht gezogen wird, sind für eine fünfstufige Pipeline 32·5 = 160 Flipflops zum Verfolgen der Befehlsadresse in der Fehlersuchlogik notwendig. Im Allgemeinen verfolgt eine Pipeline-Ausgleichseinrichtung nicht nur die Befehlsadresse, sondern auch zusätzliche Statussignale. Dies führt zu einer Anzahl notwendiger Flipflops, die wesentlich höher als der oben geschätzte Wert ist. Speziell bei kosten- und leistungskritischen Anwendungen sind diese teuren Fehlersuchlösungen wegen ihrer hohen Gatterzahl und ihres hohen Energieverbrauchs nicht wünschenswert.
-
ZUSAMMENFASSUNG
-
In einem Aspekt der Erfindung wird eine Halbleitervorrichtung geschaffen, die einen Prozessor mit einer Pipelinearchitektur und eine Pipeline-Ausgleichseinrichtung umfasst. Der Prozessor umfasst eine Pipeline mit mehreren Pipelinestufen und mehreren Pipelineregistern, die zwischen die Pipelinestufen geschaltet sind. Die Pipeline-Ausgleichseinrichtung kann ferner mehrere Auslöserregister zum Speichern eines Auslösers umfassen. Vorzugsweise gibt dieser Auslöserwert einen Status eines entsprechenden Befehls, der durch die Pipeline geschickt wird, an. Diese Statusinformationen geben an, ob der Befehl für das Fehlersuchverfolgen ausgewählt ist oder nicht. In einer Ausführungsform ist der Auslöser ein Ein-Bit-Wert, wobei eine ”1” angibt, dass der Befehl für die Verfolgung ausgewählt ist, und eine ”0” angibt, dass der jeweilige Befehl nicht ausgewählt ist. Die Auslöserregister können zwischen die Pipelinestufen geschaltet sein. Die Pipeline-Ausgleichseinrichtung ist vorteilhafterweise so konfiguriert, dass sie das Auslöserregister jener Pipelinestufe, die einen Befehl empfängt, auf einen vorgegebenen Auslöserwert setzt, der angibt, dass der empfangene Befehl für das Fehlersuchverfolgen ausgewählt ist. Der Auslöser wird zusammen mit dem empfangenen Befehl durch die Auslöserregister der Pipeline geschickt. Es kann dann ermittelt werden, ob der Auslöser angibt, dass der zugeteilte Befehl für die Fehlersuchverarbeitung ausgewählt ist. Wenn das Ergebnis des vorherigen Ermittlungsschritts positiv ist, werden die verfolgten Fehlersuchdaten einer Fehlersucheinheit der Halbleitervorrichtung bereitgestellt.
-
Gemäß diesen Aspekten der Erfindung werden die hohe Gatterzahl und der hohe Energieverbrauch, der von Fehlersuchsystemen des Standes der Technik bekannt ist, verringert. Anstatt sämtliche Signale durch die Pipeline eines Prozessors zu verfolgen, liefert die Halbleitervorrichtung gemäß Aspekten der Erfindung die technische Option, Befehle, die von Interesse sind, durch den Auslöser zu markieren oder zu etikettieren. Wenn ein Befehl in die Pipeline des Prozessors an der Abrufstufe eintritt, wird er einem Auslöser zugeteilt, der den Status des Befehls, d. h., ob er für das Verfolgen ausgewählt ist oder nicht, angibt. Der Auslöser folgt dem Befehl durch die Pipeline des Prozessors, wobei – in der Minimalkonfiguration – nur ein einziges Bit benötigt wird. Wenn an einer Busschnittstelle eine Datentransaktion erfolgt, signalisieren die jeweiligen Auslöserinformationen, dass diese Datentransaktion durch den markierten Befehl bedingt ist. Eine Fehlersuchlogik einer Halbleitervorrichtung kann den Datenbus beobachten und die Auslöserinformationen berücksichtigen.
-
Gemäß einem weiteren Aspekt der Erfindung sind für jede Pipelinestufe die Auslöserregister zu den jeweiligen Pipelineregistern parallel geschaltet. Mit anderen Worten, für jedes Pipelineregister gibt es ein Auslöserregister. Gemäß diesem Aspekt kann jedes Ergebnis einer Pipelinestufe, das in dem jeweiligen Pipelineregister temporär gespeichert ist, durch die Fehlersucheinheit überwacht werden. Die Auslöserinformationen werden geprüft, wobei dann, wenn der Auslöser angibt, dass der Befehl für das Fehlersuchverfolgen ausgewählt ist, die Fehlersucheinheit die notwendigen Informationen erfassen kann.
-
In einer weiteren Ausführungsform der Erfindung kann die Pipeline-Ausgleichseinrichtung eine Zählereinheit zum Bereitzustellen eines fortlaufenden Zählers an jeden Befehl, der in die Pipeline eintritt, umfassen. Ferner kann die Pipeline-Ausgleichseinrichtung mehrere Zählerregister umfassen, die konfiguriert sind, um den Zähler von der Zählereinheit zu empfangen. Die Zählerregister können zu den Pipelineregistern parallel geschaltet sein. Wohlgemerkt kann ein Auslöserregister auch als Zählerregister dienen, was bedeutet, dass die Hardwareimplementierung ungeachtet der Tatsache, dass zusätzlicher Speicherplatz für den Zähler in den Auslöserregistern vorhanden ist, gleich den oben erwähnten Ausführungsformen sein kann. Gemäß einer weiteren Implementierung können die Auslöserregister als getrennte Hardwareregister implementiert sein, womit die Halbleitervorrichtung gemäß diesem Aspekt der Erfindung für beides, d. h. das Schicken von Auslöserinformationen und von Zählerinformationen durch die Pipeline des Prozessors, geeignet ist.
-
Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung geschaffen. Die Halbleitervorrichtung umfasst einen Prozessor mit einer Pipelinearchitektur, wobei der Prozessor eine Pipeline mit mehreren Pipelinestufen umfasst. Zwischen die Pipelinestufen können mehrere Pipelineregister geschaltet sein, und zu jedem Pipelineregister können Auslöserregister parallel geschaltet sein. Gemäß einem Aspekt der Erfindung können die Auslöserregister jener Pipelinestufe, die einen Befehl empfängt, (im Allgemeinen die Abrufstufe der Pipeline) auf einen vorgegebenen Wert gesetzt werden, der angibt, ob der empfangene Befehl für das Fehlersuchverfolgen ausgewählt ist oder nicht. Ferner kann der Auslöser zusammen mit dem empfangenen Befehl durch die Auslöserregister der Pipeline geschickt werden. Wie bereits erwähnt worden ist, kann das Schicken des Befehls und der Auslöserinformationen mit Hilfe von getrennten Registern, d. h. Pipelineregistern und Auslöserregistern, ausgeführt werden. Außerdem kann ein kombiniertes Befehls- und Auslöserregister angewandt werden. Der Auslöser gibt an, ob der zugeteilte Befehl für das Fehlersuchverfolgen ausgewählt ist. Demgemäß kann die Pipeline-Ausgleichseinrichtung einer Fehlersucheinheit der Halbleitervorrichtung verfolgte Fehlersuchdaten bereitstellen.
-
In einem weiteren Aspekt der Erfindung wird ermittelt, ob eine Operation, die durch eine der Pipelinestufen ausgeführt wird, ein Kriterium für weiteres Fehlersuchverfolgen erfüllt. Diese Ermittlung kann durch Überwachen oder Prüfen des Busses der jeweiligen Pipelinestufe ausgeführt werden. Wenn das Fehlersuchkriterium nicht erfüllt ist, wird der Auslöser des entsprechenden Auslöserregisters auf einen vorgegebenen Auslöserwert gesetzt, der angibt, dass der jeweilige Befehl nicht für weiteres Fehlersuchverfolgen ausgewählt ist. Vorteilhafterweise kann ein komplexer Fehlersuch-Unterbrechungspunkt verwirklicht werden.
-
In einem weiteren Aspekt der Erfindung wird ein weiteres Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung, die einen Prozessor mit einer Pipelinearchitektur umfasst, geschaffen. Der Prozessor umfasst eine Pipeline mit mehreren Pipelinestufen und mehreren Pipelineregistern, die zwischen die Pipelinestufen geschaltet sind. Mit jeder Pipelinestufe ist ein Auslöserregister gekoppelt. Die Pipeline-Ausgleichseinrichtung kann ferner eine Zählereinheit zum Bereitzustellen eines fortlaufenden Zählers an Befehle, die in die Pipeline eintreten, umfassen. Mit jedem Pipelineregister zwischen den Pipelinestufen kann ein Zählerregister gekoppelt sein. Gemäß Aspekten der Erfindung kann nach dem Empfang und der Auswahl eines Befehls für das Verfolgen der jeweilige Zähler auf einen Zählerwert gesetzt werden, der den ausgewählten Befehl identifiziert. Dieser Zähler kann zusammen mit dem ausgewählten Befehl durch die Zählerregister der Pipeline geschickt werden. Einer Fehlersucheinheit der Halbleitervorrichtung können Fehlersuchdaten bereitgestellt werden. Vorteilhafterweise kann eine Datenübertragung, die durch einen spezifischen Befehl bedingt ist, mit Hilfe des entsprechenden nachfolgenden Zählers identifiziert werden.
-
Vorteilhafterweise ist die Bittiefe des Zählers höher als der Binärwert der Anzahl von Stufen der Pipeline. Beispielhalber ermöglicht ein 3-Bit-Zähler das Codieren von bis zu acht Befehlen. Demgemäß ist diese Bittiefe geeignet für Pipelines mit bis zu acht Stufen. Jeder Befehl, der in die Pipeline eintritt, kann am Ende der Pipeline mit Hilfe des Zählerwertes eindeutig identifiziert werden.
-
Gleiche oder ähnliche Vorteile, die für die erfindungsgemäße Halbleitervorrichtung bereits erwähnt worden sind, gelten auch für das Verfahren gemäß Aspekten der Erfindung.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Weitere Aufgaben der Erfindung gehen aus der folgenden Beschreibung beispielhafter Ausführungsform der Erfindung hervor, wobei Bezug auf die begleitenden Zeichnungen genommen wird, worin:
-
1 ein vereinfachter Blockschaltplan für eine Halbleitervorrichtung, die einen Pipelineprozessor und eine Pipeline-Ausgleichseinrichtung umfasst, gemäß einer Ausführungsform der Erfindung ist,
-
2 ein weiterer vereinfachter Blockschaltplan für eine Halbleitervorrichtung gemäß einer weiteren Ausführungsform der Erfindung ist,
-
3 schematisch die Busaktivität während mehrerer nachfolgender Taktzyklen gemäß einer Ausführungsform der Erfindung zeigt,
-
4 beispielhalber einen Pipelinefluss im Inneren eines Pipelineprozessors zeigt,
-
5 ein Zeitdiagramm ist, das Auslösersignale im Inneren einer Pipeline-Ausgleichseinrichtung gemäß einer weiteren Ausführungsform der Erfindung zeigt,
-
6 die Busaktivität eines Prozessors ohne Pipeline gemäß dem Stand der Technik zeigt,
-
7 schematisch die Pipelineaktivität während des Betriebs eines typischen RISC-Prozessors zeigt.
-
8 die Busaktivität eines Prozessors mit einer Pipelinearchitektur gemäß dem Stand der Technik zeigt und
-
9 eine vereinfachte Pipeline-Ausgleichseinrichtung gemäß dem Stand der Technik ist.
-
GENAUE BESCHREIBUNG EINER BEISPIELHAFTEN AUSFÜHRUNGSFORM
-
1 ist ein vereinfachter Blockschaltplan einer Halbleitervorrichtung 2, die einen Prozessor 4 und eine Pipeline-Ausgleichseinrichtung 6 umfasst. Die Prozessorpipeline umfasst eine Abrufstufe, eine Decodierstufe (beide so benannt), eine erste Ausführungsstufe (Ausführen1-Stufe) und eine zweite Ausführungsstufe (Ausführen2-Stufe). Zwischen die oben erwähnten Pipelinestufen sind mehrere Pipelineregister (Pipelinereg.) geschaltet. Die Pipeline-Ausgleichseinrichtung 6 umfasst mehrere Logikeinheiten, nämlich eine Abruf-Auslöserlogik, eine Decodier-Auslöserlogik, eine Ausführen1-Auslöserlogik und eine Ausführen2-Auslöserlogik (alle so benannt). Ferner sind zwischen die Stufen des Prozessors 4 Auslöser-Pipelineregister (Auslöser-Pipelinereg.) geschaltet. Wenn ein Befehl in die Abrufstufe des Prozessors 4 eintritt, ermittelt die Abruf-Auslöserlogik der Pipeline-Ausgleichseinrichtung 6, ob dieser Befehl für das Fehlersuchverfolgen ausgewählt ist oder nicht. Dies kann durch Vergleichen des Busses der Abrufstufe mit einem vorgegebenen Wert ausgeführt werden. Ein Buskomparator kann für diese Operation geeignet sein. Wenn der Befehl für das Verfolgen ausgewählt ist, wird der Auslöser auf einen Wert gesetzt, der dafür bezeichnend ist. In einer Ausführungsform wird der Befehl einem Auslöser = 1 zugeteilt, wenn der Befehl für das Fehlersuchverfolgen ausgewählt ist, und dem Auslöser = 0, wenn er nicht ausgewählt ist. Demgemäß wird das erste Auslöserregister, das zwischen die Abrufstufe und die Decodierstufe geschaltet ist, auf ”1” gesetzt. Der abgerufene Befehl wird durch die Pipeline des Prozessors 4 geschickt. Der Befehl geht mit jedem Taktzyklus zu einer nachfolgenden Pipelinestufe weiter. Der zugewiesene Auslöserwert, der von einem Auslöser-Pipelineregister zum nächsten geschickt wird, in der gleichen Weise. Der Befehl und der Auslöser sind zueinander synchron. Vorteilhafterweise ist die Auslöserlogik, die mit den verschiedenen Stufen der Prozessorpipeline gekoppelt ist, durch einfaches Auslesen des Auslöserwertes imstande, zu ermitteln, ob der Befehl, der momentan in Ausführung steht, für das Verfolgen ausgewählt ist. Gemäß einer weiteren Ausführungsform kann die Fehlersuchlogik den Auslöser am Ende der Pipelinestufe zurücksenden (siehe letztes Auslöser-Pipelineregister, das mit der zweiten Ausführungsstufe (Ausführen2-Stufe) gekoppelt ist). Dieser Auslöser kann berücksichtigt werden, wenn eine zusätzliche Datentransaktion desselben Befehls stattfindet. Dies ermöglicht das Erzeugen komplexer Fehlersuchszenarios, die mehrere in verschiedener Pipelinestufe ausgeführte Datenzugriffe berücksichtigen.
-
2 ist ein weiterer vereinfachter Blockschaltplan einer Halbleitervorrichtung 2, die einen Prozessor 4 und eine Pipeline-Ausgleichseinrichtung 6 umfasst. Im Vergleich zur Halbleitervorrichtung 2 in 1 ist diese Halbleitervorrichtung 2 in 2 mit einem zusätzlichen Zähler und zusätzlichen Zählerregistern (beide so benannt) versorgt. Einem Befehl, der in die Abrufstufe der Prozessorpipeline eintritt, wird eine spezifische Zählernummer zugewiesen. Während der Ausführung dieses Befehls in den nachfolgenden Prozessorstufen, kann der Befehl durch diesen Zählerwert, der in den Zählerregistern gespeichert ist, identifiziert werden. Ähnlich wie der Auslöser wird der Zähler synchron mit dem Befehl durch die Zählerregister in der Prozessorpipeline geschickt. Einem nachfolgenden Befehl, der durch die Abrufstufe des Prozessors 4 abgerufen wird, wird ein anderer Zähler, z. B. eine nachfolgende Zählernummer gegeben. Vorteilhafterweise vergibt der Zähler zyklische Nummern an die Befehle, die in die Prozessorpipeline eintreten. Gemäß der Ausführungsform in 2 sind vier Prozessorpipelinestufen vorhanden, und demgemäß weist der Zähler vorzugsweise Zählerwerte zu, die von 1 bis 4 gehen. Die Zählerregister können eine geeignete Bittiefe besitzen. Gemäß der Ausführungsform ist ein 2-Bit-Register ausreichend, da es fähig ist, Nummern zu speichern, die von 1 bis 4 gehen.
-
Die 3 und 4 zeigen schematisch die Funktionsweise des Pipelineprozessors. 3 zeigt die Busaktivität während mehrerer nachfolgender Taktzyklen. Beispielhalber besitzt der Prozessor einen getrennten Befehls- und Datenbus. Die Befehle In1 bis In3 werden während der ersten drei Taktzyklen abgerufen, und demgemäß kann diese Aktion am Bus der Befehlsabrufstufe überwacht werden. Während des dritten Taktzyklus führt der erste Befehl eine Leseoperation aus. Der zweite und der dritte Befehl folgen in den nachfolgenden Taktzyklen. Schließlich führen während der letzten Taktzyklen die drei Befehle In1 bis In3 eine Schreiboperation aus, die am CPU-Bus überwacht werden kann. 4 zeigt den entsprechenden Fluss der drei Befehle In1 bis In3 im Inneren der Prozessorpipeline.
-
5 ist ein vereinfachtes Zeitdiagramm, das die Ausbreitung von Auslösersignalen im Inneren der Pipeline-Ausgleichseinrichtung 6 zeigt, gemäß einer Ausführungsform der Erfindung. Beispielhalber ist eine Zeitspanne von sechs Taktzyklen (siehe Zeile ”Zyklus”) gezeigt. Ein komplexer Fehlersuch-Unterbrechungspunkt ist beispielhalber definiert durch: ”Befehlsabrufadresse”, anders als ein bestimmter Wert UND ”Betriebsadresse” in einem bestimmten Bereich UND ”Registerschreibdaten” in einem bestimmten Bereich. Zu Beginn, d. h. an der Signalabrufstufe, wird angenommen, dass der abgerufene Befehl mit der vorgegebenen Adresse übereinstimmt. Demgemäß wechselt das Auslösersignal von Tiefpegel auf Hochpegel. In einem nachfolgenden Taktzyklus wird das Auslösersignal zur Decodierstufe (siehe zweite Zeile, die benannt ist mit: ”Decodierauslöser”) geschickt. Während dieser Stufe wird keine Modifikation des Auslöserwertes vorgenommen. In einem dritten Taktzyklus erreicht der Befehl die erste Ausführungsstufe (siehe Zeile; ”Ausführen1-Auslöser”). Die zweite Unterbrechungspunktbedingung wird geprüft. Wenn sich die Betriebsadresse in einem bestimmen Bereich befindet, bleibt das Auslösersignal auf Hochpegel. Beispielhalber ist dies der Fall. In einem vierten Taktzyklus wird die dritte Auslöserbedingung, nämlich ob sich die Registerschreibdaten in einem bestimmten Bereich befinden, geprüft. Der Auslöser bleibt auf Hochpegel, wenn diese Bedingung erfüllt ist (siehe Zeile: ”Ausführen2-Auslöser”). Anschließend ist am Ende der Pipeline der Auslöserausgang (so benannt) auf Hochpegel, weil alle Unterbrechungspunktbedingungen erfüllt sind.
-
Für ein beispielhaftes zweites Signal, das an der Abrufstufe abgerufen wird, bleibt der Auslöser auf Tiefpegel, weil die Befehlsabrufadresse nicht abgestimmt ist (siehe zweiter Taktzyklus in der Zeile ”Abrufauslöser”). Dieser Tiefpegel-Auslöserwert folgt durch die verschiedenen Stufen der Pipeline und bleibt bis zum Ende der Pipeline auf Tiefpegel.
-
Ein weiteres Beispiel für ein Auslösersignal, das durch die Pipelinestufen wandert, startet im dritten Taktzyklus der Zeile ”Abrufauslöser”. Eine Erfüllung der ersten Unterbrechungspunktbedingung, nämlich dass die Befehlsadresse dem jeweiligen Bereich entspricht, setzt den Auslöserwert auf ”hoch”. Während der Decodierstufe wird keine Modifikation ausgeführt. Jedoch ist die Betriebsadresse nicht abgestimmt, und wird demgemäß im fünften Taktzyklus das Auslösersignal auf ”tief” gesetzt. Anschließend im sechsten Taktzyklus liegt keine Ausgabe des Auslösersignals vor, wie es durch den Tiefpegelwert des Ausgangsauslösers angegeben ist.
-
Obwohl die Erfindung oben mit Bezug auf spezifische Ausführungsformen beschrieben worden ist, ist sie nicht auf diese Ausführungsformen begrenzt, wobei dem Fachmann zweifellos weitere Alternativen einfallen werden, die im Umfang der Erfindung, wie sie beansprucht wird, liegen.