DE10025952A1 - Vorabruf-Puffer - Google Patents

Vorabruf-Puffer

Info

Publication number
DE10025952A1
DE10025952A1 DE10025952A DE10025952A DE10025952A1 DE 10025952 A1 DE10025952 A1 DE 10025952A1 DE 10025952 A DE10025952 A DE 10025952A DE 10025952 A DE10025952 A DE 10025952A DE 10025952 A1 DE10025952 A1 DE 10025952A1
Authority
DE
Germany
Prior art keywords
command sequence
memory
data processing
commands
shifter
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
DE10025952A
Other languages
English (en)
Other versions
DE10025952B4 (de
Inventor
Balraj Singh
Manuel O Gautho
Venkat Mattela
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of DE10025952A1 publication Critical patent/DE10025952A1/de
Application granted granted Critical
Publication of DE10025952B4 publication Critical patent/DE10025952B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

Die beschriebene Datenverarbeitungseinheit umfasst eine Superscalar-Struktur, mit der eine Mehrzahl von Befehlen parallel ausgeführt werden kann, einen Speicher zum Speichern der Befehle mit einer Mehrzahl von n-Bit Eingangs-/Ausgangsports und eine Verbindungseinheit zum Verbinden des Speichers mit einer Befehls-Abrufeinheit und einer Steuereinheit für eine Befehlsfolge-Anforderung zum Adressieren des Speichers, um eine Befehlsfolge an seinem Ausgangsport zu erzeugen. Die Verbindungseinheit umfasst eine Verschiebeeinrichtung mit einem Eingang und einem Ausgang und einem Steuereingang, wobei der Eingang mit dem Speicher und der Steuereingang mit der Steuereinheit für eine Befehlsfolge-Anforderung verbunden ist. Die Befehls-Abrufeinheit umfasst ein Register zum Speichern der Befehlsfolge, eine Register-Steuereinheit zum Verteilen der Anzahl von Befehlen aus dem Register sowie Mittel zum Verschieben des Inhalts des Registers.

Description

Hintergrund der Erfindung
Die Erfindung betrifft ein Verfahren und eine Anordnung zum Vor-Abrufen und zum Abgleichen (Ausrichten) einer Befehlsfol­ ge, die durch eine Speichereinheit zur Verfügung gestellt wird. Moderne Mikroprozessoren können mehrere Befehle paral­ lel ausführen. Solche Mikroprozessoren haben im allgemeinen eine Pipeline-Struktur und umfassen mehrere Ausführungsein­ heiten, um Befehle parallel auszuführen. Ein Mikroprozessor kann zum Beispiel eine Lade- und Speicher-Ausführungseinheit zum Durchführen von Lade- und Speicher-Befehlen sowie eine arithmetische logische Einheit zum Ausführen von Daten beein­ flussenden Befehlen umfassen. Ferner ist es möglich, dass ein 32 Bit Mikroprozessor Befehle mit variabler Länge, zum Bei­ spiel 16 Bit Befehle und 32 Bit Befehle ausführt.
Um eine solche Pipeline-Struktur mit den entsprechenden Be­ fehlen aus dem Speicher zu versorgen, wird üblicherweise eine Anforderung an die Speichereinheit übermittelt. Die Spei­ chereinheit muss die entsprechende Anzahl von Befehlen aus dem Speicher laden und der Abruf-Einheit diese Befehle zufüh­ ren. Da Speichersysteme im Vergleich zu Ausführungseinheiten im allgemeinen langsamer sind, bildet eine solche Anordnung einen Flaschenhals bei der Ausführung von Befehlen. Insbeson­ dere dann, wenn es zu einer sogenannten Grenzüberschreitung kommt, können die Speichersysteme die angeforderten Daten und Befehle nicht mit einem einzigen Zugriff abrufen. Ein Spei­ chersystem ist im allgemeinen in Zeilen und Spalten organi­ siert. Zu einem Zeitpunkt kann nur auf eine einzige Zeile zu­ gegriffen werden. Wenn die Start- und End-Adressen einer an­ geforderten Befehlsfolge nicht innerhalb einer einzigen Zeile liegen, kann somit nur ein Teil der angeforderten Informatio­ nen abgerufen werden. Der Rest der Informationen muss inner­ halb einer zweiten Anforderung zugeführt werden.
Zusammenfassung der Erfindung
Der Erfindung liegt deshalb die Aufgabe zugrunde, ein Verfah­ ren und eine Vorrichtung zum Erzeugen einer Mehrzahl von ab­ geglichenen (ausgerichteten) Befehlen aus einer Befehlsfolge mit einer minimalen Verzögerung zu schaffen.
Eine erfindungsgemäße Datenverarbeitungseinheit umfasst eine Superscalar-Struktur, die eine Mehrzahl von Befehlen parallel ausführen kann, einen Speicher zum Speichern der Befehle mit einer Mehrzahl von n-Bit Eingangs-/Ausgangsports, und eine Verbindungseinheit zum Verbinden des Speichers mit einer Be­ fehls-Abrufeinheit, eine Befehlsfolge-Anforderungs- Steuereinheit zum Adressieren des Speichers, um eine Befehls­ folge an seinem Ausgangsport zu erzeugen. Die Verbindungsein­ heit umfasst eine Verschiebeeinrichtung mit einem Eingang und einem Ausgang sowie einem Steuereingang, wobei der Eingang mit dem Speicher und der Steuereingang mit der Befehlsfolge- Anforderungs-Steuereinheit verbunden ist. Die Befehls- Abrufeinheit umfasst ein Register zum Speichern der Befehls­ folge, eine Register-Steuereinheit zum Verteilen der Anzahl von Befehlen aus dem Register, sowie Mittel zum Verschieben des Inhalts der Register.
Bei einer anderen Ausführungsform umfasst eine Datenverarbei­ tungseinheit eine Superscalar-Struktur, die eine Mehrzahl von Befehlen parallel ausführen kann, einen Speicher zum Spei­ chern der Befehle mit einer Mehrzahl von n-Bit Eingangs-/ Ausgangsports und eine Verbindungseinheit zum Verbinden des Speichers mit einer Befehls-Abrufeinheit, sowie eine Befehls­ folge-Anforderungs-Steuereinheit zum Adressieren des Spei­ chers, um an seinem Ausgangsport eine Befehlsfolge zu erzeu­ gen. Die Verbindungseinheit umfasst eine Verschiebeeinrich­ tung mit einem Eingang und einem Ausgang sowie einem Steuer­ eingang, wobei der Eingang mit dem Speicher und der Steuer­ eingang mit der Befehlsfolge-Anforderungs-Steuereinheit ver­ bunden ist. Die Befehls-Abrufeinheit umfasst ein Register zum Speichern der Befehlsfolge, eine Register-Steuereinheit zum Verteilen der Anzahl von Befehlen aus dem Register, sowie Mittel zum Schreiben eines Teils des Inhalts des Registers in die Verschiebeeinrichtung.
Mit einer Anordnung, wie sie anhand der Ausführungsformen be­ schrieben wird, ist es mit einem Minimum an zusätzlicher Hardware möglich, viele Fälle zu vermeiden, bei denen eine Grenzüberschreitung zu einer Blockierung der Pipelines führen würde. Je länger die Vorabruf-Puffer sind, desto geringer ist die Wahrscheinlichkeit, dass eine Grenzüberschreitung auftre­ ten wird.
Ein Verfahren zum Zuführen einer Mehrzahl von Befehlen aus einem Speicher mit einer Mehrzahl von n-Bit Eingangs-/Ausgangsports zu einer Verarbeitungseinheit in einem Datenpro­ zessor mit einer Superscalar-Struktur, mit der eine Mehrzahl von Befehlen parallel ausgeführt werden kann, umfasst folgen­ de Schritte:
  • a) Adressieren des Speichers zur Ausgabe einer Befehlsfolge an seinen Ausgangsports; und
  • b) Ausgeben einer Anzahl von Befehlen aus der Befehlsfolge und Puffern mindestens der Befehle der Befehlsfolge, die nicht ausgegeben worden sind.
Weiterhin ist ein Verfahren zum Zuführen einer Mehrzahl von Befehlen aus einem Speicher mit einer Mehrzahl von Eingangs- /Ausgangsports zu einer Verarbeitungseinheit in einem Daten­ prozessor mit einer Superscalar-Struktur, mit der eine Mehr­ zahl von Befehlen parallel ausgeführt werden kann, offenbart. Das Verfahren umfasst folgende Schritte:
  • a) Ausgeben einer Anzahl von Befehlen aus einer zuvor gespei­ cherten Befehlsfolge,
  • b) Erzeugen einer Adresse und eines Verschiebewertes in Ab­ hängigkeit von den zuvor ausgegebenen Befehlen;
  • c) Adressieren des Speichers zur Ausgabe einer Befehlsfolge an seinen Ausgangsports;
  • d) Kombinieren der Befehlsfolge mit der zuvor nicht ausgege­ benen Befehlsfolge und Ausrichten der Befehlsfolge;
  • e) Speichern der kombinierten Befehlsfolge;
  • f) Wiederholen der Schritte a) bis f).
Kurze Beschreibung der Zeichnungen
Fig. 1 zeigt ein Blockschaltbild einer ersten Ausführungsform der Erfindung;
Fig. 2 zeigt ein Blockschaltbild einer zweiten Ausführungs­ form der Erfindung;
Fig. 3 zeigt ein Blockschaltbild des Verlaufes einer Befehls­ folge gemäß der ersten Ausführungsform der Erfindung; und
Fig. 4 zeigt ein Blockschaltbild des Verlaufes einer Befehls­ folge gemäß der zweiten Ausführungsform der Erfindung.
Beschreibung der bevorzugten Ausführungsform
Ein Speichersystem wie zum Beispiel ein Cache-Speicher oder ein Befehlsspeicher weist vier Bänke 1, 2, 3 und 4 auf. Jede Speicherbank weist einen Ausgangsport mit einer Breite von 16 Bit auf. Der Speicher ist in Zeilen und Spalten organisiert, wobei die Länge der Zeile die maximale Größe von Daten defi­ niert, auf die parallel zugegriffen werden kann. Bei dieser Ausführungsform beträgt die Zeilenlänge 256 Bit und die Aus­ gabegröße des Speichersystems 64 Bit, wodurch die Wahrschein­ lichkeit einer Grenzüberschreitung vermindert wird. Dazu ist jede Speicherbank in 64 Bit Leitungen organisiert, wobei jede Bank einen 16 Bit Ausgangsport aufweist. Jede Speicherbank 1, 2, 3 und 4 weist die entsprechenden Multiplexer auf, um die entsprechenden Speicherzellen jeder Bank mit dem entsprechen­ den Ausgangsport zu verbinden. Die vier Speicherbänke 1, 2, 3 und 4 werden durch eine Steuereinheit 6 für eine Befehlsfol­ ge-Anforderung adressiert. In dieser Speichereinheit ist ein Programm, das aus einer Mehrzahl von sequentiellen Befehlen besteht, in der Weise gespeichert, dass 64 Bit einer kontinu­ ierlichen Befehlsfolge parallel ausgegeben werden können. Innerhalb eines Zugriffszyklus kann der Speicher eine Zeile, die zum Beispiel aus 256 Bit besteht, adressieren und an sei­ nem Ausgangsport eine Auswahl aus 64 Bit ausgeben. Die Aus­ gänge der Speicherbänke 1, 2, 3 und 4 sind mit dem Eingang eines 64 Bit Ringverschiebers 5 verbunden. Der Ringverschie­ ber 5 wird über ein Steuersignal 11 gesteuert, das durch die Steuereinheit 6 für eine Befehlsfolge-Anforderung erzeugt wird. Der Ausgang des Ringverschiebers 5 wird in vier 16 Bit Signale aufgeteilt, die einem Pufferregister 12 zugeführt werden. Lese- und Schreib-Steuersignale 10 werden durch eine Steuereinheit 9 für die Puffer-Verteilung erzeugt, die auch eine Anforderungsadresse 7 und einen Verschiebewert 8 er­ zeugt, die zu der Steuereinheit 6 für eine Befehlsfolge- Anforderung geführt werden.
Weiterhin sind ein erster Multiplexer 15 mit drei 16 Bit Ein­ gängen und einem 16 Bit Ausgang, ein zweiter Multiplexer mit zwei 16 Bit Eingängen und einem 16 Bit Ausgang sowie ein steuerbarer 16 Bit Leitungstreiber 13 vorgesehen. Die Bits 0 bis 15 des Pufferregisters 12 sind mit dem Ausgang des Multi­ plexers 15 verbunden. Die Bits 16 bis 31 sind mit dem Ausgang des Multiplexers 14 und die Bits 32 bis 47 sind mit dem Aus­ gang des steuerbaren Leitungstreibers 13 verbunden. Der Ein­ gang des steuerbaren Leitungstreibers 13, der erste Eingang des Multiplexers 14 und der erste Eingang des Multiplexers 15 sind mit den Bits 48 bis 63 des Pufferregisters 12 verbunden. Der zweite Eingang des Multiplexers 14 und der zweite Eingang des Multiplexers 15 ist mit den Bits 32 bis 47 des Pufferre­ gisters 12 verbunden. Schließlich sind die Bits 16 bis 31 des Pufferregisters 12 mit dem dritten Eingang des Multiplexers 15 verbunden. Der Multiplexer 15, der Multiplexer 14 und der steuerbarer Leitungstreiber 13 werden durch die Steuereinheit 9 für die Puffer-Verteilung gesteuert. Der Ausgang des Ring­ verschiebers 5 ist auch mit einer Abgleich-/Kombinier- Einheit 16 verbunden, der auch die Ausgangssignale des Puf­ ferregisters 12 zugeführt werden. Um die empfangenen Signale in geeigneter Weise abzugleichen oder zu kombinieren, liegen an der Abgleich-/Kombinier-Einheit 16 auch Steuersignale zum Beispiel von der Steuereinheit 9 für Pufferverteilung oder von der Steuereinheit 6 für eine Befehlsfolge- Anforderung an.
Der Leitungstreiber 13 und die Multiplexer 14 und 15 bilden Mittel zum Schreiben von q × p Bits, wobei q < der maximalen Anzahl von p Bit-Teilen in dem Register 12 ist. Bei der vor­ liegenden Ausführungsform ist p = 16 Bit. Diese Anordnung kann natürlich an jede andere Befehlsgröße angepasst werden. Anstelle der Multiplexer können auch steuerbare Treiber oder Puffer verwendet werden. Der Ringverschieber 24 kann eben­ falls durch Multiplexer implementiert werden. Weiterhin kann eine einfache Verschiebeeinrichtung verwendet werden, mit der eine Verschiebung nur in einer Richtung möglich ist. Die Steuersignale müssen dabei entsprechend angepasst werden.
Nach einem Rücksetzen des Mikrocontrollers gemäß dieser Aus­ führungsform ist das Pufferregister 12 entweder leer oder un­ definiert. Die Steuereinheit 9 für die Pufferverteilung for­ dert eine erste Befehlsfolge an, indem der Steuereinheit 6 für eine Befehlsfolge-Anforderung eine Startadresse und ein Verschiebewert von 0 zugeführt werden. Die Steuereinheit 6 für eine Befehlsfolge-Anforderung adressiert die vier Spei­ cherbänke 1, 2, 3 und 4 zur Ausgabe einer kontinuierlichen Befehlsfolge, wobei zum Beispiel mit der Adresse 0 begonnen wird. Bei dieser Ausführungsform erzeugt die Bank 1 Start­ adressen von 0, 64, 128, . . ., die Speicherbank 2 erzeugt Startadressen von 16, 80, 144, . . ., die Speicherbank 3 erzeugt Startadressen von 32, 96, 160, . . ., und die Speicherbank 4 er­ zeugt Startadressen von 48, 112, 176, . . .. Bei dieser Ausfüh­ rungsform hat eine Zugriffsleitung Startadressen von 0, 32, 64, . . ., bzw. Endadressen von 31, 63, 95, . . ., wobei jede Adres­ se auf ein Byte zugreift. Zum Beispiel endet im Falle einer Startadresse von 24 die Befehlsfolge von 64 Bit (= 8 Byte) mit der Adresse 31. Somit ist die adressierte 64 Bit Befehls­ folge, die durch ein solches Speichersystem ausgegeben wird, ausgerichtet, und eine Grenzüberschreitung tritt nicht auf. Das Steuersignal 11 ist somit 24, und der Ringverschieber 5 verschiebt diese Befehlsfolge nicht. Der Ausgang des Ringver­ schiebers 5 wird in das Pufferregister 12 geschrieben.
Gemäß der Erfindung kann ein Mikroprozessor mehrere Befehle parallel ausführen. Ferner kann ein Mikroprozessor gemäß der Erfindung Befehle mit unterschiedlichen Befehlslängen, zum Beispiel 8 Bit, 16 Bit, 32 Bit usw. ausführen. Somit kann die Länge der tatsächlich ausgegebenen Befehlsfolge zwischen ei­ nem minimalen und einem maximalen Wert legen. Bei der erfin­ dungsgemäßen Ausführungsform hat ein Mikroprozessor eine mi­ nimale Befehlslänge von 16 Bit und eine maximale Befehlslänge von 64 Bit. Es ist möglich, einen einzigen 16 Bit Befehl, zwei einzelne 16 Bit Befehle, einen 32 Bit Befehl, einen 16 Bit Befehl und einen 32 Bit Befehl oder zwei 32 Bit Befehle auszugeben. In Abhängigkeit davon, wieviele Befehle ausgege­ ben worden sind, erzeugt die Steuereinheit 9 für Pufferverteilung eine neue Adresse 7 und einen Verschiebewert 8 für den folgenden Zyklus.
Somit ist bei dieser Ausführungsform die Struktur des Aus­ gangsports des Speichers 1, des Ringverschiebers 5 und des Register-Puffers 12 zu vier Einheiten mit 16 Bit segmentiert, was die minimale Befehlsgröße darstellt. Es kann entsprechend der Größe eines Befehls jede Art von Anordnung für diese Ein­ heiten gewählt werden. Die Befehle haben im allgemeinen eine Länge von m × p Bits, wobei m <= 1 ist.
Bei einem Beispiel ist die Startadresse auf 24 gesetzt. Wenn ein 16 Bit Befehl und ein 32 Bit Befehl ausgegeben worden sind, ist die durch die Steuereinheit 9 für Pufferverteilung für die folgende 64 Bit Befehlsfolge erzeugte Adresse 32 und der Verschiebewert 3. Während einer folgenden Anforderung für eine weitere Befehlsfolge würde die Steuereinheit 9 für Puf­ ferverteilung diesen Adressenwert und diesen Verschiebewert zu der Steuereinheit 6 für eine Befehlsanforderung senden und den Multiplexer 15 ansteuern, um den Inhalt der Bits 48 bis 63 des Pufferregisters 12 in die Bitstellen 0 bis 15 zu ver­ schieben. Die Multiplexer 14 und 16 und der Bit- Leitungstreiber 13 werden in diesem Fall nicht aktiviert.
Die Steuereinheit 6 für eine Befehlsanforderung erzeugt Adressen für die Speicherbänke 1, 2, 3 und 4, beginnend mit der Startadresse 32 für die Speicherbank 1. Mit der Anordnung gemäss der Erfindung wird eine Grenzüberschreitung verhin­ dert, die bei einem bekannten System aufgetreten wäre. Insbe­ sondere wäre die Adresse der angeforderten Befehlsfolge gleich der Adresse des ersten Befehls-Byte (bei dem obigen Beispiel der Adresse 31), das bis jetzt noch nicht ausgegeben wurde. Somit wäre eine Grenzüberschreitung und eine Verzöge­ rung zwischen der Adresse 31 und der Adresse 32 aufgetreten.
Da der Inhalt der Speicherbank 4 an die Bitstellen 16 bis 32 des Pufferregisters 12, der Inhalt der Speicherbank 1 an die Bitstellen 32 bis 47 des Pufferregisters 12 und der Inhalt der Speicherbank 2 an die Bitstellen 48 bis 63 zu übertragen ist, erzeugt die Steuereinheit für eine Befehlsfolge- Anforderung ein Steuersignal 11. Um die Befehlsfolge aus den Speicherbänken 1, 2, 3 und 4 auszurichten, werden die Bits 1 und 2 des Adressensignals 7 verwendet. Wenn die Adresse gemäß der Annahme bei diesem Beispiel 6 ist, erhalten die Bits 1 und 2 den Wert "1". Somit bilden die Bits 1 und 2 der Adresse 7 einen Verschiebewert von 3. Wenn der Ringverschieber 5 sei­ ne Inhalte um 3 × 16 Bit verschieben könnte, wäre die durch die Speicherbänke 1, 2, 3 und 4 erzeugte Befehlsfolge ausge­ richtet. Bei diesem Beispiel muss die Befehlsfolge mit dem Bit 16 des Register-Puffers 12 ausgerichtet werden, da der Inhalt der Bits 0 bis 15 in dem Register 12 gespeichert wor­ den ist und bis jetzt noch nicht ausgegeben wurde. Somit muss ein Verschiebewert 8 eine Verschiebung nach links um den Wert 1 anzeigen. Kombiniert man diese zwei Werte, so ergibt sich eine Verschiebung nach rechts um 2 × 16 Bit. Die in dem Ring­ verschieber 5 verschobene Befehlsfolge wird dann zu dem Puf­ fer-Register 12 übertragen, wobei die Steuereinheit 9 für Pufferverteilung die Bits 0 bis 15 des Puffer-Registers 12, die zu überschreiben sind, ausschließt. Nach diesen Vorgang enthält das Puffer-Register 12 eine ausgerichtete Befehlsfol­ ge mit 64 Bit, die einer zuvor ausgegebenen Befehlsfolge ohne Verzögerung folgt.
Parallel dazu empfängt die Einheit 16 zum Ausrichten und Kom­ binieren die gleichen Ausgangssignale von dem Ringverschieber 5 sowie die zuvor gespeicherten Daten von dem Puffer-Register 12. Mit den durch die Steuereinheit 9 für Puffer-Verteilung zugeführten Steuersignalen kombiniert jene die zwei Datenfol­ gen zu einer 64 Bit Befehlsfolge in der gleichen Weise, wie es oben beschrieben wurde. Das Ausgangssignal, das durch die Ausführungseinheiten erzeugt wird, ist identisch mit der Be­ fehlsfolge, die in dem Puffer-Register 12 gepuffert wird. Dies wird parallel ausgeführt, um einen "Straf-" Zyklus vom Zusammenbau der Befehlsfolge in dem Puffer-Register 12 zu vermeiden. Die Einheit 16 zum Ausrichten und Kombinieren kann durch eine Mehrzahl von Multiplexern realisiert sein, die durch die Steuereinheit für Puffer-Verteilung gesteuert wer­ den.
Der sich ergebende Verschiebewert für den Ringverschieber 5 wird in Abhängigkeit davon bestimmt, wieviele 16 Bit Teile des Register-Puffers 12 ausgegeben worden sind, sowie in Ab­ hängigkeit von der aktuellen Stelle (Bank) in dem Speichersy­ stem. Tabelle 1 zeigt die verschiedenen Verschiebewerte für den Ringverschieber 5 entsprechend der Startadresse und der Anzahl von zuvor ausgegebenen Befehlen. Negative Verschiebe­ werte zeigen eine Verschiebung nach links, positive Verschie­ bewerte eine Verschiebung nach rechts an.
Tabelle 1
Der sich ergebende Verschiebewert wird wie folgt berechnet:
(5 - y) - (x + 1) = 4 - y - x
wobei y den Wert der Adressbits 2 und 1 und x die Anzahl von 16 Bit Teilen, die ausgegeben worden sind, bezeichnet.
Fig. 3 zeigt als ein weiteres Beispiel einen sich ergebenden Befehls-Daten-Weg in einem System gemäß der ersten Ausfüh­ rungsform. Gemäß Fig. 3 wird angenommen, dass zwei Befehle I + 4 und I + 2 aus einer in dem Puffer-Register 12 gespeicherten Befehlsfolge ausgegeben worden sind. Die Steuereinheit 9 für Puffer-Verteilung steuert dann die Multiplexer 14 und 15 so, dass die Inhalte der Bits 32 bis 64 in die Bits 0 bis 31 des Puffer-Registers 12 verschoben werden. Die Steuereinheit 9 für Puffer-Verteilung führt ferner ein Adressensignal I + 10 und einen Verschiebewerte von 2 zu der Steuereinheit 6 für eine Befehlsfolge-Anforderung. Die Steuereinheit 6 für eine Befehlsfolge-Anforderung adressiert dann die Speicherbänke 1, 2, 3 und 4, um die Befehle I + 10, I + 12, I + 14 und I + 16 zuzufüh­ ren. Wie in Fig. 3 gezeigt ist, liegen nur die Adressen I + 10, i + 12, I + 14 innerhalb einer Speicherleitung. Auf die Adresse 16 kann in diesem Zyklus nicht zugegriffen werden. Da nur zwei 16 Bit Worte benötigt werden, ist diese Grenzüber­ schreitung unschädlich und führt nicht zu einer Verzögerung, da die Adressen i + 14, i + 16 nicht benötigt werden. Die Inhalte der Adressen i + 10, i + 12 und i + 14 werden in den 64 Bit Ring­ verschieber 5 übertragen. An der Adresse I + 10 würden die Bits 1 und 2 die Werte 1 beziehungsweise 0 haben. Somit würde die Steuereinheit 6 für eine Befehlsfolge-Anforderung schließlich gemäß Tabelle 1 eine Verschiebung nach links um den Wert 1 erzeugen. Der Befehl I + 10 und der Befehl I + 12 würden dann an den zwei ganz linken Positionen in dem Ringverschieber 5 lie­ gen und könnten zu dem Puffer-Register 12 übertragen werden, um dessen Inhalt aufzufüllen.
Wie oben beschrieben wurde, empfängt die Einheit 16 zum Aus­ richten und Kombinieren zur Vermeidung eines "Straf-" Zyklus alle 64 Bit aus dem Ringverschieber 5 und alle 64 Bit aus dem Puffer-Register 12. Die Einheit 16 zum Ausrichten und Kombi­ nieren wählt in diesem Fall parallel die Bits 32 bis 63 aus dem Puffer-Register 12 als Ausgangs-Bits 0 bis 31 und die Bits 16 bis 47 aus dem Ringverschieber 5 als Ausgangs-Bits 32 bis 63.
Das Puffer-Register 12 muss nicht unbedingt auf die Größe des Ringverschiebers 5 begrenzt sein. Wenn ein größeres Puffer- Register 12 verwendet wird, müssen zusätzliche Multiplexer zwischen dem Ringverschieber 5 und dem Puffer-Register 12 vorgesehen werden, um den Inhalt des Ringverschiebers 5 mit den zuvor nicht ausgegebenen Befehlen des Puffer-Registers 12 auszurichten.
Eine Grenzüberschreitung kann nur auftreten, wenn sie inner­ halb der angeforderten Befehlsfolge liegt und Daten, die über der Grenze gespeichert sind, benötigt werden, um das Register 12 aufzufüllen. In allen anderen Fällen tritt keine Verzöge­ rung auf. Um die Gefahr einer solchen Verzögerung zu verrin­ gern, können die Speicher-Leitungsgrössen und die Puffer- Registergrössen vergrößert werden.
Fig. 2 zeigt eine zweite Ausführungsform der Erfindung. Auch hierbei ist wieder ein Speichersystem vorgesehen, das iden­ tisch mit dem Speichersystem der ersten Ausführungsform mit Speicherbänken 1, 2, 3 und 4 ist. Die Ausgänge jeder Spei­ cherbank 1, 2, 3 und 4 sind über Steuerpegel-Leitungstreiber 20, 21, 22 beziehungsweise 23 mit einem Ringverschieber 24 verbunden. Die Leitungstreiber 20, 21, 22 und 23 werden alle durch die Steuereinheit 25 für eine Befehlsfolge-Anforderung gesteuert, die ebenfalls den Ringverschieber 24 steuert. In ähnlicher Weise ist der Ringverschieber 24 mit einem Puffer- Register 34 verbunden, an dem sich vier Steuerpegel 16 Bit Leitungstreiber 30, 31, 32 und 33 befinden. Ein weiterer 16 Bit Leitungstreiber 26 ist vorgesehen, der den Inhalt der Bits 48 bis 63 des Registers 34 mit den Bits 32 bis 47 des Ringverschiebers 24 verbindet. Weiterhin ist ein Multiplexer 27 mit zwei 16 Bit Eingängen und einem 16 Bit Ausgang sowie ein Multiplexer mit drei 16 Bit Eingängen und einem 16 Bit Ausgang vorgesehen. Der Ausgang des Multiplexers 27 ist mit den Bits 16 bis 31 des Ringverschiebers 24 verbunden, der Ausgang des Multiplexers 28 ist mit den Bits 0 bis 15 des Ringverschiebers 24 verbunden. Der erste Eingang des Multi­ plexers 27 und der erste Eingang des Multiplexers 28 ist mit den Bits 48 bis 63 des Registers 34 verbunden. Die zweiten Eingänge des Multiplexers 27 und des Multiplexers 28 sind mit Bits 32 bis 37 des Registers 24 verbunden. Schließlich sind die Bits 13 bis 31 des Registers 34 mit dem dritten Eingang des Multiplexers 28 verbunden. Die Ausgänge der Leitungstrei­ ber 30, 31, 32 und 33 sind parallel zu den Ausführungseinhei­ ten geführt. Die Steuereinheit 29 für Puffer-Verteilung ist mit Steuerleitungstreibern 30, 31, 32 und 33, 31, 32, 33 und 26 und Multiplexern 27 und 28 versehen. Die Steuereinheit 29 für Puffer-Verteilung erzeugt auch ein Adressensignal 35 und einen Verschiebewert 36, die der Steuereinheit 25 für Be­ fehlsfolge-Anforderung zugeführt werden. Der Leitungstreiber 26 und die Multiplexer 27 und 28 sind Erzeugungsmittel, um q × p Bits in den Ringverschieber zu schreiben, wobei q < der maximalen Anzahl von p Bitteilen in dem Ringverschieber 24 ist. Bei der vorliegenden Ausführungsform ist p = 16 Bit. Die Anordnung kann natürlich an jede andere Befehlsgröße ange­ passt werden. Anstelle von Multiplexern können auch steuerba­ re Treiber oder Puffer verwendet werden. Der Ringverschiebers 24 kann ebenfalls durch Multiplexer implementiert sein. Wei­ terhin kann ein einfacher Verschieber verwendet werden, mit dem eine Verschiebung nur in eine Richtung vorgenommen werden kann. Die Steuersignale sind dabei entsprechend anzupassen. Der Ringverschieber 24 wird durch ein ähnliches Steuersignal wie das in Fig. 1 gezeigte und in Übereinstimmung mit Tabel­ le 1 gesteuert.
Die Funktion der zweiten Ausführungsform soll in Verbindung mit der Darstellung in Fig. 4 erläutert werden. Fig. 4 zeigt den Weg der Befehlsdaten bei der zweiten Ausführungs­ form. Es sei angenommen, dass die Befehlsdaten I + 6, I + 8 und I + 10 während eines vorherigen Zyklus ausgegeben worden sind. Somit enthalten die Bits 48 bis 63 des Puffer-Register 34 die zuvor nicht ausgegebenen Befehlsdaten I + 12. Während der An­ forderung einer weiteren Befehlsfolge werden die Inhalte der Bits 48 bis 63 über den Multiplexer 28 in die Bits 0 ist 15 des Ringverschiebers 24 geschrieben. Die Steuereinheit 25 für eine Befehlsfolge-Anforderung empfängt die Adresse 35, die I + 14 und den Verschiebewert 36 enthält, der den Wert 3 auf­ weist. Somit ergibt sich unter der Annahme, dass die Adress­ bits 1 und 2 die Werte "1" beziehungsweise "0" haben, gemäß Tabelle 1 ein Verschiebewert von "0". Die Befehlsfolge wird ausgerichtet und kann übertragen werden. Wenn anstelle der adressierten ersten Bank 2 zum Beispiel die Bank 3 adressiert worden wäre, so wäre eine Grenzüberschreitung an der Adresse i + 16 aufgetreten, die nur dann die Pipelines blockiert haben würde, wenn alle 64 Bit ausgegeben worden wären.
Bei dieser Ausführungsform ist keine Einheit zum Ausrichten und Kombinieren erforderlich, um eine Verzögerung während der Zuführung der Befehlsfolge zu den Ausführungenseinheiten zu vermeiden. Die Befehlsfolge wird innerhalb des Ringverschie­ bers 24 zusammengesetzt, der mit den entsprechenden Daten von beiden Seiten, den Speicherbänken 1, 2, 3 und 4 und dem Puf­ fer-Register 34, versorgt wird. Nach einer geeigneten espeichert Verschiebeoperation liegt am Ausgang des Ringverschie­ bers 24 eine ausgerichtete Befehlsfolge an, die direkt zu den Ausführungseinheiten geführt und parallel in dem Puffer- Register 34 gespeichert werden kann.

Claims (19)

1. Datenverarbeitungseinheit mit einer Superscalar-Struktur, die eine Mehrzahl von Befehlen parallel ausführen kann, mit einem Speicher zum Speichern der Befehle mit einer Mehrzahl von n-Bit Eingangs-/Ausgangsports und einer Verbindungsein­ heit zum Verbinden des Speichers mit einer Befehls- Abrufeinheit, einer Steuereinheit für eine Befehlsfolge- Anforderung zum Adressieren des Speichers zum Erzeugen einer Befehlsfolge an seinem Ausgangsport, wobei die Verbindungs­ einheit eine Verschiebeeinrichtung mit einem Eingang und ei­ nem Ausgang und einem Steuereingang umfasst, wobei der Ein­ gang mit dem Speicher und der Steuereingang mit der Steuer­ einheit für eine Befehlsfolge-Anforderung verbunden ist und wobei die Befehls-Abrufeinheit ein Register zum Speichern der Befehlsfolge und Mittel zum Verschieben des Inhalts des Regi­ sters umfasst.
2. Datenverarbeitungseinheit nach Anspruch 1, bei der die Verschiebeeinrichtung ein Ringverschieber ist.
3. Datenverarbeitungseinheit nach Anspruch 1, bei der die Verschiebeeinrichtung durch Multiplexer gebildet ist.
4. Datenverarbeitungseinheit nach Anspruch 1, bei der jeder Befehl m × p Bit umfasst, wobei m <= 1 ist und die Verschiebeeinrichtung den Registerinhalt um Inkremente von p Bits nach rechts verschieben kann.
5. Datenverarbeitungseinheit nach Anspruch 1, bei der die Steuereinheit für eine Befehlsfolge-Anforderung eine Adresse und einen Verschiebewert empfängt.
6. Datenverarbeitungseinheit nach Anspruch 5, bei der die Steuereinheit für eine Befehlsfolge-Anforderung ein Steuersignal für die Verschiebeeinrichtung aus der Adres­ se und dem Verschiebewert erzeugt.
7. Datenverarbeitungseinheit nach Anspruch 1, mit einer Kombiniereinheit, die mit der Verschiebeeinrichtung und dem Register verbunden ist, zum Kombinieren der Inhalte der Verschiebeeinrichtung und des Registers entsprechend ei­ nem Steuersignal.
8. Datenverarbeitungseinheit mit einer Superscalar-Struktur, die eine Mehrzahl von Befehlen parallel ausführen kann, mit einem Speicher zum Speichern der Befehle mit einer Mehrzahl von n-Bit Eingangs-/Ausgangsports und einer Verbindungsein­ heit zum Verbinden des Speichers mit einer Befehls- Abrufeinheit, einer Steuereinheit für eine Befehlsfolge- Anforderung zum Adressieren des Speichers zum Erzeugen einer Befehlsfolge an seinem Ausgangsport, wobei die Verbindungs­ einheit eine Verschiebeeinrichtung mit einem Eingang und ei­ nem Ausgang und einem Steuereingang umfasst, wobei der Ein­ gang mit dem Speicher und der Steuereingang mit der Steuer­ einheit für eine Befehlsfolge-Anforderung verbunden ist und wobei die Befehls-Abrufeinheit ein Register zum Speichern der Befehlsfolge und Mittel zum Schreiben eines Teilinhalts des Registers in die Verschiebeeinrichtung aufweist, so dass die Verschiebeeinrichtung eine ausgerichteten Befehlsfolge er­ zeugt.
9. Datenverarbeitungseinheit nach Anspruch 8, bei der die Verschiebeeinrichtung ein Ringverschieber ist.
10. Datenverarbeitungseinheit nach Anspruch 8, bei der die Verschiebeeinrichtung durch Multiplexer gebildet ist.
11. Datenverarbeitungseinheit nach Anspruch 8, bei der jeder Befehl m × p Bit umfasst, wobei m <= 1 ist und die Mittel zum Schreiben q × p Bits in die Verschiebeeinrich­ tung schreiben können, wobei q < m ist.
12. Datenverarbeitungseinheit nach Anspruch 8, bei der die Steuereinheit für eine Befehlsfolge-Anforderung eine Adresse und einen Verschiebewert empfängt.
13. Datenverarbeitungseinheit nach Anspruch 12, bei der die Steuereinheit für eine Befehlsfolge-Anforderung ein Steuersignal für die Verschiebeeinrichtung aus der Adres­ se und dem Verschiebewert erzeugt.
14. Verfahren zum Zuführen einer Mehrzahl von Befehlen aus einem Speicher mit einer Mehrzahl von n-Bit Eingangs-/Aus­ gangsports zu einer Verarbeitungseinheit in einem Datenpro­ zessor mit einer Superscalar-Struktur mit der Fähigkeit zur parallelen Ausführung einer Mehrzahl von Befehlen, mit fol­ genden Schritten:
  • a) Adressieren des Speichers zur Ausgabe einer Befehlsfolge an seinem Ausgangsport; und
  • b) Ausgeben einer Anzahl von Befehlen aus der Befehlsfolge und Puffern mindestens der Befehle der Befehlsfolge, die nicht ausgegeben worden sind.
15. Verfahren nach Anspruch 14, mit einem Schritt des Kombinierens von Daten, die von einer folgenden Befehlsfolge-Anforderung aus dem Speicher empfangen werden, mit zuvor gepufferten Befehlen, zur Erzeugung einer ausgerichteten Befehlsfolge, aus der Befehle ausgegeben wer­ den, und Puffern der kombinierten Befehlsfolge.
16. Verfahren nach Anspruch 15, bei dem nach dem Ausgeben von Befehlen aus der kombinierten Befehlsfolge eine Adresse und ein Verschiebewert in Abhängig­ keit von der Anzahl von ausgegebenen Befehlen erzeugt wird.
17. Verfahren nach Anspruch 15, bei dem die zuvor gepufferte Befehlsfolge um die Anzahl von Bits der zuvor ausgegebenen Befehle nach rechts verschoben wird.
18. Verfahren nach Anspruch 16, bei dem die Befehlsfolge in Abhängigkeit von der Adresse und dem Verschiebewert verschoben und mit der zuvor gepufferten Befehlsfolge kombiniert wird.
19. Verfahren nach Anspruch 16, bei dem die kombinierte Befehlsfolge in Abhängigkeit von der Adresse und dem Verschiebewert verschoben wird.
DE10025952A 1999-05-26 2000-05-26 Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen Expired - Fee Related DE10025952B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/320336 1999-05-26
US09/320,336 US6694423B1 (en) 1999-05-26 1999-05-26 Prefetch streaming buffer

Publications (2)

Publication Number Publication Date
DE10025952A1 true DE10025952A1 (de) 2001-05-31
DE10025952B4 DE10025952B4 (de) 2004-07-29

Family

ID=23245939

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10025952A Expired - Fee Related DE10025952B4 (de) 1999-05-26 2000-05-26 Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen

Country Status (2)

Country Link
US (1) US6694423B1 (de)
DE (1) DE10025952B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370184B2 (en) * 2001-08-20 2008-05-06 The United States Of America As Represented By The Secretary Of The Navy Shifter for alignment with bit formatter gating bits from shifted operand, shifted carry operand and most significant bit
WO2010096119A1 (en) * 2008-10-29 2010-08-26 Adapteva Incorporated Variable instruction width digital signal processor
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
TWI455020B (zh) * 2012-01-31 2014-10-01 Mstar Semiconductor Inc 資料包裝裝置及資料包裝方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
US4502111A (en) * 1981-05-29 1985-02-26 Harris Corporation Token generator
US4435792A (en) * 1982-06-30 1984-03-06 Sun Microsystems, Inc. Raster memory manipulation apparatus
US4729119A (en) * 1984-05-21 1988-03-01 General Computer Corporation Apparatus and methods for processing data through a random access memory system
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
US4956801A (en) * 1989-09-15 1990-09-11 Sun Microsystems, Inc. Matrix arithmetic circuit for processing matrix transformation operations
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
CA2107046A1 (en) * 1993-01-08 1994-07-09 James Allan Kahle Method and system for increased instruction dispatch efficiency in superscalar processor system
US5640526A (en) 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5822559A (en) 1996-01-02 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions
US5724422A (en) * 1996-08-05 1998-03-03 Industrial Technology Research Institute Encrypting and decrypting instruction boundaries of instructions in a superscalar data processing system

Also Published As

Publication number Publication date
DE10025952B4 (de) 2004-07-29
US6694423B1 (en) 2004-02-17

Similar Documents

Publication Publication Date Title
DE2515696C2 (de) Datenverarbeitungssystem
DE3689042T2 (de) Gerät zur Pufferung von Schreibanforderungen.
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69031658T2 (de) Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz
DE69418146T2 (de) Temporärer Registersatz für einen superpipeline-superskalaren Prozessor
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE4335475A1 (de) Datenverarbeitungseinrichtung mit Cache-Speicher
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
WO2007017373A1 (de) Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher
DE69033416T2 (de) Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion
DE2906685C2 (de)
DE3936339A1 (de) Controller fuer direkten speicherzugriff
DE10025952B4 (de) Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen
EP0075893B1 (de) Schaltungsanordnung zum Ausrichten von Speicheroperanden für dezimale und logische Befehle
DE10026017B4 (de) Vorabruf-Puffer mit Gültigkeitswerten zur Bereitstellung von abgeglichenen Befehlen
DE69030368T2 (de) Tandem-Cache-Speicher
DE69808700T2 (de) Cachespeichervorrichtung
DE2610428A1 (de) Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher
DE102005037234A1 (de) Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Ausführungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE4442687C2 (de) Prozessor mit mehreren Instruktionsregistern
DE1449816C3 (de) Schaltungsanordnung zur Steuerung des Zugriffs zu einem Magnettrommelspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: PATENTANWAELTE WESTPHAL MUSSGNUG & PARTNER, DE

R081 Change of applicant/patentee

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES NORTH AMERICA CORP., SAN JOSE, CALIF., US

Effective date: 20121128

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES NORTH AMERICA CORP., SAN JOSE, US

Effective date: 20121128

R082 Change of representative

Representative=s name: WESTPHAL, MUSSGNUG & PARTNER PATENTANWAELTE MI, DE

Effective date: 20121128

Representative=s name: PATENTANWAELTE WESTPHAL MUSSGNUG & PARTNER, DE

Effective date: 20121128

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee