DE102011110151A1 - Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung - Google Patents

Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung Download PDF

Info

Publication number
DE102011110151A1
DE102011110151A1 DE102011110151A DE102011110151A DE102011110151A1 DE 102011110151 A1 DE102011110151 A1 DE 102011110151A1 DE 102011110151 A DE102011110151 A DE 102011110151A DE 102011110151 A DE102011110151 A DE 102011110151A DE 102011110151 A1 DE102011110151 A1 DE 102011110151A1
Authority
DE
Germany
Prior art keywords
pipeline
trigger
counter
command
registers
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
DE102011110151A
Other languages
English (en)
Other versions
DE102011110151B4 (de
Inventor
Markus Kösler
Wolfgang Lutsch
Christian Wiencke
Johann Zipperer
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.)
Texas Instruments Deutschland GmbH
Original Assignee
Texas Instruments Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Deutschland GmbH filed Critical Texas Instruments Deutschland GmbH
Priority to DE102011110151.2A priority Critical patent/DE102011110151B4/de
Priority to US13/473,260 priority patent/US9489208B2/en
Publication of DE102011110151A1 publication Critical patent/DE102011110151A1/de
Priority to US15/286,642 priority patent/US10255078B2/en
Application granted granted Critical
Publication of DE102011110151B4 publication Critical patent/DE102011110151B4/de
Priority to US16/378,832 priority patent/US10795685B2/en
Priority to US17/029,299 priority patent/US11513804B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Es werden eine Halbleitervorrichtung, die einen Prozessor mit einer Pipelinearchitektur und eine Pipeline-Ausgleichseinrichtung umfasst, sowie ein Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung geschaffen. Der Prozessor umfasst eine Pipeline mit mehreren Pipelinestufen und mehreren Pipelineregistern, die zwischen die Pipelinestufen geschaltet sind. Die Pipeline-Ausgleichseinrichtung umfasst mehrere Auslöserregister zum Speichern eines Auslösers, wobei die Auslöserregister zwischen die Pipelinestufe geschaltet sind.

Description

  • 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.

Claims (6)

  1. Halbleitervorrichtung, die einen Prozessor mit einer Pipelinearchitektur und eine Pipeline-Ausgleichseinrichtung umfasst, wobei der Prozessor eine Pipeline mit mehreren Pipelinestufen und mehreren Pipelineregistern, die zwischen die Pipelinestufen geschaltet sind, umfasst, wobei die Pipeline-Ausgleichseinrichtung mehrere Auslöserregister zum Speichern eines Auslösers umfasst, wobei die Auslöserregister zwischen die Pipelinestufen geschaltet sind, und wobei die Pipeline-Ausgleichseinrichtung so konfiguriert ist, 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, den Auslöser zusammen mit dem empfangenen Befehl durch die Auslöserregister der Pipeline schickt, ermittelt, ob der Auslöser angibt, dass der zugeteilte Befehl für das Fehlersuchverfolgen ausgewählt ist, und, wenn dem so ist, die verfolgten Fehlersuchdaten einer Fehlersucheinheit der Halbleitervorrichtung bereitstellt.
  2. Halbleitervorrichtung nach Anspruch 1, wobei die Auslöserregister für jede Pipelinestufe zum jeweiligen Pipelineregister parallel geschaltet sind.
  3. Halbleitervorrichtung nach Anspruch 1 oder 2, wobei die Pipeline-Ausgleichseinrichtung eine Zählereinheit zum Bereitstellen eines fortlaufenden Zählers für jeden Befehl, der in die Pipeline eintritt, und ferner mehrere Zählerregister umfasst, die konfiguriert sind, um den Zähler von der Zählereinheit zu empfangen, wobei die Zählerregister zu den Pipelineregistern parallel geschaltet sind.
  4. Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung, die einen Prozessor mit einer Pipelinearchitektur umfasst, wobei der Prozessor eine Pipeline mit mehreren Pipelinestufen und mehreren Pipelineregister, die zwischen die Pipelinestufen geschaltet sind, umfasst und wobei zu jedem Pipelineregister ein Auslöserregister parallel geschaltet ist, wobei das Verfahren die folgenden Schritte umfasst: Setzen des Auslöserregisters jener Pipelinestufe, die einen Befehl empfängt, auf einen vorgegebenen Auslöserwert, der angibt, dass der empfangene Befehl für das Fehlersuchverfolgen ausgewählt ist, Schicken des Auslösers zusammen mit dem empfangenen Befehl durch die Auslöserregister der Pipeline, Ermitteln, ob der Auslöser angibt, dass der zugeteilte Befehl für das Fehlersuchverfolgen ausgewählt ist, und wenn dem so ist, Bereitstellen der verfolgten Fehlersuchdaten an eine Fehlersucheinheit der Halbleitervorrichtung.
  5. Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung nach Anspruch 4, das ferner den folgenden Schritt umfasst: Ermitteln, ob eine Operation, die durch eine der Pipelinestufen ausgeführt wird, ein Kriterium für weiteres Fehlersuchverfolgen erfüllt, und wenn dem nicht so ist, Setzen des Auslösers jenes Registers, das der Pipelinestufe entspricht, auf einen vorgegebenen Auslöserwert, der angibt, dass der Befehl nicht für das Fehlersuchverfolgen ausgewählt ist.
  6. Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung, die einen Prozessor mit einer Pipelinearchitektur umfasst, wobei der Prozessor eine Pipeline mit mehreren Pipelinestufen und mehreren Pipelineregistern, die zwischen die Pipelinestufen geschaltet sind, umfasst, wobei zu jedem Pipelineregister ein Auslöserregister parallel geschaltet ist, und wobei die Pipeline-Ausgleichseinrichtung ferner eine Zählereinheit zum Bereitstellen eines fortlaufenden Zählers an Befehle, die in die Pipeline eintreten, umfasst, wobei zu jedem Pipelineregister zwischen den Pipelinestufen ein Zählerregister parallel geschaltet ist, wobei das Verfahren die folgenden Schritte umfasst: Empfangen und Auswählen eines Befehls für das Verfolgen, Setzen des Zählers auf einen Zählerwert, der den ausgewählten Befehl identifiziert, Schicken des Zählers zusammen mit dem ausgewählten Befehl durch die Zählerregister der Pipeline und Bereitstellen der verfolgten Fehlersuchdaten an eine Fehlersucheinheit der Halbleitervorrichtung.
DE102011110151.2A 2011-08-16 2011-08-16 Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung Active DE102011110151B4 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102011110151.2A DE102011110151B4 (de) 2011-08-16 2011-08-16 Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung
US13/473,260 US9489208B2 (en) 2011-08-16 2012-05-16 Operating a pipeline flattener in order to track instructions for complex breakpoints
US15/286,642 US10255078B2 (en) 2011-08-16 2016-10-06 Operating a pipeline flattener in order to track instructions for complex breakpoints
US16/378,832 US10795685B2 (en) 2011-08-16 2019-04-09 Operating a pipeline flattener in order to track instructions for complex
US17/029,299 US11513804B2 (en) 2011-08-16 2020-09-23 Pipeline flattener with conditional triggers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011110151.2A DE102011110151B4 (de) 2011-08-16 2011-08-16 Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung

Publications (2)

Publication Number Publication Date
DE102011110151A1 true DE102011110151A1 (de) 2013-02-21
DE102011110151B4 DE102011110151B4 (de) 2018-07-26

Family

ID=47625179

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011110151.2A Active DE102011110151B4 (de) 2011-08-16 2011-08-16 Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung

Country Status (2)

Country Link
US (4) US9489208B2 (de)
DE (1) DE102011110151B4 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2535213B (en) * 2015-02-13 2021-10-06 Advanced Risc Mach Ltd An apparatus and method for controlling debugging of program instructions including a transaction
US10686539B2 (en) * 2015-05-29 2020-06-16 Avago Technologies International Sales Pte. Limited Flexible debug observation point insertion in pipeline designs
US20170185400A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Mode-specific endbranch for control flow termination
US10754759B1 (en) * 2018-02-05 2020-08-25 Xilinx, Inc. Breakpointing circuitry that evaluates breakpoint conditions while running clock to target circuit
US11875183B2 (en) * 2018-05-30 2024-01-16 Texas Instruments Incorporated Real-time arbitration of shared resources in a multi-master communication and control system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247119B1 (en) * 1997-11-26 2001-06-12 Texas Instruments Incorporated Apparatus having a flattener for outputting aligned or unaligned information from an instruction execution pipeline
US6331957B1 (en) * 2000-02-14 2001-12-18 Intel Corporation Integrated breakpoint detector and associated multi-level breakpoint techniques
US7051197B2 (en) * 2002-11-22 2006-05-23 Texas Instruments Incorporated Tracing through reset
US20040177288A1 (en) * 2002-12-17 2004-09-09 Swoboda Gary L. Apparatus and method for capturing the program counter address associated with a trigger signal in a target processor
US8407457B2 (en) * 2007-09-28 2013-03-26 Freescale Semiconductor, Inc. System and method for monitoring debug events
US8943248B2 (en) * 2011-03-02 2015-01-27 Texas Instruments Incorporated Method and system for handling discarded and merged events when monitoring a system bus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TEXAS INSTRUMENTS EMBEDDED PROCESSORS WIKI: Pipeline Flattener. [recherchiert am 20.06.2012] 27.05.2010. Im Internet: <URL:http://processors.wiki.ti.com/index.php/Pipeline_Flattener>
TEXAS INSTRUMENTS EMBEDDED PROCESSORS WIKI: TraceDeviceFeatures. [recherchiert am 20.06.2012] 07.09.2010. Im Internet: <URL:http://processors.wiki.ti.com/index.php/TraceDeviceFeatures>

Also Published As

Publication number Publication date
US10255078B2 (en) 2019-04-09
US20170024217A1 (en) 2017-01-26
DE102011110151B4 (de) 2018-07-26
US9489208B2 (en) 2016-11-08
US20130046962A1 (en) 2013-02-21
US11513804B2 (en) 2022-11-29
US20190303166A1 (en) 2019-10-03
US10795685B2 (en) 2020-10-06
US20210004236A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
DE69227429T2 (de) Anordnung und Verfahren zur Auflösung von Abhängigkeiten unter mehreren Befehlen in einer Speicheranordnung
DE69225750T2 (de) Datenverarbeitungssystem mit internem Befehlspufferspeicher
DE10304447B4 (de) Verfahren zur Handhabung von Datenfehlern in einem Prozessor mit Pipeline und derartiger Prozessor
DE68924223T2 (de) Mechanismus zum Prüfpunktwiederversuch.
DE69819849T2 (de) Anordnung zum willkürlichen Abtasten von Instruktionen in einer Prozessorpipeline
DE68919069T2 (de) Verfahren und Gerät zur Fehlererkennung und -korrektur in einem nach dem überlappten Steuerungsverfahren arbeitenden Rechnersystem.
DE4206062C2 (de) Pipelineverarbeitung von Instruktionen
DE69228360T2 (de) Registerlesekontrolle
DE112011101364T5 (de) Fehlerbehebung in Multithread-Code
DE102011110151B4 (de) Halbleitervorrichtung und Verfahren zum Betreiben einer Pipeline-Ausgleichseinrichtung in einer Halbleitervorrichtung
DE3801361A1 (de) Verfahren und einrichtung zum detektieren und fuer die spezialbehandlung von memory-mapped eingabe/ausgabereferenzen in einem pipelinemikroprozessor
US7809991B2 (en) System and method to qualify data capture
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
US20060156102A1 (en) System and method to control data capture
US7752016B2 (en) System and method for data analysis
DE112016006297T5 (de) Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm
DE112004001040B4 (de) Verfahren und Datenprozessor mit reduzierter Operationsunterbrechung auf Grund von Operanden-Abhängigkeiten
DE19824289C2 (de) Pipelineverarbeitungsmaschine
DE112017003323T5 (de) Prozessoren, Verfahren und Systeme zum Identifizieren von Speichern, die externe transaktionale Ausführungsabbrüche verursachen
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE68924883T2 (de) Mikroprozessor mit Befehlspipeline.
DE69132733T2 (de) Unterbrechungsverarbeitungssystem
DE69614917T2 (de) Kompiler und Prozessor zur schnellen Verarbeitung von Schleifen
DE69425310T2 (de) Mikrosteuereinheit für einen superpipeline-superskalaren Mikroprozessor

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative

Representative=s name: ZELLER, ANDREAS, DE

Representative=s name: PRINZ & PARTNER MBB PATENTANWAELTE RECHTSANWAE, DE

R082 Change of representative

Representative=s name: PRINZ & PARTNER MBB PATENTANWAELTE RECHTSANWAE, DE

R082 Change of representative

Representative=s name: ZELLER, ANDREAS, DE