DE10261500B4 - Processor and method for controlling a processor - Google Patents

Processor and method for controlling a processor Download PDF

Info

Publication number
DE10261500B4
DE10261500B4 DE10261500A DE10261500A DE10261500B4 DE 10261500 B4 DE10261500 B4 DE 10261500B4 DE 10261500 A DE10261500 A DE 10261500A DE 10261500 A DE10261500 A DE 10261500A DE 10261500 B4 DE10261500 B4 DE 10261500B4
Authority
DE
Germany
Prior art keywords
instructions
processor
control
processing device
program flow
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.)
Expired - Fee Related
Application number
DE10261500A
Other languages
German (de)
Other versions
DE10261500A1 (en
Inventor
Ralf Dipl.-Ing. Herz
Carsten Dipl.-Ing. Noeske
Franz-Otto Dr.-Ing. Witte
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.)
TDK Micronas GmbH
Original Assignee
TDK Micronas 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 TDK Micronas GmbH filed Critical TDK Micronas GmbH
Priority to DE10261500A priority Critical patent/DE10261500B4/en
Publication of DE10261500A1 publication Critical patent/DE10261500A1/en
Application granted granted Critical
Publication of DE10261500B4 publication Critical patent/DE10261500B4/en
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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor

Abstract

Prozessor mit
– einer ersten Programmfluss-Generierungseinrichtung (PFG) zum Erzeugen von ersten Instruktionen (iw) als Grundlage für erste Steueranweisungen für zumindest eine Verarbeitungseinrichtung (INTU, FFT; DFP),
– einem ersten Steuerbus (p1) zum Übertragen der ersten Instruktionen (iw) von der ersten Programmfluss-Generierungseinrichtung (PFG) zu einem ersten Instruktionsdekoder (IDC) zum Umsetzen der ersten Instruktionen (iw) in Steueranweisungen (iwx),
– zumindest einen zweiten Programmfluss-Generierungseinrichtung (SM; PFG2) zum Erzeugen von zweiten Instruktionen (iw2) als Grundlage für direkte Steueranweisungen (iwx) für zumindest eine Verarbeitungseinrichtung (INTU, FFT; DFP),
– einem zweiten Steuerbus (p2) zum Übertragen der zweiten Instruktionen (iw2) und
– einem zweiten Instruktionsdekoder (IDC2; DFP) mit einer vorgeschalteten Schalteinrichtung (SW; SW*) zum Zuführen wahlweise der ersten Instruktionen (iw) vom ersten Steuerbus (p1) oder der zweiten Instruktionen (iw2) vom zweiten Steuerbus (p2).
Processor with
A first program flow generation device (PFG) for generating first instructions (iw) as the basis for first control statements for at least one processing device (INTU, FFT, DFP),
A first control bus (p1) for transmitting the first instructions (iw) from the first program flow generator (PFG) to a first instruction decoder (IDC) for converting the first instructions (iw) into control instructions (iwx),
At least a second program flow generation device (SM, PFG2) for generating second instructions (iw2) as a basis for direct control instructions (iwx) for at least one processing device (INTU, FFT, DFP),
A second control bus (p2) for transmitting the second instructions (iw2) and
- a second instruction decoder (IDC2, DFP) with an upstream switching device (SW, SW *) for supplying either the first instructions (iw) from the first control bus (p1) or the second instructions (iw2) from the second control bus (p2).

Figure 00000001
Figure 00000001

Description

Die Erfindung bezieht sich auf einen Prozessor und ein Verfahren zum Steuern eines solchen Prozessors.The The invention relates to a processor and a method for Controlling such a processor.

Zur Steuerung des Ablaufs und der Datenverarbeitung in einem Prozessor weist ein Prozessor, wie dies aus 3 ersichtlich ist, üblicherweise eine Programmfluss-Generierungs-Einrichtung (PFG) zum Umsetzen eines anwenderprogrammierten Software-Programms in Maschinenbefehle bzw. Instruktionen (iw) auf. Gegebenenfalls sind die Programmfluss-Generierungseinrichtung (PFG) und weitere Einrichtungen des Prozessors mit einer Steuer- und Takteinrichtung (C) verbunden. Die Instruktionen (iw) werden über einen Steuerbus (p1) an Verarbeitungseinrichtungs-Steuereinrichtungen (IDC, IDC2) weitergeleitet, welche eine Umsetzung bzw. Übersetzung der Instruktionen (iw) in Steueranweisungen (iwx) vornehmen, welche zu einzelnen Verarbeitungseinrichtungen (INTU, FPU, X) geführt werden. Die Verarbeitungseinrichtungen dienen dazu, Daten (d) zu verarbeiten, welche über Datenbusse (d0, d1) übertragen werden. Gegebenenfalls weist der Prozessor zusätzlich einen Adressbus (a) zum Adressieren verschiedener der Einrichtungen auf. Üblicherweise weist ein Prozessor auch einen internen Speicher (M) zum Zwischenspeichern von Daten (d), Instruktionen (iw), Programmen und/oder Adressen auf. Üblicherweise ist ein Prozessor auch mit zumindest einer Schnittstelle (IF) zum Übertragen von Daten, Adressen und Informationen von und zu einer externen Einrichtung ausgestattet.To control the flow and data processing in a processor, a processor, as is known 3 1, usually a program flow generation device (PFG) for converting a user-programmed software program into machine instructions or instructions (iw). If appropriate, the program flow generation device (PFG) and other devices of the processor are connected to a control and clock device (C). The instructions (iw) are forwarded via a control bus (p1) to processor controllers (IDC, IDC2) which translate the instructions (iw) into control instructions (iwx) which are sent to individual processors (INTU, FPU, X) are guided. The processing devices serve to process data (d), which are transmitted via data buses (d0, d1). Optionally, the processor additionally includes an address bus (a) for addressing various of the devices. Usually, a processor also has an internal memory (M) for temporarily storing data (d), instructions (iw), programs and / or addresses. Typically, a processor is also equipped with at least one interface (IF) for transmitting data, addresses and information to and from an external device.

Aktuelle digitale Signalprozessoren sind dadurch gekennzeichnet, dass sie optimierte Recheneinheiten bzw.current Digital signal processors are characterized in that they optimized arithmetic units or

Verarbeitungseinrichtungen für einen Festkomma-Datentyp oder bei aufwendigeren Varianten zusätzlich für einen Fließkomma-Datentyp aufweisen.processing facilities for one Fixed-point data type or, in the case of more complex variants, additionally for one Floating-point data type.

Ein wesentliches Optimierungskriterium und gleichzeitig ein wesentliches Merkmal für Signalprozessoren ist deren Datendurchsatz.One essential optimization criterion and at the same time an essential one Characteristic for Signal processors is their data throughput.

Ein hoher Datendurchsatz wird durch Einsatz mehrerer Datenbusse, über welche die Recheneinheiten breitbandig mit Daten versorgt werden, erreicht. Die Zuführung der Daten wird dabei durch sogenannte Adressgeneratoren parallel zu den durch einen Instruktions- bzw. Befehlssatz gesteuerten Rechenoperationen ausgeführt.One high data throughput is achieved by using multiple data buses over which the arithmetic units are supplied broadband with data achieved. The feeder The data is paralleled by so-called address generators to the arithmetic operations controlled by an instruction set executed.

Bei moderneren Signalprozessoren, z.B. TMS 32C80 von Texas Instruments et. al., ist zusätzlich die Anzahl der parallelen Recheneinheiten erhöht.at more modern signal processors, e.g. TMS 32C80 from Texas Instruments et. al., is additional increases the number of parallel arithmetic units.

Nachteilig an den bekannten Ansätzen ist jedoch, dass gleichzeitig mit der Erhöhung der Buszahl und der Recheneinheiten die Komplexität des Befehlssatzes, der zur Steuerung der Busse und Recheneinheiten erforderlich ist, stark anwächst. Dies bewirkt einerseits, dass die Programmierung dieser Prozessoren sehr schwierig wird und zum anderen, dass die Wortbreite des Befehlssatzes und damit der Speicherbedarf für die Programmierung sehr groß wird. Die entsprechende Technik ist unter VLIW (Very Long Instruction Word) bekannt. Ein weiteres Problem des beschriebenen Parallelisierungsansatzes ist die schlechte Auslastung der Recheneinheiten und Busse, die dadurch begründet ist, dass insbesondere iterative und rekursive Algorithmen nicht immer in einer starren Form parallelisierbar sind.adversely on the known approaches However, that is simultaneous with the increase in the number of buses and the computing units the complexity of the instruction set used to control the buses and arithmetic units is required, grows strongly. On the one hand, this causes the programming of these processors becomes very difficult and, secondly, that the word width of the instruction set and thus the memory requirements for the programming becomes very big. The corresponding technique is under VLIW (Very Long Instruction Word) known. Another problem of the described parallelization approach is the poor workload of the arithmetic units and buses that are causing it justified is that particular iterative and recursive algorithms are not always be parallelizable in a rigid form.

Weiterhin ziehen die Verwendung von VLIW-Befehlen Probleme der Synchronisierung nach sich, die in unterschiedlichen Ausführungszeiten für parallele Rechenoperationen begründet sind. Dies wird typischerweise durch Beschleunigung langsamer Teile durch aufwendige Techniken mit hoher Leistungsaufnahme oder durch künstliche Verzögerung schneller Teile realisiert.Farther The use of VLIW commands drag problems of synchronization by themselves, in different execution times for parallel Arithmetic operations are justified. This is typically done by accelerating slower parts through elaborate techniques with high power consumption or by artificial delay realized faster parts.

Dies bewirkt entweder eine deutliche Erhöhung der Leistungsaufnahme des Prozessors, was für batteriegetriebene Anwendungen unerwünscht ist, oder führt zu großen 'pipeline'-Verzögerungen, die sich negativ auf die erzielbare Rechenleistung auswirken.This causes either a significant increase in power consumption the processor, what for battery-powered applications is undesirable or leads to large pipeline delays have a negative impact on the achievable computing power.

Die Aufgabe der Erfindung besteht darin, einen Prozessor bzw. ein Verfahren zum Steuern eines solchen vorzuschlagen, welche eine verbesserte Gesamtleistung, insbesondere eine verbesserte Ausnutzung der. Verarbeitungseinrichtungen und Busse ermöglichen.The The object of the invention is a processor or a method to propose for controlling which has an improved Overall performance, in particular improved utilization of. processing facilities and allow buses.

Diese Aufgabe wird durch einen Prozessor mit den Merkmalen des Patentanspruchs 1 bzw. durch ein Verfahren zum Steuern eines solchen Prozessors mit den Merkmalen des Patentanspruchs 8 gelöst.These The object is achieved by a processor having the features of the patent claim 1 or by a method for controlling such a processor solved with the features of claim 8.

Vorteilhafte Ausgestaltungen sind Gegenstand von abhängigen Ansprüchen.advantageous Embodiments are the subject of dependent claims.

Vorteilhaft ist insbesondere eine Ausgestaltung mit einem solchen Prozessor mit einer ersten Programmfluss-Generierungseinrichtung zum Erzeugen von Adressen und/oder Instruktionen als Grundlage für erste Steueranweisungen, einer ersten Verarbeitungseinrichtungs-Steuereinrichtung zum Umsetzen der Instruktionen in Steueranweisungen für zumindest eine erste Verarbeitungseinrichtung zum Verarbeiten von Daten, zumindest einer weiteren Verarbeitungseinrichtung zum Verarbeiten von Daten, einer zweiten Verarbeitungseinrichtungs-Steuereinrichtung zum Umsetzen der Instruktionen in Steueranweisungen für zumindest eine zweite Verarbeitungseinrichtung und/oder eine weitere Verarbeitungseinrichtung zum Verarbeiten von Daten, zumindest einer Datenleitung, insbesondere einem Datenbus zum Übertragen der Daten von und/oder zu den Verarbeitungseinrichtungen und einem ersten Steuerbus zum Übertragen der Instruktionen zu der ersten Verarbeitungseinrichtungs-Steuereinrichtung und der weiteren Verarbeitungseinrichtung und mit zumindest einer zweiten Programmfluss-Generierungseinrichtung zum Erzeugen von Adressen und/oder Instruktionen als Grundlage für zweite Steueranweisungen und mit zumindest einer Schalteinrichtung zum Zuführen wahlweise der ersten Instruktionen oder der zweiten Instruktionen zu der ersten und/oder zweiten Verarbeitungseinrichtungs-Steuereinrichtung bzw. der weiteren Verarbeitungseinrichtung.Particularly advantageous is an embodiment with such a processor with a first program flow generation device for generating addresses and / or instructions as a basis for first control instructions, a first processing device control means for Um setting the instructions in control instructions for at least one first processing device for processing data, at least one further processing device for processing data, a second processing device control device for converting the instructions into control instructions for at least one second processing device and / or a further processing device for processing data at least one data line, in particular a data bus for transmitting the data from and / or to the processing devices and a first control bus for transmitting the instructions to the first processing device control device and the further processing device and with at least one second program flow generating device for generating addresses and or instructions as a basis for second control instructions and with at least one switching device for supplying either the first instructions or the second Instructions for the first and / or second processing device control device or the further processing device.

Vorteilhafterweise werden bei einem Prozessor einerseits die Programmfluss-Generierungseinrichtung und die Verarbeitungseinrichtungs-Steuereinrichtung zum Steuern der Ablauf- und Datenfluss-Steuerung ausgebildet. Andererseits werden die Verarbeitungseinrichtungen getrennt davon zum Verarbeiten der Daten ausgebildet. Diese Trennung ermöglicht eine Optimierung, da die Übertragung von Daten von und zu den Verarbeitungseinrichtungen sowie die Datenverarbeitung in diesen unabhängig von der Übertragung und Verarbeitung von Instruktionen und Steueranweisungen durchgeführt werden kann. Die Prozessor-Anordnung ist somit zweigeteilt in einen Ablauf- und Datenfluss-Steuerabschnitt und in einen Datenverarbeitungsabschnitt.advantageously, In the case of a processor, on the one hand, the program flow generation device and the processing device controller for controlling the drain and data flow control formed. On the other hand, the Processing facilities separate from it for processing the data educated. This separation allows an optimization, since the transmission from data to and from the processing facilities as well as the data processing in these independent of the transmission and processing of instructions and control statements. The processor arrangement is thus divided into two parts into a flow and data flow control section and a data processing section.

Gemäß einer besonders bevorzugten Ausführungsform findet eine Aufteilung mehrerer Verarbeitungseinrichtungen zum Verarbeiten von Daten zu verschiedenen Verarbeitungseinrichtungs-Steuereinrichtungen statt, wobei die Verarbeitungseinrichtungs-Steuereinrichtungen unabhängig voneinander gleichzeitig betrieben werden können. Um dies zu ermöglichen, weist zumindest ein Teil der Verarbeitungseinrichtungs-Steuereinrichtungen eine Schalteinrichtung auf, welche die Verarbeitungseinrichtungs-Steuereinrichtung entweder an eine Standard-Programmfluss-Generierungseinrichtung oder an eine getrennte Programmfluss-Generierungseinrichtung schaltet.According to one particularly preferred embodiment finds a division of several processing facilities for processing data to various processing device controllers instead, with the processing means controllers being independent of each other simultaneously can be operated. In order to make this possible, includes at least a portion of the processing device controllers a switching device comprising the processing device control device either to a standard program flow generator or to a separate program flow generator.

Um eine Entkopplung der Ablauf- und Datenflusssteuerung einerseits und der Datenverarbeitung andererseits zu optimieren, weisen die Verarbeitungseinrichtungen einerseits Anschlüsse zu Datenleitungen bzw. Datenbussen zum Austausch der Daten und andererseits Anschlüsse zu den zugeordneten Verarbeitungseinrichtungs-Steuereinrichtungen bzw. einer Schalteinrichtung zum Empfangen von Steueranweisungen auf.Around a decoupling of the flow and data flow control on the one hand and to optimize the data processing on the other hand, have the Processing facilities on the one hand connections to data lines or Data buses for the exchange of data and on the other hand connections to the assigned processing device control devices or a switching device for receiving control instructions.

In besonders bevorzugter Ausführungsform ist eine der zusätzlichen Programmfluss-Generierungseinrichtungen als Zustandsmaschine zum Erzeugen von Instruktionen für einen standardisierten Steuerablauf in der weiteren Verarbeitungseinrichtung ausgebildet. Dies ermöglicht bei einem Einsatz der weiteren Verarbeitungseinrichtung als beispielsweise Viterbi Decoder oder Fourier-Transformations-Berechnungseinrichtung für die weitere Verarbeitungseinrichtung nach dem Empfang entsprechend zu verarbeitender Daten einen automatisierten Steuerablauf zu übertragen, ohne dabei auf entsprechende Steueranweisungen der Standard-Programmfluss-Generierungseinrichtung angewiesen zu sein. Dadurch kann die Standard-Programmfluss-Generierungseinrichtung über den Steuerbus und entsprechende Verarbeitungseinrichtungs-Steuereinrichtungen parallel weitere Verarbeitungseinrichtungen ansprechen und betreiben. Es findet somit eine echte Parallelisierung von Abläufen statt, bei der lediglich die Zugriffe auf den oder die Datenbusse zu koordinieren sind, wenn die zeitaufwändige Datenverarbeitung in der weiteren Verarbeitungseinrichtung abgeschlossen ist. Eine weitere Optimierung kann durch die Übertragung von weiteren, zweiten Instruktionen zu den Verarbeitungseinrichtungs-Steuereinrichtungen durch das Bereitstellen eines weiteren Steuerbusses ermöglicht werden. Auch dies unterstützt eine Parallelisierung, wobei die Instruktionen für den weiteren Steuerbus zweckmäßigerweise von einer weiteren, zweiten Programmfluss-Generierungs-Einrichtung bereitgestellt werden. Dies macht zwar einen aufwändigeren Programmierungsalgorithmus erforderlich, da für die beiden oder mehreren Programmfluss-Generierungs-Einrichtungen deren getrennte Ansteuerung im Programmcode berücksichtigt werden muss, ermöglicht aber einen effizienteren Betrieb des Prozessors durch die parallelisierte Datenverarbeitung.In particularly preferred embodiment one of the extra Program flow generation means as state machine for Generating instructions for a standardized control process in the further processing device educated. this makes possible when using the further processing device than, for example Viterbi decoder or Fourier transform calculator for the further processing device after receiving according to processing data to transfer an automated control process, without reference to corresponding control statements of the standard program flow generation device to be instructed. As a result, the standard program flow generation device can use the Control bus and corresponding processing device controllers simultaneously address and operate other processing facilities. There is thus a real parallelization of processes, merely to coordinate the accesses to the data bus (s) are when the time consuming Data processing in the further processing device completed is. Further optimization can be achieved by transferring further, second Instructions to the Processor Controllers be made possible by providing another control bus. This also supports a parallelization, the instructions for the further control bus expediently from another, second program flow generation means provided become. This makes a more elaborate programming algorithm required, as for the two or more program flow generation devices have their separate ones Control taken into account in the program code must be possible but a more efficient operation of the processor through the parallelized data processing.

Bei dem Einsatz von Steueranweisungen aus verschiedenen Quellen, z. B. der weiteren Programmfluss-Generierungs-Einrichtung oder einer Zustandsmaschine, welche weitere Instruktionen oder Steueranweisungen erzeugen und bereitstellen, werden entsprechend Schalteinrichtungen bereitgestellt, welche einen Zugriff auf die verschiedenen Datenquellen ermöglichen. Als Schaltanweisung kann dabei vorteilhafterweise die Instruktion der Instruktionsquelle selber verwendet werden. Diesbezüglich sind verschiedene Ausführungsformen möglich, beispielsweise die Untersuchung der Instruktion bezüglich einer Adresse, auf welche die Schalteinrichtung anspricht oder auch allein das Vorliegen einer Instruktion an einem bestimmten der Eingänge der Schalteinrichtung.When using control statements from different sources, eg. As the further program flow generation means or a state machine, which generate and provide further instructions or control instructions are provided in accordance with switching devices which allow access to the various data sources. In this case, the instruction of the instruction source itself can advantageously be used as the switching instruction. In this regard, various embodiments are possible, such as examining the instruction for an address to which the switching device responds, or even the presence of an instruction at a particular one of the inputs of the switch direction.

Eine Analyse der einleitend beschriebenen Probleme des klassischen DSP-Ansatzes (DSP: Digital Signal Processing/digitale Signalverarbeitung) zeigt, dass die Verwendung einer zentralen Verarbeitungseinrichtungs-Steuereinrichtung, insbesondere Instruktionsausführungseinheit für parallele Ausführungseinheiten diese Probleme ursächlich nach sich zieht.A Analysis of the problems of the classic DSP approach described in the introduction (DSP: Digital Signal Processing), that the use of a central processing device control device, in particular instruction execution unit for parallel execution units these problems are causal pulls.

Grundidee des hier vorgestellten Prozessors sind daher ein Prozessoraufbau bzw. ein Verfahren zur Dezentralisierung der Instruktionsausführung auf mehrere parallele, locker synchronisierte Einrichtungen und Prozesse mit eigener Steuerungslogik in Form der zumindest einen Verarbeitungseinrichtungs-Steuereinrichtung.The basic idea The processor presented here is therefore a processor structure or a method for decentralizing the instruction execution to several parallel, loosely synchronized facilities and processes with own control logic in the form of at least one processing device controller.

Die erweiterbare Architektur des Digitalen Signalprozessors kombiniert vorzugsweise einen gemeinsamen RISC-Rechenkern (RISC: Reduced Instruction Set Computer/Rechner mit reduziertem Instruktionssatz) mit Datenfluß-Einheiten für verschiedenartige Datentypen.The Expandable architecture of the Digital Signal Processor combined preferably a common RISC calculation kernel (RISC: Reduced Instruction Set computer / calculator with reduced instruction set) with data flow units for different types Data types.

Dies Verfahren kennzeichnet sich durch folgende Eigenschaften:

  • 1. Konsequente Aufspaltung des Prozessors und seines Instruktionssatzes in Ablauf-/Datenflusssteuerung (RISC-Teil) und Datenstrom-Verarbeitung (Datenfluss-Teil).
  • 2. Minimierung bzw. Reduktion der Ausführungszeit für Operationen des RISC-Teils auf ein Minimum (typischerweise 1 Takt).
  • 3. Realisierung von komplexen stark gepipelineten und datentypabhängigen Datenfluss-Operationen, wobei diese sowohl im Vordergrund, d.h. durch eine Prozessorinstruktion, als auch im Hintergrund, d. h. in einem parallelisierten Prozess, in dem der Datenfluss-Teil nach einer Initialisierung selbständig Daten anfordert und abgibt, ablaufen können.
This method is characterized by the following properties:
  • 1. Consistent splitting of the processor and its instruction set into flow / data flow control (RISC part) and data flow processing (data flow part).
  • 2. minimize or reduce the execution time for RISC part operations to a minimum (typically 1 clock).
  • 3. Realization of complex highly pipelined and data type-dependent data flow operations, these being both in the foreground, ie by a processor instruction, as well as in the background, ie in a parallelized process in which the data flow part independently requests and delivers data after an initialization, can expire.

Durch dieses Verfahren erreicht man ebenfalls eine hohe Auslastung der Recheneinheiten und Busse des Prozessors, indem die einzelnen, evtl. stark gepipelineten Datenfluss-Einheiten im Zeitmultiplex direkt über den Instruktionssatz oder im Hintergrund über insbesondere eine geeignete Speicherzugriffssteuerung, z.B. eine DMA-Steuer Logik (DMA: Direct Memory Access/Direkter Speicherzugriff) erreicht wird. Hier findet somit eine Umschaltung zwischen verschiedenen erforderlichen und vorteilhaften Verarbeitungseinrichtungen und/oder Verarbeitungsabkäufen statt.By This method also achieves a high utilization of the Arithmetic units and buses of the processor, adding the individual, possibly strong pipelined data flow units in time multiplex directly over the instruction set or in the background about in particular a suitable Memory access control, e.g. a DMA control logic (DMA: Direct Memory Access / Direct Memory Access) is achieved. Here you will find thus a switch between different required and advantageous processing facilities and / or processing purchases.

Die Separation der Ausführungseinheiten bzw. verschiedenen Einrichtungen erlaubt es, für jede der Ausführungseinheiten einfache Steuerungen zu programmieren. Die Synchronisation erfolgt über eine Buszuteilungslogik. Dies bewirkt sowohl eine Modularisierung und damit bessere Wartbarkeit/Wiederverwendbarkeit der Software, als auch eine Reduktion des Speicherbedarfs für die Programme, da vorteilhafterweise nur relativ kurze Programme für die einzelnen Blöcke abgespeichert werden müssen. Die gemäß VLWI (Very Long Instruction Word) notwendige, harte Verkopplung der verschiedenen Blöcke wird beim vorliegenden Ansatz vermieden, was bei einer begrenzten Anzahl von Datenbussen im Mittel zu einer Erhöhung des Datendurchsatzes führt.The Separation of execution units or Various facilities allow, for each of the execution units to program simple controls. The synchronization takes place via a Bus arbitration logic. This causes both a modularization and thus better maintainability / reusability of the software, as also a reduction of the memory requirements for the programs, since advantageously only relatively short programs for the individual blocks must be stored. The according to VLWI (Very Long Instruction Word), hard coupling of the various blocks is avoided in the present approach, which in a limited Number of data buses on average leads to an increase in data throughput.

Ausführungsbeispiele werden nachfolgend anhand der Zeichnung näher erläutert. Es zeigen:embodiments will be explained in more detail with reference to the drawing. Show it:

1 Komponenten einer Prozessoranordnung gemäß einem ersten Ausführungsbeispiel, 1 Components of a processor arrangement according to a first embodiment,

2 Komponenten einer Prozessoranordnung gemäß einem ersten Ausführungsbeispiel und 2 Components of a processor arrangement according to a first embodiment and

3 Komponenten einer Prozessoranordnung gemäß dem Stand der Technik. 3 Components of a processor arrangement according to the prior art.

Ein Prozessor besteht aus einer Vielzahl von einzelnen Komponenten, insbesondere eigenständigen oder gesteuerten Funktionseinrichtungen, von denen in den 1 und 2 nur diejenigen dargestellt sind, die für das Verständnis der besonderen Prozessoranordnung des Steuerverfahrens dafür zweckmäßig erscheinen. Dabei werden bei der Beschreibung der Ausführungsbeispiele Wiederholungen vorzugsweise vermieden. Insbesondere stehen gleiche Bezeichnungen für vergleichbare Einrichtungen.A processor consists of a plurality of individual components, in particular stand-alone or controlled functional devices, of which in the 1 and 2 only those that are useful in understanding the particular processor arrangement of the control method are illustrated. Repetitions are preferably avoided in the description of the embodiments. In particular, the same names stand for comparable facilities.

Der Prozessor des ersten Ausführungsbeispiels ist, wie aus 1 ersichtlich, aufgespalten in einen RISC-Teil, einen zentralen Instruktionsdekoder IDC für die Programmablaufsteuerung und die Steuerung des RISC-Teils, mehrere Speicherblöcke und mehrere Schnittstellenmodule.The processor of the first embodiment is as shown 1 can be seen, split into a RISC part, a central instruction decoder IDC for the program control and the control of the RISC part, a plurality of memory blocks and a plurality of interface modules.

Die einzelnen im Blockdiagramm dargestellten Baugruppen werden einschließlich ihrer kennzeichnenden Charakteristika im folgenden aufgelistet. Dabei sind die einzelnen Baugruppen bzw. Einrichtungen durch einen Steuerbus p1 zum Übertragen von Befehlen bzw. Instruktionen, einen oder mehrere Datenbusse d0, d1 und gegebenenfalls einen zusätzlichen Bus r zum Ansteuern von Schnittstellen IF, IF_1,..., IF_k als internen oder externen Schnittstellen verbunden. Auch ein zusätzlicher Adressbus kann bereitgestellt sein.The individual modules shown in the block diagram are including their Characteristic characteristics listed below. there are the individual modules or facilities by a control bus p1 to transmit of instructions, one or more data buses d0, d1 and optionally an additional one Bus r for controlling interfaces IF, IF_1, ..., IF_k as internal or external interfaces. Also an additional address bus can be provided.

Der RISC-Teil enthält folgende Komponenten bzw. erfüllt folgende Aufgaben. Diesem sind zugeordnet eine Programm-Ablaufsteuerung, eine Adressberechnung für die Datenbusse, ein schneller indirekter Speicherzugriff, z.B. ein für sich bekannter Huffman Dekoder, eine Integer-Arithmetik, eine Bitstrom-Manipulationseinrichtung und eine Register-Bank.The RISC part contains the following components or fulfills the following tasks. These are associated with a program flow control, an address calculation for the data buses, a fast indirect memory access, eg a Huffman decoder known per se, an integer arithmetic, a bit stream manipulation device and a register bank.

Der RISC-Teil ist ein wesentliches Element des Prozessor-Konzepts des ersten Ausführungsbeispiels und auch vorteilhaft bei dem Konzept des zweiten Ausführungsbeispiels einsetzbar.Of the RISC part is an essential element of the processor concept of the first embodiment and also advantageous in the concept of the second embodiment used.

Alle Operationen, die im RISC-Teil durchgeführt werden, arbeiten vorteilhafterweise auf einer Registerbank. Weiterhin werden alle Operationen des RISC-Teils im angeführten ersten Ausführungsbeispiel vorzugsweise innerhalb eines Taktes ausgeführt. Dies hat den Vorteil, dass die Latenzzeit für einen Datenspeicherzugriff entfällt und alle Operationen sowie deren Ergebnisse in einer sehr frühen Pipelinestufe vorliegen. Dadurch verkürzen sich Latenzzeiten in Programmschleifen, bei Sprüngen und bei indirekten Speicherzugriffen, was wiederum eine Vereinfachung der Programmierung und vor allem eine Erhöhung der Rechenleistung zur Folge hat.All Operations performed in the RISC part work advantageously on a register bank. Furthermore, all operations of the RISC part in the cited first embodiment preferably executed within a clock. This has the advantage that the latency for a data storage access is eliminated and all operations and their results in a very early pipeline stage available. Shorten it latencies in program loops, in jumps and in indirect memory access, which in turn simplifies programming and above all one increase the computing power results.

Die Datenfluss-Prozessierung findet in einer von vorzugsweise mehreren Datenfluss-Prozessierungseinheiten DFP statt. Die Datenfluss-Prozessierungseinheiten DFP sind dadurch gekennzeichnet, dass sie datentypabhängig sind, direkt auf mehrere Busse p1, d0, d1 zugreifen, eine eigene Ablaufsteuerung enthalten und eine längere Latenzzeit für ihre Ausführungseinheiten benötigen können.The Data flow processing takes place in one of preferably several Data flow processing units DFP instead. The data flow processing units DFPs are characterized by being data type dependent, directly access to several buses p1, d0, d1, a separate flow control included and a longer one Latency for their execution units need can.

Eine Einsatzmöglichkeit der Datenfluss-Prozessoren bzw. Prozessierungseinheiten ist in der direkten Ansteuerung der Rechenoperation durch den Instruktionssatz gegeben.A possible use the data flow processors or processing units is in the direct control of the arithmetic operation by the instruction set given.

Die Datenfluss-Prozessierungseinheiten DFP sind jedoch weiterhin auch dadurch gekennzeichnet, dass sie einmal angestoßen, zyklisch wiederholt Operationen ausführen können, die mit zugehörigen Zeigern von Addressgeneratoren des RISC-Teils auf Speicherbereiche des Hauptspeichers M zugreifen können. Dieser Datenzugriff findet dabei per direktem Speicherzugriff (DMA) sozusagen im Hintergrund statt. Im Vordergrund steht zweckmäßigerweise der Speicherzugriff durch den aktuellen Befehlssatz. Unter Hintergrund-Speicherzugriff ist dabei ein geringer priorisierter Speicherzugriff zu verstehen, der nur dann stattfindet, wenn Datenbusse frei sind.The However, data flow processing units DFP are still too characterized in that once initiated, cyclically repeats operations To run can, the associated with Pointers of address generators of the RISC part to memory areas of the main memory M can access. This data access takes place via direct memory access (DMA) in the background, so to speak. In the foreground is expediently the memory access by the current instruction set. Under background memory access is to understand a low priority memory access, which takes place only when data buses are free.

Von den hier beschriebenen Datenfluss-Prozessierungseinheiten DFP können mehrere parallel im Hintergrund betrieben werden, wobei diese natürlich untereinander beim Buszugriff zu priorisieren sind. Dadurch ist es trotz eventuell langer Ausführungspipeline möglich, die Datenbusbelegung, die das Kriterium für die Leistungsfähigkeit eines digitalen Signalprozessors ist, zu maximieren. Die Parallelisierung erfolgt dabei durch die Buszuteilungslogik im Instruktionsdekoder bzw. in der Adressgenerierungseinheit statt durch eine starre Kopplung mittels langer Instruktionsworte.From The data flow processing units DFP described here can have several operated in parallel in the background, these of course with each other to prioritize on bus access. This is despite it eventually long execution pipeline possible, the data bus occupancy, which is the criterion for performance of a digital signal processor is to maximize. The parallelization takes place through the bus arbitration logic in the instruction decoder or in the address generation unit instead of a rigid coupling by means of long instruction words.

Typische Beispiele für Datenfluss-Prozessierungseinheiten DFP sind eine Fließkomma-Einheit, ein FFT-Prozessor (FFT: Fast Fourier Transformation/schnelle Fourier-Transformation) oder ein Viterbi-Dekoder.typical examples for Data flow processing units DFP are a floating-point unit FFT processor (FFT: Fast Fourier Transformation / Fast Fourier Transformation) or a Viterbi decoder.

Besonders bevorzugte beispielhafte Anwendungsmöglichkeiten sind eine FIR-Filter-Berechnung (Finite Impulse Response/finite Impulsantwort) als ein nicht rekursives Filter, ein komplexwertiger Mischer, eine Galois-Feld-Berechnung oder ein DCT-Prozessor (DCT: Diskrete Cosinus Transfomation).Especially preferred exemplary applications are an FIR filter calculation (Finite Impulse Response / finite impulse response) as a non-recursive Filter, a complex-valued mixer, a Galois field calculation or a DCT (DCT: Discrete Cosine Transform) processor.

Die Datenfluss-Prozessierungseinheiten DFP stellen den erweiterbaren Teil der vorgeschlagenen Architektur dar und können je nach Anwendungsgebiet in unterschiedlichen Varianten in die Prozessorarchitektur integriert werden.The Data Flow Processing Units DFP make the extensible Part of the proposed architecture and may vary depending on the application integrated in different variants in the processor architecture become.

Der Vorteil dieser erweiterbaren Architektur besteht unter anderem darin, dass der Hauptteil eines Compilers, insbesondere der Teil, der die Programmablaufsteuerung und Programmstrukturierung betrifft, nur einmal realisiert zu werden braucht. Die Datenfluss-Prozessierungseinheiten bilden sich in zugehörigen Programmmentwicklungswerkzeugen typischerweise als Datentyp-Erweiterungen ab, so dass sich die Expandierbarkeit der vorgeschlagenen Prozessorarchitektur auch auf die zugehörigen Werkzeuge ausweitet.Of the One advantage of this expandable architecture is that the main part of a compiler, especially the part that the Program scheduling and program structuring concerns only needs to be realized once. The data flow processing units form in associated Program development tools typically as data type extensions so that the expandability of the proposed processor architecture also on the associated Extends tools.

Speicherblöcke Mem_0, Mem_1,... sind im angegebenen Ausführungsbeispiel dadurch gekennzeichnet, dass sie jeweils an mehrere Datenbusse d0, d1 gekoppelt sind. Dies erlaubt es, durch geschickte Speicheraufteilung bei der Programmierung oder durch gleichzeitigen Einsatz mehrerer Datenfluss-Prozessierungseinheiten DFP gleichzeitig auf mehrere Busse d0, d1 zuzugreifen, um den Datendurchsatz zu erhöhen.Memory blocks Mem_0, Mem_1, ... are characterized in the specified embodiment, that they are each coupled to a plurality of data buses d0, d1. This allows it, by clever memory allocation during programming or by simultaneously using multiple data flow processing units DFP simultaneously to access multiple buses d0, d1 to increase data throughput.

Die Schnittstellen-Module IF, IF_1,... sind für den Datentransfer zwischen Prozessorkern und externen Einheiten vorgesehen. Die Anbindung der Schnittstellen-Module kann dabei ebenfalls per Hintergrund Speicherzugriff oder durch eine Unterbrechungs-(Interrupt)-Logik erfolgen.The Interface modules IF, IF_1, ... are for data transfer between Processor core and external units provided. The connection of the interface modules can also be accessed through background memory access or through an interrupt (interrupt) logic take place.

Insbesondere ist es möglich, die Busse mit einer Schnittstelle nach außerhalb des eigentlichen Prozessors auszugestalten, so dass nachträgliche Erweiterungen um weitere solche Datenfluss-Prozessierungseinheiten DFP vorgenommen werden können.In particular, it is possible to have the buses with an interface to outside the actual Processor design so that subsequent extensions to other such data flow processing units DFP can be made.

Der Instruktionsdekoder IDC verwaltet als eine Verarbeitungseinrichtungs-Steuereinrichtung die Vordergrundbefehle des Prozessors und steuert gleichzeitig die Synchronisierung der Vordergrundaktivität mit den parallelen Hintergrundprozessen.Of the Instruction decoder IDC, as a processing device controller, manages the Foreground commands of the processor while controlling the synchronization the foreground activity with the parallel background processes.

Die hier beschriebene Prozessorarchitektur ist in folgenden Bereichen einsetzbar, insbesondere als ein Prozessor für Audiosignalverarbeitung, als ein Prozessor für hohen Datendurchsatz, z.B. für Video-Kompression/Dekompression, für digitale Modem-Anwendungen, insbesondere Radio/Funk-Modem-Anwendungen, als ein Prozessor für gemischte Controller und Signalverarbeitungsaufgaben oder als ein Signalprozessor für Anwendungen mit kompiliertem Ausführungscode, der Spezialdatentypen erfordert. Weitere Einrichtungen und Funktionen, die bei dem ersten Ausführungsbeispiel vorteilhaft umsetzbar bzw. einsetzbar sind, können aus dem zweiten Ausführungsbeispiel übernommen werden.The The processor architecture described here is in the following areas can be used, in particular as a processor for audio signal processing, as a processor for high data throughput, e.g. For Video compression / decompression, for digital modem applications, especially radio / wireless modem applications, as a mixed controller processor and signal processing tasks or as a signal processor for applications with compiled execution code, requires special data types. Other facilities and functions, that in the first embodiment can be advantageously implemented or used, can be taken from the second embodiment become.

Bei dem zweiten Ausführungsbeispiel weist die Prozessoranordnung, wie dies aus 2 ersichtlich ist, neben einem ersten Steuerbus p1 zusätzlich einen zweiten Steuerbus p2 auf. Natürlich ist auch eine Erweiterung auf noch weitere Steuerbusse umsetzbar. Während der erste Steuerbus p1 dazu dient, Instruktionen iw, die allgemein auch als Befehl oder Anweisungen bezeichnet werden, von einer ersten Programmfluss-Generierungs-Einrichtung PFG aufzunehmen und zu verschiedenen Verarbeitungseinrichtungs-Steuereinrichtungen IDC2 direkt damit ansteuerbaren Verarbeitungseinrichtungen VIT oder Speichereinrichtungen M als Standard-Basis-Instruktionen zu übertragen, dienen der zweite und weitere Steuerbusse p2 zum Übertragen zusätzlicher Instruktionen iw2, welche von einer entsprechenden zusätzlichen Programmfluss-Generierungseinrichtung PFG2 erzeugt werden. Diese zusätzlichen bzw. weiteren Instruktionen iw2 dienen dazu, gezielt die weiteren Verarbeitungseinrichtungs-Steuereinrichtungen IDC2 oder auch Speichereinrichtungen M parallel zu den ersten Instruktionen iw anzusteuern, so dass ein paralleler Betrieb der Verarbeitungseinrichtungs-Steuereinrichtungen IDC, IDC2 und weiterer Verarbeitungseinrichtungen VIT, M ermöglicht wird.In the second embodiment, the processor arrangement as shown 2 it can be seen, in addition to a first control bus p1 in addition to a second control bus p2. Of course, an extension to even more tax busses can be implemented. While the first control bus p1 serves to receive instructions iw, also commonly referred to as a command or instructions, from a first program flow generator PFG and processing means VIT or memory means M directly controllable by various processor controllers IDC2 as a standard basis The second and further control buses p2 serve to transmit additional instructions iw2, which are generated by a corresponding additional program flow generator PFG2. These additional instructions or further instructions iw2 serve to selectively control the further processing device control devices IDC2 or also storage devices M in parallel to the first instructions iw, so that a parallel operation of the processing device control devices IDC, IDC2 and further processing devices VIT, M is made possible.

Die Instruktionen iw, iw2 entsprechen dabei einem in Maschinensprache umgesetzten Programmcode, wobei die Umsetzung des Programmcodes in die Maschinensprache von den Programmfluss-Generierungseinrichtungen PFG, PFG2 durchgeführt wird. Die Instruktionen können dabei neben Instruktionsdaten auch Informations- und Adressdaten aufweisen. Bei der Programmierung einer solchen Prozessoranordnung wird in dem Programmcode entsprechend berücksichtigt, dass die verschiedenen Programm- und Generierungseinrichtungen PFG, PFG2 für eine Optimierung des Betriebs vorteilhafterweise mit separaten Programmcodeabschnitten angesteuert werden.The Instructions iw, iw2 correspond to one in machine language implemented program code, the implementation of the program code into the machine language of the program flow generation facilities PFG, PFG2 performed becomes. The instructions can besides instruction data also information and address data exhibit. In the programming of such a processor arrangement is considered in the program code accordingly, that the different Program and generation facilities PFG, PFG2 for optimization the operation advantageously with separate program code sections be controlled.

Zur allgemeinen Kontrolle des Prozessors dient insbesondere eine Steuer- und Takteinrichtung C, welche mit verschiedenen Einrichtungen des Prozessors verbunden ist, wie dies für sich genommen bekannt ist. Insbesondere kann auch eine Verbindung zu einem Adressgenerator A bestehen, welcher über einen Adressbus a verschiedene Einrichtungen, insbesondere verschiedene Verarbeitungseinrichtungen, externe Schnittstellen IF und eine oder mehrere zentrale Speichereinrichtungen M ansteuert. Die Adressansteuerung koordiniert dabei insbesondere den Zugriff verschiedener Einrichtungen auf Datenbusse d0, d1, welche zum Übertragen der eigentlichen zu verarbeitenden bzw. verarbeiteten Daten in der Prozessoranordnung ausgebildet sind, wie dies ebenfalls für sich bekannt ist.to general control of the processor is used in particular by a control and clock C, which with different facilities of the Processor is connected, as it is known on its own. In particular, it is also possible to connect to an address generator A exist, which over an address bus a different devices, in particular different Processing facilities, external interfaces IF and one or several central memory devices M drives. The address control coordinates in particular the access of various institutions on data buses d0, d1, which for transmitting the actual to be processed or processed data in the processor arrangement are formed, as is also known.

Beim dargestellten Ausführungsbeispiel werden der standardmäßigen ersten Verarbeitungseinrichtungs-Steuereinrichtung, die insbesondere als Instruktionsdecoder IDC ausgebildet ist, die ersten Instruktionen iw der standardmäßigen ersten Programmfluss-Generierungs-Einrichtung PFG zugeführt. Die Verarbeitungseinrichtungs-Steuereinrichtung IDC dient zum Umsetzen der Instruktionen iw in direkte Steueranweisungen iwx für verschiedene Verarbeitungseinrichtungen X (DFP), FPU. Die Verarbeitungseinrichtungs-Steuereinrichtung IDC weist vorteilhafterweise eine Vielzahl von Ausgängen auf, an welchen die entsprechenden verschiedenen Verarbeitungseinrichtungen X, FPU angeschlossen sind. Neben der Übersetzung der Instruktionen iw in die Steueranweisungen iwx übernimmt die Verarbeitungseinrichtungs-Steuereinrichtung IDC die Steuerung der angeschlossenen Verarbeitungseinrichtungen. Beim vorliegenden Ausführungsbeispiel ist insbesondere eine Gleit-, Berechnungseinrichtung FPU (Floating Point Unit) an der ersten Verarbeitungseinrichtungs-Steuereinrichtung IDC angeschlossen. Weiterhin ist eine zusätzliche Verarbeitungseinrichtung X für andere spezialisierte Verarbeitungszwecke oder allgemeine Verarbeitungszwecke der Daten d angeschlossen.At the illustrated embodiment become the default first Processing device controller, which is designed in particular as an instruction decoder IDC, the first instructions iw the standard first program flow generation device PFG supplied. The processing device controller IDC is used to translate the instructions iw into direct control statements iwx for various processing facilities X (DFP), FPU. The processing device controller IDC advantageously has a plurality of outputs which are the corresponding different processing devices X, FPU are connected. In addition to the translation of the instructions iw into the iwx control statements the processing device controller IDC controls the connected processing equipment. At present embodiment is in particular a sliding, calculation device FPU (Floating Point Unit) at the first processing device controller IDC connected. Furthermore, an additional processing device X for others specialized processing or general purpose processing the data d connected.

Die weiteren, zweiten Instruktionen iw2 der zweiten bzw. weiteren Programmfluss-Generierungs-Einrichtung PFG2 dienen zur parallelen Ansteuerung der zweiten Verarbeitungseinrichtungs-Steuereinrichtung IDC2. Diese setzt zugeführte Instruktionen iw, iw2 in entsprechende Steueranweisungen iwx um, welche angeschlossenen Verarbeitungseinrichtungen INTU, FFT zugeführt werden. Die speziellen Verarbeitungseinrichtungen, die an der dargestellten zweiten Verarbeitungseinrichtungs-Steuereinrichtung IDC2 beispielhaft angeschlossen sind, sind eine Berechnungseinrichtung für ganze Zahlen INTU und eine Foyer-Transformations-Berechnungs-Einrichtung FFT. Diese Verarbeitungseinrichtungen dienen somit ebenfalls speziellen Zwecken der Datenverarbeitung.The further, second instructions iw2 of the second or further program flow generation device PFG2 serve to drive the second processing device control device IDC2 in parallel. This converts supplied instructions iw, iw2 into corresponding control instructions iwx, which are supplied to connected processing devices INTU, FFT. The special processing equipment, the of the illustrated second processing device controller IDC2 are an integer-number calculating means INTU and a foyer-transformation calculating means FFT. These processing devices are thus also used for special purposes of data processing.

Der zweiten Verarbeitungseinrichtungs-Steuereinrichtung IDC2 ist eine Schalteinrichtung SW vorgeschaltet, welche je nach Schaltstellung entweder Instruktionen iw der ersten Programmfluss-Generierungs-Einrichtung PFG zuführt, wie das gemäß dem Stand der Technik für sich bekannt ist, oder Instruktionen iw2 der zweiten Programmfluss-Generierungs-Einrichtung PFG2 zuführt. Dadurch kann die zweite Verarbeitungseinrichtungs-Steuereinrichtung IDC2 wahlweise, wie für sich bekannt, betrieben werden, kann aber alternativ auch direkt parallel zu der ersten Verarbeitungseinrichtungs-Steuereinrichtung IDC betrieben werden.Of the second processing device controller IDC2 is a Switching device SW upstream, which depending on the switching position either instructions iw the first program flow generation device PFG feeds, like that according to the state the technology for is known, or instructions iw2 the second program flow generation device PFG2 supplies. As a result, the second processing device control device IDC2 optional, as it is for you be known, operated, but can alternatively also directly in parallel to the first processing device controller IDC.

Als Schaltsignal für die Schalteinrichtung SW kann vorteilhafterweise direkt eine Instruktion iw2 auf dem zweiten Steuerbus p2 verwendet werden. Bei dieser einfachen Ausführungsform schaltet die Schalteinrichtung SW2 immer dann automatisch auf den zweiten Steuerbus p2, wenn dort ein Signal bzw. Instruktionen iw2 anliegen. Alternativ schaltet die Schalteinrichtung auf den ersten Steuerbus p1.When Switching signal for the switching device SW can advantageously directly an instruction iw2 can be used on the second control bus p2. In this simple embodiment always switches the switching device SW2 automatically to the second control bus p2, if there is a signal or instructions iw2 issue. Alternatively, the switching device switches to the first Control bus p1.

Alternativ können aber auch andersartige Schaltsignale bereitgestellt werden. Beispielsweise kann die Schalteinrichtung SW stets einen der beiden Steuerbusse p1, p2 beobachten und anhand von Adressinformationen in den darauf übertragenen Instruktionen iw, iw2 bestimmen, von welchem der beiden Steuerbusse p1, p2 die Instruktionen iw, iw2 abzurufen und zu der zweiten Verarbeitungseinrichtungs-Steuereinrichtung ID2 zu führen sind.alternative can but also different types of switching signals are provided. For example, can the switching device SW always one of the two control buses p1, Observe p2 and based on address information in the transmitted Instructions iw, iw2 determine from which of the two control buses p1, p2 retrieve the instructions iw, iw2 and to the second processing device controller To run ID2 are.

Außerdem ist bei der dargestellten Prozessoranordnung eine weitere Verarbeitungseinrichtung VIT am ersten Steuerbus p1 angeschlossen, der die ersten Instruktionen iw von der ersten Programmfluss-Generierungs-Einrichtung PFG zugeführt werden. Beim dargestellten Ausführungsbeispiel soll diese weitere Verarbeitungseinrichtung VIT einen Viterbi Decoder ausbilden, welcher Daten d auf einem der Datenbusse d0, d1 abruft, verarbeitet und wieder auf einen der Datenbusse d0, d1 ausgibt.Besides that is in the illustrated processor arrangement, a further processing device VIT connected to the first control bus p1, the first instructions iw from the first program flow generation means PFG. In the illustrated embodiment this further processing device VIT is a Viterbi decoder which data d gets on one of the data buses d0, d1, processed and output again on one of the data buses d0, d1.

Diese weitere Verarbeitungseinrichtung VIT weist ebenfalls eine Schalteinrichtung SW* auf, um alternativ zu den Instruktionen iw der ersten Programmfluss-Generierungs-Einrichtung PFG weitere, zweite Instruktionen iw2 von einer eigenständigen Programmfluss-Generierungs-Einrichtung zugeführt zu bekommen, die in Form einer Zustandsmaschine SMausgebildet ist. Durch den Einsatz der weiteren Schalteinrichtung SW* können somit je nach Bedarf Steuersignale bzw. Instruktionen iw, sw2 von verschiedenen Steuersignalquellen zu der weiteren Verarbeitungseinrichtung VIT zugeführt werden.These Further processing device VIT also has a switching device SW * on, as an alternative to the instructions iw the first program flow generation means PFG further, second Instructions iw2 from a standalone program flow generation facility fed to get, which is in the form of a state machine SMausgebildet. By using the further switching device SW * can thus as required, control signals or instructions iw, sw2 from different control signal sources are supplied to the further processing device VIT.

Dies ermöglicht eine parallele Abarbeitung von Standardisierten Abläufen, wie beispielsweise der Ausführung eines Viterbi-Algorithmus, bei dem eine Vielzahl standardmäßig ablaufender Programmschritte zur Verarbeitung der Daten d abzuarbeiten ist. Während dieser Abarbeitung ist die Zuführung der Instruktionen iw der Programmfluss-Generierungs-Einrichtung PFG nicht erforderlich, so dass diese nicht entsprechend blockiert wird, sondern für die Generierung von Instruktionen iw für andere Verarbeitungseinrichtungs-Steuereinrichtungen IDC, IDC2 frei bleibt. Für die spezielle Abarbeitung werden die zweiten Instruktionen iw2 entweder direkt von der Zustandsmaschine SM erzeugt oder aus einem dieser zugeordneten integrierten oder externen Speicher abgerufen und bereitgestellt.This allows a parallel processing of standardized processes, such as for example, the execution a Viterbi algorithm, where a variety of standard expires Program steps to process the data d is to work. While this processing is the feeder the instructions iw the program flow generation device PFG not required so that it is not blocked accordingly, but for the generation of instructions iw for other processing device controllers IDC, IDC2 free remains. For the special processing will be the second iw2 instructions either generated directly from the state machine SM or one of these associated or external memory retrieved and deployed.

Vorteilhafterweise stellt 2 zwei alternative Ausführungsformen mit Schalteinrichtungen SW bzw. SW* zum Zuführen zweiter Instruktionen iw2, sw2 zu einer Verarbeitungseinrichtungs-Steuereinrichtung IDC2 bzw. einer weiteren Verarbeitungseinrichtung VIT dar. Derartige Anordnungen können alternativ oder, wie dargestellt, parallel zueinander betrieben werden. Insbesondere ist eine Erweiterung um weitere Programmfluss-Generierungs-Einrichtungen, Steuerbusse, Verarbeitungseinrichtungs-Steuereinrichtungen und weitere Verarbeitungseinrichtungen nach Bedarf möglich.Advantageously 2 Two alternative embodiments with switching devices SW and SW * for supplying second instructions iw2, sw2 to a processing device controller IDC2 and another processing device VIT. Such arrangements can alternatively or as shown, operated in parallel. In particular, an extension to other program flow generation devices, control buses, processing device controllers and other processing devices as needed is possible.

Alternativ oder zusätzlich kann auch die erste Verarbeitungseinrichtungs-Steuereinrichtung mit einer vorgeschalteten Schalteinrichtung ausgestattet werden. Insbesondere ist es möglich, in den Schalteinrichtungen SW* und/oder den Programmfluss-Generierungs-Einrichtungen in Form eigenständiger Zustandsmaschinen SM und dergleichen entsprechende Instruktionen oder Steueranweisungen in einer Form bereitzustellen, wie sie von den nachgeschalteten Verarbeitungseinrichtungs-Steuereinrichtungen IDC2 oder weiteren Verarbeitungseinrichtungen VIT zu deren idealer Ansteuerung optimal geeignet sind.alternative or additionally may also be the first processing device controller be equipped with an upstream switching device. In particular, it is possible in the switching devices SW * and / or the program flow generation devices in the form of independent State machines SM and the like corresponding instructions or provide control statements in a form as defined by the downstream processing device controllers IDC2 or further processing devices VIT for their ideal control are optimally suitable.

Claims (8)

Prozessor mit – einer ersten Programmfluss-Generierungseinrichtung (PFG) zum Erzeugen von ersten Instruktionen (iw) als Grundlage für erste Steueranweisungen für zumindest eine Verarbeitungseinrichtung (INTU, FFT; DFP), – einem ersten Steuerbus (p1) zum Übertragen der ersten Instruktionen (iw) von der ersten Programmfluss-Generierungseinrichtung (PFG) zu einem ersten Instruktionsdekoder (IDC) zum Umsetzen der ersten Instruktionen (iw) in Steueranweisungen (iwx), – zumindest einen zweiten Programmfluss-Generierungseinrichtung (SM; PFG2) zum Erzeugen von zweiten Instruktionen (iw2) als Grundlage für direkte Steueranweisungen (iwx) für zumindest eine Verarbeitungseinrichtung (INTU, FFT; DFP), – einem zweiten Steuerbus (p2) zum Übertragen der zweiten Instruktionen (iw2) und – einem zweiten Instruktionsdekoder (IDC2; DFP) mit einer vorgeschalteten Schalteinrichtung (SW; SW*) zum Zuführen wahlweise der ersten Instruktionen (iw) vom ersten Steuerbus (p1) oder der zweiten Instruktionen (iw2) vom zweiten Steuerbus (p2).Processor with - a first program flow generation device (PFG) for generating first instructions (iw) as a basis for first control instructions for at least one processing device (INTU, FFT, DFP), - a first control bus (p1) for transmitting the first instructions (iw ) from the first program flow generator (PFG) to a first instruction decoder (IDC) for implementing the first instructions (iw) in control instructions (iwx), - at least one second program flow generator (SM; PFG2) for generating second instructions (iw2) as a basis for direct control instructions (iwx) for at least one processor (INTU, FFT; DFP) - a second control bus (p2) for transmitting the second instructions (iw2) and - a second instruction decoder (IDC2; DFP) with an upstream switching device (SW; SW *) for supplying optionally the first instructions (iw) from the first control bus (p1 ) or the second instructions (iw2) from the second control bus (p2). Prozessor nach Anspruch 1 mit einer Zustandsmaschine (SM) als der zweiten Programmfluss-Generierungseinrichtung zum Erzeugen der zweiten Instruktionen (iw2) für einen standardisierten Steuerablauf der weiteren Verarbeitungseinrichtung (SW*, VIT). The processor of claim 1 including a state machine (SM) as the second program flow generating means for generating the second instructions (iw2) for a standardized control flow the further processing device (SW *, VIT). Prozessor nach einem der Ansprüche 1 oder 2 mit einem Viterbi-Decoder (VIT), einer Gleitkomma-Berechnungs-Einrichtung, einem FFT-Prozessor (FFT: Fast Fourier Transformation), einer FIR-Filterberechnung (FIR: Finite Impulse Response), einer komplexen Mischereinrichtung, einer Galois-Feld- Berechnungseinrichtung oder einem DCT-Prozessor (DCT: Discrete Cosinus Transformation) als der weiteren Verarbeitungseinrichtung (DFP; FFT, VIT, X).Processor according to one of claims 1 or 2 with a Viterbi decoder (VIT), a Floating point calculator, an FFT processor (FFT: Fast Fourier Transformation), an FIR filter calculation (FIR: Finite Impulse Response), a complex mixer, a Galois Field Calculator or a DCT (DCT: Discrete Cosinus Transformation) processor as the further processing device (DFP, FFT, VIT, X). Prozessor nach einem der Ansprüche 1–3, bei dem die Verarbeitungseinrichtungs-Steuereinrichtung (IDC2; IDC) und/oder eine Schalteinrichtung (SW*) mit einer Programmfluss-Generierungseinrichtung (PFG, PFG2; RISC) verbunden sind, welche die Instruktionen (iw, iw2) mit einem reduzierten Instruktionssatz bereitstellt.Processor according to one of claims 1-3, wherein said processing means control means (IDC2; IDC) and / or a switching device (SW *) with a program flow generation device (PFG, PFG2, RISC) which contain the instructions (iw, iw2) with a reduced instruction set. Prozessor nach einem der Ansprüche 1–3, bei dem die Programmfluss-Generierungseinrichtung(en) (PFG, PFG2; RISC) Instruktionen (iw, iw2) mit einem Instruktionssatz für die Ansteuerung entweder nur der ersten Verarbeitungseinrichtungs-Steuereinrichtung (IDC) einerseits oder andererseits nur der zweiten Verarbeitungseinrichtungs-Steuereinrichtung (IDC2) und/oder der weiteren Verarbeitungseinrichtung (SW*, VIT) ausgebildet ist.Processor according to one of claims 1-3, wherein the program flow generating device (s) (PFG, PFG2, RISC) Instructions (iw, iw2) with an instruction set for the Driving either only the first processor controller (IDC) on the one hand or only the second processing device control device on the other hand (IDC2) and / or the further processing device (SW *, VIT) is trained. Prozessor nach einem der Ansprüche 1–5, bei dem die zumindest eine Schalteinrichtung (SW, SW*) zum Zuführen der zweiten Instruktionen (IW2) immer dann, wenn zweite Instruktionen (iw2) für die zugeordnete Verarbeitungseinrichtungs-Steuereinrichtung (IDU2) bzw. die zugeordnete weitere Verarbeitungseinrichtung (VIT) vorliegen, ausgebildet ist.Processor according to one of claims 1-5, wherein the at least one Switching device (SW, SW *) for supplying the second instructions (IW2) whenever second instructions (iw2) for the associated Processing device controller (IDU2) or the associated further processing device (VIT) present, is formed. Prozessor nach einem der Ansprüche 1–5, bei dem die zumindest eine Schalteinrichtung (SW) zum Zuführen der zweiten Instruktionen (iw2) immer dann, wenn von der Programmfluss-Generierungs-Einrichtung (PFG2) zweite Instruktionen (iw2) für die zugeordnete Verarbeitungseinrichtungs-Steuereinrichtung (IDU2) bzw. die zugeordnete weitere Verarbeitungseinrichtung angekündigt werden, ausgebildet ist.Processor according to one of claims 1-5, wherein the at least one Switching device (SW) for feeding the second instructions (iw2) whenever the program flow generation means (PFG2) second instructions (iw2) for the associated processing device controller (IDU2) or the associated further processing device are announced, is trained. Verfahren zum Steuern eines Prozessors nach einem der Ansprüche 1–7, bei dem – zumindest eine Verarbeitungseinrichtung (SPU, INTU, VIT; DFP) zum Verarbeiten von Daten (d) mittels einer Schalteinrichtung (SW; SW*) zum Zuführen wahlweise erster Instruktionen (iw) oder zweiter Instruktionen (iw2) als Adressen und/oder Steueranweisungen von entweder einer ersten Programmfluss-Generierungseinrichtung (PFG) oder einer zweiten Programmfluss-Generierungseinrichtung (SM; PFG2; IDC) bedarfsweise geschaltet wird, – wobei ein Schaltsignal dafür aus den an der Schalteinrichtung anliegenden Instruktionen (iw; iw2) entnommen wird.Method for controlling a processor after a the claims 1-7, at the - at least a processing device (SPU, INTU, VIT; DFP) for processing of data (d) by means of switching means (SW, SW *) for supplying optionally first instructions (iw) or second instructions (iw2) as addresses and / or control instructions from either a first program flow generator (PFG) or a second program flow generation device (SM; PFG2; IDC) is switched as needed, - Where a switching signal for the taken from the switching device instructions (iw; iw2) taken becomes.
DE10261500A 2001-12-21 2002-12-23 Processor and method for controlling a processor Expired - Fee Related DE10261500B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10261500A DE10261500B4 (en) 2001-12-21 2002-12-23 Processor and method for controlling a processor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10163694.6 2001-12-21
DE10163694 2001-12-21
DE10261500A DE10261500B4 (en) 2001-12-21 2002-12-23 Processor and method for controlling a processor

Publications (2)

Publication Number Publication Date
DE10261500A1 DE10261500A1 (en) 2003-07-17
DE10261500B4 true DE10261500B4 (en) 2005-07-21

Family

ID=7710677

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10261500A Expired - Fee Related DE10261500B4 (en) 2001-12-21 2002-12-23 Processor and method for controlling a processor

Country Status (1)

Country Link
DE (1) DE10261500B4 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355508A (en) * 1990-05-07 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system combining a SIMD unit with a MIMD unit and sharing a common bus, memory, and system controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355508A (en) * 1990-05-07 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system combining a SIMD unit with a MIMD unit and sharing a common bus, memory, and system controller

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Lyonnard, Damien,et.al.: Automatic Generation of Application-Specific Architectures for Heterogene- ous Multiprocessor System-on-Chip.In: Proceedings of the 38th Design Automation Conference,DAC 2001, Las Vegas, NV, USA, June 18-22, 2001, ACM 2001, S. 518-523
Lyonnard, Damien,et.al.: Automatic Generation of Application-Specific Architectures for Heterogene-ous Multiprocessor System-on-Chip.In: Proceedings of the 38th Design Automation Conference,DAC 2001,Las Vegas, NV, USA, June 18-22, 2001, ACM 2001, S. 518-523 *

Also Published As

Publication number Publication date
DE10261500A1 (en) 2003-07-17

Similar Documents

Publication Publication Date Title
DE19735348B4 (en) Vector processor for single-instruction multi-data processing using multiple banks of vector registers and associated method for operating the same
DE60318105T2 (en) PIPELINE COPROCESSOR
EP0293517B1 (en) Control processor
EP0108969B1 (en) Dma control unit for data transmission between a data transmitter and a data receiver
DE69826404T2 (en) Multi-processor data processing system sharing a register bank
EP0428770A1 (en) Data controlled array processor
DE2747146A1 (en) DATA PROCESSING SYSTEM
DE2911909C2 (en) Digital data processing device
EP1117037B1 (en) Data processing apparatus for parallel processing of independent processes (threads)
DE10261500B4 (en) Processor and method for controlling a processor
DE19528760A1 (en) Programmable image processing Large Scale Integrated circuit e.g. for OCR
DE102016100643A1 (en) Analog-to-digital converter circuits and methods of operating the same
EP0110199B1 (en) Method for the control of data transfer between a data transmitter and a data receiver on a bus, using a control unit which is connected to the bus
EP0409330B1 (en) Memory access control circuit
DE19735349A1 (en) Multiple data processor with single instruction combining vector and scalar operations
DE3435816A1 (en) DEVICE FOR NUMERICAL SIGNAL PROCESSING
EP1260905B1 (en) Program-controlled unit
DE60109699T2 (en) Apparatus and method for signal group exchange between multiple parts in a digital signal processing apparatus comprising a direct memory access controller
EP3548975B1 (en) Control of a technical process on a multi computing core installation
DE60103221T2 (en) Device and method for signal group transmission between digital signal processors in a digital signal processing unit
DE60209425T2 (en) Processor with memory device and address generator
DE102009037158B4 (en) Control device for controlling an electric drive
EP0970439B1 (en) Method and circuit for the production of compressed or expanded images, and printer with such circuit
DE2430693A1 (en) INTERFACE CIRCUIT FOR THE CONNECTION OF A SATELLITE DATA PROCESSING SYSTEM TO A DATA TRANSFER CHANNEL
EP1137997A1 (en) Multi-master bus system and method for operating the same

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8181 Inventor (new situation)

Inventor name: WITTE, FRANZ-OTTO, DR.-ING., 79331 TENINGEN, DE

Inventor name: NOESKE, CARSTEN, DIPL.-ING., 79350 SEXAU, DE

Inventor name: HERZ, RALF, DIPL.-ING., 79111 FREIBURG, DE

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110701