DE102017200456A1 - Arithmetic unit and operating method for this - Google Patents

Arithmetic unit and operating method for this Download PDF

Info

Publication number
DE102017200456A1
DE102017200456A1 DE102017200456.8A DE102017200456A DE102017200456A1 DE 102017200456 A1 DE102017200456 A1 DE 102017200456A1 DE 102017200456 A DE102017200456 A DE 102017200456A DE 102017200456 A1 DE102017200456 A1 DE 102017200456A1
Authority
DE
Germany
Prior art keywords
unit
data
functional
functional units
functional unit
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.)
Pending
Application number
DE102017200456.8A
Other languages
German (de)
Inventor
Axel Aue
Nico Bannow
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017200456.8A priority Critical patent/DE102017200456A1/en
Priority to CN201810026602.2A priority patent/CN108304344B/en
Publication of DE102017200456A1 publication Critical patent/DE102017200456A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers

Abstract

Die Erfindung betrifft eine Recheneinheit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g), mit wenigstens einem Rechenkern (110a, 110b, 110c), einer primären Speichereinrichtung (120), und wenigstens einer Hauptverbindungseinheit (130) zur Verbindung des wenigstens einen Rechenkerns (110a, 110b, 110c) mit der primären Speichereinrichtung (120), wobei die Recheneinheit (100) wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) aufweist, wobei wenigstens eine erste Funktionseinheit (140a) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) dazu ausgebildet ist, a) erste Daten von wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) zu empfangen und/oder zweite Daten an wenigstens eine weitere Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) zu senden.The invention relates to a computing unit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g) having at least one arithmetic core (110a, 110b, 110c), a primary memory device (120), and at least one main connection unit (130) Connecting the at least one arithmetic core (110a, 110b, 110c) to the primary memory device (120), wherein the arithmetic unit (100) has at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e 1400f, 1400g), at least one first functional unit (140a) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) being adapted to a ) receive first data from at least one further functional unit (140, 140b) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) and / or second data to at least one further functional unit (140, 140b) of the at least two functional elements units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400F; 1400g).

Description

Stand der TechnikState of the art

Die Erfindung betrifft eine Recheneinheit mit wenigstens einem Rechenkern, einer primären Speichereinrichtung, und wenigstens einer Hauptverbindungseinheit zur Verbindung des wenigstens einen Rechenkerns mit der primären Speichereinrichtung.The invention relates to a computing unit having at least one arithmetic core, a primary memory device, and at least one main connection unit for connecting the at least one arithmetic core to the primary memory device.

Die Erfindung betrifft ferner ein Betriebsverfahren für eine derartige Recheneinheit.The invention further relates to an operating method for such a computing unit.

Derartige Recheneinheiten sind bekannt und beispielsweise in Form von Mikrocontrollern kommerziell verfügbar.Such computing units are known and commercially available, for example in the form of microcontrollers.

Es ist Aufgabe der vorliegenden Erfindung, eine Recheneinheit der eingangs genannten Art dahingehend zu verbessern, dass sie eine gesteigerte Flexibilität und einen gesteigerten Gebrauchsnutzen aufweist.It is an object of the present invention to improve a computing unit of the type mentioned in that it has increased flexibility and increased utility.

Offenbarung der ErfindungDisclosure of the invention

Diese Aufgabe wird bei der Recheneinheit der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass die Recheneinheit wenigstens zwei Funktionseinheiten aufweist, wobei wenigstens eine erste Funktionseinheit der wenigstens zwei Funktionseinheiten dazu ausgebildet ist, a) erste Daten von wenigstens einer weiteren Funktionseinheit der wenigstens zwei Funktionseinheiten zu empfangen und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit der wenigstens zwei Funktionseinheiten zu senden.This object is achieved in the arithmetic unit of the aforementioned type according to the invention that the arithmetic unit has at least two functional units, wherein at least a first functional unit of the at least two functional units is adapted to a) receive first data from at least one further functional unit of the at least two functional units and / or b) to send second data to at least one further functional unit of the at least two functional units.

Die erfindungsgemäßen Funktionseinheiten bieten vorteilhaft die Möglichkeit, eine Rechenleistung und/oder die Funktionalität der Recheneinheit zu erweitern. Insbesondere ist durch die erfindungsgemäße Möglichkeit des direkten Datenaustauschs zwischen den Funktionseinheiten ein Datenfluss ermöglicht, welcher nicht die weiteren Komponenten der Recheneinheit wie beispielsweise deren Rechenkerne bzw. die primäre Speichereinrichtung mit einbezieht. Auf diese Weise können die Rechenkerne bzw. die primäre Speichereinrichtung bzw. die Hauptverbindungseinheit entlastet werden, während gleichzeitig ein oder mehrere erfindungsgemäße Funktionseinheiten für sie vorgesehene Berechnungsaufgaben bzw. sonstige Aufgaben wahrnehmen.The functional units according to the invention advantageously offer the possibility of expanding a computing power and / or the functionality of the computing unit. In particular, the possibility of direct data exchange between the functional units according to the invention makes possible a data flow which does not include the further components of the arithmetic unit, such as, for example, their computing cores or the primary memory device. In this way, the calculation cores or the primary memory device or the main connection unit can be relieved, while at the same time one or more functional units according to the invention perform their intended calculation tasks or other tasks.

Besonders bevorzugt kann die erfindungsgemäße Recheneinheit in einem Steuergerät für ein Zielsystem verwendet werden, beispielsweise in einem Steuergerät für eine Brennkraftmaschine eines Kraftfahrzeugs oder für ein radarbasiertes Abstandsmessungssystem oder dergleichen. Im Gegensatz zu herkömmlichen Recheneinheiten wie beispielsweise herkömmlichen Mikrocontrollern ist die erfindungsgemäße Recheneinheit vorteilhaft um die durch die Funktionseinheiten bereitgestellte und nachstehend näher beschriebene Funktionalität erweitert und kann somit auch als Mikrocontroller mit der erfindungsgemäß ermöglichten Zusatzfunktionalität angesehen werden. Generell kann die erfindungsgemäße Recheneinheit überall da eingesetzt werden, wo konventionelle Recheneinheiten wie beispielsweise Mikrocontroller oder Mikroprozessoren oder digitale Signalprozessoren oder dergleichen eingesetzt werden, und wo eine zusätzliche Funktionalität und/oder eine höhere Leistungsfähigkeit, wie sie durch die erfindungsgemäßen Funktionseinheiten bereitgestellt wird, wünschenswert ist. Es ist ferner möglich, in bestehenden Systemen vorhandene konventionelle Recheneinheiten durch die erfindungsgemäße Recheneinheit zu ersetzen, um eine effizientere Abarbeitung von seither durch die konventionellen Recheneinheiten ausgeführten Berechnungs- und sonstigen Aufgaben zu ermöglichen. Besonders vorteilhaft ist der Einsatz der erfindungsgemäßen Recheneinheit manchen Ausführungsformen zufolge auch im Bereich der Verarbeitung von sicherheitsrelevanten Daten bzw. zur Bearbeitung von kryptografischen Algorithmen denkbar.Particularly preferably, the arithmetic unit according to the invention can be used in a control unit for a target system, for example in a control unit for an internal combustion engine of a motor vehicle or for a radar-based distance measuring system or the like. In contrast to conventional arithmetic units such as conventional microcontrollers, the arithmetic unit according to the invention is advantageously extended by the functionality provided by the functional units and described in more detail below, and can thus also be regarded as a microcontroller with the additional functionality enabled according to the invention. In general, the computing unit according to the invention can be used wherever conventional computing units such as microcontrollers or microprocessors or digital signal processors or the like are used, and where additional functionality and / or higher performance as provided by the functional units according to the invention is desirable. It is also possible to replace conventional computing units existing in existing systems by the computing unit according to the invention, in order to enable a more efficient processing of calculation and other tasks which have been performed by the conventional computing units since then. According to some embodiments, the use of the computing unit according to the invention is also particularly advantageously conceivable in the field of processing security-relevant data or for processing cryptographic algorithms.

Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine primäre Verbindungseinheit vorgesehen ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen der ersten Funktionseinheit und wenigstens einer weiteren Funktionseinheit der wenigstens zwei Funktionseinheiten herzustellen. Dies ermöglicht vorteilhaft die Steuerung eines Datenaustausch bzw. Datenflusses zwischen verschiedenen Funktionseinheiten, so das auch während des Betriebs der Recheneinheit eine Konfiguration bzw. Neukonfiguration der Datenverbindung (en) zwischen den betreffenden Funktionseinheiten möglich ist, wodurch eine gesteigerte Flexibilität erzielt wird.In an advantageous embodiment it is provided that at least one primary connection unit is provided, which is designed to produce, at least temporarily, a, in particular direct, data connection between the first functional unit and at least one further functional unit of the at least two functional units. This advantageously makes it possible to control a data exchange or data flow between different functional units, so that a configuration or reconfiguration of the data connection (s) between the respective functional units is also possible during operation of the arithmetic unit, whereby an increased flexibility is achieved.

Bei einer bevorzugten Ausführungsform weist die primäre Verbindungseinheit wenigstens ein Koppelnetz auf. Besonders bevorzugt ist das Koppelnetz als blockierungsfreies Koppelnetz ausgelegt. In diesem Fall ermöglicht das Koppelnetz jederzeit die Herstellung von Datenverbindungen zwischen allen mit dem Koppelnetz verbundenen Funktion Einheiten sowie gegebenenfalls weiteren mit dem Koppelnetz verbundenen Einheiten wie beispielsweise Komponenten der Recheneinheit.In a preferred embodiment, the primary connection unit has at least one coupling network. Particularly preferably, the coupling network is designed as a blocking-free switching network. In this case, the switching network at any time allows the production of data connections between all connected to the switching network function units and possibly other connected to the switching network units such as components of the arithmetic unit.

Bei weiteren Ausführungsform ist es auch denkbar, die primäre Verbindungseinheit als Koppelnetz auszuführen, das Koppelnetz jedoch nicht blockierungsfrei auszulegen.In another embodiment, it is also conceivable to design the primary connection unit as a coupling network, but not to design the coupling network without blocking.

Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit auch andere Strukturen umfassen, beispielsweise wenigstens ein Bussystem, welches eine Datenverbindung zwischen den an das Bussystem angeschlossenen Funktionseinheiten herstellt. In further embodiments, the primary connection unit may also comprise other structures, for example at least one bus system which establishes a data connection between the functional units connected to the bus system.

Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit auch wenigstens eine direkte Datenverbindung zwischen wenigstens zwei Funktionseinheiten aufweisen. Ferner sind bei anderen Ausführungsformen auch direkte Datenverbindungen zwischen mehr als zwei Funktionseinheiten denkbar.In further embodiments, the primary connection unit may also have at least one direct data connection between at least two functional units. Furthermore, in other embodiments, direct data connections between more than two functional units are conceivable.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die wenigstens eine primäre Verbindungseinheit mehrere der vorstehend genannten Verbindungsmechanismen aufweist, also beispielsweise ein Koppelnetz zur Verbindung einiger Funktionseinheiten bzw. aller Funktionseinheiten untereinander sowie beispielsweise ein Bussystem, welches mehrere bzw. alle Funktionseinheiten verbindet sowie beispielsweise direkte Datenverbindungen zwischen mehreren bzw. allen Funktionseinheiten.In a further embodiment, it can be provided that the at least one primary connection unit has a plurality of the above-mentioned connection mechanisms, that is, for example, a coupling network for connecting some functional units or all functional units to one another and, for example, a bus system which connects several or all functional units and, for example, direct data connections between several or all functional units.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass mehrere Gruppen von Funktionseinheiten vorgesehen sind, wobei jeder der mehreren Gruppen wenigstens eine primäre Verbindungseinheit zugeordnet ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen Funktionseinheiten der betreffenden Gruppe herzustellen. Dadurch können gleichsam mehrere Cluster von Funktionseinheiten bereitgestellt werden, welche jeweils gleichartige oder verschiedenartige Berechnungen oder sonstige Aufgaben ausführen können.In a further advantageous embodiment, it is provided that a plurality of groups of functional units are provided, wherein each of the plurality of groups is assigned at least one primary connection unit, which is designed to at least temporarily establish a, in particular direct, data connection between functional units of the group concerned. As a result, it is possible to provide a plurality of clusters of functional units which can each carry out similar or different calculations or other tasks.

Bei einer weiteren Ausführungsform ist vorgesehen, dass eine primäre Verbindungseinheit, welche einer Gruppe von Funktionseinheiten zugeordnet ist, dazu ausgebildet ist, eine Datenverbindung zwischen Funktionseinheiten unterschiedlicher Gruppen herzustellen.In a further embodiment it is provided that a primary connection unit, which is assigned to a group of functional units, is designed to establish a data connection between functional units of different groups.

Bei weiteren Ausführungsformen können die primären Verbindungseinheiten, die den jeweiligen Gruppen zugeordnet sind, wiederum wenigstens eine der folgenden Komponenten aufweisen: ein Koppelnetz, ein Bussystem, wenigstens eine direkte Datenverbindung.In further embodiments, the primary connection units associated with the respective groups may in turn comprise at least one of the following components: a switching network, a bus system, at least one direct data connection.

Bei einer weiteren Ausführungsform ist wenigstens eine sekundäre Verbindungseinheit vorgesehen, die dazu ausgebildet ist, eine Datenverbindung zwischen der Hauptverbindungseinheit und wenigstens einer Funktionseinheit und/oder eine Datenverbindung zwischen der Hauptverbindungseinheit und wenigstens einer primären Verbindungseinheit herzustellen, wodurch eine leistungsfähige Anbindung zur Datenübertragung zwischen den betreffenden Funktionseinheiten und der Hauptverbindungseinheit gegeben ist. Die Hauptverbindungseinheit kann beispielsweise als sogenannter „Core-Interconnect“ ausgebildet sein, also eine zentrale Verbindungseinheit zur hochperformanten Verbindung (insbesondere mit hohen Datenraten und/oder geringen Latenzzeiten) der Komponenten der erfindungsgemäßen Recheneinheit untereinander darstellen. Bei einer bevorzugten Ausführungsform kann die Hauptverbindungseinheit bevorzugt auch als Koppelnetz, insbesondere als blockierungsfreies Koppelnetz, ausgelegt sein.In a further embodiment, at least one secondary connection unit is provided which is designed to establish a data connection between the main connection unit and at least one functional unit and / or a data connection between the main connection unit and at least one primary connection unit, thereby providing a powerful connection for data transmission between the respective functional units and the main connection unit. The main connection unit can be designed, for example, as a so-called "core interconnect", ie represent a central connection unit for the high-performance connection (in particular with high data rates and / or low latencies) of the components of the computing unit according to the invention. In a preferred embodiment, the main connection unit may preferably also be designed as a coupling network, in particular as a blocking-free coupling network.

Bei einer weiteren bevorzugten Ausführungsform ist mindestens eine sekundäre Speichereinrichtung vorgesehen, wobei zwischen der mindestens einen sekundären Speichereinrichtung und wenigstens einer Funktionseinheit eine direkte Datenverbindung besteht. In dem vorliegenden Zusammenhang ist unter einer direkten Datenverbindung zwischen der sekundären Speichereinrichtung und der wenigstens einen Funktionseinheit eine solche Datenverbindung zu verstehen, welche einen Datenaustausch zwischen der sekundären Speichereinrichtung und der wenigstens einen Funktionseinheit ermöglicht, ohne hierfür die Hauptverbindungseinheit zu verwenden. Mit anderen Worten kann bei der vorliegenden Ausführungsform ein Datenaustausch direkt zwischen einer oder mehreren der Funktionseinheiten und der sekundären Speichereinrichtung stattfinden, wodurch die Hauptverbindungseinheit nicht belastet wird, so dass diese gegebenenfalls anderweitig, beispielsweise zum Datenaustausch zwischen den Rechenkernen und der primären Speichereinrichtung und dergleichen verwendbar ist.In a further preferred embodiment, at least one secondary storage device is provided, wherein there is a direct data connection between the at least one secondary storage device and at least one functional unit. In the present context, a direct data connection between the secondary storage device and the at least one functional unit is to be understood as meaning a data connection which allows a data exchange between the secondary storage device and the at least one functional unit without using the main connection unit for this purpose. In other words, in the present embodiment, data exchange may occur directly between one or more of the functional units and the secondary storage device, thereby not burdening the main interconnect unit, so that it may be otherwise used, for example for data exchange between the cores and the primary storage device and the like ,

Bei einer weiteren vorteilhaften Ausführungsform weist die mindestens eine sekundäre Speichereinrichtung mehrere Speicherbänke auf, wobei insbesondere die mindestens eine sekundäre Speichereinrichtung dazu ausgebildet ist, einen parallelen Datenzugriff auf wenigstens zwei der mehreren Speicherbänke zu ermöglichen. Dadurch wird vorteilhaft eine hohe Bandbreite für Zugriffe auf bzw. von der sekundären Speichereinrichtung bzw. deren Bänken ermöglicht, und insbesondere können auch nicht zusammenhängende Datenblöcke parallel bzw. gleichzeitig zwischen den beteiligten Funktionseinheiten und der sekundären Speichereinrichtung bzw. deren Speicherbänken übertragen werden.In a further advantageous embodiment, the at least one secondary memory device has a plurality of memory banks, wherein, in particular, the at least one secondary memory device is designed to enable parallel data access to at least two of the plurality of memory banks. This advantageously allows a high bandwidth for accesses to or from the secondary memory device or its banks, and in particular also non-contiguous data blocks can be transmitted in parallel or simultaneously between the functional units involved and the secondary memory device or its memory banks.

Bei einer weiteren bevorzugten Ausführungsform ist wenigstens eine der Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet. Dadurch können vorteilhaft Berechnungen, Logikoperationen und sonstige von der betreffenden Funktionseinheit bereitgestellte Funktionen besonders schnell und effizient ausgeführt werden.In a further preferred embodiment, at least one of the functional units is embodied as a hardware circuit, in particular completely as a hardware circuit. This can be advantageous calculations, logic operations and other of the functional unit in question provided functions are executed particularly quickly and efficiently.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten wenigstens eines der folgenden Elemente aufweist: einen Mikrocontroller, einen digitalen Signalprozessor (DSP), eine programmierbare Logikschaltung (beispielsweise einen FPGA, field programmable gate array), einen anwendungsspezifischen integrierten Schaltkreis (ASIC, application specific integrated circuit).In a further advantageous embodiment, it is provided that at least one of the functional units has at least one of the following elements: a microcontroller, a digital signal processor (DSP), a programmable logic circuit (for example an FPGA, field programmable gate array), an application-specific integrated circuit (ASIC) , application specific integrated circuit).

Bei einer Ausführungsform ist vorgesehen, dass alle Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet sind. Bei anderen Ausführungsformen ist es möglich, dass ein oder mehrere Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet sind, und dass wenigstens eine nicht vollständig als Hardwareschaltung ausgebildete Komponente bzw. eine sonstige Komponente in Form mindestens einer weiteren Funktionseinheit vorgesehen ist.In one embodiment, it is provided that all functional units are designed as a hardware circuit, in particular completely as a hardware circuit. In other embodiments, it is possible for one or more functional units to be designed as a hardware circuit, in particular completely as a hardware circuit, and for at least one component or another component not completely formed as a hardware circuit to be provided in the form of at least one further functional unit.

Beispielsweise kann bei einer besonders bevorzugten Ausführungsform eine erste Anzahl Funktionseinheiten vorgesehen sein, die vollständig als Hardwareschaltung ausgebildet sind, und eine weitere Funktionseinheit kann beispielsweise einen Mikrocontroller oder einen programmierbaren Logikbaustein bzw. eine programmierbare Logikschaltung aufweisen.For example, in a particularly preferred embodiment, a first number of functional units may be provided which are designed completely as a hardware circuit, and a further functional unit may comprise, for example, a microcontroller or a programmable logic module or a programmable logic circuit.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten wenigstens eine der folgenden Komponenten aufweist: Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator (MAC), arithmetisch-logische Einheit (ALU), Speichereinheit, Register, Multiplexer, Demultiplexer, Schnittstelle, Einheit zur Auswertung von Exponentialfunktionen, Einheit zur Auswertung von trigonometrischen Funktionen.In a further advantageous embodiment it is provided that at least one of the functional units has at least one of the following components: adder, multiplier, divider, shift register, barrel shifter, comparator, multiplication accumulator (MAC), arithmetic logic unit (ALU), memory unit, registers , Multiplexer, demultiplexer, interface, unit for evaluation of exponential functions, unit for evaluation of trigonometric functions.

Bei einer weiteren bevorzugten Ausführungsform weist wenigstens eine der Funktionseinheiten wenigstens ein grobgranulares Hardwareelement auf. Alternativ oder ergänzend kann wenigstens eine der Funktionseinheiten als grobgranular das Hardwareelement ausgebildet sein.In a further preferred embodiment, at least one of the functional units has at least one coarse-granular hardware element. Alternatively or additionally, at least one of the functional units may be formed as coarse-granular the hardware element.

Der Begriff „grobgranular“ bedeutet vorliegend, dass das betreffende Hardwareelement mehr als ein logisches Gatter aufweist bzw. aus mehr als einem logischen Gatter gebildet ist. Die Gatter sind einer Ausführungsform zufolge in Funktion und/oder Verbindung untereinander unveränderbar.The term "coarse granular" in this case means that the relevant hardware element has more than one logical gate or is formed from more than one logical gate. The gates are in one embodiment, according to function and / or connection with each other unchangeable.

Im Allgemeinen wird unter Granularität verstanden, bis zu welchem Grad ein System aus voneinander unterscheidbaren einzelnen Einheiten zusammengesetzt ist. Ein grobgranulares System ist aus vergleichsweise wenigen, vergleichsweise großen grobgranularen Elementen zusammengesetzt, wohingegen ein feingranulares System aus vergleichsweise vielen, vergleichsweise kleinen feingranularen Elementen zusammengesetzt ist.In general, granularity is understood to what extent a system is composed of distinct individual units. A coarse-granular system is composed of comparatively few coarsely granular elements of comparatively large size, whereas a finely granular system is composed of comparatively many comparatively small fine granular elements.

Im Speziellen kann Granularität im Bereich von Rechner-Architekturen durch die Anzahl logischer Gatter und damit einhergehend insbesondere durch ein Verhältnis zwischen Rechenoperationen bzw. Abarbeitungszeiten und Kommunikation bzw. Datenaustausch beschrieben werden. In feingranularen Hardwareelementen (jeweils ein logisches Gatter) können einfache logische Operationen schnell in vergleichsweise kurzer Abarbeitungszeit ausführt werden, jedoch werden zwischen einzelnen Elementen häufig Daten ausgetauscht. Im Gegensatz dazu werden in grobgranularen Hardwareelementen (jeweils mehrere logische Gatter) insbesondere jeweils komplexe Operationen mit vergleichsweise langen Abarbeitungszeiten ausgeführt und es werden seltener Daten zwischen einzelnen Elementen ausgetauscht.In particular, granularity in the area of computer architectures can be described by the number of logical gates and, concomitantly, in particular by a relationship between arithmetic operations or execution times and communication or data exchange. In finely granular hardware elements (one logical gate each), simple logical operations can be performed quickly in comparatively short processing time, but data is often exchanged between individual elements. In contrast, in coarse-grained hardware elements (in each case a plurality of logic gates), in particular complex operations are carried out in each case with comparatively long execution times, and data is less frequently exchanged between individual elements.

Unter grobgranularen Hardwareelementen sind somit insbesondere Elemente zu verstehen, welche jeweils selbsttätig komplexe Rechenoperationen ausführen können, insbesondere ohne dafür häufig untereinander Daten auszutauschen. Beispielsweise sind die einzelnen grobgranularen Hardwareelemente jeweils als eines der folgenden Elemente ausgebildet: höherkomplexe Elemente wie arithmetisch-logische Einheit (ALU), Speicherzugriffseinheit, Kommunikationsschnittstelle und/oder weniger komplexe Einheiten wie Komparator, Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Multiplikationsaddierer („Multiply-Accumulate“, (MAC)), Register bzw. Registerblock, Speichereinheit (z.B. RAM, Flash usw.), Multiplexer (z.B. 2:1-MUX, M:N-MUX), Demultiplexer.By coarse granular hardware elements are thus to be understood in particular elements which can each automatically perform complex arithmetic operations, in particular without frequently exchanging data with each other. For example, the individual coarse granular hardware elements are each formed as one of the following: more complex elements such as arithmetic logic unit (ALU), memory access unit, communication interface and / or less complex units such as comparator, adder, multiplier, divider, shift register, barrel shifter, multiplication adder ("Multiply-Accumulate", (MAC)), register or register block, memory unit (eg RAM, Flash etc.), multiplexer (eg 2: 1-MUX, M: N-MUX), demultiplexer.

Eine ALU berechnet insbesondere arithmetische und logische Funktionen. Beispielsweise kann sie als arithmetische Funktion zumindest eine Addition (ADD) und als logische Funktion zumindest eine Negation (NOT) und eine Konjunktion (Und-Verknüpfung, AND) ausführen. Bevorzugterweise kann sie als arithmetische Funktion auch eine Subtraktion (SUB) und/oder einen Vergleich (compare, CMP) und/oder eine Multiplikation (MUL) und/oder eine Division und/oder eine Dezimal-Angleichung nach Addition (Decimal Adjust after Addition) durchführen. Bevorzugterweise kann sie als logische Funktion auch eine Disjunktion (Oder-Verknüpfung, OR) und/oder eine Kontravalenz (Exklusiv-Oder-Verknüpfung, XOR, EOR) und/oder eine Rechts- und Linksverschiebung (Rechts-, Linksshift, ASR - arithmetische Shift rechts, ASL - arithmetische Shift links, LSR - logisches Verschieben nach rechts, LSL - logisches Verschieben nach links) und/oder eine Links- und Rechtsrotation (ROL, ROR) und/oder Register-Manipulationen und/oder Bit-Veränderungen (Bits setzen, löschen und testen) und/oder Umsortieren von Bits und Bytes und/oder AES-Befehle und/oder CRC-Befehle durchführen.An ALU calculates in particular arithmetic and logical functions. For example, it can perform at least one addition (ADD) as an arithmetic function and at least one negation (NOT) and a conjunction (AND, AND) as a logical function. As arithmetic function, it may also preferably include a subtraction (SUB) and / or a comparison (compare, CMP) and / or a multiplication (MUL) and / or a division and / or a decimal adjustment after addition (decimal adjustment after addition). carry out. As a logical function, it may also have a disjunction (OR, OR) and / or a contravalence (XOR, EOR) and / or a shift to the right and to the left (Right-, left-shift, ASR - arithmetic shift right, ASL - arithmetic shift left, LSR - logical shift to the right, LSL - logical shift to the left) and / or a left and right rotation (ROL, ROR) and / or register- Manipulations and / or bit changes (set bits, clear and test) and / or resort to bits and bytes and / or perform AES commands and / or CRC commands.

Bei besonders bevorzugten Ausführungsformen wird durch mehrere miteinander verbundene Komponenten wie z.B. Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator, arithmetisch-logische Einheit, Speichereinheit, Register, Multiplexer, Schnittstelle bzw. generell grobgranulare Hardwareelemente, die die Funktionseinheit(en) oder Bestandteile hiervon bilden können, eine vergleichsweise komplexe Berechnungseinrichtung bereitgestellt, wobei erfindungsgemäß vorteilhaft wenigstens eine erste Funktionseinheit dazu ausgebildet ist, erste Daten von wenigstens einer weiteren Funktionseinheit zu empfangen und/oder zweite Daten an wenigstens eine weitere Funktionseinheit zu senden, wie dies bereits vorstehend beschrieben worden ist. Dadurch kann ein Datenfluss definiert werden, der unter anderem auch die Ausführung von vergleichsweise komplexen Berechnungen ermöglicht, welche beispielsweise eine Vielzahl der vorstehend genannten Komponenten bzw. grobgranularen Hardwareelemente, beispielsweise in einer vorgebbaren Reihenfolge gemäß einem auszuwertenden Algorithmus oder einer sonstigen Rechenregel, nutzen.In particularly preferred embodiments, multiple interconnected components, e.g. Adder, multiplier, divider, shift register, barrel shifter, comparator, multiplication accumulator, arithmetic logic unit, memory unit, registers, multiplexer, interface or general coarse granular hardware elements that may constitute the functional unit (s) or components thereof, a comparatively complex calculator provided, according to the invention advantageously at least one first functional unit is adapted to receive first data from at least one further functional unit and / or to send second data to at least one further functional unit, as has already been described above. As a result, a data flow can be defined which, inter alia, also makes it possible to carry out comparatively complex calculations, which use, for example, a large number of the abovementioned components or coarse-grained hardware elements, for example in a specifiable sequence according to an algorithm to be evaluated or another calculation rule.

Einem weiteren Aspekt der vorliegenden Erfindung zufolge kann dieser Datenfluss besonders vorteilhaft auch dynamisch, das bedeutet während einer Laufzeit der erfindungsgemäßen Recheneinheit, beeinflusst bzw. verändert, also umkonfiguriert bzw. rekonfiguriert, werden. Bei einer bevorzugten Ausführungsform kann dies beispielsweise durch eine entsprechende Steuerung der primären Verbindungseinheit bewerkstelligt werden.According to a further aspect of the present invention, this data flow can be particularly advantageously also dynamically, that is to say influenced or changed during a running time of the inventive computing unit, ie reconfigured or reconfigured. In a preferred embodiment, this can be accomplished, for example, by appropriate control of the primary connection unit.

Einer weiteren vorteilhaften Ausführungsform zufolge ist vorgesehen, dass die Recheneinheit dazu ausgebildet ist, eine Konfiguration wenigstens einer Funktionseinheit (bzw. von einem oder mehreren darin enthaltenen grobgranularen Elementen) zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens einer Funktionseinheit zu überprüfen. Dadurch wird die Flexibilität und der Gebrauchsnutzen der erfindungsgemäßen Recheneinheit weiter gesteigert. Beispielsweise kann bei einer Ausführungsform vorgesehen sein, dass wenigstens eine Funktionseinheit Konfigurationsregister aufweist, die beispielsweise lokal in der Funktionseinheit angeordnet sein können. Durch Schreibzugriffe der Recheneinheit, beispielsweise vermöge einer ihrer Rechenkerne, kann die Recheneinheit somit die Konfiguration der betreffenden Funktionseinheit verändern.According to a further advantageous embodiment, it is provided that the arithmetic unit is designed to modify a configuration of at least one functional unit (or of one or more coarse-grained elements contained therein) and / or to check a state or the configuration of at least one functional unit. As a result, the flexibility and the utility of the computing unit according to the invention is further increased. For example, it can be provided in one embodiment that at least one functional unit has configuration registers which can be arranged, for example, locally in the functional unit. By writing accesses of the arithmetic unit, for example, by virtue of one of its computing cores, the arithmetic unit can thus change the configuration of the functional unit in question.

Mit anderen Worten kann bei manchen Ausführungsformen beispielsweise ein Rechenkern der Recheneinheit dazu ausgebildet sein, eine Konfiguration wenigstens einer Funktionseinheit zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens einer Funktionseinheit zu überprüfen.In other words, in some embodiments, for example, a computing core of the computing unit may be designed to change a configuration of at least one functional unit and / or to check a state or the configuration of at least one functional unit.

Bei weiteren Ausführungsformen ist vorstellbar, dass wenigstens eine Funktionseinheit dazu ausgebildet ist, eine Konfiguration wenigstens einer (anderen) Funktionseinheit zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens einer Funktionseinheit zu überprüfen. Ferner ist vorstellbar, dass bei weiteren Ausführungsformen eine Funktionseinheit dazu ausgebildet ist, ihre eigene Konfiguration zu verändern und/oder zu überprüfen.In further embodiments, it is conceivable that at least one functional unit is configured to change a configuration of at least one (other) functional unit and / or to check a state or the configuration of at least one functional unit. Furthermore, it is conceivable that in further embodiments a functional unit is designed to change and / or to check its own configuration.

Bei weiteren Ausführungsformen ist vorstellbar, dass wenigstens eine Peripherieeinheit der Recheneinheit dazu ausgebildet ist, eine Konfiguration wenigstens einer Funktionseinheit zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens einer Funktionseinheit zu überprüfen.In further embodiments, it is conceivable that at least one peripheral unit of the arithmetic unit is designed to change a configuration of at least one functional unit and / or to check a state or the configuration of at least one functional unit.

Beispielsweise kann es sich bei der Peripherieeinheit um eine DMA-Steuereinrichtung handeln. Dadurch wird vorteilhaft ermöglicht, dass die DMA-Steuereinrichtung im Wesentlichen autonom beispielsweise Konfigurationsinformationen für eine bestimmte Funktionseinheit aus einem ersten Speicherbereich der Recheneinheit ausliest und die ausgelesenen Konfigurationsinformationen in entsprechende Konfigurationsregister der betreffenden Funktionseinheit schreibt.For example, the peripheral unit may be a DMA controller. This advantageously makes it possible for the DMA control device to essentially autonomously read, for example, configuration information for a specific functional unit from a first memory area of the arithmetic unit and to write the read-out configuration information into corresponding configuration registers of the relevant functional unit.

Bei einer weiteren Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten dazu ausgebildet ist, eine Konfiguration der primären Verbindungseinheit und/oder wenigstens einer sekundären Verbindungseinheit zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens der primären Verbindungseinheit und/oder wenigstens einer sekundären Verbindungseinheit zu überprüfen.In a further embodiment, it is provided that at least one of the functional units is configured to change a configuration of the primary connection unit and / or at least one secondary connection unit and / or a state or the configuration of at least the primary connection unit and / or at least one secondary connection unit to check.

Gemäß einer weiteren Ausführungsform ist unter der Konfiguration der grobgranularen Hardwareelemente eine Konkretisierung der Funktion der grobgranularen Hardwareelemente aus den verfügbaren Möglichkeiten sowie insbesondere auch der Verbindungsstruktur der einzelnen Elemente (z.B. der primären Verbindungseinheit) zu verstehen. Durch Verändern der Konfiguration kann die Recheneinheit bzw. eine Funktionseinheit somit auf Hardwareebene die Funktion der Elemente (um-) konfigurieren sowie die Elemente in unterschiedlicher Weise miteinander (neu) verbinden und ermöglicht dadurch die Anpassung der Recheneinheit an verschiedene Algorithmen auf Hardwareebene. Bei einer besonders bevorzugten Ausführungsform kann die Konfiguration bzw. Verbindung verschiedener Funktionseinheiten untereinander durch die Vorgabe von entsprechenden Zieladressen für zwischen den Funktionseinheiten z.B. in Form von Datenpaketen ausgetauschten Daten erfolgen.According to a further embodiment, the configuration of the coarse-grained hardware elements is to be understood as a concretization of the function of the coarse-grained hardware elements from the available possibilities and in particular also the connection structure of the individual elements (eg the primary connection unit). By changing the configuration, the arithmetic unit or a functional unit can thus at the hardware level (re) configure the function of the elements and connect (re) the elements in different ways with each other, thereby enabling the adaptation of the arithmetic unit to various hardware-level algorithms. In a particularly preferred embodiment, the configuration or connection of different functional units with each other by the specification of corresponding destination addresses for between the functional units, for example in the form of data packets exchanged data.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten wenigstens eine, insbesondere direkte, Datenverbindung zu einer Unterbrechungsanforderung-Verteilereinrichtung (englisch: interrupt router) der Recheneinheit aufweist, und/oder wenigstens eine, insbesondere mittelbar über eine Vorstufe verlaufende, Datenverbindung zu einer Unterbrechungsanforderungs-Verteilereinrichtung der Recheneinheit aufweist. Dadurch ist vorteilhaft die Möglichkeit gegeben, dass die betreffende Funktionseinheit direkt bzw. wenigstens mittelbar auf die Verarbeitung von Unterbrechungsanforderungen innerhalb der Recheneinheit einwirken kann, beispielsweise um Unterbrechungsanforderungen zu erzeugen, und/oder um von anderen Einheiten erzeugte Unterbrechungsanforderungen zu verzögern bzw. in sonstiger Weise zu beeinflussen (beispielsweise zu maskieren). Des Weiteren ist bei anderen Ausführungsformen vorteilhaft die Möglichkeit gegeben, Unterbrechungsanforderungen an die Funktionseinheit zu senden, um deren Betrieb zu beeinflussen bzw. ihre Konfiguration zu verändern.In a further advantageous embodiment, it is provided that at least one of the functional units has at least one, in particular direct, data connection to an interrupt request distribution device (English: interrupt router) of the arithmetic unit, and / or at least one, in particular indirectly via a preliminary stage running, data connection an interrupt request distribution means of the arithmetic unit. This advantageously provides the possibility that the functional unit in question may act directly or at least indirectly on the processing of interrupt requests within the arithmetic unit, for example to generate interrupt requests, and / or to delay interrupt requests generated by other units or in any other way influence (for example, to mask). Furthermore, in other embodiments it is advantageously possible to send interrupt requests to the functional unit in order to influence its operation or to change its configuration.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine, insbesondere direkte, Datenverbindung zu einer Eingabeschnittstelle und/oder Ausgabeschnittstelle (bzw. einer kombinierten Ein- und Ausgabeschnittstelle, englisch: I/O-Port) der Recheneinheit aufweist. Damit ist vorteilhaft die Möglichkeit gegeben, dass eine Funktionseinheit Eingangssignale an die Eingabeschnittstelle der Recheneinheit sendet bzw. Ausgangssignale über die Ausgabeschnittstelle der Recheneinheit ausgibt, beispielsweise an extern zu der Recheneinheit angeordnete Einheiten.In a further advantageous embodiment, it is provided that at least one of the functional units has a, in particular direct, data connection to an input interface and / or output interface (or a combined input and output interface, English: I / O port) of the arithmetic unit. This advantageously provides the possibility that a functional unit sends input signals to the input interface of the arithmetic unit or outputs output signals via the output interface of the arithmetic unit, for example to units arranged externally to the arithmetic unit.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine, insbesondere direkte, Datenverbindung zu einem Zeitgeber-Baustein der Recheneinheit aufweist und/oder zu einem Analog/Digital-Wandler und/oder zu mindestens einer weiteren gegebenenfalls vorhandenen Komponente der Recheneinheit wie beispielsweise einer Hardwarebeschleunigereinheit oder dergleichen. Dadurch ist vorteilhaft die Möglichkeit gegeben, dass die wenigstens eine Funktionseinheit direkt auf den Zeitgeber-Baustein einwirken kann bzw. Daten wie beispielsweise ein Zählerstand eines Zeitgebers abfragen kann, ohne die Hauptverbindungseinheit der Recheneinheit verwenden zu müssen. Ähnliche Vorteile gelten für die Erfindungsaspekte, welche eine direkte Datenverbindung zwischen wenigstens einer Funktionseinheit und dem Analog/Digital-Wandler umfassen bzw. zu einer gegebenenfalls vorhandenen Hardwarebeschleunigereinheit.In a further advantageous embodiment, it is provided that at least one of the functional units has a, in particular direct, data connection to a timer module of the arithmetic unit and / or to an analog / digital converter and / or to at least one further optional component of the arithmetic unit for example, a hardware accelerator unit or the like. This advantageously provides the possibility that the at least one functional unit can act directly on the timer module or can query data such as a counter reading of a timer without having to use the main connection unit of the arithmetic unit. Similar advantages apply to the aspects of the invention, which comprise a direct data connection between at least one functional unit and the analog / digital converter or to an optional hardware accelerator unit.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten dazu ausgebildet ist, ihre eigene Konfiguration zu verändern. Alternativ oder ergänzend kann die Funktionseinheit dazu ausgebildet sein eine Konfiguration wenigstens einer weiteren Funktionseinheit zu verändern. Bei einer bevorzugten Ausführungsform kann dies beispielsweise dadurch erfolgen, dass eine erste Funktionseinheit direkt in ein Konfigurationsregister einer zweiten Funktionseinheit entsprechende Konfigurationsdaten schreibt. Die hierfür erforderliche Datenverbindung von der ersten Funktionseinheit zu den Konfigurationsregistern derer zweiten Funktionseinheit kann die vorstehend bereits mehrfach beschrieben beispielsweise durch die primäre Verbindungseinheit realisiert sein.In a further advantageous embodiment it is provided that at least one of the functional units is designed to change its own configuration. Alternatively or additionally, the functional unit can be designed to change a configuration of at least one further functional unit. In a preferred embodiment, this can be done, for example, by a first functional unit writing corresponding configuration data directly into a configuration register of a second functional unit. The data connection required for this purpose from the first functional unit to the configuration registers of this second functional unit can be implemented as described above several times, for example by the primary connection unit.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass zur Konfiguration bzw. um Konfiguration einer oder mehrerer Funktionseinheiten entsprechende Konfigurationsinformationen aus einer Quelle, beispielsweise einem Konfigurationsspeicher, ausgelesen werden und diese Konfigurationsinformationen in die entsprechenden Konfigurationsregister der betreffenden Funktionseinheit hingeschrieben werden. Der Konfigurationsspeicher kann beispielsweise in der sekundären Speichereinrichtung angeordnet sein. Alternativ oder ergänzend kann der Konfigurationsspeicher auch in der primären Speichereinrichtung angeordnet sein. Bei weiteren Ausführungsform ist es ferner denkbar, die Konfigurationsinformationen mittels zu der Recheneinheit externer Komponenten bereitzustellen, beispielsweise in Form von (seriellen) Flash-Speichern, welche zum Beispiel an entsprechende Schnittstellen der Recheneinheit angeschlossen werden.In a further advantageous embodiment, it is provided that for the configuration or configuration of one or more functional units corresponding configuration information from a source, such as a configuration memory, are read out and this configuration information is written into the corresponding configuration register of the functional unit concerned. The configuration memory may be arranged, for example, in the secondary storage device. Alternatively or additionally, the configuration memory can also be arranged in the primary memory device. In a further embodiment, it is also conceivable to provide the configuration information by means of external components to the computing unit, for example in the form of (serial) flash memories, which are connected, for example, to corresponding interfaces of the computing unit.

Generell kann die primäre Speichereinrichtung der Recheneinheit bei einer Ausführungsform vorteilhaft sowohl einen Arbeitsspeicher (Direktzugriffsspeicher, RAM, Random Access Memory) als auch wenigstens einen Flash-Speicher, also einen nichtflüchtigen Speicher, aufweisen.In general, in one embodiment, the primary memory device of the arithmetic unit can advantageously have both a main memory (random access memory, RAM, random access memory) and at least one flash memory, that is to say a nonvolatile memory.

Bei weiteren Ausführungsformen ist die sekundäre Speichereinrichtung bevorzugt als RAM-Speicher ausgebildet, insbesondere als statischer RAM Speicher (SRAM).In further embodiments, the secondary memory device is preferably designed as a RAM memory, in particular as a static RAM memory (SRAM).

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine Eingangsschnittstelle zum Empfang der ersten Daten und/oder eine Ausgangsschnittstelle zur Ausgabe der zweiten Daten aufweist. Diese Ein- bzw. Ausgangsschnittstelle(n) können bei bevorzugten Ausführungsformen insbesondere zum Datenaustausch (Senden und/oder Empfangen) mit anderen gleichartigen oder verschiedenartigen Funktionseinheiten verwendet werden (oder ggf. auch mit anderen Komponenten, welche zu den Ein- bzw. Ausgangsschnittstelle(n) der Funktionseinheiten kompatible entsprechende Schnittstellen aufweisen).In a further advantageous embodiment, it is provided that at least one of the functional units has an input interface for receiving the first data and / or a Output interface for outputting the second data. This input or output interface (s) can be used in preferred embodiments, in particular for data exchange (sending and / or receiving) with other similar or different functional units (or possibly with other components which to the input or output interface (n ) of the functional units have compatible corresponding interfaces).

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten dazu ausgebildet ist, Daten aus der primären Speichereinrichtung und/oder aus der sekundären Speichereinrichtung und/oder aus weiteren Peripheriekomponenten (z.B. aus den adressierbaren Registern und/oder Speicherbereichen einer DMA-Steuereinheit und/oder einer Unterbrechungsanforderungs-Verteilereinrichtung und/oder weiterer Hardwarebeschleuniger) zu lesen und/oder in diese zu schreiben. Dies kann bei einer bevorzugten Ausführungsform insbesondere über eine von den vorstehend genannten Ein- bzw. Ausgangsschnittstelle(n) verschiedene (andersartige) Schnittstelle erfolgen, beispielsweise auch mittelbar über die von den vorstehend genannten Ein- bzw. Ausgangsschnittstelle(n) verschiedene (andersartige) Schnittstelle und z.B. über wenigstens eine primäre und/oder sekundäre Verbindungseinheit.In a further advantageous embodiment, it is provided that at least one of the functional units is configured to receive data from the primary memory device and / or from the secondary memory device and / or from other peripheral components (eg from the addressable registers and / or memory areas of a DMA control unit) / or an interrupt request dispatcher and / or other hardware accelerators) to read and / or write to. In a preferred embodiment, this can be done in particular via a different (different) interface from the abovementioned input or output interface (s), for example also indirectly via the (different) interface different from the abovementioned input or output interface (s) and eg via at least one primary and / or secondary connection unit.

Gemäß einer weiteren Ausführungsform können die Eingangsschnittstelle und/oder die Ausgangsschnittstelle beispielsweise dazu ausgebildet sein, für die Funktionseinheit bestimmte erste Daten in einem vorgebbaren Format, beispielsweise in Form von Datenpaketen, zu empfangen bzw. zur Ausgabe an eine andere Einheit, beispielsweise eine andere Funktionseinheit, bestimmte zweite Daten in einem vorgebbaren Format, beispielsweise wiederum in Form von Datenpaketen, auszugeben.According to a further embodiment, the input interface and / or the output interface can be designed, for example, to receive first data intended for the functional unit in a predefinable format, for example in the form of data packets, or for output to another unit, for example another functional unit. certain second data in a predeterminable format, for example, again in the form of data packets output.

Die Eingangsschnittstelle kann beispielsweise dazu ausgebildet sein, an die primäre Verbindungseinheit angeschlossen zu werden. Je nach Ausführung der primären Verbindungseinheit kann die Eingangsschnittstelle also beispielsweise dazu ausgebildet sein, an ein Koppelnetz und/oder ein Bussystem angeschlossen zu werden. Alternativ oder ergänzend kann die Eingangsschnittstelle auch dazu ausgebildet sein, eine direkte Datenverbindung zwischen der betreffenden Funktionseinheit und mindestens einer weiteren Funktionseinheit herzustellen, beispielsweise mittels direkt verschalteter Datenleitungen. Dieselben Ausführungen gelten in entsprechender Weise für die Ausbildung der Ausgangsschnittstelle bei weiteren Ausführungsformen der Erfindung.The input interface can be designed, for example, to be connected to the primary connection unit. Depending on the design of the primary connection unit, the input interface can thus be designed, for example, to be connected to a switching network and / or a bus system. Alternatively or additionally, the input interface can also be designed to establish a direct data connection between the relevant functional unit and at least one further functional unit, for example by means of directly interconnected data lines. The same statements apply in a corresponding manner to the formation of the output interface in further embodiments of the invention.

Bei einer weiteren Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine lokale Steuereinrichtung zur Steuerung eines Betriebs der Funktionseinheit aufweist. Beispielsweise kann eine derartige lokale Steuereinrichtung wenigstens einen Zustandsautomaten (englisch: state machine) umfassen.In a further embodiment, it is provided that at least one of the functional units has a local control device for controlling an operation of the functional unit. For example, such a local control device may comprise at least one state machine.

Bei einer besonders bevorzugten weiteren Ausführungsform kann der lokalen Steuereinrichtung auch eine lokale Rekonfigurationseinrichtung zugeordnet sein, welche eine Rekonfiguration bzw. Konfiguration der Funktionseinheit, insbesondere auch dynamisch, also während des Betriebs der Funktionseinheit, ermöglicht. Bei einer weiteren Ausführungsform ist es auch denkbar, die Funktionalität der lokalen Rückkonfigurationseinrichtung durch einen entsprechenden Teil des Zustandsautomaten bzw. der lokalen Steuereinrichtung abzubilden.In a particularly preferred further embodiment, the local control device can also be assigned a local reconfiguration device, which enables a reconfiguration or configuration of the functional unit, in particular also dynamically, that is to say during the operation of the functional unit. In a further embodiment, it is also conceivable to map the functionality of the local reconfiguration device through a corresponding part of the state machine or the local control device.

Bei einer weiteren vorteilhaften Ausführungsform weist wenigstens eine der Funktionseinheiten eine lokale Berechnungseinheit auf. Bei einer weiteren vorteilhaften Ausführungsform kann die lokale Berechnungseinheit wenigstens ein grobgranulares Hardwareelement aufweisen oder als grobgranulares Hardwareelement ausgebildet sein. Bei einer weiteren vorteilhaften Ausführungsform kann die lokale Berechnungseinheit wenigstens eine der Komponenten aufweisen: Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator (MAC), arithmetisch-logische Einheit (ALU), Speichereinheit, Register, Multiplexer, Demultiplexer, Schnittstelle, Einheit zur Auswertung von Exponentialfunktionen, Einheit zur Auswertung von trigonometrischen Funktionen.In a further advantageous embodiment, at least one of the functional units has a local calculation unit. In a further advantageous embodiment, the local calculation unit may have at least one coarse granular hardware element or be designed as a coarse-granular hardware element. In a further advantageous embodiment, the local calculation unit may comprise at least one of the components: adder, multiplier, divider, shift register, barrel shifter, comparator, multiplication accumulator (MAC), arithmetic logic unit (ALU), memory unit, registers, multiplexer, demultiplexer, Interface, unit for evaluating exponential functions, unit for evaluating trigonometric functions.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten einen lokalen Konfigurationsspeicher aufweist. Besonders bevorzugt kann der lokale Konfigurationsspeicher einen Registerspeicher umfassen, wobei insbesondere der lokale Konfigurationsspeicher eine Mehrzahl von Konfigurationsregistern umfasst. Dadurch ist eine effiziente Konfiguration und Neukonfiguration bzw. Rehkonfiguration, auch während des Betriebs der Funktionseinheit, möglich, indem ein oder mehrere Konfigurationsregister in der gewünschten Weise modifiziert werden. Das Modifizieren der Konfigurationsregister kann beispielsweise durch die Funktionseinheit selber und/oder durch eine andere Funktionseinheit und/oder eine andere Komponente der Recheneinheit wie z.B. einen Rechenkern erfolgen.In a further advantageous embodiment, it is provided that at least one of the functional units has a local configuration memory. Particularly preferably, the local configuration memory may comprise a register memory, wherein in particular the local configuration memory comprises a plurality of configuration registers. Thus, efficient configuration and reconfiguration, even during operation of the functional unit, is possible by modifying one or more configuration registers in the desired manner. The modifying of the configuration registers can be done, for example, by the functional unit itself and / or by another functional unit and / or another component of the arithmetic unit such as e.g. a calculation kernel done.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten einen lokalen Funktionsspeicher aufweist. Besonders bevorzugt kann der lokale Funktionsspeicher einen Registerspeicher umfassen bzw. einen Teil eines Registerspeichers darstellen. Insbesondere kann der lokale Funktionsspeicher wenigstens ein Funktionsregister umfassen. Der lokale Funktionsspeicher kann vorteilhaft zur zumindest zeitweisen Speicherung von Eingangsdaten und/oder Ausgangsdaten der Funktionseinheit bzw. von zwischen Ergebnissen von Berechnungen der Funktionseinheit verwendet werden.In a further advantageous embodiment, it is provided that at least one of the functional units has a local function memory. Particularly preferably, the local function memory may comprise a register memory or represent part of a register memory. In particular, the local function memory comprise at least one function register. The local function memory can advantageously be used for the at least temporary storage of input data and / or output data of the functional unit or of between results of calculations of the functional unit.

Bei einer weiteren vorteilhaften Ausführungsform ist es auch denkbar, die Funktionseinheit mit einer Vielzahl von Registerspeichern auszustatten, wobei eine erste Anzahl der Registerspeicher als Konfigurationsregister verwendbar ist, und wobei eine zweite Anzahl der Registerspeicher als Funktionsregister verwendbar ist. Bei weiteren Ausführungsformen ist es ferner denkbar, dass die erste Anzahl bzw. die zweite Anzahl variiert, und beispielsweise durch Konfiguration änderbar ist. Auf diese Weise kann ein Betrieb der Funktionseinheit sehr flexibel gestaltet werden und insbesondere der lokale (Register) Speicher dynamisch an von der Funktionseinheit auszuführende Berechnungen angepasst werden.In a further advantageous embodiment, it is also conceivable to equip the functional unit with a plurality of register memories, wherein a first number of the register memories can be used as a configuration register, and wherein a second number of the register memories can be used as a function register. In further embodiments, it is also conceivable that the first number or the second number varies, and is changeable, for example, by configuration. In this way, operation of the functional unit can be made very flexible and in particular the local (register) memory can be adapted dynamically to calculations to be performed by the functional unit.

Weitere vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche.Further advantageous embodiments are the subject of the dependent claims.

Weitere Lösungen der Aufgabe der vorliegenden Erfindung sind angegeben durch ein Steuergerät gemäß Patentanspruch 23 sowie ein Verfahren gemäß Patentanspruch 24.Further solutions of the object of the present invention are specified by a control device according to claim 23 and a method according to claim 24.

Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.Other features, applications and advantages of the invention will become apparent from the following description of embodiments of the invention, which are illustrated in the figures of the drawing. All described or illustrated features, alone or in any combination form the subject matter of the invention, regardless of their summary in the claims or their dependency and regardless of their formulation or representation in the description or in the drawing.

In der Zeichnung zeigt:

  • 1A schematisch ein Blockdiagramm einer Ausführungsform der erfindungsgemäßen Recheneinheit,
  • 1B-1H schematisch weitere Ausführungsformen der erfindungsgemäßen Recheneinheit,
  • 2A schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit gemäß einer Ausführungsform der Erfindung,
  • 2B schematisch eine Datenstruktur gemäß einer Ausführungsform der Erfindung,
  • 2C schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit gemäß einer weiteren Ausführungsform der Erfindung,
  • 3A, 3B schematisch jeweils ein vereinfachtes Blockdiagramm einer Funktionseinheit gemäß einer weiteren Ausführungsform der Erfindung,
  • 4 schematisch eine Datenflusskette gemäß einer Ausführungsform,
  • 5A schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens,
  • 5B schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens,
  • 5C schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens,
  • 6 ein Betriebsszenario gemäß einer Ausführungsform,
  • 7 schematisch ein vereinfachtes Blockdiagramm zweier Funktionseinheiten gemäß einer Ausführungsform,
  • 8A schematisch einen vereinfachten Datenfluss einer Ausführungsform, und
  • 8B schematisch einen Datenfluss gemäß 8A unter Einbeziehung einer primären Verbindungseinheit gemäß einer Ausführungsform.
In the drawing shows:
  • 1A 2 is a schematic block diagram of an embodiment of the inventive computing unit.
  • 1B - 1H schematically further embodiments of the computing unit according to the invention,
  • 2A schematically a simplified block diagram of a functional unit according to an embodiment of the invention,
  • 2 B schematically a data structure according to an embodiment of the invention,
  • 2C schematically a simplified block diagram of a functional unit according to another embodiment of the invention,
  • 3A . 3B 1 is a schematic block diagram of a functional unit according to a further embodiment of the invention,
  • 4 schematically a data flow chain according to an embodiment,
  • 5A schematically a simplified flow chart of an embodiment of the method according to the invention,
  • 5B schematically a simplified flowchart of a further embodiment of the method according to the invention,
  • 5C schematically a simplified flowchart of a further embodiment of the method according to the invention,
  • 6 an operating scenario according to an embodiment,
  • 7 2 is a simplified block diagram of two functional units according to one embodiment;
  • 8A schematically a simplified data flow of an embodiment, and
  • 8B schematically a data flow according to 8A including a primary connection unit according to an embodiment.

1A zeigt schematisch ein Blockdiagramm einer Ausführungsform der erfindungsgemäßen Recheneinheit 100. Die Recheneinheit 100 weist mehrere Rechenkerne 110a, 110b, 110c auf sowie eine primäre Speichereinrichtung 120. Eine Hauptverbindungseinheit 130, bei der es sich z.B. um ein Bussystem oder ein Koppelnetz (englisch: crossbar switch) handeln kann, ist vorgesehen zur Verbindung der Rechenkerne untereinander bzw. zur Verbindung der Rechenkerne mit der primären Speichereinrichtung 120. Optional weist die Recheneinheit 100 weitere Peripheriekomponenten auf, was vorliegend durch den gestrichelt dargestellten Block 125 angedeutet ist. Beispielsweise kann es sich bei derartigen Peripheriekomponenten um Analog/Digital-Wandler, Ein-/Ausgabeschnittstellen, Zeitgeberbausteine oder dergleichen handeln. 1A schematically shows a block diagram of an embodiment of the computing unit according to the invention 100 , The arithmetic unit 100 has several cores 110a . 110b . 110c and a primary storage device 120 , A main connection unit 130 , which may be, for example, a bus system or a crossbar switch, is provided for connecting the computing cores to one another or for connecting the computing cores to the primary memory device 120 , Optionally, the arithmetic unit points 100 other peripheral components, which in this case by the block shown in dashed lines 125 is indicated. By way of example, such peripheral components can be analog / digital converters, input / output interfaces, timer modules or the like.

Die primäre Speichereinrichtung 120 kann bei einer Ausführungsform vorteilhaft sowohl wenigstens einen Arbeitsspeicher (Direktzugriffsspeicher, RAM, Random Access Memory), insbesondere vom SRAM-Typ und/oder vom DRAM-Typ, als auch wenigstens einen nichtflüchtigen Speicher (non-volatile RAM (NVRAM)), aufweisen, z.B. als Flash, EPROM, Ferroelectric RAM (FeRAM), Magnetoresistiver RAM (MRAM), Phase-change RAM (PCRAM). The primary storage device 120 In one embodiment, it can advantageously have both at least one random access memory (RAM), in particular of the SRAM type and / or of the DRAM type, and at least one nonvolatile RAM (NVRAM), eg as Flash, EPROM, Ferroelectric RAM (FeRAM), Magnetoresistive RAM (MRAM), Phase-change RAM (PCRAM).

Erfindungsgemäß weist die Recheneinheit 100 wenigstens zwei Funktionseinheiten auf, wobei wenigstens eine erste Funktionseinheit 140a dazu ausgebildet ist, erste Daten von wenigstens einer weiteren Funktionseinheit 140, 140b zu empfangen und/oder zweite Daten an wenigstens eine weitere Funktionseinheit 140, 140b zu senden bzw. auszugeben.According to the invention, the arithmetic unit 100 at least two functional units, wherein at least a first functional unit 140a is configured to first data from at least one further functional unit 140 , 140b to receive and / or second data to at least one further functional unit 140 . 140b to send or to spend.

Die erfindungsgemäßen Funktionseinheiten 140,140a, 140b bieten vorteilhaft die Möglichkeit, eine Rechenleistung und/oder die Funktionalität der Recheneinheit 100 zu erweitern. Insbesondere ist durch die erfindungsgemäße Möglichkeit des direkten Datenaustauschs zwischen den Funktionseinheiten ein Datenfluss ermöglicht, welcher nicht die weiteren Komponenten der Recheneinheit 100 wie beispielsweise deren Rechenkerne 110a, 110b, 110c bzw. die primäre Speichereinrichtung 120 bzw. die Hauptverbindungseinheit 130 miteinbezieht. Auf diese Weise können die Rechenkerne 110a, 110b, 110c, die primäre Speichereinrichtung 120, und die Hauptverbindungseinheit 130 entlastet werden, während gleichzeitig ein oder mehrere erfindungsgemäße Funktionseinheiten 140, 140a, 140b für sie vorgesehene Berechnungsaufgaben bzw. sonstige Aufgaben wahrnehmen.The functional units according to the invention 140 , 140a, 140b advantageously offer the possibility of expanding a computing power and / or the functionality of the computing unit 100. In particular, the inventive possibility of direct data exchange between the functional units enables a data flow which does not permit the further components of the arithmetic unit 100 such as their cores 110a . 110b . 110c or the primary storage device 120 or the main connection unit 130 involves. In this way, the cores can 110a . 110b . 110c , the primary storage device 120 , and the main connection unit 130 be relieved, while at the same time perform one or more inventive functional units 140, 140a, 140b provided for them computational tasks or other tasks.

Beispielsweise können die erfindungsgemäßen Funktionseinheiten 140,140a, 140b, die bevorzugt überwiegend, besonders bevorzugt jedoch vollständig, als Hardwareschaltung realisiert sind, dazu ausgebildet sein, Berechnungen und/oder Logikoperationen und/oder sonstige Funktionen auszuführen. Die Realisierung von Look-up-Tabellen, Kennlinien und/oder Kennfeldern durch Funktionseinheiten ist ebenfalls denkbar. Details zu einem inneren Aufbau der Funktionseinheiten sind weiter unten u.a. unter Bezugnahme auf 2A, 2B, 2C, 3A, 3B angegeben. Nachfolgend wird jedoch zunächst unter Bezugnahme auf 1A bis 1H auf die Anordnung der Funktionseinheiten innerhalb der erfindungsgemäßen Recheneinheit 100 und deren Datenanbindung an die zentralen Komponenten 110a, 110b, 110c, 120, 130 der Recheneinheit 100 eingegangen.For example, the functional units according to the invention 140 , 140a, 140b, which are preferably implemented predominantly, but particularly preferably completely, as a hardware circuit, be designed to carry out calculations and / or logic operations and / or other functions. The realization of look-up tables, curves and / or maps by functional units is also conceivable. Details of an internal structure of the functional units are described below with reference to, inter alia 2A . 2 B . 2C . 3A . 3B specified. However, the following will be first with reference to 1A to 1H to the arrangement of the functional units within the computing unit according to the invention 100 and their data connection to the central components 110a . 110b . 110c . 120 . 130 the arithmetic unit 100 received.

Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine primäre Verbindungseinheit 150 vorgesehen ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen der ersten Funktionseinheit 140a und wenigstens einer weiteren Funktionseinheit 140, 140b herzustellen. Dies ermöglicht vorteilhaft die Steuerung eines Datenaustauschs bzw. Datenflusses zwischen verschiedenen Funktionseinheiten, so das auch während des Betriebs der Recheneinheit eine Konfiguration bzw. Neukonfiguration der Datenverbindung(en) zwischen den betreffenden Funktionseinheiten möglich ist, wodurch eine gesteigerte Flexibilität erzielt wird. Unter einer direkten Datenverbindung wird vorliegend verstanden, dass zwischen den beteiligten Funktionseinheiten Daten ausgetauscht werden können, ohne die Hauptverbindungseinheit 130 der Recheneinheit 100 zu verwenden. Vielmehr ermöglicht beispielsweise die primäre Verbindungseinheit 150 eine solche, direkte Datenverbindung zwischen den an sie angeschlossenen Funktionseinheiten, vgl. die Pfeile a1, a2, welche einen Datenfluss zwischen den Komponenten 140, 140a, 140b sowie der primären Verbindungseinheit 150 andeuten.In an advantageous embodiment it is provided that at least one primary connection unit 150 is provided, which is designed, at least temporarily, a, in particular direct, data connection between the first functional unit 140a and at least one further functional unit 140, 140b. This advantageously makes it possible to control a data exchange or data flow between different functional units, so that a configuration or reconfiguration of the data connection (s) between the respective functional units is also possible during operation of the arithmetic unit, whereby an increased flexibility is achieved. In the present case, a direct data connection means that data can be exchanged between the functional units involved without the main connection unit 130 the arithmetic unit 100 to use. Rather, for example, allows the primary connection unit 150 such a direct data connection between the functional units connected to them, see. the arrows a1, a2, which indicate a data flow between the components 140 . 140a . 140b and the primary connection unit 150 suggest.

Bei einer bevorzugten Ausführungsform weist die primäre Verbindungseinheit 150 wenigstens ein Koppelnetz 152a auf. Besonders bevorzugt ist das Koppelnetz als blockierungsfreies Koppelnetz ausgelegt. In diesem Fall ermöglicht das Koppelnetz 152a jederzeit die Herstellung von Datenverbindungen zwischen allen mit dem Koppelnetz 152a verbundenen Funktionseinheiten 140, 140a, 140b sowie gegebenenfalls weiteren mit dem Koppelnetz verbundenen Einheiten wie beispielsweise Komponente 130 der Recheneinheit.In a preferred embodiment, the primary connection unit 150 has at least one coupling network 152a on. Particularly preferably, the coupling network is designed as a blocking-free switching network. In this case, the switching network allows 152a at any time the production of data connections between all with the switching network 152a connected functional units 140 . 140a . 140b and optionally further units connected to the coupling network, such as components 130 the arithmetic unit.

Besonders vorteilhaft für die Erlangung einer blockierungsfreien oder blockierungsreduzierten Funktionsweise der Verbindungseinheit 150 ist einer Ausführungsform zufolge die Einschränkung ebendieser auf lediglich schreibende Datenverbindungen, wobei lesende Datenverbindungen entweder technisch nicht vorgesehen sind oder aber nicht erlaubt bzw. unterbunden werden können. Eine Unterbindung - sofern vorgesehen - kann vorteilhafterweise aktiviert und deaktiviert werden.Particularly advantageous for obtaining a blocking-free or reduced-blocking operation of the connection unit 150 According to one embodiment, the restriction of these to only write data connections, wherein read data connections are either not technically provided or can not be allowed or prevented. A ligation - if provided - can be advantageously activated and deactivated.

Bei weiteren Ausführungsformen ist es auch denkbar, die primäre Verbindungseinheit 150 als nicht blockierungsfreies Koppelnetz auszulegen.In further embodiments, it is also conceivable, the primary connection unit 150 designed as a non-blocking switching network.

Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit 150 auch andere Strukturen umfassen, beispielsweise wenigstens ein Bussystem, vgl. 1B, welches eine Datenverbindung zwischen den an das Bussystem 152b angeschlossenen Funktionseinheiten 140 herstellt.In further embodiments, the primary connection unit 150 Other structures include, for example, at least one bus system, cf. 1B , which provides a data connection between the to the bus system 152b connected functional units 140 manufactures.

Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit 150 auch wenigstens eine direkte Datenverbindung zwischen wenigstens zwei Funktionseinheiten 140, 140a aufweisen, vgl. den Pfeil 152c in 1A. Ferner sind bei anderen Ausführungsformen auch direkte Datenverbindungen zwischen anderen bzw. mehr als zwei Funktionseinheiten denkbar.In further embodiments, the primary connection unit 150 also at least one direct data connection between at least two functional units 140 . 140a have, cf. the arrow 152c in 1A , Furthermore, in other embodiments, direct data connections between other or more than two functional units are conceivable.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die wenigstens eine primäre Verbindungseinheit 150 mehrere der vorstehend genannten Verbindungsmechanismen aufweist, also beispielsweise ein Koppelnetz zur Verbindung einiger Funktionseinheiten bzw. aller Funktionseinheiten untereinander sowie beispielsweise ein Bussystem, welches mehrere bzw. alle Funktionseinheiten verbindet.In a further embodiment it can be provided that the at least one primary connection unit 150 has a plurality of the above-mentioned connection mechanisms, that is, for example, a switching network for connecting some functional units or all functional units with each other and, for example, a bus system which connects several or all functional units.

Bei einer weiteren Ausführungsform ist wenigstens eine sekundäre Verbindungseinheit 155, vgl. 1A, vorgesehen, die dazu ausgebildet ist, eine Datenverbindung, vgl. Pfeil a3, zwischen der Hauptverbindungseinheit 130 und wenigstens einer Funktionseinheit 140 entweder direkt und/oder mittelbar über die primäre Verbindungseinheit 150 herzustellen, wodurch eine leistungsfähige Anbindung zur Datenübertragung zwischen den betreffenden Funktionseinheiten 140, 140a, 140b sowie 110a, 110b, 110c, 120, 125 über die Hauptverbindungseinheit 130 gegeben ist.In another embodiment, at least one secondary connection unit 155 , see. 1A , provided, which is designed to provide a data connection, cf. Arrow a3, between the main connection unit 130 and at least one functional unit 140 either directly and / or indirectly via the primary connection unit 150 producing an efficient connection for data transmission between the respective functional units 140, 140a, 140b and 110a, 110b, 110c, 120, 125 via the main connection unit 130 given is.

Die Hauptverbindungseinheit 130 kann einer Ausführungsform zufolge beispielsweise als sogenannter „Core-Interconnect“ ausgebildet sein, also als zentrale Verbindungseinheit zur hochperformanten Verbindung (insbesondere mit hohen Datenraten und/oder geringen Latenzzeiten) der Komponenten 110a, 110b, 110c, 120, 125, 140 der erfindungsgemäßen Recheneinheit 100 untereinander. Bei einer besonders bevorzugten Ausführungsform kann die Hauptverbindungseinheit 130 wie vorstehend bereits beschrieben auch als Koppelnetz, insbesondere als blockierungsfreies Koppelnetz, ausgelegt sein.The main connection unit 130 According to one embodiment, for example, it can be embodied as a so-called "core interconnect", ie as a central connection unit for the high-performance connection (in particular with high data rates and / or low latency times) of the components 110a , 110b, 110c, 120, 125, 140 of the computing unit according to the invention 100 among themselves. In a particularly preferred embodiment, the main connection unit 130 as already described above, also be designed as a coupling network, in particular as a blocking-free switching network.

Insgesamt ermöglicht die Vorsehung der Funktionseinheiten 140, 140a, 140b und ihre flexible Verbindung untereinander, die mittels der primären Verbindungseinheit 150 hergestellt wird, die Bereitstellung zusätzlicher Rechenleistung bzw. zusätzlicher Funktionalitäten innerhalb der erfindungsgemäßen Recheneinheit 100. Die Gesamtheit der Komponenten 140, 140a, 140b, 150 kann somit vorteilhaft auch als „flexible Hardwareerweiterung“ 1500 der Recheneinheit 100 aufgefasst werden, wobei diese flexible Hardwareerweiterung 1500 Rechenaufgaben besonders vorteilhaft im Wesentlichen eigenständig, also unabhängig von den Komponenten 110a, 110b, 110c, 120, 125, 130, ausführen kann, jedoch bei Bedarf über die Anbindung der sekundären Verbindungseinheit 155 effizient mit wenigstens einer der Komponenten 110a, 110b, 110c, 120, 125, 130 Daten austauschen kann.Overall, the providence of the functional units allows 140 . 140a . 140b and their flexible connection with each other, by means of the primary connection unit 150 is produced, the provision of additional computing power or additional functionality within the computing unit according to the invention 100 , The entirety of the components 140 , 140a, 140b, 150 can thus also advantageously as "flexible hardware extension" 1500 of the arithmetic unit 100 be understood, with this flexible hardware extension 1500 Computing tasks particularly advantageous essentially independently, ie independent of the components 110a . 110b , 110c, 120, 125, 130, but if necessary via the connection of the secondary connection unit 155 efficient with at least one of the components 110a . 110b . 110c . 120 . 125 . 130 Can exchange data.

1B zeigt eine weitere Ausführungsform 100a der erfindungsgemäßen Recheneinheit. Bei der vorliegenden Ausführungsform sind die Komponenten 110a, 110b, 110c, 120, 125, 130, 152c, 155 im Wesentlichen unverändert vorhanden, aber die flexible Hardwareerweiterung weist vorliegend eine abweichende Struktur auf und ist daher in 1B mit dem Bezugszeichen 1500a bezeichnet. Vorliegend ist die primäre Verbindungseinheit 150 in Form eines Bussystems 152b realisiert, an das mehrere gleichartige oder verschiedene Funktionseinheiten 140 angeschlossen sind. Die Funktionseinheiten 140 können über das Bussystem 152b untereinander Daten austauschen. Einige der Funktionseinheiten 140 können zudem über die Direktverbindung 152c direkt Daten austauschen. Eine Datenverbindung zwischen der Hauptverbindungseinheit 130 und dem Bussystem 152b ist durch die sekundäre Verbindungseinheit 155 analog zu 1A realisiert, vgl. den Pfeil a3. 1B shows a further embodiment 100a the computing unit according to the invention. In the present embodiment, the components 110a, 110b, 110c, 120, 125, 130, 152c, 155 are substantially unchanged, but the flexible hardware extension herein has a different structure and is therefore in FIG 1B designated by the reference numeral 1500a. Present is the primary connection unit 150 in the form of a bus system 152b realized, to the several similar or different functional units 140 are connected. The functional units 140 can over the bus system 152b exchange data with each other. Some of the functional units 140 You can also use the direct connection 152c exchange data directly. A data connection between the main connection unit 130 and the bus system 152b is through the secondary connection unit 155 analogous to 1A realized, cf. the arrow a3.

1C zeigt eine weitere Ausführungsform 100b der erfindungsgemäßen Recheneinheit. Analog zu den 1A, 1B weist die Recheneinheit 100b gemäß 1C wiederum drei Rechenkerne 100a, 110b, 110c auf sowie eine primäre Speichereinrichtung 120 sowie gegebenenfalls weitere Peripherieeinheiten, welche in 1C jedoch nicht explizit abgebildet sind, sondern durch die drei Punkte rechts der primären Speichereinrichtung 120 symbolisiert sind. 1C shows a further embodiment 100b the computing unit according to the invention. Analogous to the 1A . 1B indicates the arithmetic unit 100b according to 1C again three cores 100a . 110b . 110c and a primary storage device 120 and optionally other peripheral units, which in 1C however, are not explicitly depicted, but by the three dots to the right of the primary memory device 120 are symbolized.

Bei der vorliegenden Ausführungsform ist eine flexible Hardwareerweiterung in Form von mehreren Gruppen G1, G2 von Funktionseinheiten vorgesehen. Eine erste Gruppe G1 weist vorliegend beispielhaft drei Funktionseinheiten 140c, 140d, 140e auf, die untereinander über eine erste primäre Verbindungseinheit 150_1 verbunden sind. Eine zweite Gruppe G2 weist vorliegend beispielhaft zwei Funktionseinheiten 140f, 140g auf, die untereinander über eine zweite primäre Verbindungseinheit 150_2 verbunden sind. Die erste primäre Verbindungseinheit 150_1 ist dazu ausgebildet, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen den Funktionseinheiten 140c, 140d, 140e der ersten Gruppe G1 herzustellen. Die zweite primäre Verbindungseinheit 150_2 ist dazu ausgebildet, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen den Funktionseinheiten 140f, 140g der zweiten Gruppe G2 herzustellen. Die erste primäre Verbindungseinheit 150_1 und/oder die zweite primäre Verbindungseinheit 150_2 können beispielsweise als Koppelnetz, insbesondere blockierungsfreies Koppelnetz, Bussystem, direkte Datenverbindung, oder in sonstiger Weise ausgebildet sein. Eine entsprechende Datenverbindung der jeweiligen Funktionseinheiten derselben Gruppe ist in 1C durch nicht näher bezeichnete Blockpfeile zwischen den betreffenden Funktionseinheiten und der jeweils zugeordneten primären Verbindungseinheit symbolisiert.In the present embodiment, a flexible hardware extension in the form of multiple groups G1, G2 of functional units is provided. In the present case, a first group G1 has, for example, three functional units 140c , 140d, 140e connected to each other via a first primary connection unit 150_1. In the present case, a second group G2 has two functional units by way of example 140f . 140g which are connected to each other via a second primary connection unit 150_2. The first primary connection unit 150_1 is designed, at least temporarily, for a, in particular direct, data connection between the functional units 140c . 140d . 140e of the first group G1. The second primary connection unit 150_2 is designed, at least temporarily, for a, in particular direct, data connection between the functional units 140f . 140g of the second group G2. The first primary connection unit 150_1 and / or the second primary connection unit 150_2 may be designed, for example, as a switching network, in particular a blocking-free switching network, a bus system, a direct data connection, or in any other way. A corresponding data connection of the respective functional units of the same group is in 1C symbolized by unspecified block arrows between the respective functional units and the respectively associated primary connection unit.

Durch die vorliegende Ausführungsform 100b der Recheneinheit können gleichsam mehrere Cluster G1, G2 von Funktionseinheiten bereitgestellt werden, welche jeweils gleichartige oder verschiedenartige Berechnungen oder sonstige Aufgaben ausführen können.By the present embodiment 100b The arithmetic unit can be provided as it were several clusters G1, G2 of functional units, which can each perform similar or different calculations or other tasks.

Vorliegend ist eine Datenverbindung zwischen den Gruppen G1, G2 und der Hauptverbindungseinheit 130 durch eine sekundäre Verbindungseinheit 155a realisiert, welche beispielsweise als Koppelnetz, Bussystem, oder in sonstiger Form ausgebildet sein kann. Eine entsprechende Datenverbindung zwischen den Gruppen G1, G2 und der Hauptverbindungseinheit 130 ist durch die Blockpfeile a4, a5 symbolisiert. Die sekundäre Verbindungseinheit 155a kann ferner zur Herstellung einer direkten Datenverbindung zwischen den Gruppen G1, G2 bzw. deren Funktionseinheiten ausgebildet sein, also ohne Einbeziehung der Hauptverbindungseinheit 130 für eine solche Datenverbindung.In the present case, a data connection between the groups G1, G2 and the Main connection unit 130 through a secondary connection unit 155a realized, which may be formed, for example, as a switching network, bus system, or in any other form. A corresponding data connection between the groups G1, G2 and the main connection unit 130 is symbolized by the block arrows a4, a5. The secondary connection unit 155a can also be designed to establish a direct data connection between the groups G1, G2 or their functional units, ie without the involvement of the main connection unit 130 for such a data connection.

Bei einer weiteren Ausführungsform (nicht gezeigt) ist vorgesehen, dass eine primäre Verbindungseinheit 150_1, welche einer Gruppe G1 von Funktionseinheiten zugeordnet ist, dazu ausgebildet ist, eine Datenverbindung zwischen Funktionseinheiten unterschiedlicher Gruppen G1, G2 herzustellen.In a further embodiment (not shown) it is provided that a primary connection unit 150_1, which is assigned to a group G1 of functional units, is designed to establish a data connection between functional units of different groups G1, G2.

Bei einer weiteren Ausführungsform (nicht gezeigt) ist vorgesehen, dass mehrere Gruppen in mehreren Obergruppen (OG) zusammengefasst werden. Trennt man namentlich die Obergruppe, Gruppe und Funktionseinheiten, so ergeben sich beispielsweise die Bezeichner OG1-G1-140a oder OG2-G3-140i. Innerhalb dieser hierarchischen Architektur ist die primäre Verbindungsarchitektur 150 ausgelegt, eine Datenverbindung herzustellen, insbesondere auf gleicher Hierarchieebene zwischen den Funktionseinheiten einer Gruppe (150-OG1-G1, 150-OG2-G3), zwischen den einzelnen Gruppen einer Obergruppe (150-OG1, 150-OG2), zwischen den Obergruppen (150x) sowie zwischen 150x und der sekundären Verbindungseinheit 155 sowie hierarchieübergreifende Verbindungen (z.B. zwischen 150-OG1 und 150-OG1-G1 oder zwischen 150x und 150-OG1) sowie ggf. vorhandene nicht-hierarchische Querverbindungen zwischen Einheiten.In a further embodiment (not shown), it is provided that several groups are combined in several upper groups (OG). If we separate the upper group, group and functional units by name, the identifiers OG1-G1-140a or OG2-G3-140i result, for example. Within this hierarchical architecture is the primary connection architecture 150 designed to establish a data connection, in particular on the same hierarchical level between the functional units of a group (150-OG1-G1, 150-OG2-G3), between the individual groups of a super-group (150-OG1, 150-OG2), between the upper groups ( 150 views ) and between 150x and the secondary connection unit 155 as well as cross-hierarchy connections (eg between 150-OG1 and 150-OG1-G1 or between 150x and 150-OG1) as well as any existing non-hierarchical cross-connections between units.

Bei einer weiteren Ausführungsform (nicht gezeigt) können weitere Hierarchieebenen in analoger Vorgehensweise vorhanden sein.In a further embodiment (not shown), further hierarchy levels may be present in analogous procedure.

1D zeigt eine weitere Ausführungsform 100c der erfindungsgemäßen Recheneinheit. Im Gegensatz zu der Ausführungsform gemäß 1C ist eine sekundäre Verbindungseinheit 155c vorgesehen, welche jeweils eine Datenverbindung a6, a7 zwischen den primären Verbindungseinheiten 150_1, 150_2 der Gruppen G1, G2 herstellt, sowie eine Datenverbindung a8 zwischen diesen Elementen und der Hauptverbindungseinheit 130. 1D shows a further embodiment 100c the computing unit according to the invention. In contrast to the embodiment according to 1C is a secondary connection unit 155c each of which provides a data connection a6, a7 between the primary connection units 150_1, 150_2 of the groups G1, G2, and a data connection a8 between these elements and the main connection unit 130 ,

1E zeigt eine weitere Ausführungsform 100d der erfindungsgemäßen Recheneinheit. Hierbei sind weitere Peripheriekomponenten der Recheneinheit 100d wie beispielsweise Analog/Digital-Wandler 125a, Schnittstellenbausteine 125b gezeigt. Bei dieser Ausführungsform ist als sekundäre Verbindungseinheit ferner ein Bussystem 155d vorgesehen, welches eine Datenverbindung a8' zwischen der Hauptverbindungseinheit 130 und der primären Verbindungseinheit 150 herstellt. Bevorzugt weist die primäre Verbindungseinheit 150 wiederum ein Koppelnetz 152 auf, um die verschiedenen Funktionseinheiten 140i, 140k, ..., 140p untereinander zu verbinden. Optional weist die Funktionseinheit 140k zusätzlich zu ihrer Datenverbindung zu dem Koppelnetz 152 eine direkte Datenverbindung a9 zu dem Bussystem 155d auf. Die weitere Funktionseinheit 140i ist in vergleichbarer Weise sowohl über das Koppelnetz 152 als auch eine direkte Verbindung a10 zu dem Bussystem 155d angebunden. 1E shows a further embodiment 100d the computing unit according to the invention. Here are other peripheral components of the computing unit 100d such as analog / digital converters 125a , Interface chips 125b are shown. In this embodiment, as a secondary connection unit, there is further a bus system 155d providing a data connection a8 'between the main connection unit 130 and the primary connection unit 150. Preferably, the primary connection unit 150 again a switching network 152 on to the different functional units 140i . 140k , ..., 140p to connect with each other. Optionally, the functional unit points 140k in addition to its data connection to the switching network 152 a direct data connection a9 to the bus system 155d on. The further functional unit 140i is in a comparable manner both via the switching network 152 as well as a direct connection a10 to the bus system 155d tethered.

Die primäre Speichereinrichtung 120 der Recheneinheit 100, 100a, 100b, 100c, 100d kann bei manchen Ausführungsformen wenigstens einen Direktzugriffsspeicher (RAM, random access memory) aufweisen. Zusätzlich kann die primäre Speichereinrichtung 120 optional noch weitere Speichersysteme, insbesondere auch nicht flüchtige Speichersysteme, aufweisen, wie beispielsweise einen oder mehrere Flash-Speicher.The primary storage device 120 the arithmetic unit 100 . 100a . 100b . 100c 100d may include at least one random access memory (RAM) in some embodiments. In addition, the primary storage device 120 Optionally, further storage systems, in particular also non-volatile storage systems have, such as one or more flash memory.

Bei manchen Ausführungsformen ist es möglich, dass eine oder mehrere Funktionseinheiten 140 auf die primäre Speichereinrichtung 120 zugreifen, was üblicherweise unter Verwendung der Hauptverbindungseinheit 130, der sekundären Verbindungseinheit 155 sowie gegebenenfalls einer primären Verbindungseinheit 150 (1A) erfolgt.In some embodiments, it is possible for one or more functional units 140 to the primary storage device 120 access, which is usually using the main connection unit 130 , the secondary connection unit 155 and optionally a primary compound unit 150 ( 1A ) he follows.

Bei einer weiteren bevorzugten Ausführungsform 100e der erfindungsgemäßen Recheneinheit, die nachstehend unter Bezugnahme auf 1F beschrieben ist, ist mindestens eine sekundäre Speichereinrichtung 160 vorgesehen. Die sekundäre Speichereinrichtung 160 ist vorzugsweise als Direktzugriffsspeicher (RAM), insbesondere als statischer Direktzugriffsspeicher (SRAM, static RAM) ausgebildet. Vorliegend ist beispielhaft eine sekundäre Speichereinrichtung 160 abgebildet; bei weiteren Ausführungsformen können jedoch auch mehrere sekundäre Speichereinrichtungen 160 vorgesehen sein. Für solche Ausführungsformen geltend die nachfolgend beschriebenen Aspekte, die beispielhaft an der einen in 1F abgebildeten sekundären Speichereinrichtung 160 erläutert sind, entsprechend.In a further preferred embodiment 100e the computing unit according to the invention, the below with reference to 1F is described is at least one secondary storage device 160 intended. The secondary storage device 160 is preferably designed as random access memory (RAM), in particular as static random access memory (SRAM, static RAM). In the present case, a secondary storage device is an example 160 displayed; however, in further embodiments, multiple secondary storage devices may also be used 160 be provided. For such embodiments, the following described aspects, which exemplify the one in 1F illustrated secondary storage device 160 are explained accordingly.

Bei einer besonders vorteilhaften Ausführungsform weist die sekundäre Speichereinrichtung 160 mehrere Speicherbänke 162a, 162b, 162c, ..., 162n auf. Insbesondere kann die sekundäre Speichereinrichtung dazu ausgebildet sein, einen parallelen Datenzugriff auf wenigstens zwei der mehreren Speicherbänke 162a, 162b, 162c, ..., 162n zu ermöglichen. Dadurch wird vorteilhaft eine hohe Bandbreite für Zugriffe auf die sekundäre Speichereinrichtung 160 bzw. deren Bänke ermöglicht, und insbesondere können auch nicht zusammenhängende Datenblöcke parallel bzw. gleichzeitig in die sekundäre Speichereinrichtung 160 geschrieben bzw. von der sekundären Speichereinrichtung 160 gelesen werden.In a particularly advantageous embodiment, the secondary storage device 160 several memory banks 162a . 162b . 162c , ..., 162n on. In particular, the secondary memory device may be configured to allow parallel data access to at least two of the plurality of memory banks 162a, 162b, 162c, ..., 162n. This advantageously provides a high bandwidth for accesses to the secondary storage device 160 or their banks allows, and in particular can also not contiguous blocks of data in parallel or simultaneously in the secondary storage device 160 written or from the secondary storage device 160 to be read.

Vorliegend ist der sekundären Speichereinrichtung 160 ein Speicherbussystem 164 zugeordnet, welches einen Zugriff auf die Speicherbänke der sekundären Speichereinrichtung 160 ermöglicht, vgl. die Blockpfeile a11. Das Speicherbussystem 164 ist vorteilhafterweise über eine Buskopplungseinheit 165 mit dem Bussystem 155d gekoppelt, welches die vorstehend bereits beschriebene Datenverbindung zwischen dem Koppelnetz 152 bzw. den Funktionseinheiten 140i, 140k, ..., 140p und der Hauptverbindungseinheit 130 ermöglicht. Die Buskopplungseinheit 165 ermöglicht einen Datenaustausch zwischen dem Bussystem 155d und dem Speicherbussystem 164, vgl. den Pfeil a14. Dadurch wird insbesondere ermöglicht, dass Speicherbereiche der sekundären Speichereinrichtung 160 in einem globalen Adressraum der Recheneinheit 100e sichtbar werden und damit beispielsweise auch zugreifbar sind (Lesen und/oder Schreiben) für andere Peripheriekomponenten 125a, 125b der erfindungsgemäßen Recheneinheit 100.In the present case is the secondary storage device 160 associated with a memory bus system 164 which accesses the memory banks of the secondary memory device 160 allows, cf. the block arrows a11. The memory bus system 164 is advantageously via a bus coupling unit 165 with the bus system 155d coupled, which the already described above data connection between the switching network 152 or the functional units 140i . 140k , ..., 140p and the main connection unit 130 allows. The bus coupling unit 165 allows data exchange between the bus system 155d and the memory bus system 164 , see. the arrow a14. This makes possible, in particular, that memory areas of the secondary memory device 160 in a global address space of the arithmetic unit 100e become visible and thus, for example, also accessible (reading and / or writing) for other peripheral components 125a . 125b the computing unit according to the invention 100 ,

In einer besonders bevorzugten Ausführungsform kann ferner eine direkte Datenverbindung a12, a13 zwischen einzelnen Funktionseinheiten 140k, 140i und dem Speicherbussystem 164 bestehen, sodass die betreffenden Funktionseinheiten 140k, 140i direkt auf die sekundäre Speichereinrichtung 160 zugreifen können, insbesondere ohne das Koppelnetz der primären Verbindungseinheit 150 bzw. ggf. die Hauptverbindungseinheit 130 verwenden zu müssen.In a particularly preferred embodiment, further, a direct data connection a12, a13 between individual functional units 140k . 140i and the memory bus system 164 so that the functional units concerned 140k . 140i directly to the secondary storage device 160 especially without the coupling network of the primary connection unit 150 or possibly the main connection unit 130 to use.

Bei einer weiteren Ausführungsform (nicht gezeigt) können mehrere parallele Speichereinrichtungen 160 mit den zuvor genannten Merkmalen vorhanden sein.In a further embodiment (not shown), a plurality of parallel memory devices 160 be present with the aforementioned features.

1G zeigt eine weitere Ausführungsform 100f der erfindungsgemäßen Recheneinheit. Im Unterschied zu der Konfiguration gemäß 1F ist eine Datenverbindung a15 zwischen dem Bussystem 155d und der primären Verbindungseinheit 150 derart vorgesehen, dass Daten von dem Bussystem 155d aus zu der primären Verbindungseinheit 150 ausschließlich geschrieben werden können. Hierbei kann es sich beispielsweise um Daten handeln, welche von einem der Rechenkerne 110a, 110b, 110c bereitgestellt werden und einer oder mehreren Funktionseinheiten 140i, 140k zugeleitet werden sollen. Insbesondere ermöglicht die Datenverbindung a15 keine Lesezugriffe von dem Bussystem 155d aus auf die primäre Verbindungseinheit 150. 1G shows a further embodiment 100f the computing unit according to the invention. Unlike the configuration according to 1F is a data connection a15 between the bus system 155d and the primary connection unit 150 provided such that data from the bus system 155d to the primary connection unit 150 can only be written. This may be, for example, data which is from one of the calculation cores 110a . 110b . 110c be provided and one or more functional units 140i . 140k should be forwarded. In particular, the data connection a15 does not allow read accesses from the bus system 155d out to the primary connection unit 150 ,

In einer weiteren Ausführungsform der 1G ist eine Datenverbindung a15 zwischen dem Bussystem 155d und der primären Verbindungseinheit 150 derart vorgesehen, dass von der primären Verbindungseinheit 150 weder ein lesender noch schreibender Zugriff auf das Bussystem 155d möglich ist. Gleichbedeutend können Funktionseinheiten somit nur noch über ggf. vorhandene Direktverbindungen auf 155d bzw. auf 164 respektive die nachfolgenden Einheiten, z.B. 120 bzw. 160, zugreifen, nicht jedoch über die primäre Verbindungseinheit 150.In a further embodiment of the 1G is a data connection a15 between the bus system 155d and the primary connection unit 150 provided such that of the primary connection unit 150 neither read nor write access to the bus system 155d is possible. Equivalently, functional units can thus access 155d or 164 or the subsequent units, eg 120 or 160, via possibly existing direct connections, but not via the primary connection unit 150 ,

In einer weiteren Ausführungsform der 1G sind die Datenverbindungen a150 zwischen den Funktionseinheiten 140h, 140i, ... und der primären Verbindungseinheit 150 ausschließlich schreibend, nicht jedoch lesend, vorgesehen. Somit kann eine Funktionseinheit durch eine erste Datenverbindung aktiv schreiben als auch durch eine zweite Datenverbindung (passiv) beschrieben werden. Bei einer weiteren Ausführungsform kann auch vorgesehen sein, dass dies nur für manche der vorhandenen Funktionseinheiten gilt, also nur zwischen manchen Funktionseinheiten und der primären Verbindungseinheit 150 ausschließlich Schreibzugriffe zulassende Datenverbindungen a150 vorgesehen sind.In a further embodiment of the 1G are the data connections a150 between the functional units 140h . 140i , ... and the primary connection unit 150 exclusively writing, not reading, provided. Thus, a functional unit can actively write through a first data connection as well as be described by a second data connection (passive). In another embodiment, it may also be provided that this only applies to some of the existing functional units, ie only between some functional units and the primary connection unit 150 only write access permitting data connections a150 are provided.

1H zeigt eine weitere Ausführungsform 100g der erfindungsgemäßen Recheneinheit. Zusätzlich zu den bereits aus der Konfiguration gemäß 1G bekannten Komponenten ist in 1H eine Unterbrechungsanforderungs-Verteilereinrichtung (englisch: interrupt router) 170 der Recheneinheit 100g abgebildet, welche in an sich bekannter Weise Unterbrechungsanforderungen (englisch: interrupts) zwischen Komponenten der Recheneinheit 100g verteilt. 1H shows a further embodiment 100 g the computing unit according to the invention. In addition to those already from the configuration according to 1G known components is in 1H an interrupt request dispatcher (English: interrupt router) 170 of the arithmetic unit 100 g shown, which in a conventional manner interrupt requests (English: interrupts) between components of the arithmetic unit 100 g distributed.

Bei der vorliegenden Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten 140j, 140k wenigstens eine, insbesondere direkte, vorzugsweise lediglich über eine innerhalb der flexiblen Hardwareerweiterung 1500 befindliche Vorstufe 170a realisierte, Datenverbindung zu der Unterbrechungsanforderung-Verteilereinrichtung 170 der Recheneinheit 100g aufweist, vgl. die Pfeile a16. Dadurch ist vorteilhaft die Möglichkeit gegeben, dass die betreffende Funktionseinheit 140j, 140k direkt auf die Verarbeitung von Unterbrechungsanforderungen innerhalb der Recheneinheit 100g bzw. deren Unterbrechungsanforderung-Verteilereinrichtung 170 über a16, über 170a, über a18 einwirken kann, beispielsweise um Unterbrechungsanforderungen zu erzeugen bzw. in sonstiger Weise zu beeinflussen (beispielsweise zu maskieren).In the present embodiment it is provided that at least one of the functional units 140j . 140k at least one, in particular direct, preferably only via a within the flexible hardware extension 1500 located precursor 170a realized data connection to the interrupt request dispatcher 170 the arithmetic unit 100 g has, cf. the arrows a16. This advantageously provides the possibility that the relevant functional unit 140j . 140k directly to the processing of interrupt requests within the arithmetic unit 100 g or their interrupt request distributor 170 via a16, via 170a, via a18 can act, for example, to create interruption requests or influence in any other way (for example, to mask).

Die in der flexiblen Hardwareerweiterung 1500 befindliche Vorstufe 170a kann vorzugsweise über die sekundäre Verbindungseinheit 155 (bzw. in 1H 155d) von den Komponenten der Recheneinheit 100g, insb. den Rechenkernen 110a, 110b, 110c, konfiguriert und/oder zurückgesetzt und/oder sonst wie eingestellt oder ausgelesen werden, insbesondere indem auf sich innerhalb von 170a befindliche Register zugegriffen wird. Ebenfalls ist auch eine Ausführungsform ohne die Vorstufe 170a denkbar, so dass die Signale der Funktionseinheiten 140j, 140k direkt auf die Unterbrechungsanforderungs-Verteilereinrichtung 170 geführt werden (Pfeile a16 und a18 gehen direkt ineinander über).The in the flexible hardware extension 1500 pre-stage 170a may preferably be via the secondary connection unit 155 (or in 1H 155d) of the components of computer unit 100 g , in particular the computing cores 110a, 110b, 110c, configured and / or reset and / or otherwise set or read, in particular by accessing registers located within 170a. Also is an embodiment without the precursor 170a conceivable, so that the signals of the functional units 140j . 140k directly to the interrupt request dispatcher 170 (arrows a16 and a18 merge directly into each other).

Ebenfalls ist es bei anderen Ausführungsform denkbar, dass eine Funktionseinheit 140j dazu ausgebildet ist, Unterbrechungsanforderungen von der Unterbrechungsanforderungs-Verteilereinrichtung 170, ggf. über die Vorstufe 170a, zu empfangen, vgl. Pfeile a16, a18. Dadurch ist vorteilhaft die Möglichkeit gegeben, Unterbrechungsanforderungen von den weiteren Komponenten der Recheneinheit 100 über 170 und ggf. 170a an die Funktionseinheit 140j zu senden, um deren Betrieb zu beeinflussen bzw. ihre Konfiguration zu verändern.It is also conceivable in another embodiment that a functional unit 140j is configured to interrupt requests from the interrupt request distribution means 170 possibly via the pre-stage 170a, cf. Arrows a16, a18. This advantageously gives the possibility of interruption requests from the other components of the arithmetic unit 100 over 170 and possibly 170a to the functional unit 140j to influence their operation or to change their configuration.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten 140l, 140m eine, insbesondere direkte, Datenverbindung a17 zu einer Eingabeschnittstelle und/oder Ausgabeschnittstelle (bzw. einer kombinierten Ein- und Ausgabeschnittstelle) der Recheneinheit 100g aufweist. Ein- und Ausgabeschnittstellen sind z.B. einfache digitale oder analoge oder analog/digitale Pins (I/O Pins) oder aber Schnittstellen, die aus einem oder mehreren Pins bestehen und in Ihrem gemeinsamen Zusammenwirken z.B. ein spezielles Kommunikationsprotokoll bedienen. Solche Ein- und Ausgabeschnittstellen der Recheneinheit 100g sind in 1H beispielhaft durch den Block 180 repräsentiert. Damit ist vorteilhaft die Möglichkeit gegeben, dass eine Funktionseinheit 140m Eingangssignale von der Eingabeschnittstelle 180 der Recheneinheit 100g empfängt bzw. Ausgangssignale über die Ausgabeschnittstelle 180 der Recheneinheit 100g ausgibt, beispielsweise von bzw. an extern zu der Recheneinheit 100g angeordnete Einheiten (nicht gezeigt).In a further advantageous embodiment, it is provided that at least one of the functional units 140l . 140m a, in particular direct, data connection a17 to an input interface and / or output interface (or a combined input and output interface) of the arithmetic unit 100 g having. Input and output interfaces are, for example, simple digital or analog or analog / digital pins (I / O pins) or interfaces that consist of one or more pins and in their joint interaction, for example, serve a special communication protocol. Such input and output interfaces of the arithmetic unit 100 g are in 1H exemplified by the block 180 represents. This is advantageous given the possibility that a functional unit 140m Input signals from the input interface 180 the arithmetic unit 100 g receives or outputs via the output interface 180 the arithmetic unit 100 g outputs, for example, from or to externally to the arithmetic unit 100 g arranged units (not shown).

In einer weiteren vorteilhaften Ausführungsform (nicht gezeigt), kann 180 aufgetrennt werden in einen die Daten empfangenden oder versendenden Teil 180a sowie einen das Kommunikationsprotokoll der Schnittstelle bedienenden Teil 180b. 180a ist dabei direkt an die Funktionseinheiten 140m angebunden. 180b kann sich innerhalb oder außerhalb der flexiblen Hardwareerweiterung 1500 befinden. Vorteilhafterweise kann 180b mit weiteren Komponenten der Recheneinheit 100g geteilt werden.In a further advantageous embodiment (not shown), 180 can be split into a part receiving or transmitting the data 180a and a part serving the communication protocol of the interface 180b , 180a is directly connected to the functional units 140m tethered. 180b can be inside or outside the flexible hardware extension 1500 are located. Advantageously, 180b can be used with other components of the arithmetic unit 100 g to be shared.

Nachfolgend werden Details betreffend einen Aufbau der erfindungsgemäßen Funktionseinheiten unter Bezugnahme auf Fig. 2A, 2B, 2C näher beschrieben. 2A zeigt hierzu schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit 1400 gemäß einer Ausführungsform der Erfindung. Die nachfolgend unter Bezugnahme auf 2A beschriebene Struktur der Funktionseinheit 1400 kann beispielsweise bei einer oder mehreren bzw. allen der vorstehend genannten und unter Bezugnahme auf die 1A bis 1H beschriebenen Funktionseinheiten 140,140a,... , 140q in der in 2A abgebildeten Weise oder wenigstens in ähnlicher Weise vorhanden sein. Es versteht sich, dass weiteren Ausführungen zufolge Abweichungen von der 2A beschriebenen Struktur ebenfalls möglich sind.Hereinafter, details regarding a structure of the functional units according to the invention will be described in more detail with reference to FIGS. 2A, 2B, 2C. 2A schematically shows a simplified block diagram of a functional unit 1400 according to an embodiment of the invention. The following with reference to 2A described structure of the functional unit 1400 For example, in one or more or all of the above and with reference to the 1A to 1H described functional units 140 , 140a, ..., 140q in the 2A pictured manner or at least in a similar way. It is understood that further statements indicate deviations from the 2A described structure are also possible.

Die Funktionseinheit 1400 weist eine Eingangsschnittstelle 1402 zum Empfang von ersten Daten auf, welche beispielsweise von einer weiteren Funktionseinheit (nicht gezeigt) an die Funktionseinheit 1400 gemäß 2A übertragen werden. Für die weitere Beschreibung der 2A wird beispielhaft davon ausgegangen, dass die Funktionseinheit 1400 über ihre Eingangsschnittstelle 1402 wenigstens eine Datenverbindung zu einer primären Verbindungseinheit 150 (vergleiche 1A) aufweist, wobei die primäre Verbindungseinheit 150 vorzugweise ein Koppelnetz 152a aufweist. Eine entsprechende Ausgangsschnittstelle des Koppelnetzes 152a, die mit der Eingangsschnittstelle 1402 der Funktionseinheit 1400 verbunden ist, ist in 2A durch das gestrichelt gezeichnete Rechteck 1502 symbolisiert. Erste Eingangsdaten, die der Eingangsschnittstelle 1402 der Funktionseinheit 1400 über die Ausgangsschnittstelle 1502 des Koppelnetzes 152 (1A) zuführbar sind, sind in 2A mit dem Blockpfeil a20 bezeichnet.The functional unit 1400 has an input interface 1402 for receiving first data which, for example, from another functional unit (not shown) to the functional unit 1400 according to 2A be transmitted. For the further description of the 2A By way of example, it is assumed that the functional unit 1400 via its input interface 1402 at least one data connection to a primary connection unit 150 (see 1A ), wherein the primary connection unit 150 preferably a switching network 152a having. A corresponding output interface of the switching network 152a connected to the input interface 1402 the functional unit 1400 is connected in 2A symbolized by the dashed rectangle 1502. First input data, the input interface 1402 the functional unit 1400 via the output interface 1502 of the switching network 152 ( 1A ) are in 2A denoted by the block arrow a20.

Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass der Funktionseinheit 1400 mehrere Eingangsdaten, insbesondere gleichzeitig, zuführbar sind, was in 2A durch den gestrichelt gezeichneten Blockpfeil a21 sowie die Punkte zwischen dem Blockpfeilen a20, a21 angedeutet ist. Für den gleichzeitigen bzw. parallelen Empfang von Eingangsdaten können bei einer Ausführungsform z.B. entsprechend viele Eingangsschnittstellen 1402 vorgesehen sein (nicht gezeigt).In a further advantageous embodiment it can be provided that the functional unit 1400 a plurality of input data, in particular simultaneously, can be supplied, which is in 2A is indicated by the dashed block arrow a21 and the points between the block arrows a20, a21. For the simultaneous or parallel reception of input data, in one embodiment, for example, a corresponding number of input interfaces 1402 be provided (not shown).

Bei einer Ausführungsform ist vorgesehen, dass die Eingangsschnittstelle 1402 zum Empfang von ersten Daten bzw. Eingangsdaten in Form von Datenpaketen ausgebildet ist. Die Datenpakete können beispielsweise ein Format haben, welches spezifisch ist für eine Kommunikation zwischen mehreren erfindungsgemäßen Funktionseinheiten 1400.In one embodiment, it is provided that the input interface 1402 is designed to receive first data or input data in the form of data packets. The data packets may, for example, have a format which is specific for a communication between a plurality of functional units according to the invention 1400 ,

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Eingangsschnittstelle 1402 nur geschriebene Daten empfangen kann, jedoch explizit keine Lesezugriffe von außen unterstützt bzw. diese alternativ unterbinden kann. Ebenso kann in einer weiteren Ausführungsform vorgesehen sein, dass die Funktionseinheit 1400 keinen Datentransfer, weder lesend noch schreibend über die Schnittstelle 1402 absetzen bzw. initiieren kann. Dazu kann die Schnittstelle 1402 technisch entsprechend eingeschränkt sein oder aber diese Zugriffmöglichkeit unterbunden werden.In a further embodiment it can be provided that the input interface 1402 can receive only written data, but explicitly does not support read accesses from the outside or can prevent them alternatively. Likewise, it can be provided in a further embodiment that the functional unit 1400 No data transfer, neither read nor write via the interface 1402 can settle or initiate. This can be done by the interface 1402 be technically correspondingly restricted or this accessibility can be prevented.

Bei weiteren Ausführungsformen (nicht gezeigt) kann auch vorgesehen sein, dass eine Funktionseinheit 1400 mehrere Eingangsschnittstellen 1402 des vorstehend beschriebenen Typs aufweist. Beispielhaft kann die Eingangsschnittstelle 1402 auch als funktionseinheitsspezifische Eingangsschnittstelle bezeichnet werden, weil sie speziell zur, vorzugsweise direkten, Datenkommunikation zwischen verschiedenen Funktionseinheiten untereinander vorgesehen ist. Unter einer direkten Datenkommunikation zwischen Funktionseinheiten wird hierbei eine Datenkommunikation verstanden, welche neben den beteiligten Funktionseinheiten allenfalls noch eine primäre Verbindungseinheit 150, beispielsweise mit dem Koppelnetz 152, aufweist, nicht jedoch beispielsweise die Hauptverbindungseinheit 130 der erfindungsgemäßen Recheneinheit 100 (1A).In further embodiments (not shown) can also be provided that a functional unit 1400 several input interfaces 1402 of the type described above. By way of example, the input interface 1402 Also referred to as functional unit-specific input interface, because it is designed specifically for, preferably direct, data communication between different functional units with each other. Direct data communication between functional units here means data communication which, in addition to the functional units involved, is possibly still a primary connection unit 150 , for example with the switching network 152 , but not, for example, the main connection unit 130 the computing unit according to the invention 100 ( 1A ).

Alternativ ist es bei weiteren Ausführungsformen (nicht gezeigt) auch denkbar, dass eine Funktionseinheit gar keine Eingangsschnittstelle 1402 des vorstehend beschriebenen Typs aufweist, also gar keine funktionseinheitsspezifische Eingangsschnittstelle. Eine derartig konfigurierte Funktionseinheit kann demnach keine Eingangsdaten von einer anderen Funktionseinheit über die vorstehend genannte Eingangsschnittstelle 1402 entgegennehmen. Beispielsweise kann eine derartige Funktionseinheit jedoch dazu ausgebildet sein, Daten aus einer anderen Quelle zu laden, beispielsweise aus der primären Speichereinrichtung 120 der Recheneinheit über die Verbindung a9 (1F) und/oder der sekundären Speichereinrichtung 160, vergleiche 1F. Das Laden solcher Daten aus einer anderen Quelle kann über eine entsprechend konfigurierte andersartige Schnittstelle erfolgen, beispielsweise über eine direkte Datenverbindung, z.B. zwischen der Funktionseinheit und der sekundären Speichereinrichtung 160, wie dies in 1F durch den Blockpfeil a12 symbolisiert ist. Eine derartige andersartige Schnittstelle ist in 2A auch angedeutet durch den gestrichelt gezeichneten Blockpfeil a24.Alternatively, it is also conceivable in further embodiments (not shown) that a functional unit has no input interface 1402 of the type described above, ie no functional unit-specific input interface. Accordingly, a functional unit configured in this way can not receive input data from another functional unit via the above-mentioned input interface 1402 answer. For example, however, such a functional unit may be designed to load data from another source, for example from the primary memory device 120 of the arithmetic unit via the connection a9 (FIG. 1F ) and / or the secondary storage device 160 , compare 1F , The loading of such data from another source can be done via a differently configured interface, for example via a direct data connection, eg between the functional unit and the secondary storage device 160 like this in 1F is symbolized by the block arrow a12. Such a different interface is in 2A also indicated by the dashed block arrow a24.

Bei einer bevorzugten Ausführungsform ist die Funktionseinheit dazu ausgebildet, über die Schnittstelle a24 eine vorgebbare Menge von Datenworten einzulesen bzw. an diese auszugeben, beispielsweise wenigstens ein Datenwort, oder aber z.B. N viele Datenwörter, mit N >= 1. Dies kann bevorzugt eigenständig erfolgen, also ohne dass eine (Re-)Konfiguration der Funktionseinheit oder eine Interaktion der Funktionseinheit mit anderen Komponenten erforderlich ist, bevor alle einzulesenden bzw. auszugebenden Datenworte gelesen bzw. geschrieben worden sind. Optional kann die Funktionseinheit auch dazu ausgebildet sein, Informationen, die die eingelesene bzw. ausgegebene Menge von Datenworten charakterisieren, an eine nachfolgende Funktionseinheit auszugeben.In a preferred embodiment, the functional unit is designed to read in or output via the interface a24 a predefinable set of data words, for example at least one data word, or else e.g. N many data words, with N> = 1. This can preferably be done independently, so without a (re-) configuration of the functional unit or an interaction of the functional unit with other components is required before all data words to be read or written have been read or written are. Optionally, the functional unit can also be designed to output information characterizing the read-in or output quantity of data words to a subsequent functional unit.

Optional kann die Funktionseinheit auch dazu ausgebildet sein, Daten an eine nachfolgende Funktionseinheit auszugeben, entweder einmalig, z.B. nach Abschluss der gesamten Speicheroperation, oder auch ein- oder mehrfach jeweils nach Abschluss von Teilen der (ganzheitlichen) Speicheroperation. Diese an eine nachfolgende Funktionseinheit ausgegebenen Daten können beispielsweise Informationen über den aktuellen Fortschritt und/oder Speicheradressen und/oder Offsets enthalten oder aber auch hiervon losgelöst sein.Optionally, the functional unit may also be configured to output data to a subsequent functional unit, either once, e.g. after completion of the entire memory operation, or one or more times after completing parts of the (holistic) memory operation. These data output to a subsequent functional unit may contain, for example, information about the current progress and / or memory addresses and / or offsets, or else be detached therefrom.

Vorteilhafter Weise können Funktionseinheiten 1400 weiteren Ausführungsformen zufolge derart gestaltet sein, dass die durch die Funktionseinheit über die Eingangsschnittstelle 1402 empfangenen ersten Eingangsdaten über die Schnittstelle a24 unverändert oder in bearbeiteter Form ausgegeben werden, insb. an die sekundäre Speichereinrichtung 160 und / oder insb. auch an eine der restlichen Komponenten der Recheneinheit 100, insb. an die primäre Speichereinrichtung 120 oder an weitere Peripheriekomponenten 125.Advantageously, functional units 1400 According to further embodiments, be designed such that by the functional unit via the input interface 1402 received first input data via the interface a24 are output unchanged or in edited form, in particular to the secondary memory device 160 and / or in particular also to one of the remaining components of the arithmetic unit 100 , in particular to the primary storage device 120 or to other peripheral components 125.

Zur Ausgabe von Ausgangsdaten weist die Funktionseinheit 1400 einer Ausführungsform zufolge eine Ausgangsschnittstelle 1404 auf. Beispielsweise werden Ausgangsdaten durch die Funktionseinheit 1400 in Abhängigkeit von den über die Eingangsschnittstelle 1402 empfangenen ersten Daten gebildet und als zweite Daten über die Ausgangsschnittstelle 1404 ausgegeben, beispielsweise an eine oder mehrere andere Funktionseinheiten (nicht in 2A gezeigt). Eine Datenausgabe von der Funktionseinheit 1400 über ihre Ausgangsschnittstelle 1404 an sich selbst, z.B. über ihre Eingangsschnittstelle 1402, ist bei manchen Ausführungsformen ebenfalls denkbar. Die Ausgangsdaten sind in 2A durch den Blockpfeil a22 symbolisiert. Besonders vorteilhaft ist die Ausgangsschnittstelle 1404 ebenfalls an das Koppelnetz 152a (1A) angebunden, vergleiche die in 2A durch ein gestricheltes Rechteck symbolisierte Eingangsschnittstelle 1504 des Koppelnetzes 152a.Output of output data is shown by the functional unit 1400 According to one embodiment, an output interface 1404 on. For example, output data is passed through the functional unit 1400 depending on the via the input interface 1402 received first data and as second data via the output interface 1404 output, for example, to one or more other functional units (not in 2A shown). A data output from the functional unit 1400 via its output interface 1404 to itself, eg via its input interface 1402 , is also conceivable in some embodiments. The output data is in 2A symbolized by the block arrow a22. Particularly advantageous is the output interface 1404 also to the switching network 152a ( 1A ), compare the in 2A by a dashed rectangle symbolized input interface 1504 of the switching network 152a ,

Bei weiteren Ausführungsformen (nicht gezeigt) kann auch vorgesehen sein, dass eine Funktionseinheit mehrere Ausgangsschnittstellen 1404 des vorstehend beschriebenen Typs aufweist. Beispielhaft kann die Ausgangsschnittstelle 1404 auch als funktionseinheitsspezifische Ausgangsschnittstelle bezeichnet werden, weil sie speziell zur, vorzugsweise direkten, Datenkommunikation zwischen verschiedenen Funktionseinheiten untereinander vorgesehen ist.In further embodiments (not shown), it may also be provided that a functional unit has a plurality of output interfaces 1404 of the type described above. By way of example, the output interface 1404 also as a functional unit specific Output interface are called, because it is specifically designed for, preferably direct, data communication between different functional units with each other.

Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass die Funktionseinheit 1400 mehrere Ausgangsdaten, insbesondere gleichzeitig, ausgeben kann, was in 2A durch den gestrichelt gezeichneten Blockpfeil a23 sowie die Punkte zwischen den Blockpfeilen a22, a23 angedeutet ist. Für die gleichzeitige bzw. parallele Ausgabe können wie zuvor beschrieben entsprechend viele Ausgangsschnittstellen 1404 vorgesehen sein.In a further advantageous embodiment it can be provided that the functional unit 1400 can output several output data, in particular simultaneously, what is in 2A indicated by the dashed block arrow a23 and the points between the block arrows a22, a23. For the simultaneous or parallel output as described above correspondingly many output interfaces 1404 be provided.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Ausgangsschnittstelle 1404 nur Daten schreiben kann, nicht jedoch Lesezugriffe nach außen unterstützt bzw. diese alternativ unterbinden kann. Ebenso kann in einer Ausführungsform vorgesehen sein, dass die Funktionseinheit 1400 keine von außen initiierten Datentransfers, weder lesend noch schreibend über die Schnittstelle 1404 empfangen kann. Dazu kann die Schnittstelle 1404 technisch entsprechend eingeschränkt sein oder aber diese Zugriffmöglichkeit unterbunden werden.In a further embodiment it can be provided that the output interface 1404 can only write data, but does not support read access to the outside or can prevent it alternatively. Likewise, it can be provided in one embodiment that the functional unit 1400 No externally initiated data transfers, neither read nor write via the interface 1404 can receive. This can be done by the interface 1404 be technically correspondingly restricted or this accessibility can be prevented.

Alternativ ist es bei weiteren Ausführungsformen (nicht gezeigt) auch denkbar, dass eine Funktionseinheit gar keine Ausgangsschnittstelle 1404 des vorstehend beschriebenen Typs aufweist, also gar keine funktionseinheitsspezifische Ausgangsschnittstelle. Eine derartig konfigurierte Funktionseinheit kann demnach keine Ausgangsdaten über die vorstehend genannte Ausgangsschnittstelle 1404 an andere Funktionseinheiten ausgeben. Beispielsweise kann eine derartige Funktionseinheit jedoch dazu ausgebildet sein, Daten an eine andere Einheit auszugeben, beispielsweise durch Schreiben in die primäre Speichereinrichtung 120 der Recheneinheit, z.B. über die Verbindung a9 (1F), und/oder die sekundäre Speichereinrichtung 160, z.B. über die Verbindung a12, vergleiche 1F. Das Schreiben solcher Daten kann über eine entsprechend konfigurierte andersartige Schnittstelle erfolgen, beispielsweise über eine direkte Datenverbindung zwischen der Funktionseinheit und der sekundären Speichereinrichtung 160, wie dies in 1F durch den Blockpfeil a12 symbolisiert ist. Eine derartige andersartige Schnittstelle ist in 2A auch angedeutet durch den bereits vorstehend erwähnten gestrichelt gezeichneten Blockpfeil a24.Alternatively, it is also conceivable in further embodiments (not shown) that a functional unit has no output interface at all 1404 of the type described above, ie no functional unit-specific output interface. Accordingly, a functional unit configured in this way can not output data via the abovementioned output interface 1404 to output to other functional units. For example, however, such a functional unit may be designed to output data to another unit, for example by writing to the primary memory device 120 the arithmetic unit, eg via the connection a9 ( 1F ), and / or the secondary storage device 160 , eg via the connection a12, compare 1F , The writing of such data can take place via a differently configured interface, for example via a direct data connection between the functional unit and the secondary storage device 160 like this in 1F is symbolized by the block arrow a12. Such a different interface is in 2A also indicated by the already mentioned above dashed block arrow a24.

Vorteilhafter Weise können Funktionseinheiten 1400 bei weiteren Ausführungsformen derart gestaltet sein, dass die durch die Funktionseinheit über die Schnittstelle a24 empfangenen Daten über die Ausgangsschnittstelle 1404 unverändert oder in bearbeiteter Form an eine oder mehrere nachfolgende Funktionseinheiten 1400 ausgegeben werden, wobei mittels der Schnittstelle a24 insbesondere Daten von der sekundären Speichereinrichtung 160 und/oder insb. auch von den restlichen Komponenten der Recheneinheit 100, insb. der primären Speichereinrichtung 120 oder von weiteren Peripheriekomponenten 125, eingelesen werden.Advantageously, functional units 1400 in further embodiments be designed such that the data received by the functional unit via the interface a24 via the output interface 1404 unchanged or in edited form to one or more subsequent functional units 1400 in particular data from the secondary storage device is output by means of the interface a24 160 and / or in particular also of the remaining components of the arithmetic unit 100 , esp. The primary storage device 120 or other peripheral components 125 , are read.

Die Funktionseinheit 1400 weist ferner eine lokale Steuereinrichtung 1410 auf, die zur Steuerung eines Betriebs der Funktionseinheit 1400 ausgebildet ist. Beispielsweise kann die lokale Steuereinrichtung 1410 wenigstens einen Zustandsautomaten (englisch: state machine) 1410a umfassen. Bei alternativen Ausführungsformen kann die lokale Steuereinrichtung 1410 auch sonstige, vorzugsweise fest verdrahtete, Hardwareschaltungen umfassen.The functional unit 1400 also has a local control device 1410 to control the operation of the functional unit 1400 is trained. For example, the local control device 1410 at least one state machine 1410a. In alternative embodiments, the local controller 1410 also comprise other, preferably hardwired, hardware circuits.

Bei einer besonders bevorzugten weiteren Ausführungsform kann der lokalen Steuereinrichtung 1410 auch eine lokale Rekonfigurationseinrichtung 1412 zugeordnet sein, welche eine Konfiguration bzw. Rekonfiguration der Funktionseinheit 1400, insbesondere auch dynamisch, also während des Betriebs der Funktionseinheit 1400, ermöglicht. Bei einer weiteren Ausführungsform ist es auch denkbar, die Funktionalität der lokalen Rekonfigurationseinrichtung 1412 durch einen entsprechenden Teil des Zustandsautomaten 1410a bzw. der lokalen Steuereinrichtung 1410 abzubilden.In a particularly preferred further embodiment, the local control device 1410 also a local reconfiguration device 1412 be assigned, which is a configuration or reconfiguration of the functional unit 1400 , in particular also dynamically, ie during operation of the functional unit 1400 , allows. In a further embodiment, it is also conceivable that the functionality of the local reconfiguration device 1412 through a corresponding part of the state machine 1410a or the local control device 1410 map.

Bei einer weiteren Ausführungsform ist die Rekonfigurationseinrichtung 1412 dazu ausgebildet, während einer Konfiguration bzw. Rekonfiguration die möglichen Konfigurationsvarianten der betreffenden Funktionseinheit 1400 zu berücksichtigen, und/oder sicherzustellen, dass eine Konfiguration von einem definierten, gültigen Startpunkt bzw. Startzustand ausgeht, und/oder dass eine Rekonfiguration momentan ablaufende Berechnungen bzw. sonstige Funktionen der Funktionseinheit 1400 nicht beeinträchtigt bzw. unbeabsichtigt unterbricht. In another embodiment, the reconfiguration device is 1412 adapted to, during a configuration or reconfiguration, the possible configuration variants of the respective functional unit 1400 to take into account, and / or to ensure that a configuration starts from a defined, valid starting point or start state, and / or that a reconfiguration current calculations or other functions of the functional unit 1400 not impaired or unintentionally interrupts.

Bei einer weiteren vorteilhaften Ausführungsform weist die Funktionseinheit eine lokale Berechnungseinheit 1420 auf. Einer weiteren vorteilhaften Ausführungsform zufolge kann die lokale Berechnungseinheit 1420 wenigstens ein grobgranulares Hardwareelement aufweisen oder als grobgranulares Hardwareelement ausgebildet sein. In diesem Fall kann die lokale Rekonfigurationseinrichtung 1412 vorteilhaft z.B. eine (Re-)Konfiguration der grobgranularen Hardwareelemente steuern.In a further advantageous embodiment, the functional unit has a local calculation unit 1420 on. According to a further advantageous embodiment, the local calculation unit 1420 have at least one grobgranulares hardware element or be designed as grobgranulares hardware element. In this case, the local reconfiguration device 1412 Advantageously, for example, control a (re-) configuration of coarse granular hardware elements.

Beispielsweise weisen herkömmliche hardwarekonfigurierbare Logikschaltungen wie z.B. FPGAs oder CPLDs zumeist nur feingranulare Hardwareelementente auf, deren Konfiguration nur durch externe Vorgaben verändert werden kann. Derartige herkömmliche hardwarekonfigurierbare Logikschaltungen sind somit als (integrierte) Schaltkreise anzusehen, welche auf Hardwareebene in einer speziellen Programmierphase programmiert werden können. Dies gilt auch für FPGAs mit der Möglichkeit zur teilweisen (partiellen) Re-Konfiguration. Hier wird eine entsprechende Anzahl funktionsbestimmender Re-Konfigurationsmöglichkeiten vorgehalten, die nach externen Vorgaben verändert werden, wobei die betreffenden FPGA-Teile mittels einer partiellen Re-Konfigurationen in einer jeweils speziellen Re-Programmierphase entsprechend neu programmiert und verschaltet werden. Die umkonfigurierten FPGA-Teile ändern dabei die Logikfunktion selbst.For example, conventional hardware-configurable logic circuits such as FPGAs or CPLDs usually have only finely granular hardware elements whose configuration can only be changed by external specifications. Such conventional hardware configurable Logic circuits are thus to be regarded as (integrated) circuits, which can be programmed at the hardware level in a special programming phase. This also applies to FPGAs with the possibility of partial (partial) reconfiguration. Here, a corresponding number of function-determining re-configuration options is maintained, which are changed according to external specifications, wherein the FPGA parts in question are reprogrammed and interconnected by means of a partial Re-configurations in a respective special Re programming phase. The reconfigured FPGA parts change the logic function itself.

Im Gegensatz dazu stellt die erfindungsgemäße Funktionseinheit 1400 eine Berechnungseinheit bzw. eine Komponente einer Berechnungseinheit dar, deren Elemente, z.B. grobgranulare Hardwareelemente, intern durch die Funktionseinheit 1400 selbst bzw. ihre lokale Steuereinrichtung 1410 in der Funktion konfiguriert und z.B. neu miteinander verschaltet werden können, beispielsweise unter Verwendung und entsprechender Einstellung von Multiplexern. Ebenso kann vorgesehen sein, dass eine weitere Komponente der Recheneinheit 100 (1A), beispielsweise ein Rechenkern 110a, die Funktionseinheit 1400 bzw. ihre Komponenten konfiguriert.In contrast, the functional unit according to the invention 1400 a calculation unit or a component of a calculation unit whose elements, eg coarse-grained hardware elements, internally by the functional unit 1400 itself or its local control device 1410 configured in the function and, for example, can be interconnected again, for example, using and appropriate setting of multiplexers. Likewise, it can be provided that a further component of the arithmetic unit 100 ( 1A ), for example a calculation kernel 110a , the functional unit 1400 or their components configured.

Ein weiterer Aspekt der erfindungsgemäßen Konfigurierbarkeit ist durch die Beeinflussung der Kommunikation und des Datenflusses zwischen verschiedenen Funktionseinheiten 140, 140a, 140b (1A) gegeben, was beispielsweise durch entsprechende Konfiguration der jeweiligen Funktionseinheiten gesteuert werden kann, und/oder durch eine Steuerung des Betriebs der die jeweiligen Funktionseinheiten verbindenden primären Verbindungseinheit(en) 150, vgl. 1A.Another aspect of the configurability according to the invention is that of influencing the communication and the data flow between different functional units 140 . 140a . 140b ( 1A ), which can be controlled, for example, by appropriate configuration of the respective functional units, and / or by controlling the operation of the primary connecting unit (s) connecting the respective functional units. 150 , see. 1A ,

Bei einer Ausführungsform ist die interne Funktion, z.B. Logikfunktion, einzelner grobgranularer Hardwareelementente bzw. sonstiger Elemente der Funktionseinheit 1400 jeweils fest verdrahtet und ändert sich somit im Gegensatz zu herkömmlichen hardwarekonfigurierbaren Logikschaltungen nicht. Hierbei kann wie vorstehend beschrieben eine Beeinflussung der Kommunikation und des Datenflusses zwischen verschiedenen Funktionseinheiten erfolgen, um eine Rekonfiguration zu erreichen.In one embodiment, the internal function, eg logic function, of individual coarse-grained hardware elements or other elements of the functional unit 1400 each hard-wired and thus does not change in contrast to conventional hardware-configurable logic circuits. In this case, as described above, an influencing of the communication and of the data flow between different functional units can take place in order to achieve a reconfiguration.

Vorteilhaft kann eine Neu- bzw. Rekonfiguration der erfindungsgemäßen Recheneinheit bzw. wenigstens einer ihrer Funktionseinheiten 1400 bei manchen Ausführungsformen von der Recheneinheit 100 bzw. der in der betreffenden Funktionseinheit 1400 integrierten Steuereinrichtung 1410 selbst, also von innen heraus, gesteuert, durchgeführt und ggf. überwacht werden. Die Funktionseinheit 1400 kann sich somit unabhängig und automatisch selbst umkonfigurieren.Advantageously, a new or reconfiguration of the computing unit according to the invention or at least one of its functional units 1400 in some embodiments, by the computing unit 100 or in the relevant functional unit 1400 integrated control device 1410 itself, ie from the inside out, controlled, carried out and possibly supervised. The functional unit 1400 can thus independently and automatically reconfigure itself.

Besonders bevorzugt kann eine (Re-)Konfiguration im Betrieb der Recheneinheit 100 bzw. der Funktionseinheit 1400 erfolgen, z.B. als Bestandteil eines Gesamtalgorithmus, der durch eine oder mehrere der Funktionseinheiten 1400, 140, 140a, ... auszuwerten ist. Vorteilhafterweise kann vorgesehen sein, dass Funktionseinheiten 1400, beispielsweise 140a und 140b, andere Funktionseinheiten 1400, beispielsweise 140c und 140d, bzw. deren Komponenten konfigurieren, um z.B. solch einen übergreifenden Gesamtalgorithmus zu realisieren.Particularly preferred may be a (re-) configuration during operation of the computing unit 100 or the functional unit 1400 take place, for example as part of an overall algorithm, by one or more of the functional units 1400 , 140, 140a, ... is to be evaluated. Advantageously, it can be provided that functional units 1400 For example, 140a and 140b, other functional units 1400 , For example, 140c and 140d, or configure their components, for example, to realize such a comprehensive overall algorithm.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass sich die Funktionseinheit 1400 insbesondere dann selbst umkonfiguriert, wenn ein vorgebbarer Rechenabschnitt bzw. eine vorgebbare Berechnungsaufgabe ausgeführt bzw. beendet worden ist und somit die entsprechenden Ressourcen der Funktionseinheit für diese Berechnungsaufgabe nicht weiter benötigt werden. In diesem Fall kann die Funktionseinheit 1400 vorteilhaft selbst ihre Konfiguration z.B. so ändern, dass sie für einen nachfolgenden Rechenabschnitt bzw. eine nachfolgende Berechnungsaufgabe geeignet konfiguriert ist.In a preferred embodiment it is provided that the functional unit 1400 especially then reconfigured even if a predeterminable calculation section or a predefinable calculation task has been executed or terminated and thus the corresponding resources of the functional unit for this calculation task are no longer needed. In this case, the functional unit 1400 Advantageously, even change their configuration, for example, so that it is suitably configured for a subsequent calculation section or a subsequent calculation task.

Vorteilhafter Weise bauen weiteren Ausführungsformen zufolge algorithmisch vorgelagerte Funktionseinheiten 1400 auf dieser Umkonfiguration algorithmisch nachgelagerter Funktionseinheiten 1400 auf und können den nachgelagerten Funktionseinheiten nach Abschluss eines Rechenabschnitts ohne explizite Umkonfigurationsmaßnahmen weitere zu verarbeitende Daten zukommen lassen.According to further embodiments, algorithmically upstream functional units advantageously build 1400 on this reconfiguration of algorithmically downstream functional units 1400 Upon completion of a computing section without explicit reconfiguration measures, further data to be processed may be sent to the downstream functional units.

In einer vorteilhaften Ausführungsform kann eine Funktionseinheit 1400, z.B. 140a, die Daten an eine andere Funktionseinheit 1400, z.B. 140b, sendet, nach Abschluss eines Rechenabschnitts eine andere Funktionseinheit 1400, z.B. 140c anweisen, nunmehr die Daten an die Funktionseinheit 140b zu senden. Aufgrund der zuvor genannten Umkonfiguration kann die Funktionseinheit 140c nahtlos mit dem Versenden von Daten an die Funktionseinheit 140b fortfahren.In an advantageous embodiment, a functional unit 1400 , eg 140a, the data to another functional unit 1400 , eg 140b, transmits another functional unit after completing a computing section 1400 , eg 140c, now transfer the data to the functional unit 140b to send. Due to the aforementioned reconfiguration, the functional unit 140c seamless with the sending of data to the functional unit 140b Continue.

Bei einer weiteren vorteilhaften Ausführungsform kann die lokale Berechnungseinheit 1420 wenigstens eine der Komponenten aufweisen: Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator (MAC), arithmetisch-logische Einheit (ALU), Speichereinheit, Register, Multiplexer, Demultiplexer, Schnittstelle, insbesondere Kommunikationsschnittstelle, Speicherzugriffseinheit (z.B. DMA Einheit), Einheit zur Berechnung von Exponentialfunktionen, Einheit zur Berechnung von logarithmischen Funktionen, Einheit zur Berechnung von Exponentialfunktionen, Einheit zur Berechnung von Wurzelfunktionen, Einheit zur Berechnung von trigonometrischen Funktionen, Lookup-Tabelle(n). Kombinationen hieraus sind bei weiteren Ausführungsformen ebenfalls denkbar. Bevorzugt können eine oder mehrere der vorstehend genannten Komponenten in der Berechnungseinheit 1420 der erfindungsgemäßen Funktionseinheit 1400 angeordnet sein.In a further advantageous embodiment, the local calculation unit 1420 at least one of the components comprising: adder, multiplier, divider, shift register, barrel shifter, comparator, multiplication accumulator (MAC), arithmetic logic unit (ALU), memory unit, registers, multiplexer, demultiplexer, interface, in particular communication interface, memory access unit (eg DMA Unit), unit for calculating exponential functions, unit for calculating logarithmic functions, unit for calculating Exponential functions, unit for calculating root functions, unit for calculating trigonometric functions, lookup table (s). Combinations thereof are also conceivable in further embodiments. One or more of the abovementioned components may be preferred in the calculation unit 1420 of the functional unit according to the invention 1400 be arranged.

Die Berechnungseinheit 1420 kann dementsprechend Berechnungen auf den der Funktionseinheit 1400 zugeführten Eingangsdaten ausführen und hieraus erhaltene Ergebnisse beispielsweise als Ausgangsdaten wieder ausgeben. Ein Datenfluss für diesen Vorgang erfolgt dabei bevorzugt über die Eingangsschnittstelle 1402 (Empfang von Eingangsdaten), die Berechnungseinheit 1420 (Ausführung der Berechnungen), die Ausgangsschnittstelle 1404 (Ausgabe von Ausgangsdaten). Dieser Datenfluss ist charakteristisch für die Berechnung bzw. Verarbeitung von Daten innerhalb einer Funktionseinheit 1400.The calculation unit 1420 Accordingly, calculations on the functional unit 1400 feed input data and output results obtained from this, for example, as output data again. A data flow for this process preferably takes place via the input interface 1402 (Reception of input data), the calculation unit 1420 (Execution of the calculations), the output interface 1404 (Output of output data). This data flow is characteristic for the calculation or processing of data within a functional unit 1400 ,

Außerhalb der Funktionseinheit 1400 kann der Datenfluss einer bevorzugten Ausführungsform zufolge beeinflusst werden durch die Vorgabe, an welche (weitere) Funktionseinheit Ausgangsdaten einer ersten Funktionseinheit weiterzuleiten sind, was durch eine entsprechende Steuerung der primären Verbindungseinheit 150 bewerkstelligbar ist. Vorteilhafterweise kann die Steuerung der primären Verbindungseinheit 150 einmalig und somit für einen bestimmten Zeitraum dauerhaft eingestellt werden. Ebenso kann es vorteilhaft sein, die Steuerung der primären Verbindungseinheit 150 von Steuerdaten abhängig zu machen, die mit einzelnen oder auch mit jedem Paket mitversandt werden, insb. durch die Angabe einer Ziel-Funktionseinheit 1400.Outside the functional unit 1400 According to a preferred embodiment, the data flow can be influenced by the specification as to which (further) functional unit output data of a first functional unit is to be forwarded, which is achieved by a corresponding control of the primary connection unit 150 can be accomplished. Advantageously, the control of the primary connection unit 150 be set once and thus permanently for a certain period of time. It may also be advantageous to control the primary connection unit 150 dependent on control data that are sent with individual or with each package, esp. By specifying a destination functional unit 1400 ,

Sofern komplexere Berechnungen auszuführen sind, können bei weiteren Ausführungsformen mehrere Funktionseinheiten, beispielsweise des in 2A abgebildeten Typs, vorgesehen werden, welche gleichartig oder ungleichartig konfigurierte Berechnungseinheiten 1420 aufweisen. Ein Datenfluss von Daten zwischen den verschiedenen Funktionseinheiten kann hierbei vorteilhaft durch einen Algorithmus bzw. die Struktur der auszuführenden komplexeren Berechnungen definiert sein.If more complex calculations are to be carried out, in further embodiments, a plurality of functional units, for example, the in 2A imaged type, which are similar or non-uniformly configured calculation units 1420 exhibit. A data flow of data between the various functional units can advantageously be defined by an algorithm or the structure of the more complex calculations to be carried out.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheit 1400 einen lokalen Konfigurationsspeicher 1430 aufweist. Besonders bevorzugt kann der lokale Konfigurationsspeicher 1430 einen Registerspeicher umfassen, wobei insbesondere der lokale Konfigurationsspeicher 1430 mindestens ein, in vorteilhafter Weise jedoch eine Mehrzahl von Konfigurationsregistern 1432a, 1432b, 1432c, 1432d umfasst.In a further advantageous embodiment, it is provided that the functional unit 1400 a local configuration store 1430 having. Particularly preferred may be the local configuration memory 1430 a register memory, in particular the local configuration memory 1430 at least one, but advantageously a plurality of configuration registers 1432 . 1432b . 1432c . 1432d includes.

In einer weiteren Ausführungsform kann der lokale Konfigurationsspeicher auch durch ein SRAM oder durch eine Kombination von Registerspeicher und SRAM repräsentiert werden. Im Folgenden wird die einen SRAM umfassende Ausführungsform als Registerspeicher zusammengefasst.In another embodiment, the local configuration memory may also be represented by an SRAM or by a combination of register storage and SRAM. In the following, the embodiment comprising an SRAM is summarized as register memory.

Durch den lokalen Konfigurationsspeicher 1430 ist eine effiziente Konfiguration und Rekonfiguration, auch während des Betriebs der Funktionseinheit 1400, möglich, z.B. indem ein oder mehrere Konfigurationsregister 1432a, 1432b, 1432c, 1432d in der gewünschten Weise modifiziert werden. Das Modifizieren der Konfigurationsregister 1432a, 1432b, 1432c, 1432d kann beispielsweise durch die Funktionseinheit 1400 selbst und/oder durch eine andere Funktionseinheit (nicht gezeigt) erfolgen.Through the local configuration store 1430 is an efficient configuration and reconfiguration, even during the operation of the functional unit 1400 , possible, for example, by one or more configuration registers 1432 . 1432b , 1432c, 1432d are modified as desired. Modifying the configuration registers 1432 . 1432b . 1432c . 1432d For example, by the functional unit 1400 itself and / or by another functional unit (not shown).

Ferner ist es denkbar, dass bei weiteren Ausführungsformen ein Modifizieren der Konfigurationsregister einer Funktionseinheit 1400 durch weitere Komponenten der Recheneinheit 100 (1A), beispielsweise durch einen Rechenkern 110a, möglich ist, indem die betreffende Komponente 110a entsprechende Daten in das bzw. die Konfigurationsregister der Funktionseinheit 1400 schreibt.Furthermore, it is conceivable that in further embodiments modifying the configuration registers of a functional unit 1400 through further components of the arithmetic unit 100 ( 1A ), for example by a calculation kernel 110a , is possible by the relevant component 110a corresponding data in the or the configuration register of the functional unit 1400 writes.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheit 1400 einen lokalen Funktionsspeicher 1440 aufweist. Besonders bevorzugt kann der lokale Funktionsspeicher 1440 einen Registerspeicher umfassen bzw. einen Teil eines Registerspeichers darstellen. Insbesondere kann der lokale Funktionsspeicher 1440 wenigstens ein Funktionsregister 1442a umfassen. Der lokale Funktionsspeicher 1440 kann vorteilhaft zur zumindest zeitweisen Speicherung von Eingangsdaten und/oder Ausgangsdaten der Funktionseinheit 1400 bzw. von Zwischenergebnissen von Berechnungen der Funktionseinheit 1400, wie sie von der Berechnungseinheit 1420 ausgeführt werden, verwendet werden.In a further advantageous embodiment, it is provided that the functional unit 1400 a local function memory 1440 having. Particularly preferably, the local function memory 1440 comprise a register memory or represent part of a register memory. In particular, the local function memory 1440 at least one function register 1442A include. The local function memory 1440 can advantageously for at least temporary storage of input data and / or output data of the functional unit 1400 or intermediate results of functional unit calculations 1400 as performed by the computing unit 1420 may be used.

Bei einer weiteren vorteilhaften Ausführungsform ist es auch denkbar, die Funktionseinheit 1400 mit einer Vielzahl von Registerspeichern auszustatten, wobei eine erste Anzahl der Registerspeicher als Konfigurationsregister 1432a, 1432b, 1432c, 1432d verwendbar ist, und wobei eine zweite Anzahl der Registerspeicher als Funktionsregister 1442a verwendbar ist.In a further advantageous embodiment, it is also conceivable, the functional unit 1400 with a plurality of register memories, wherein a first number of the register memories are used as configuration registers 1432 , 1432b, 1432c, 1432d, and wherein a second number of register memories are used as function registers 1442A is usable.

Bei weiteren Ausführungsformen ist es ferner denkbar, dass für verschiedene Konfigurationsmöglichkeiten einer Funktionseinheit 1400 die erste Anzahl benötigter Registerspeicher bzw. die zweite Anzahl benötigter Registerspeicher variiert und beispielsweise durch eine Hauptkonfiguration änderbar ist. Auf diese Weise kann ein Betrieb der Funktionseinheit 1400 sehr flexibel gestaltet werden und insbesondere der lokale (Register-) Speicher dynamisch an von der Funktionseinheit 1400 auszuführende Berechnungen angepasst werden.In further embodiments, it is also conceivable that for different configuration options of a functional unit 1400 the first number of required register memories or the second number of required register memories varies and can be changed, for example, by a main configuration. In this way, operation of the functional unit 1400 be designed very flexible and in particular, the local (register) memory dynamically from the functional unit 1400 be adapted to be executed calculations.

Bei einer bevorzugten Ausführungsform ist für den Datenaustausch zwischen verschiedenen Funktionseinheiten 1400 eine bestimmte Datenstruktur, beispielsweise in Form eines Datenpakets, vorgesehen. 2B zeigt schematisch eine vereinfachte Darstellung einer Datenstruktur DS für derartige Datenpakete gemäß einer Ausführungsform. Die Datenstruktur DS weist ein Adressfeld ADR auf. Das Adressfeld ADR ist unterteilt in eine erste Adresse ADR1, die eine bestimmte Funktionseinheit spezifiziert, für welche das die Datenstruktur DS aufweisende Datenpaket bestimmt ist.In a preferred embodiment is for the data exchange between different functional units 1400 a specific data structure, for example in the form of a data packet provided. 2 B schematically shows a simplified representation of a data structure DS for such data packets according to one embodiment. The data structure DS has an address field ADR. The address field ADR is subdivided into a first address ADR1, which specifies a specific functional unit for which the data packet DS comprising the data structure is determined.

Eine optionale zweite Adresse ADR2 definiert eine Zieladresse innerhalb der durch die erste Adresse ADR1 bestimmten Funktionseinheit, wodurch vorteilhaft Einfluss darauf genommen werden kann, in welchem lokalen Speicherbereich der Ziel-Funktionseinheit in dem Datenpaket enthaltene Daten abgespeichert werden. Beispielsweise kann die zweite Adresse ADR2 dafür verwendet werden, bestimmte Speicherregister der Ziel-Funktionseinheit zu adressieren.An optional second address ADR2 defines a destination address within the functional unit determined by the first address ADR1, which can advantageously be used to store in which local memory area of the destination functional unit data contained in the data packet is stored. For example, the second address ADR2 may be used to address particular storage registers of the destination functional unit.

Bei Ausführungen der erfindungsgemäßen Recheneinheit, welche beispielsweise einige zehn Funktionseinheiten 1400 aufweisen, werden üblicherweise wenige Bits, beispielsweise etwa die Bits 10 bis 5 (also z.B. sechs Bits) ausreichen, um die erste Adresse ADR1 zu definieren. Vergleichbares gilt für die „interne Adressierung“ mittels der zweiten Adresse ADR2 bezüglich der in den Funktionseinheiten 1400 zur Verfügung stehenden Speicherregister, die bei einer Ausführungsform beispielsweise durch die Bits 4 bis 0 selektiert werden.In embodiments of the computing unit according to the invention, which, for example, some ten functional units 1400 usually a few bits, for example about the bits 10 to 5 (eg six bits) are sufficient to define the first address ADR1. The same applies to the "internal addressing" by means of the second address ADR2 with respect to that in the functional units 1400 available storage registers, which in one embodiment, for example, by the bits 4 to 0 be selected.

Weiter optional kann die Datenstruktur DS ein Datenfeld DAT aufweisen, welches Eingangsdaten, beispielsweise zur Berechnung durch die Ziel-Funktionseinheit, aufweist und/oder Konfigurationsdaten, welche beispielsweise zur Steuerung einer Konfiguration der Ziel-Funktionseinheit vorgesehen sind.Further optionally, the data structure DS may comprise a data field DAT, which has input data, for example for calculation by the target functional unit, and / or configuration data, which are provided, for example, for controlling a configuration of the target functional unit.

Bei weiteren Ausführungsformen ist es ebenfalls möglich, dass Datenpakete zwischen Funktionseinheiten ausgetauscht werden, welche ein leeres Datenfeld DAT, also weder Eingangsdaten für eine Berechnung noch Konfigurationsdaten für die Ziel-Funktionseinheit enthalten. Dies kann beispielsweise für eine Synchronisierung unterschiedlicher Funktionseinheiten von Bedeutung sein. In further embodiments, it is also possible for data packets to be exchanged between functional units which contain an empty data field DAT, that is to say neither input data for a calculation nor configuration data for the destination functional unit. This may be important for a synchronization of different functional units, for example.

Optional können in der Datenstruktur DS auch noch Steuerdaten enthalten sein, welche in dem mit dem Bezugszeichen CTRL bezeichneten Datenfeld angeordnet sein können. Hierbei kann es sich beispielsweise um zusätzliche Steuerdaten (also zusätzlich zu den Konfigurationsdaten, die gegebenenfalls in dem Datenfeld DAT enthalten sind) handeln, beispielsweise Statusinformationen, Sicherheitsinformationen, Informationen betreffend eine Schleifentiefe bzw. Rekursionstiefe bei einer verschachtelten Ausführung von Schleifen bzw. rekursiven Berechnungen. Alternativ oder ergänzend können die Steuerdaten CTRL auch Paritätsinformationen und/oder Prüfsummen und dergleichen enthalten. Kombinationen aus den vorstehend genannten Informationen für die Steuerdaten sind ebenfalls denkbar.Optionally, control data may also be contained in the data structure DS which may be arranged in the data field designated by the reference symbol CTRL. This may be, for example, additional control data (ie, in addition to the configuration data that may be included in the data field DAT), such as status information, security information, information on a loop depth or recursion depth in a nested execution of loops or recursive calculations. Alternatively or additionally, the control data CTRL may also contain parity information and / or checksums and the like. Combinations of the above information for the control data are also conceivable.

Bei einer weiteren bevorzugten Ausführungsform ist wenigstens eine Funktionseinheit 1400 (3A) dazu ausgebildet, Daten mit wenigstens einer anderen Funktionseinheit in dem vorstehend unter Bezugnahme auf 2B bezeichneten Format, also in Form von Datenpaketen mit der Datenstruktur DS, auszutauschen, also zu senden bzw. zu empfangen.In a further preferred embodiment, at least one functional unit 1400 ( 3A ) are adapted to data with at least one other functional unit in the above with reference to 2 B designated format, ie in the form of data packets with the data structure DS, exchange, ie to send or receive.

Bei einer weiteren bevorzugten Ausführungsform kann eine neu eintreffende Konfiguration, die die betreffende Funktionseinheit 1400 erhält, wahlweise (z.B. immer) sofort in den lokalen Konfigurationsspeicher 1430 geschrieben werden oder (z.B. immer) verworfen werden, sofern eine neue Konfiguration (noch) nicht möglich ist oder (z.B. immer) so lange zurückgehalten werden, bis die Funktionseinheit 1400 zur Entgegennahme einer neuen Konfiguration entsprechend den Regularien bereit ist oder (z.B. immer) in einem Puffer zwischengespeichert werden der ggf. erst dann ausgelesen wird, wenn die Funktionseinheit 1400 zur Entgegennahme einer neuen Konfiguration entsprechend den Regularien bereit ist. Im vorletzten Fall bzw. im letzten Fall wenn der Puffer voll ist, erfolgt vorteilhafter Weise eine Blockade der Eingangsdaten, die ein weiteres Schreiben in die Funktionseinheit 1400 mit dem lokalen Konfigurationsspeicher 1430 solange unterbindet, bis die Daten verarbeitet werden können. In sehr vorteilhafter Weise wird die Blockade auch als Synchronisationsmittel zwischen mindestens zwei Funktionseinheiten 1400 genutzt.In a further preferred embodiment, a newly arriving configuration containing the functional unit concerned 1400 receives, optionally (eg always) immediately in the local configuration memory 1430 be written or (eg always) discarded, if a new configuration (yet) is not possible or (eg always) held back until the functional unit 1400 to accept a new configuration in accordance with the regulations is ready or (eg always) cached in a buffer that may be read only when the functional unit 1400 is ready to receive a new configuration in accordance with the regulations. In the penultimate case, or in the latter case when the buffer is full, there is advantageously a blockade of the input data, the further writing to the functional unit 1400 with the local configuration store 1430 until the data can be processed. In a very advantageous manner, the blockade is also used as synchronization means between at least two functional units 1400 used.

Vorteilhafterweise kann diese durch Blockierung erfolgende Synchronisation in der Funktionseinheit 1400 auch auf den lokalen Funktionsspeicher 1440 angewandt werden. Führt z.B. eine Funktionseinheit 1400 mit zwei Eingangsschnittstellen 1402 eine Additionsoperation A+B=C aus, sollte bevorzugt erst sowohl A als auch B in den Registern von 1440 vorliegen, damit die Berechnung von C starten kann. Erst nach dem Lesen von A und B können neue A' und B' empfangen werden. Sollten bereits vor diesem Zeitpunkt neue A' und/oder B' an die entsprechenden Register im Funktionsspeicher 1440 der Funktionseinheit 1400 gesendet werden, dann würde die Funktionseinheit 1400 diese Daten ggf. so lange zurückhalten bis deren Empfang möglich ist.Advantageously, this can be done by blocking synchronization in the functional unit 1400 also on the local function memory 1440 be applied. For example, performs a functional unit 1400 with two input interfaces 1402 For an addition operation A + B = C, preferably both A and B should be present in the registers of 1440 for the calculation of C to start. Only after reading A and B can new A 'and B' be received. Already before this time new A 'and / or B' should be sent to the corresponding registers in the function memory 1440 the functional unit 1400 be sent, then the functional unit 1400 if necessary, hold back this data until it can be received.

Vorteilhafter Weise ist für eine Funktionseinheit 1400 konfigurierbar, welche Register innerhalb des Konfigurationsspeichers 1430 und / oder des Funktionsspeicher 1440 zu einer Blockade führen und welche nicht. So kann es vorteilhaft sein, dass einzelne Register z.B. nur einmal geschrieben werden müssen oder auch z.B. nur einmal geschrieben werden dürfen, um dann dauerhaft, oder für einen nach bestimmten Kriterien festgelegten Zeitraum, gültig zu sein. Beim zuvor genannten Beispiel der Additionsoperation könnte z.B. konfiguriert sein, dass der Wert von Register „B“ nur einmalig geschrieben werden muss. Für jedes empfangene „A“ wird dann die Operation A+B, A'+B, A"+B usw. ausgeführt, solange bis beispielsweise ein neuer Wert B' in das Register „B“ geschrieben wird.Advantageously, is for a functional unit 1400 configurable, which registers within the configuration memory 1430 and / or the function memory 1440 lead to a blockage and which not. Thus, it may be advantageous that individual registers must be written only once, for example, or may only be written once, for example, in order to be valid permanently or for a period of time determined according to certain criteria. In the aforementioned example of the addition operation, it could be configured, for example, that the value of register "B" only needs to be written once. For each received "A" then the operation A + B, A '+ B, A "+ B, etc. is executed until, for example, a new value B' is written to the register" B ".

Bei einer weiteren bevorzugten Ausführungsform ist wenigstens eine der Funktionseinheiten, wie vorstehend bereits angedeutet, als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet. Dadurch können vorteilhaft Berechnungen, Logikoperationen, Speicheroperationen und sonstige von der betreffenden Funktionseinheit bereitgestellte Funktionen wie beispielsweise die Realisierung von Look-up-Tabellen, Kennlinien und/oder Kennfeldern besonders schnell und effizient ausgeführt werden.In a further preferred embodiment, at least one of the functional units, as already indicated above, is designed as a hardware circuit, in particular completely as a hardware circuit. As a result, calculations, logic operations, memory operations and other functions provided by the relevant functional unit, such as the realization of look-up tables, characteristic curves and / or maps, can be carried out particularly quickly and efficiently.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten wenigstens eines der folgenden Elemente aufweist: einen Mikrocontroller, einen Software ausführenden Rechenkern (z.B. einen Rechenkern, der dazu ausgebildet ist, Software auszuführen), einen digitalen Signalprozessor (DSP), eine programmierbare Logikschaltung (beispielsweise einen FPGA, field programmable gate array), einen anwendungsspezifischen integrierten Schaltkreis (ASIC, application specific integrated circuit), insbesondere einen durch ein Gatter- und/oder Transistor-Array vorgefertigten aber noch nicht anwendungsspezifisch verdrahteten integrierten Schaltkreis, der z.B. erst in einem späteren Fertigungsschritt anwendungsspezifisch verdrahtet wird, und der z.B. als „Sea-of-Gates“ bezeichnet werden kann. Dadurch können gegebenenfalls Spezialfunktionen innerhalb einer erfindungsgemäßen Funktionseinheit realisiert werden. Insbesondere kann die auszuführende Funktion solcher Funktionseinheiten erst zu einem späteren Zeitpunkt festgelegt werden und/oder mit einem vergleichsweise geringen Aufwand verändert werden.In a further advantageous embodiment, it is provided that at least one of the functional units has at least one of the following elements: a microcontroller, a software executing computation core (eg a computation core designed to execute software), a digital signal processor (DSP), a programmable one Logic circuit (for example, an FPGA, field programmable gate array), an application-specific integrated circuit (ASIC, application specific integrated circuit), in particular a prefabricated by a gate and / or transistor array but not yet application-specific wired integrated circuit, eg is only application-specifically wired in a later manufacturing step, and the e.g. can be referred to as "Sea-of-Gates". As a result, if necessary, special functions can be realized within a functional unit according to the invention. In particular, the function to be performed of such functional units can be determined only at a later time and / or changed with a comparatively small effort.

Insbesondere kann beispielsweise auch ein vergleichsweise kleiner, zumindest teilweise mittels Software programmierbarer, Mikrocontroller in einer bestimmten Funktionseinheit enthalten sein, um eine für manche Anwendungsfälle gegebenenfalls erforderliche Flexibilität bereitzustellen und/oder um eine höhere Komplexität darstellen zu können. Auch in diesem Fall ergeben sich durch das Zusammenspiel der mehreren Funktionseinheiten untereinander die bereits beschriebenen Vorteile bezüglich der Entlastung der Hauptverbindungseinheit 130 sowie der Rechenkerne 110a, 110b, 110c der erfindungsgemäßen Recheneinheit 100, 100a, 100b, 100c, 100d, 100e, 100f, 100g.In particular, for example, a comparatively small, at least partially programmable by software, microcontroller may be included in a particular functional unit to provide a possibly necessary for some applications flexibility and / or to be able to represent a higher complexity. In this case too, the interaction of the several functional units with each other results in the already described advantages with regard to the relief of the main connection unit 130 as well as the calculation cores 110a . 110b . 110c the computing unit according to the invention 100 . 100a . 100b . 100c . 100d . 100e . 100f . 100 g ,

Bei einer besonders bevorzugten Ausführungsform ist vorgesehen, dass alle Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet sind. Dadurch ergibt sich eine besonders effiziente, leistungsfähige und klein bauende Anordnung.In a particularly preferred embodiment, it is provided that all functional units are designed as a hardware circuit, in particular completely as a hardware circuit. This results in a particularly efficient, efficient and small-sized arrangement.

Bei anderen Ausführungsformen ist es möglich, dass ein oder mehrere Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet sind, und dass wenigstens eine nicht vollständig als Hardwareschaltung ausgebildete Komponente bzw. eine sonstige Komponente in Form mindestens einer weiteren Funktionseinheit vorgesehen ist. Beispielsweise kann bei einer besonders bevorzugten Ausführungsform eine erste Anzahl Funktionseinheiten vorgesehen sein, die vollständig als Hardwareschaltung ausgebildet sind, und eine weitere Funktionseinheit kann beispielsweise einen Mikrocontroller oder einen programmierbaren Logikbaustein bzw. eine programmierbare Logikschaltung bzw. eine vergleichsweise einfach änderbare Logikschaltung aufweisen.In other embodiments, it is possible for one or more functional units to be designed as a hardware circuit, in particular completely as a hardware circuit, and for at least one component or another component not completely formed as a hardware circuit to be provided in the form of at least one further functional unit. For example, in a particularly preferred embodiment, a first number of functional units may be provided, which are completely formed as a hardware circuit, and another functional unit, for example, a microcontroller or a programmable logic device or a programmable logic circuit or a comparatively easily changeable logic circuit.

Bei einer weiteren bevorzugten Ausführungsform weist, wie vorstehend bereits erwähnt, wenigstens eine der Funktionseinheiten wenigstens ein grobgranulares Hardwareelement auf. Alternativ oder ergänzend kann wenigstens eine der Funktionseinheiten als grobgranulares Hardwareelement ausgebildet sein.In a further preferred embodiment, as already mentioned above, at least one of the functional units has at least one coarse-granular hardware element. Alternatively or additionally, at least one of the functional units can be designed as a coarse granular hardware element.

Der Begriff grobgranular bedeutet vorliegend, dass das betreffende Hardwareelement mehr als ein logisches Gatter aufweist bzw. aus mehr als einem logischen Gatter gebildet ist. Die Gatter sind einer Ausführungsform zufolge in Funktion und/oder Verbindung untereinander unveränderbar.The term coarse granular here means that the relevant hardware element has more than one logical gate or is formed from more than one logical gate. The gates are in one embodiment, according to function and / or connection with each other unchangeable.

Unter grobgranularen Hardwareelementen sind somit insbesondere Elemente zu verstehen, welche jeweils selbsttätig komplexe Rechenoperationen ausführen können, insbesondere ohne dass für die Berechnung ein weiterer Datenaustausch untereinander erforderlich ist, nachdem durch zuvor beschriebene Art und Weise der Versand und Empfang der Daten über die Ausgangs- und Eingangsschnittstellen 1402 und 1404 erfolgt ist. Beispielsweise sind die einzelnen grobgranularen Hardwareelemente jeweils als eines der folgenden Elemente ausgebildet: höherkomplexe Elemente wie arithmetisch-logische Einheit (ALU), Speicherzugriffseinheit, Kommunikationsschnittstelle und/oder weniger komplexe Einheiten wie Komparator, Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Multiplikationsaddierer („Multiply-Accumulate“, (MAC)), Exponentialeinheit, Logarithmuseinheit, trigonometrische Einheit, Register bzw. Registerblock, Speichereinheit (z.B. RAM, Flash usw.), Multiplexer (z.B. 2:1-MUX, M:N-MUX).By coarse-granular hardware elements are thus to be understood in particular elements which can each automatically perform complex arithmetic operations, in particular without the need for further data interchange with each other, after previously described manner of sending and receiving the data via the output and input interfaces 1402 and 1404 is done. For example, the individual coarse granular hardware elements each formed as one of the following elements: highly complex elements such as arithmetic logic unit (ALU), memory access unit, communication interface and / or less complex units such as comparator, adder, multiplier, divider, shift register, barrel shifter, multiply-accumulate , (MAC)), Exponential Unit, Logarithm Unit, Trigonometric Unit, Register, Memory Unit (eg RAM, Flash etc.), Multiplexer (eg 2: 1 MUX, M: N-MUX).

Eine ALU berechnet insbesondere arithmetische und logische Funktionen. Beispielsweise kann sie als arithmetische Funktion zumindest eine Addition (ADD) und als logische Funktion zumindest eine Negation (NOT) und eine Konjunktion (Und-Verknüpfung, AND) ausführen. Bevorzugterweise kann sie als arithmetische Funktion auch eine Subtraktion (SUB) und/oder einen Vergleich (compare, CMP) und/oder eine Multiplikation (MUL) und/oder eine Division und/oder eine Dezimal-Angleichung nach Addition (Decimal Adjust after Addition) durchführen. Bevorzugterweise kann sie als logische Funktion auch eine Disjunktion (Oder-Verknüpfung, OR) und/oder eine Kontravalenz (Exklusiv-Oder-Verknüpfung, XOR, EOR) und/oder eine Rechts- und Linksverschiebung (Rechts-, Linksshift, ASR - arithmetische Shift rechts, ASL - arithmetische Shift links, LSR - logisches Verschieben nach rechts, LSL - logisches Verschieben nach links) und/oder eine Links- und Rechtsrotation (ROL, ROR) und/oder Register-Manipulationen und/oder Bit-Veränderungen (Bits setzen, löschen und testen) und/oder Umsortieren von Bits und Bytes und/oder AES-Befehle und/oder CRC-Befehle durchführen.An ALU calculates in particular arithmetic and logical functions. For example, it can perform at least one addition (ADD) as an arithmetic function and at least one negation (NOT) and a conjunction (AND, AND) as a logical function. As arithmetic function, it may also preferably include a subtraction (SUB) and / or a comparison (compare, CMP) and / or a multiplication (MUL) and / or a division and / or a decimal adjustment after addition (decimal adjustment after addition). carry out. As a logical function, it may also have a disjunction (OR, OR) and / or a contravalence (XOR, EOR) and / or a right and left shift (right-left, left-shift, ASR-arithmetic shift right, ASL - arithmetic shift left, LSR - logical shift to the right, LSL - logical shift to the left) and / or a left and right rotation (ROL, ROR) and / or register manipulations and / or bit changes (set bits , delete and test) and / or resorting to bits and bytes and / or perform AES commands and / or CRC commands.

Bei besonders bevorzugten Ausführungsformen wird durch mehrere miteinander verbundene Komponenten wie z.B. Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator, arithmetisch-logische Einheit, Exponentialeinheit, Logarithmuseinheit, trigonometrische Einheit, Speichereinheit, Speicherzugriffseinheit, Register, Multiplexer, Schnittstelle, insbesondere Kommunikationsschnittstelle bzw. generell grobgranulare Hardwareelemente, die die Funktionseinheit(en) oder Bestandteile hiervon bilden können, eine vergleichsweise komplexe Berechnungseinrichtung bereitgestellt, wobei erfindungsgemäß vorteilhaft wenigstens eine erste Funktionseinheit dazu ausgebildet ist, erste Daten von wenigstens einer weiteren Funktionseinheit zu empfangen und/oder zweite Daten an wenigstens eine weitere Funktionseinheit zu senden, wie dies bereits vorstehend beschrieben worden ist. Dadurch kann ein Datenfluss definiert werden, der unter anderem auch die Ausführung von vergleichsweise komplexen Berechnungen ermöglicht, welche beispielsweise eine Vielzahl der vorstehend genannten Komponenten bzw. grobgranularen Hardwareelemente, oder generell Berechnungseinheiten, die über mehrere Funktionseinheiten verteilt sein können, nutzen, beispielsweise in einer vorgebbaren Reihenfolge gemäß einem auszuwertenden Algorithmus oder einer sonstigen Rechenregel. Die vorgebbare Reihenfolge kann beispielsweise durch den Datenfluss zwischen den verschiedenen Funktionseinheiten gesteuert werden. Dies kann wie vorstehend bereits beschrieben beispielsweise durch die Festlegung entsprechender Zieladressen ADR1 innerhalb einzelner Datenpakete erfolgen, vgl. 2B.In particularly preferred embodiments, a plurality of interconnected components such as adders, multipliers, dividers, shift registers, barrel shifters, comparator, multiplication accumulator, arithmetic logic unit, exponential unit, logarithm unit, trigonometric unit, memory unit, memory access unit, registers, multiplexer, interface, In particular, at least one first functional unit is configured to receive first data from at least one further functional unit and / or second Send data to at least one other functional unit, as has already been described above. As a result, a data flow can be defined which, inter alia, also makes it possible to carry out comparatively complex calculations, which use, for example, a multiplicity of the abovementioned components or coarse granular hardware elements, or generally calculation units which can be distributed over a number of functional units Order according to an algorithm to be evaluated or another calculation rule. The predeterminable sequence can be controlled, for example, by the data flow between the various functional units. As already described above, this can be done, for example, by the definition of corresponding destination addresses ADR1 within individual data packets, cf. 2 B ,

Einem weiteren Aspekt der vorliegenden Erfindung zufolge kann dieser Datenfluss besonders vorteilhaft auch dynamisch, das bedeutet während einer Laufzeit der erfindungsgemäßen Recheneinheit, beeinflusst bzw. verändert, also umkonfiguriert, werden. Bei einer bevorzugten Ausführungsform kann dies beispielsweise durch eine entsprechende Steuerung der primären Verbindungseinheit 150 bewerkstelligt werden. In einer Ausführung erfolgt die Steuerung der primären Verbindungseinheit 150 vorteilhafterweise durch die Rechenkerne 110a, 110b, 110c und/oder durch eine weitere Peripheriekomponente 120 (insbesondere durch eine DMA-Steuereinrichtung). In einer weiteren Ausführung erfolgt die Steuerung der primären Verbindungseinheit 150 alternativ oder ergänzend vorteilhafterweise durch eine Funktionseinheit 140.According to a further aspect of the present invention, this data flow can also be particularly advantageously also dynamically, that is to say influenced or changed, that is to say reconfigured, during a running time of the computing unit according to the invention. In a preferred embodiment, this can be done, for example, by appropriate control of the primary connection unit 150 be accomplished. In one embodiment, the control of the primary connection unit takes place 150 advantageously by the computing cores 110a . 110b . 110c and / or by another peripheral component 120 (in particular by a DMA controller). In a further embodiment, the control of the primary connection unit 150 is carried out alternatively or additionally advantageously by a functional unit 140.

Einer weiteren vorteilhaften Ausführungsform zufolge ist vorgesehen, dass die Recheneinheit 100a, ..., 100g dazu ausgebildet ist, eine Konfiguration wenigstens einer Funktionseinheit 1400 zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens einer Funktionseinheit 1400 zu überprüfen. Dadurch wird die Flexibilität und der Gebrauchsnutzen der erfindungsgemäßen Recheneinheit weiter gesteigert. Beispielsweise kann bei einer Ausführungsform vorgesehen sein, dass wenigstens eine Funktionseinheit ein oder mehrere der vorstehend bereits beschriebenen Konfigurationsregister 1432a, 1432b, ... und/oder Funktionsregister 1442a (2A) aufweist, die beispielsweise lokal in der Funktionseinheit angeordnet sein können. Durch Lesezugriffe der Recheneinheit, beispielsweise vermöge eines ihrer Rechenkerne 110a (1A), kann die Recheneinheit somit die Konfiguration der betreffenden Funktionseinheit auslesen bzw. überwachen, und ggf. durch Schreibzugriffe modifizieren.According to a further advantageous embodiment, it is provided that the arithmetic unit 100a , ..., 100 g is configured to a configuration of at least one functional unit 1400 to change and / or a state or the configuration of at least one functional unit 1400 to check. As a result, the flexibility and the utility of the computing unit according to the invention is further increased. For example, in one embodiment it can be provided that at least one functional unit contains one or more of the configuration registers already described above 1432 . 1432b , ... and / or function registers 1442A ( 2A ), which may for example be arranged locally in the functional unit. By read accesses of the arithmetic unit, for example by virtue of one of its arithmetic cores 110a ( 1A ), the arithmetic unit can thus read out or monitor the configuration of the relevant functional unit, and possibly modify it by write accesses.

Bei einer weiteren Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten 140, 140a, 140b, ..., 1400 dazu ausgebildet ist, eine Konfiguration der primären Verbindungseinheit 150 und/oder wenigstens einer sekundären Verbindungseinheit 155 zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens der primären Verbindungseinheit 150 und/oder wenigstens einer sekundären Verbindungseinheit 155 zu überprüfen.In a further embodiment it is provided that at least one of the functional units 140 . 140a . 140b , ..., 1400 is configured to a configuration of the primary connection unit 150 and / or at least one secondary connection unit 155 to change and / or a state or the configuration of at least the primary connection unit 150 and / or at least a secondary connection unit 155 to check.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine, insbesondere direkte, Datenverbindung zu einem Zeitgeber-Baustein der Recheneinheit 100 aufweist und/oder zu einem Analog/Digital-Wandler und/oder zu mindestens einer weiteren gegebenenfalls vorhandenen Komponente der Recheneinheit wie beispielsweise einer Hardwarebeschleunigereinheit oder einer Kommunikationsschnittstelleneinheit oder dergleichen. Dadurch ist vorteilhaft die Möglichkeit gegeben, dass die wenigstens eine Funktionseinheit direkt auf den Zeitgeber-Baustein einwirken kann bzw. Daten wie beispielsweise ein Zählerstand eines Zeitgebers abfragen kann, ohne die Hauptverbindungseinheit 130 (1A) der Recheneinheit 100 verwenden zu müssen. Ähnliche Vorteile gelten für die Erfindungsaspekte, welche eine direkte Datenverbindung zwischen wenigstens einer Funktionseinheit und dem Analog/Digital-Wandler umfassen bzw. zu einer gegebenenfalls vorhandenen Hardwarebeschleunigereinheit bzw. zu einer gegebenenfalls vorhandenen Kommunikationsschnittstelleneinheit.In a further advantageous embodiment, it is provided that at least one of the functional units has a, in particular direct, data connection to a timer module of the arithmetic unit 100 and / or to an analog / digital converter and / or to at least one further optionally present component of the computing unit, such as a hardware accelerator unit or a communication interface unit or the like. This advantageously provides the possibility that the at least one functional unit can act directly on the timer module or can query data such as, for example, a counter reading of a timer, without the main connection unit 130 (FIG. 1A ) of the arithmetic unit 100 to use. Similar advantages apply to the aspects of the invention, which comprise a direct data connection between at least one functional unit and the analog / digital converter or to an optionally present hardware accelerator unit or to an optional communication interface unit.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten 1400 (2A) dazu ausgebildet ist, ihre eigene Konfiguration zu verändern. Alternativ oder ergänzend kann die Funktionseinheit dazu ausgebildet sein, eine Konfiguration wenigstens einer weiteren Funktionseinheit zu verändern. Bei einer bevorzugten Ausführungsform kann dies beispielsweise dadurch erfolgen, dass eine erste Funktionseinheit direkt in ein Konfigurationsregister 1432a (2A) einer zweiten Funktionseinheit entsprechende Konfigurationsdaten schreibt. Die hierfür erforderliche Datenverbindung von der ersten Funktionseinheit zu den Konfigurationsregistern der zweiten Funktionseinheit kann wie vorstehend bereits mehrfach beschrieben beispielsweise durch die primäre Verbindungseinheit 150 (1A) realisiert sein.In a further advantageous embodiment, it is provided that at least one of the functional units 1400 ( 2A ) is adapted to change its own configuration. Alternatively or additionally, the functional unit may be designed to change a configuration of at least one further functional unit. In a preferred embodiment, this may be done, for example, by having a first functional unit directly in a configuration register 1432 ( 2A ) writes corresponding configuration data to a second functional unit. The data connection required for this purpose from the first functional unit to the configuration registers of the second functional unit can, as already described above several times, for example by the primary connection unit 150 ( 1A ) be realized.

Alternativ oder ergänzend kann auch eine direkte Datenverbindung 152c ( 1A) zwischen den betreffenden Funktionseinheiten 140,140a verwendet werden, um mittels einer ersten Funktionseinheit 140a die Konfigurationsdaten einer weiteren Konfigurationseinheit 140 zu manipulieren.Alternatively or additionally, a direct data connection can also be provided 152c ( 1A ) between the respective functional units 140 140a, to be used by means of a first functional unit 140a the configuration data of another configuration unit 140 to manipulate.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass zur Konfiguration bzw. Rekonfiguration einer oder mehrerer Funktionseinheiten entsprechende Konfigurationsinformationen aus einer Quelle, beispielsweise einem Konfigurationsspeicher, ausgelesen werden und diese Konfigurationsinformationen in die entsprechenden Konfigurationsregister der betreffenden Funktionseinheit(en) hingeschrieben werden. Der Konfigurationsspeicher kann beispielsweise in der sekundären Speichereinrichtung 160 (1F) angeordnet sein. Alternativ oder ergänzend kann der Konfigurationsspeicher auch in der primären Speichereinrichtung 120 angeordnet sein, insbesondere auch in einem nichtflüchtigen Speicherbereich der primären Speichereinrichtung 120.In a further advantageous embodiment, provision is made for configuration or reconfiguration of one or more functional units to read out corresponding configuration information from a source, for example a configuration memory, and to write this configuration information into the corresponding configuration register of the relevant functional unit (s). The configuration memory may be in the secondary storage device, for example 160 ( 1F ) can be arranged. Alternatively or additionally, the configuration memory may also be in the primary memory device 120 be arranged, in particular in a non-volatile memory area of the primary memory device 120 ,

Bei weiteren Ausführungsformen ist es ferner denkbar, die Konfigurationsinformationen mittels zu der Recheneinheit 100 externen Komponenten bereitzustellen, beispielsweise in Form von (seriellen) Flash-Speichern (SPI Flash), welche zum Beispiel an entsprechende Schnittstellen der Recheneinheit angeschlossen werden.In further embodiments, it is also conceivable, the configuration information by means of the computing unit 100 provide external components, for example in the form of (serial) flash memory (SPI Flash), which are connected, for example, to corresponding interfaces of the arithmetic unit.

Nachstehend sind beispielhaft Aspekte eines Daten-bzw. Informationsflusses innerhalb der Funktionseinheit 1400 gemäß 2A beschrieben. Wie vorstehend bereits erwähnt kann die Funktionseinheit 1400 beispielsweise ein oder mehrere Datenpakete der in Figur 2B näher bezeichneten Struktur DS über ihre Eingangsschnittstelle 1402 empfangen. Darin enthaltene Eingangsdaten, bei denen es sich vorliegend um Konfigurationsdaten handeln kann, werden von der Eingangsschnittstelle 1402 an ein bestimmtes Konfigurationsregister 1432b weitergeleitet, wie dies in 2A durch den Pfeil a25 angedeutet ist. Die Information, in welches Konfigurationsregister die Konfigurationsdaten a25 zu schreiben sind, werden entweder aus Adressinformationen a26 erhalten, welche ebenfalls in dem betreffenden Datenpaket enthalten sind, vgl. das Bezugszeichen ADR2 der Datenstruktur DS aus 2A, oder aber z.B. aus einem anderen Konfigurationsregister 1432c. Die Adressinformationen a26 bzw. das Konfigurationsregister 1432c werden vorliegend durch eine Adresserkennungs- und Auswahleinheit 1452 ausgewertet, welche angibt, dass die Konfigurationsdaten a25 in das Konfirmationsregister 1432b zu schreiben sind.Below are examples of aspects of a data or. Information flow within the functional unit 1400 according to 2A described. As already mentioned above, the functional unit 1400 For example, one or more data packets of the in FIG 2 B closer structure DS via its input interface 1402 receive. Input data contained therein, which in this case may be configuration data, are received from the input interface 1402 to a specific configuration register 1432b forwarded as in 2A indicated by the arrow a25. The information in which configuration register the configuration data a25 are to be written is obtained either from address information a26, which are likewise contained in the relevant data packet, cf. the reference character ADR2 of the data structure DS 2A , or eg from another configuration register 1432c , The address information a26 or the configuration register 1432c are present through an address recognition and selection unit 1452 evaluated, which indicates that the configuration data a25 in the confirmation register 1432b to write.

Die Adresserkennungseinheit 1452 kann bei einer bevorzugten Ausführungsform beispielsweise eine Demultiplexer-Struktur aufweisen, welche direkt durch die in einem Datenpaket enthaltenen Adressinformationen ADR2 gesteuert wird. Ferner kann die Funktionseinheit 1400 über eine Prüfeinheit 1453 verfügen, mittels der überprüft werden kann, ob gültige Eingangsdaten in der Funktionseinheit 1400 vorliegen. Diese Information kann von der Prüfeinheit 1453 beispielsweise zu der lokalen Steuereinrichtung 1410 der Funktionseinheit 1400 übertragen werden, vgl. den Pfeil a30 aus 2A, welche den Betrieb der Funktionseinheit 1400 und beispielsweise der Berechnungseinheit 1420 in Abhängigkeit von dieser Information steuert.The address recognition unit 1452 In a preferred embodiment, for example, it may have a demultiplexer structure which is controlled directly by the address information ADR2 contained in a data packet. Furthermore, the functional unit 1400 via a test unit 1453 by means of which it is possible to check whether valid input data is present in the functional unit 1400 available. This information may be from the test unit 1453, for example, to the local controller 1410 the functional unit 1400 are transmitted, see. the arrow a30 off 2A indicating the operation of the functional unit 1400 and for example the calculation unit 1420 in response to this information controls.

Eine Datenverbindung zwischen der lokalen Steuereinrichtung 1410 und dem Konfigurationsspeicher 1430 bzw. dem Funktionsspeicher 1440 ist vorliegend durch den Pfeil a31 angedeutet. Eine Datenverbindung zwischen der Berechnungseinheit 1420 und dem Konfigurationsspeicher 1430 bzw. dem Funktionsspeicher 1440 ist vorliegend durch den Pfeil a32 angedeutet. Besonders vorteilhaft kann bei manchen Ausführungsformen auch eine direkte Datenverbindung zwischen der Steuereinrichtung 1410 und der Berechnungseinheit 1420 bestehen, vergleiche Pfeil a33. A data connection between the local controller 1410 and the configuration memory 1430 or the function memory 1440 is indicated here by the arrow a31. A data connection between the calculation unit 1420 and the configuration memory 1430 or the function memory 1440 is indicated here by the arrow a32. In some embodiments, a direct data connection between the control device can also be particularly advantageous 1410 and the calculation unit 1420 exist, see arrow a33.

Bei einer weiteren bevorzugten Ausführungsform ist eine Multiplexerstruktur 1454 vorgesehen, welche dazu ausgebildet ist, festzulegen, aus welchem bzw. welchen Registerspeichern und/oder Konfigurationsspeichern bzw. aus welchen sonstigen Quellen der Funktionseinheit 1400 mögliche Ausgangsdaten zum Ausgeben über die Ausgangsschnittstelle 1404 erhalten werden. Beispielhaft kann die Multiplexerstruktur 1454 über den Inhalt eines Konfigurationsregisters 1432d gesteuert werden, vergleiche Pfeil a29.In a further preferred embodiment, a multiplexer structure 1454 is provided, which is designed to determine from which or which register memories and / or configuration memories or from which other sources of the functional unit 1400 possible output data for output via the output interface 1404 to be obtained. By way of example, the multiplexer structure 1454 are controlled via the contents of a configuration register 1432d, see arrow a29.

Für die Zusammenstellung eines auszugebenden Datenpakets können die auszugebenden Daten beispielsweise durch die Multiplexerstruktur 1454 bereitgestellt werden, vergleiche Pfeil a27. Adressinformationen für das auszugebende Datenpaket können beispielsweise aus einem Konfigurationsregister 1432c bereitgestellt bzw. ausgelesen werden, vergleiche Pfeil a28. Die Adressinformationen für das auszugebenden Datenpaket können beispielsweise wiederum die Adresse ADR1 (2B) für eine Ziel-Funktionseinheit enthalten, an welche das auszugebenden Datenpaket auszugeben ist, sowie gegebenenfalls die weiteren Adressinformationen ADR2 für die interne Adressierung innerhalb der Ziel-Funktionseinheit.For the compilation of a data packet to be output, the data to be output can be provided, for example, by the multiplexer structure 1454 be provided, see arrow a27. Address information for the data packet to be output can, for example, from a configuration register 1432c be provided or read, see arrow a28. The address information for the data packet to be output, for example, again the address ADR1 ( 2 B ) for a destination functional unit, to which the data packet to be output is to be output, as well as possibly the further address information ADR2 for internal addressing within the destination functional unit.

Wie bereits vorstehend beschrieben kann bei einer Funktionseinheit 1400 gemäß einer weiteren Ausführungsform zusätzlich zu einer Eingangsschnittstelle 1402 bzw. einer Ausgangsschnittstelle 1404 noch eine weitere Datenverbindung zu einer bezüglich der Funktionseinheit 1400 externen Komponente, beispielsweise zu einer anderen Funktionseinheit oder einer sonstigen Einheit der erfindungsgemäßen Recheneinheit vorgesehen sein. 2C zeigt hierzu eine weitere Ausführungsform 1400a der erfindungsgemäßen Funktionseinheit. Der Aufbau der Funktionseinheit 1400a gemäß 2C entspricht im Wesentlichen der Konfiguration aus 2A. Im Unterschied hierzu ist jedoch zusätzlich oder alternativ zu dem lokalen Funktionsspeicher ein Peripheriespeicher 1460 vorgesehen, welcher vorliegend drei Peripherieregister 1462a, 1462b, 1462c umfasst.As already described above, in a functional unit 1400 according to another embodiment, in addition to an input interface 1402 or an output interface 1404 yet another data connection to one with respect to the functional unit 1400 be provided external component, for example, to another functional unit or other unit of the processing unit according to the invention. 2C shows a further embodiment of this 1400a the functional unit according to the invention. The structure of the functional unit 1400a according to 2C essentially corresponds to the configuration 2A , In contrast to this, however, in addition to or as an alternative to the local function memory, there is a peripheral memory 1460 provided, which in the present case three peripheral registers 1462A . 1462B . 1462c includes.

Ebenfalls in 2C abgebildet ist eine zu der erfindungsgemäßen Funktionseinheit 1400a externe Komponente 200, bei der es sich um eine sonstige Peripheriekomponente der erfindungsgemäßen Recheneinheit 100 ( 1A) handeln kann. Vorliegend ist eine Datenverbindung a34 zwischen dem ersten Peripherieregister 1462a der Funktionseinheit 1400a und einem Register 202a eines Registerspeichers 202 der externen Komponente 200 vorgesehen, welcher der Funktionseinheit 1400a einen direkten Zugriff (Schreiben und/oder Lesen) auf den Inhalt des Registers 202a der externen Komponente 200 gestattet. Beispielsweise kann die Funktionseinheit 1400a durch einen Lesezugriff auf den Inhalt des Registerspeichers 202a der externen Komponente 200 diesen über die Datenverbindung a34 in ihr lokales Peripherieregister 1462a übertragen. Alternativ hierzu ist es möglich, den Inhalt des Registers 202a direkt in das Peripherieregister 1462a zu spiegeln. Bei weiteren Ausführungsformen, insbesondere einer solchen letzteren Ausführungsform, ist es denkbar, die Datenverbindung a34 so auszugestalten, dass bei einem Zugriff (Lesen, Schreiben) auf das Peripherieregister der Funktionseinheit direkt auf das „umgeleitete“ (englisch: mapped) Register der externen Komponente 200 zugegriffen wird.Also in 2C one is shown to the functional unit according to the invention 1400a external component 200 in which it is another peripheral component of the computing unit according to the invention 100 ( 1A ) can act. In the present case, a data connection a34 is present between the first peripheral register 1462A the functional unit 1400a and a register 202a of a register memory 202 the external component 200 provided, which of the functional unit 1400a a direct access (write and / or read) to the contents of the register 202a the external component 200 allowed. For example, the functional unit 1400a by a read access to the contents of the register memory 202a the external component 200 this over the data connection a34 in their local peripheral register 1462A transfer. Alternatively, it is possible to change the contents of the register 202a directly into the peripheral register 1462A to reflect. In further embodiments, in particular such a latter embodiment, it is conceivable to design the data connection a34 such that upon access (read, write) to the peripheral register of the functional unit directly to the "redirected" (mapped) register of the external component 200 is accessed.

Für das weitere Peripherieregister 1462b ist eine ähnliche Datenverbindung a35 zu dem Register 202c der externen Komponente 200 vorgesehen. Für das weitere Peripherieregister 1462c ist eine ähnliche Datenverbindung a36 zu dem Register 202d der externen Komponente 200 vorgesehen, wobei hier jedoch eine Puffereinheit 1464 in der Datenverbindung a36 angeordnet ist, die dazu ausgebildet ist, die Daten des entsprechenden Registers 202d der externen Komponente 200 in schreibender und / oder lesender Richtung zu puffern. Alternativ oder ergänzend kann die Puffereinheit 1464 auch dazu ausgebildet sein, die Daten des entsprechenden Registers 202d der externen Komponente 200 zu modifizieren, während diese durch die Funktionseinheit 1400a gelesen und/oder geschrieben werden.For the further peripheral register 1462B is a similar data connection a35 to the register 202c the external component 200 intended. For the further peripheral register 1462c is a similar data connection a36 to the register 202d the external component 200 provided, but here is a buffer unit 1464 is arranged in the data connection a36, which is adapted to the data of the corresponding register 202d the external component 200 to buffer in the writing and / or reading direction. Alternatively or additionally, the buffer unit 1464 also be trained to the data of the corresponding register 202d of the external component 200 as it passes through the functional unit 1400a read and / or written.

Die vorstehend beschriebenen direkten Datenverbindungen a34, a35, a36 ermöglichen vorteilhaft einen effizienten Datenaustausch zwischen den beteiligten Komponenten 1400a, 200, insbesondere ohne dass gegebenenfalls mit anderen Komponenten geteilte Kommunikationsressourcen wie beispielsweise das Koppelnetz 152 oder die Hauptverbindungseinheit 130 für den Datenaustausch erforderlich sind, so dass eine zeitlich unbeeinflusste direkte Kommunikation stattfinden kann. Besonders bevorzugt kann ein derartiger direkter Datenaustausch durch das Auslesen von einem oder mehreren Registern der externen Komponente 200 oder durch ein Schreiben von Daten in ein oder mehrere Register der externen Komponente 200 erfolgen.The direct data connections a34, a35, a36 described above advantageously enable an efficient data exchange between the participating components 1400a . 200 in particular without any communication resources shared with other components, such as the switching network 152 or the main connection unit 130 are required for data exchange, so that a time-unaffected direct communication can take place. Such a direct data exchange is particularly preferred by the reading out of one or more registers of the external component 200 or by writing data to one or more registers of the external component 200 respectively.

Bei weiteren Ausführungsformen ist denkbar, Register einer oder mehrere externer Komponenten 200 auf die entsprechenden Peripherieregister einer oder mehrerer Funktionseinheiten 1400a abzubilden. In further embodiments, it is conceivable to register one or more external components 200 to the corresponding peripheral registers of one or more functional units 1400a map.

Bei weiteren Ausführungsformen können auch vorteilhaft direkt ein oder mehrere Leitungssignale (im Folgende kurz „Signale“) einer oder mehrerer externen Komponente 200 eingelesen und/oder auf dieser Signale geschrieben werden. Im Gegensatz zu vorgenannten Registern 202a, 20b, 202c, 202d wird unter Signalen im erfindungsgemäßen Sinne nicht der direkte Zugriff auf Register bzw. deren Ein- und Ausgabeleitungen verstanden, sondern beim Lesenden Zugriff als das Ergebnis einer logischen Verknüpfung von Registern und /oder anderer Signale sowie beim Schreibenden Zugriff als der Eingang in eine logische Schaltungsverknüpfung. Sämtliche zuvor für die Register genannten Ausführungsformen sind somit auch auf Signale abzubilden, insb. das Bestehen einer Datenverbindung zwischen den Signalen externer Komponente 200 und 1400a, das Spiegeln von Signalen externer Komponente 200 in Register innerhalb von 1400a, die Möglichkeit zur Datenpufferung sowie die Möglichkeit zur Datenmanipulation beim Lesen und/oder Schreiben von bzw. zu einer oder mehrerer externer Komponenten 200.In further embodiments, one or more line signals (hereinafter referred to as "signals") of one or more external components can advantageously also be used directly 200 read in and / or written on these signals. In contrast to the aforementioned registers 202a . 20b . 202c . 202d For the purposes of the invention, signals are understood not to be direct accesses to registers or their input and output lines, but to read access as the result of a logical combination of registers and / or other signals and write access as the input into a logic circuit connection. All the embodiments previously mentioned for the registers are therefore also to be reproduced on signals, in particular the existence of a data connection between the signals of the external component 200 and 1400a, mirroring external component signals 200 in registers within 1400a, the ability to buffer data, and the ability to manipulate data while reading and / or writing to or from one or more external components 200 ,

Bei weiteren Ausführungsformen ist es möglich, Daten, die von der Funktionseinheit 1400a über die Datenverbindung a34, a35, a36 gelesen oder geschrieben werden, zu modifizieren, hinsichtlich ihres Werts und/oder des zeitlichen Ablaufs (englisch: Timing) für den betreffenden Lesevorgang bzw. Schreibvorgang. Bei einer weiteren Ausführungsform ist vorgesehen, dass die Puffereinheit 1464 dazu ausgebildet ist, eine oder mehrere der vorstehend genannten Modifikationen auszuführen.In further embodiments, it is possible to obtain data from the functional unit 1400a be read or written over the data connection a34, a35, a36, in terms of their value and / or the timing for the respective read or write operation. In a further embodiment it is provided that the buffer unit 1464 is designed to carry out one or more of the modifications mentioned above.

Bei einer Ausführungsform ist vorgesehen, dass Werte während des Lesens und/oder des Schreibens nicht modifiziert werden.In one embodiment, it is provided that values are not modified during reading and / or writing.

Bei einer weiteren Ausführungsform ist vorgesehen, dass Werte während des Lesens und/oder des Schreibens modifiziert werden, insbesondere durch die Puffereinheit 1464. Beispielsweise können die betreffenden Werte bei einem Lesezugriff seitens der Funktionseinheit 1400a auf ein Register 202d der externen Komponente 200 modifiziert werden, bevor sie in das Peripherieregister 1462c der Funktionseinheit 1400a geschrieben werden. Eine Modifikation von Werten bei einem Schreibzugriff seitens der Funktionseinheit 1400a auf das Register 202d der externen Komponente 200 ist in analoger Weise ebenfalls möglich.In another embodiment, it is provided that values are modified during reading and / or writing, in particular by the buffer unit 1464 , For example, the respective values may be read by the functional unit 1400a on a register 202d the external component 200 be modified before entering the peripheral register 1462c of the functional unit 1400a to be written. A modification of values in a write access by the functional unit 1400a on the register 202d the external component 200 is also possible in an analogous manner.

Bei weiteren Ausführungsformen kann das Modifizieren wenigstens einen der folgenden Schritte umfassen: Ändern eines oder mehrerer Flags, insbesondere Bitflags, der zu lesenden oder zu schreibenden Werte, Hinzufügen (Addieren) eines Offsets, Invertieren, weitere logische bzw. numerische Manipulationen der zu lesenden oder zu schreibenden Werte. Diese Ausführungsform ermöglicht vorteilhaft funktionale Manipulationen bezüglich der durch die Funktionseinheit 1400a verarbeiteten Werte.In further embodiments, modifying may comprise at least one of the following steps: changing one or more flags, in particular bit flags, values to be read or written, adding (adding) an offset, inverting, further logical or numerical manipulations of the data to be read or written writing values. This embodiment advantageously enables functional manipulations with respect to the values processed by the functional unit 1400a.

Bei weiteren Ausführungsformen ist es denkbar, einen zeitlichen Ablauf der Datenübertragung von einem externen Register 200 2d zu einem lokalen Peripherieregister der Funktionseinheit 1400a oder umgekehrt zu manipulieren.In further embodiments, it is conceivable to schedule a data transfer from an external register 200 2d to a local peripheral register of the functional unit 1400a or vice versa.

Bevorzugt wird bei einer Ausführungsform keine derartige zeitliche Manipulation angewandt. Mit anderen Worten werden die entsprechenden Daten bzw. Register Inhalte schnellstmöglich von einem Quellregister zu dem Zielregister übertragen bzw. gespiegelt.Preferably, in one embodiment no such temporal manipulation is applied. In other words, the corresponding data or register contents are transferred as quickly as possible from a source register to the destination register or mirrored.

Bei einer weiteren Ausführungsform kann vorgesehen sein, eine vorgebbare Verzögerungszeit während des Lesens bzw. während des Schreibens zu verwenden. Hierbei sind weiter folgende Varianten denkbar: einfacher Puffer, Anwendung des FIFO (first in first out) Prinzips, einstellbare variable Verzögerungszeit, ereignisgesteuerte Verzögerungszeit (die zu lesenden bzw. zu schreibenden Daten werden verzögert, bis ein vorgebbares Ereignis eintritt). Die vorstehenden Maßnahmen, die das Timing der Datenübertragung zwischen den verschiedenen Registern beeinflussen können, können vorteilhaft dazu eingesetzt werden, bewusst Schwankungen bei dem zeitlichen Verhalten der Datenübertragung herbeizuführen oder auch zu Synchronisationszwecken, beispielsweise um Daten synchronisiert zu vorgegebenen Zeitstempeln einzulesen oder auszugeben, und/oder um eine Pulsweitenmodulation zu ermöglichen, und/oder um Daten mit Taktquellen zu synchronisieren, und/oder um Latenzzeiten der Recheneinheit 100 und/oder auch systemweite Latenzzeiten, die außerhalb der Recheneinheit 100 entstehen, auszugleichen.In a further embodiment it can be provided to use a predefinable delay time during reading or during writing. The following variants are also conceivable: simple buffer, application of the FIFO (first in first out) principle, adjustable variable delay time, event-controlled delay time (the data to be read or written are delayed until a specifiable event occurs). The above measures, which can influence the timing of the data transmission between the various registers, can advantageously be used to intentionally bring about fluctuations in the temporal behavior of the data transmission or also for synchronization purposes, for example to read in or output data synchronized to predetermined time stamps, and / or to enable pulse width modulation, and / or to synchronize data with clock sources, and / or latency of the arithmetic unit 100 and / or system-wide latencies outside of the arithmetic unit 100 arise, compensate.

Bei einer weiteren vorteilhaften Ausführungsform können einzelne oder mehrere Aspekte der vorstehend genannten Funktionalität betreffend die Manipulation von zu übertragenden Daten bzw. die Manipulation des hierbei erfolgenden Timing durch die Puffereinheit 1464 realisiert werden. Alternativ oder ergänzend kann bei der erfindungsgemäßen Recheneinheit auch eine extern bezüglich der betrachteten Funktionseinheit 1400a angeordnete Komponente (nicht gezeigt) vorgesehen sein, welche die vorstehend genannte Funktionalität realisiert.In a further advantageous embodiment, one or more aspects of the aforementioned functionality relating to the manipulation of data to be transmitted or the manipulation of the thereby occurring timing by the buffer unit 1464 will be realized. Alternatively or additionally, in the case of the arithmetic unit according to the invention, an external with respect to the considered functional unit 1400a arranged component (not shown) may be provided, which realizes the above-mentioned functionality.

Die vorstehend beispielhaft genannten direkten Datenverbindungen a34, a35, a36 zwischen der Funktionseinheit 1400a und der externen Komponente 200 ermöglichen die folgenden Funktionen bzw. Vorteile:

  • - Direkter Zugriff auf externe Ressourcen 200, insbesondere ohne zusätzlichen Kommunikationsaufwand (englisch: overhead), wodurch die Funktionalität der Funktionseinheit 1400a bzw. der gesamten erfindungsgemäßen Recheneinheit 100 erweitert und/oder beschleunigt werden kann. Dies ist besonders dann vorteilhaft, wenn die Funktionseinheit 1400a eine entsprechende Funktionalität benötigt, diese jedoch gar nicht oder nicht in der erforderlichen Form bzw. Leistungsfähigkeit in der Funktionseinheit 1400a selbst vorhanden ist.
  • - Umgekehrt können auch externe Komponenten 200 direkt auf in der Funktionseinheit 1400a vorliegende Daten zugreifen, insbesondere ohne zusätzlichen Kommunikationsaufwand, wodurch die Funktionalität der externen Komponente 200 entsprechend erweitert und/oder beschleunigt werden kann.
  • - Kombination der Funktionalitäten der Funktionseinheit 1400a mit den Funktionalitäten der externen Komponente 200.
  • - Effiziente Synchronisierung zwischen der Funktionseinheit 1400a und der externen Komponente 200.
  • - Direkter Datenaustausch zwischen den Komponenten 1400a, 200 mittels Hardware-Primitiven.
  • - Sofern die externe Komponente 200 beispielsweise eine Kommunikationsschnittstelle aufweist, kann die Funktionseinheit 1400a über die direkte Datenverbindung a34 gegebenenfalls direkt die in der externen Komponente 200 angeordnete Kommunikationsschnittstelle zur Kommunikation mit weiteren Einrichtungen nutzen, ohne dass die Funktionalität der Kommunikationsschnittstelle in der Funktionseinheit 1400a vorhanden ist.
The above-mentioned direct data connections a34, a35, a36 between the functional unit 1400a and the external one component 200 enable the following features or benefits:
  • - Direct access to external resources 200 , in particular without additional communication effort (English: overhead), whereby the functionality of the functional unit 1400a or the entire computing unit according to the invention 100 can be extended and / or accelerated. This is particularly advantageous when the functional unit 1400a requires a corresponding functionality, but this not at all or not in the required form or performance in the functional unit 1400a itself is present.
  • - Conversely, external components can also be used 200 directly on in the functional unit 1400a present data available, in particular without additional communication overhead, whereby the functionality of the external component 200 can be extended and / or accelerated accordingly.
  • - Combination of functionalities of the functional unit 1400a with the functionalities of the external component 200 ,
  • - Efficient synchronization between the functional unit 1400a and the external component 200 ,
  • - Direct data exchange between the components 1400a . 200 using hardware primitives.
  • - If the external component 200 For example, has a communication interface, the functional unit 1400a via the direct data connection a34 optionally directly in the external component 200 arranged communication interface for communication with other facilities, without the functionality of the communication interface in the functional unit 1400a is available.

Nachfolgend sind mögliche Anwendungsbeispiele bzw. Szenarien genannt, bei denen Daten durch die Funktionseinheit 1400a über eine direkte Datenverbindung a34 beispielsweise in ein Register einer externen Komponente 200 geschrieben werden:

  • - Die lokale Steuereinrichtung 1410 der Funktionseinheit 1400a veranlasst das Schreiben von Daten in ein externes Register 202a.
  • - Bei dem Erhalt bestimmter Eingangsdaten, beispielsweise in Form eines oder mehrerer Datenpakete, können Adressinformationen ADR (2B) ermittelt werden, welche einen Schreibvorgang auf ein Peripherieregister 1462a veranlassen, welches direkt auf ein externes Register 202a gespiegelt ist. Mit anderen Worten wird durch die in dem empfangenen Datenpaket enthaltenen Adressinformationen ein Peripherieregister adressiert, welches auf das externe Register 202a gespiegelt ist.
The following are possible application examples or scenarios in which data is passed through the functional unit 1400a For example, written to a register of an external component 200 via a direct data connection a34:
  • - The local control device 1410 the functional unit 1400a causes the writing of data in an external register 202a ,
  • When receiving certain input data, for example in the form of one or more data packets, address information ADR ( 2 B ), which writes to a peripheral register 1462A which direct to an external register 202a is mirrored. In other words, a peripheral register addressed to the external register is addressed by the address information contained in the received data packet 202a is mirrored.

Nachfolgend sind mögliche Anwendungsbeispiele bzw. Szenarien genannt, bei denen Daten durch die Funktionseinheit 1400a über eine direkte Datenverbindung a34 gelesen werden:

  • - Die lokale Steuereinrichtung 1410 der Funktionseinheit 1400a veranlasst das Lesen von Daten aus einem externen Register 202a.
  • - Bei dem Erstellen eines über die Ausgangsschnittstelle 1404 (2C) auszugebenden Datenpakets wird festgestellt, dass wenigstens ein Teil der auszugebenden Daten aus einem Peripherieregister 1462a der Funktionseinheit 1400a zu lesen ist, welches ein externes Register 202a spiegelt.
The following are possible application examples or scenarios in which data is passed through the functional unit 1400a be read via a direct data connection a34:
  • - The local control device 1410 the functional unit 1400a causes the reading of data from an external register 202a ,
  • - When creating one via the output interface 1404 ( 2C ) to be outputted data packets, it is determined that at least a part of the data to be output from a peripheral register 1462A the functional unit 1400a to read which is an external register 202a reflects.

Nachfolgend sind weitere Ausführungsformen beschrieben, bei denen beispielhaft spezielle Typen von möglichen externen Komponenten 200 im Sinne der vorstehenden Beschreibung und damit assoziierte Datenzugriffe auf deren Register über direkte Datenverbindungen nach Art der vorstehend beschriebenen Datenverbindungen a34, a35, a36 genannt sind.In the following, further embodiments are described, by way of example specific types of possible external components 200 in the sense of the preceding description and associated data accesses on whose registers are called via direct data connections in the manner of the data connections a34, a35, a36 described above.

Bei einer Ausführungsform kann die externe Komponente 200 als Zeitgeberbaustein (englisch: timer) der Recheneinheit 100 ausgebildet sein. Beispielsweise kann es sich dabei um einen integrierten (System-) Zeitgeber handeln, oder auch um einen vergleichsweise komplexen Zeitgeberbaustein, welcher als Peripheriekomponente der Recheneinheit 100 vorgesehen und bevorzugt ebenfalls in diese integriert ist. Beispielsweise kann es sich bei dem vergleichsweise komplexen Zeitgeberbaustein um einen Zeitgeberbaustein des Typs handeln, wie er in der internationalen Patentanmeldung WO 2011/120823 A1 beschrieben ist.In one embodiment, the external component 200 as timer module (English: timer) of the arithmetic unit 100 be educated. For example, it may be an integrated (system) timer, or even a comparatively complex timer module, which is a peripheral component of the arithmetic unit 100 provided and preferably also integrated in this. For example, the comparatively complex timer module may be a timer module of the type described in the international patent application WO 2011/120823 A1 is described.

Bei der Ausführung der externen Komponente 200 als Zeitgeberbaustein kann ein direkter Datenzugriff auf ein Register 202a beispielsweise das Lesen eines Zeitgeberwerts (englisch: timer value) oder das Schreiben eines Zeitgeberwerts umfassen. Alternativ oder ergänzend kann ein direkter Datenzugriff auf den Zeitgeberbaustein bzw. seine Register mit dem Ziel erfolgen, Werte des sog. timer compare Registers zu lesen oder zu schreiben oder generell Steuerregister des Zeitgeberbausteins zu lesen oder zu beschreiben. Bei manchen Ausführungsformen kann durch eine derartige Datenübertragung auch ein Betrieb des Zeitgeberbausteins gesteuert, insbesondere der Zeitgeberbaustein aktiviert oder deaktiviert und/oder Schaltzeiten gesetzt, werden.When running the external component 200 As a timer module can be a direct data access to a register 202a for example, reading a timer value or writing a timer value. Alternatively or additionally, a direct data access to the timer module or its registers can take place with the aim of reading or writing values of the so-called timer compare register or of generally reading or writing control registers of the timer module. In some embodiments, an operation of the timer module can also be controlled by such a data transmission, in particular the timer module can be activated or deactivated and / or switching times can be set.

Generell kann durch einen direkten Datenzugriff der erfindungsgemäßen Funktionseinheit 1400a auf eine als Zeitgeberbaustein ausgebildete externe Komponente 200 die Funktionalität der erfindungsgemäßen Funktionseinheit 1400a um die Ausführung zeitgesteuerter Berechnungen bzw. einer Synchronisierung mit einem globalen Zeitgeber der Recheneinheit 100 erweitert werden. Ferner kann die Funktionseinheit 1400a dadurch direkt auf Systemereignisse der Recheneinheit 100, welche durch den Zeitgeberbaustein 200 gesteuert werden, reagieren, und/oder Berechnungsvorgänge, beispielsweise durch die lokale Berechnungseinheit 1420, in einen zeitlichen Bezug mit durch die Recheneinheit 100 verarbeiteten Datenrahmen setzen. In general, by a direct data access of the functional unit according to the invention 1400a to an external component designed as a timer module 200 the functionality of the functional unit 1400a according to the invention to the execution of time-controlled calculations or a synchronization with a global timer of the arithmetic unit 100 be extended. Furthermore, the functional unit 1400a thereby directly on system events of the arithmetic unit 100 , which are controlled by the timer module 200, respond, and / or calculation operations, for example by the local calculation unit 1420 , in a temporal relation with by the arithmetic unit 100 put processed data frames.

Bei einer weiteren Ausführungsform kann die externe Komponente 200 als Eingabe- und/oder Ausgabeschnittstelle (für I/O Pins) der Recheneinheit 100 ausgebildet sein, vgl. auch Element 180 aus 1H. Eine direkte Datenverbindung a34 (2C) ermöglicht der Funktionseinheit 1400a in diesem Fall einen direkten Zugriff auf die Schnittstelle 180 und damit die Möglichkeit, Daten hierüber auszugeben bzw. einzulesen, und zwar ohne dass hierbei systembedingte Verzögerungszeiten der Recheneinheit auftreten. Dadurch können auch vorteilhaft zeitliche Schwankungen (englisch: jitter) vermieden werden sowie gegebenenfalls Blockierungszustände, wie sie bei konventionellen Recheneinheiten mit gemeinsamem Zugriff auf derartige Schnittstellen auftreten können.In a further embodiment, the external component 200 as input and / or output interface (for I / O pins) of the arithmetic unit 100 be educated, cf. also element 180 out 1H , A direct data connection a34 ( 2C ) allows the functional unit 1400a in this case, direct access to the interface 180 and thus the possibility of outputting or reading in data about this without system-related delay times of the arithmetic unit occurring. This also advantageous temporal variations (jitter) can be avoided and optionally blocking conditions, as they can occur in conventional computing units with shared access to such interfaces.

Bei einer weiteren Ausführungsform kann die externe Komponente 200 als Eingabe- und/oder Ausgabeschnittstelle ausgebildet sein, z.B. um Statuswerte und/oder die Konfiguration der Rechenkerne 110a, 110b, 110c und/oder weiterer Peripheriekomponenten 125 der Recheneinheit 100 auszulesen bzw. zu setzen. Eine direkte Datenverbindung a34 (2C) ermöglicht der Funktionseinheit 1400a in diesem Fall einen direkten Zugriff auf die Statuswerte und/oder die Konfigurationsregister und damit die Möglichkeit, Daten hierüber auszugeben bzw. einzulesen, und zwar ohne dass hierbei systembedingte Verzögerungszeiten der Recheneinheit auftreten.In a further embodiment, the external component 200 be designed as input and / or output interface, for example, to status values and / or the configuration of the calculation cores 110a . 110b . 110c and / or other peripheral components 125 the arithmetic unit 100 read out or set. A direct data connection a34 ( 2C In this case, the functional unit 1400a in this case allows direct access to the status values and / or the configuration registers and thus the possibility of outputting or reading in data thereon, without system-related delay times of the arithmetic unit occurring in this case.

Bei einer weiteren Ausführungsform kann die externe Komponente 200 als externe Kommunikationsschnittstelle ausgebildet sein. Extern bedeutet in diesem Zusammenhang, dass die externe Kommunikationsschnittstelle 200 eine Kommunikation mit wenigstens einer Einheit ermöglicht, welche extern zu der erfindungsgemäßen Recheneinheit 100 angeordnet ist. Die externe Kommunikationsschnittstelle 200 selbst kann dabei in die Recheneinheit 100 integriert oder außerhalb der Recheneinheit 100 angeordnet sein. Beispielsweise kann es sich bei einer externen Kommunikationsschnittstelle der vorstehend genannten Art um mindestens einen Schnittstellenbaustein für wenigstens eines der nachstehend genannten Kommunikationsprotokolle handeln: SPI (serial peripheral interface), CAN (Controller Area Network), CAN-FD (CAN Flexible Data Rate), FlexRay, Ethernet, SENT, Micro Second Channel, l2C, PSI5, LIN (Local Interconnect Network), UART (Universal Asynchronous Receiver Transmitter), und dergleichen. Dadurch kann die erfindungsgemäße Funktionseinheit 1400a vorteilhaft um die entsprechende Funktionalität der vorstehend genannten Kommunikationsschnittstelle(n) erweitert werden.In a further embodiment, the external component 200 be designed as external communication interface. External in this context means that the external communication interface 200 allows communication with at least one unit which external to the arithmetic unit according to the invention 100 is arranged. The external communication interface 200 itself can be in the arithmetic unit 100 integrated or outside the arithmetic unit 100 be arranged. For example, an external communication interface of the aforementioned type may be at least one interface module for at least one of the following communication protocols: SPI (Serial Peripheral Interface), CAN (Controller Area Network), CAN-FD (CAN Flexible Data Rate), FlexRay , Ethernet, SENT, Micro Second Channel, L2C, PSI5, LIN (Local Interconnect Network), UART (Universal Asynchronous Receiver Transmitter), and the like. As a result, the functional unit according to the invention 1400a Advantageously extended by the corresponding functionality of the aforementioned communication interface (s).

Bei einer weiteren Ausführungsform kann die externe Komponente 200 als Analog/Digital-Wandler ausgebildet sein. Dadurch kann die erfindungsgemäße Funktionseinheit 1400a vorteilhaft um die entsprechende Funktionalität des Analog/Digital-Wandlers 200 erweitert werden und insbesondere direkt aus mittels des Analog/Digital-Wandlers erfassten Analogwerten abgeleitete Digitalwerte aus einem oder mehreren der gespiegelten Register auslesen. Ferner kann die Funktionseinheit 1400a gegebenenfalls auch lesend beziehungsweise schreibend auf ein oder mehrere Steuerregister des Analog/Digital-Wandlers zugreifen, um den Betrieb des Analog/Digital-Wandlers zu überwachen und/oder zu steuern. Vorteilhaft werden hierbei wiederum systembedingte Verzögerungszeiten der Recheneinheit aufgrund des direkten Zugriffs mittels der Datenverbindung a34 vermieden.In a further embodiment, the external component 200 be designed as an analog / digital converter. As a result, the functional unit according to the invention 1400a advantageous to the corresponding functionality of the analog / digital converter 200 in particular, read out digital values derived directly from analog values detected by means of the analog / digital converter from one or more of the mirrored registers. Furthermore, the functional unit 1400a optionally read or write access to one or more control registers of the analog / digital converter to monitor the operation of the analog / digital converter and / or to control. In this case system-related delay times of the arithmetic unit due to the direct access by means of the data connection a34 are advantageously avoided.

Bei einer weiteren Ausführungsform kann die Komponente 200 als eine Kombination der zuvor beschriebenen externen Komponente 200 als Analog/Digital-Wandler sowie der externen Komponente 200 als Zeitgeberbaustein ausgebildet sein, d.h., bei dieser Ausführungsform realisiert die Komponente die Funktionalität wenigstens eines Analog/Digital-Wandlers und wenigstens eines Zeitgeberbausteins. Dadurch ist es beispielsweise möglich, die vom Analog/Digital-Wandler erfassten Analogwerte und abgeleiteten Digitalwerte zeitsynchron zu einem Systemtaktsignal des Zeitgeberbausteins auslesen. Ferner kann die Funktionseinheit 1400a gegebenenfalls auch zeitsynchron lesend beziehungsweise schreibend auf ein oder mehrere Steuerregister des Analog/Digital-Wandlers zugreifen, um den Betrieb des Analog/Digital-Wandlers zu überwachen und/oder zu steuern. Vorteilhaft werden hierbei wiederum systembedingte Verzögerungszeiten der Recheneinheit aufgrund des direkten Zugriffs mittels der Datenverbindung a34 vermieden.In a further embodiment, the component 200 as a combination of the external component described above 200 as analog / digital converter as well as the external component 200 be designed as a timer module, ie, in this embodiment, the component realizes the functionality of at least one analog / digital converter and at least one timer module. This makes it possible, for example, to read the analog values and the derived digital values acquired by the analog / digital converter in a time-synchronized manner with a system clock signal of the timer module. Furthermore, the functional unit 1400a if appropriate, also reading or writing in time-synchronized access to one or more control registers of the analog / digital converter in order to monitor and / or control the operation of the analog / digital converter. In this case system-related delay times of the arithmetic unit due to the direct access by means of the data connection a34 are advantageously avoided.

Bei einer weiteren vorteilhaften Ausführungsform kann die externe Komponente 200 als Fehlerbehandlungseinheit ausgebildet sein. Dadurch kann die erfindungsgemäße Funktionseinheit 1400a vorteilhaft direkt Fehlersignale bzw. Fehlervektoren an die Fehlerbehandlungseinheit 200 ausgeben. Des Weiteren besteht dadurch vorteilhaft die Möglichkeit, dass die Funktionseinheit 1400a mögliche Fehlerzustände anderer Komponenten abfragt, die gegebenenfalls ebenfalls in wenigstens einem Register der Fehlerbehandlungseinheit hinterlegt sind.In a further advantageous embodiment, the external component 200 may be formed as an error handling unit. As a result, the functional unit according to the invention 1400a advantageously directly error signals or error vectors to the error handling unit 200 output. Furthermore, there is advantageously the possibility that the functional unit 1400a possible Error conditions of other components queries, which may also be stored in at least one register of the error handling unit.

Bei einer weiteren vorteilhaften Ausführungsform kann die externe Komponente 200 auch als sonstige Hardwarebeschleunigereinheit ausgebildet sein. Dadurch ist vorteilhaften die Möglichkeit gegeben, dass die Funktionseinheit 1400a Daten direkt mit der sonstigen Hardwarebeschleunigereinheit 200 austauscht. Insbesondere wird dadurch eine Verwendung der Hauptverbindungseinheit 130 vermieden und eine zeitlich enge Kopplung von 1400a und 200 ermöglicht.In a further advantageous embodiment, the external component 200 may also be designed as another hardware accelerator unit. This advantageously provides the possibility that the functional unit 1400a Data directly with the other hardware accelerator unit 200 exchanges. In particular, this makes use of the main connection unit 130 avoided and a time-tight coupling of 1400a and 200 allows.

Bei einer weiteren vorteilhaften Ausführungsform kann die externe Komponente 200 auch als Speicherdirektzugriffs (DMA, englisch: direct memory access)-Steuereinheit ausgebildet sein. Die DMA-Steuereinheit ist eine Speicherzugriffseinheit, die vorzugsweise aktiv und/oder eigenständig und direkt auf Speicher und/oder auf andere Peripheriekomponenten innerhalb des adressierbaren Speicherbereichs zugreifen kann Die DMA-Steuereinheit 200 ist in an sich bekannter Weise dazu ausgebildet, Speicherdirektzugriffe über ein Bussystem der Recheneinheit, beispielsweise über ein Bussystem der Hauptverbindungseinheit 130, auszuführen, wodurch Daten zwischen den durch die Hauptverbindungseinheit 130 verbundenen Komponenten übertragen werden können, ohne dass hierfür ein Rechenkern 110a, 110b, 110c benötigt wird. Dies bedingt den Vorteil, dass die erfindungsgemäße Funktionseinheit 1400a die Funktionalität der DMA-Steuereinheit nutzen kann. Beispielsweise kann die Funktionseinheit 1400a auf diesem Wege Speicherdirektzugriffe zwischen der primären Speichereinheit 120 und einer weiteren Peripheriekomponente 125 der Recheneinheit 100 veranlassen, ohne dass hierzu eine Interaktion zwischen der Funktionseinheit 1400a und der DMA-Steuereinheit 200 erforderlich ist. Des Weiteren besteht bei dieser Ausführungsform die Möglichkeit, dass die Funktionseinheit 1400a durch Auslesen beziehungsweise Beschreiben von einem oder mehreren Steuerregistern der DMA-Steuereinheit 200 Einfluss nimmt auf den Betrieb der DMA-Steuereinheit 200.In a further advantageous embodiment, the external component 200 can also be designed as a direct memory access (DMA) control unit. The DMA controller is a memory access unit, which may preferably actively and / or independently and directly access memory and / or other peripheral components within the addressable memory area. The DMA controller 200 is designed in a manner known per se to direct memory access via a bus system of the arithmetic unit, for example via a bus system of the main connection unit 130 to execute, making data between those through the main connection unit 130 Connected components can be transferred without requiring a computational core 110a . 110b . 110c is needed. This implies the advantage that the functional unit according to the invention 1400a can use the functionality of the DMA controller. For example, the functional unit 1400a in this way direct memory accesses between the primary storage unit 120 and another peripheral component 125 the arithmetic unit 100 without causing any interaction between the functional unit 1400a and the DMA controller 200 is required. Furthermore, in this embodiment there is the possibility that the functional unit 1400a by reading out or describing one or more control registers of the DMA control unit 200 Influence on the operation of the DMA control unit 200 ,

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheit 1400a selbst eine DMA-Steuereinheit (nicht gezeigt) aufweist, um (Speicher-)Direktzugriffe auf wenigstens ein Bussystem der Recheneinheit 100 auszuführen, vorzugsweise auf ein Bussystem der Hauptverbindungseinheit 130. Die DMA-Steuereinheit kann hierbei vorteilhaft direkt in die Funktionseinheit 1400a integriert sein und beispielsweise einen Zugriff der Funktionseinheit 1400a auf einen globalen Adressraum der Recheneinheit ermöglichen. Besonders bevorzugt kann die Funktionseinheit 1400a bei einer weiteren Ausführungsform als „Master“ arbeiten und somit über die Hauptverbindungseinheit 130 aktiv und eigenständig auf den globalen Adressraum lesend und/oder schreibend zugreifen. Der Zugriff auf die Hauptverbindungseinheit 130 kann beispielsweise durch die Schnittstelle a24 (2A) erfolgen.In a further advantageous embodiment, it is provided that the functional unit 1400a itself has a DMA control unit (not shown) to perform (memory) direct accesses to at least one bus system of the arithmetic unit 100, preferably to a bus system of the main connection unit 130. The DMA control unit can advantageously be integrated directly into the functional unit 1400a and, for example an access of the functional unit 1400a allow for a global address space of the arithmetic unit. Particularly preferably, the functional unit 1400a in a further embodiment operate as a "master" and thus via the main connection unit 130 actively and independently accessing and / or writing to the global address space. Access to the main connection unit 130 For example, through the interface a24 ( 2A ) respectively.

3A zeigt schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit 1400b gemäß einer weiteren Ausführungsform der Erfindung. Die Funktionseinheit 1400b ist zur Realisierung der Funktionalität eines Multiplikationsakkumulators (MAC) eingerichtet. In diesem Fall sind beispielsweise drei Eingangsgrößen A, B, C definiert, die gemäß der nachfolgenden Gleichung ausgewertet werden und somit auf die Ausgangsgröße Y führen: Y = A*B+C, wobei „*“ den Multiplikationsoperator definiert. Die Eingangsgrößen A, B, C können der Funktionseinheit 1400b beispielsweise über wenigstens ein in den Eingangsdaten a20 enthaltenes Datenpaket über die Eingangsschnittstelle 1402 zugeführt werden, und die Ausgangsgröße Y kann die Funktionseinheit 1400b wie vorstehend bereits mehrfach beschrieben als Datenpaket a22 über die Ausgangsschnittstelle 1404 an mindestens eine weitere Funktionseinheit (nicht gezeigt) ausgeben. Die für die Auswertung der vorstehenden Gleichung erforderlichen Rechenschritte Multiplikation, Addition kann die lokale Berechnungseinheit 1420a der Funktionseinheit 1400b ausführen. Hierfür verfügt die lokale Berechnungseinheit 1420a beispielsweise über einen vorzugsweise als Hardwareschaltung ausgebildeten Multiplizierer 1421a und über einen vorzugweise ebenfalls als Hardwareschaltung ausgebildeten Addierer 1421b, die zum Ziel einer noch effizienteren Implementierung weiteren Ausführungsformen zufolge auch in einem gemeinsamen und vorzugsweise als Hardwareschaltung ausgebildeten Multiplikationsakkumulator 1420a, ohne Auftrennung in 1421a und 1421b, umgesetzt sein können. Die restlichen Komponenten 1410, 1412, 1430, 1440 der Funktionseinheit 1400b können identisch zu der Konfiguration gemäß 2A ausgebildet sein. Bei weiteren Ausführungsform können die restlichen Komponenten 1410, 1412, 1430, 1440 jedoch auch abweichend hiervon ausgebildet sein. 3A schematically shows a simplified block diagram of a functional unit 1400b according to a further embodiment of the invention. The functional unit 1400b is set up to implement the functionality of a multiplication accumulator (MAC). In this case, for example, three input quantities A, B, C are defined, which are evaluated according to the following equation and thus lead to the output variable Y: Y = A * B + C, where "*" defines the multiplication operator. The input variables A, B, C can the functional unit 1400b for example via at least one data packet contained in the input data a20 via the input interface 1402 can be supplied, and the output Y can be the functional unit 1400b as already described several times above as data packet a22 via the output interface 1404 to at least one other functional unit (not shown) spend. The computational steps multiplication, addition required for the evaluation of the above equation may be the local computation unit 1420a the functional unit 1400b To run. This is provided by the local calculation unit 1420a for example via a multiplier 1421a, preferably designed as a hardware circuit, and via an adder, which is preferably also designed as a hardware circuit 1421b According to further embodiments, the aim of an even more efficient implementation is also in a common multiplication accumulator, which is preferably designed as a hardware circuit 1420a , without separation into 1421a and 1421b, can be implemented. The remaining components 1410 . 1412 . 1430 . 1440 the functional unit 1400b can be identical to the configuration according to 2A be educated. In another embodiment, the remaining components 1410 . 1412 . 1430 . 1440 However, be deviating from this.

3B zeigt schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit 1400c gemäß einer weiteren Ausführungsform der Erfindung. Die Funktionseinheit 1400c ist beispielsweise dazu vorgesehen, Daten von zwei weiteren Funktionseinheiten 1400 mit jeweils einer Ausgangsschnittstelle 1404 oder von einer weiteren Funktionseinheit 1400 mit zwei Ausgangsschnittstellen 1404 zu empfangen, die die Daten wiederum beispielsweise aus der sekundären Speichereinrichtung 160 (1F) laden. Hierfür kann die Funktionseinheit 1400c beispielsweise zwei Eingangsschnittstellen 1402a, 1402b des vorstehend unter Bezugnahme auf 2A beschriebenen Typs 1402 aufweisen, sodass der Funktionseinheit 1400c über zwei parallele Eingangsschnittstellen Eingangsdaten zugeführt werden können. Besonders bevorzugt können die Daten über die beiden Eingangsschnittstellen unabhängig voneinander empfangen werden. Alternativ können unter Verwendung der beiden Eingangsschnittstellen 1402a, 1402b Daten mit der doppelten Datenbreite bzw. Wortbereite empfangen werden, wobei die erste Eingangsschnittstelle 1402a z.B. die niederwertigen Bits a20_1 der Daten empfängt, und wobei die zweite Eingangsschnittstelle 1402b z.B. die höherwertigen Bits a20_2 der Daten empfängt. In einer besonders leistungsfähigen Variante des zuvor genannten Multiplikationsakkumulators 1440b (MAC, 3A) könnten die Eingangsgrößen A, B, C beispielsweise über drei parallele Eingangsschnittstellen 1402 (nur eine Eingangsschnittstelle 1402 abgebildet) der Berechnungseinheit 1420a zugeführt werden. 3B schematically shows a simplified block diagram of a functional unit 1400c according to a further embodiment of the invention. The functional unit 1400c For example, it is intended to provide data from two other functional units 1400 each with an output interface 1404 or from another functional unit 1400 with two output interfaces 1404, which in turn receive the data from, for example, the secondary memory device 160 ( 1F ) load. For this purpose, the functional unit 1400c for example, two input interfaces 1402a . 1402b of the above with reference to 2A described type 1402 have, so the functional unit 1400c Input data can be supplied via two parallel input interfaces. Particularly preferably, the data can be received independently of one another via the two input interfaces. Alternatively, using the two input interfaces 1402a . 1402b Data with twice the data width or word width are received, wherein the first input interface 1402a eg the low order bits a20_1 of the data is received and the second input interface 1402b eg the higher order bits a20_2 of the data is received. In a particularly powerful variant of the aforementioned multiplication accumulator 1440B (MAC, 3A ), the input variables A, B, C could, for example, via three parallel input interfaces 1402 (only one input interface 1402 shown) of the calculation unit 1420a be supplied.

Gemäß einem weiteren Ausführungsbeispiel kann die Funktionseinheit 1400c dazu vorgesehen sein, Daten an eine Datensenke auszugeben. Hierzu kann die Funktionseinheit 1400c beispielsweise zwei Ausgangsschnittstellen 1404a, 1404b des vorstehend unter Bezugnahme auf 2A beschriebenen Typs 1404 aufweisen, sodass zwei parallele Schreibvorgänge möglich sind. Besonders bevorzugt können die beiden Schreibvorgänge unabhängig voneinander ausgeführt werden. Alternativ können unter Verwendung der beiden Ausgangsschnittstellen 1404a, 1404b Daten mit der doppelten Datenbreite bzw. Wortbreite ausgegeben werden, wobei die erste Ausgangsschnittstelle 1404a z.B. die niederwertigen Bits a22_1 der Daten ausgibt, wobei die zweite Ausgangsschnittstelle 1404b z.B. die höherwertigen Bits a22_2 der Daten ausgibt.According to a further embodiment, the functional unit 1400c be provided to output data to a data sink. For this purpose, the functional unit 1400c for example, two output interfaces 1404a , 1404b of the above with reference to 2A described type 1404, so that two parallel write operations are possible. Particularly preferably, the two write operations can be performed independently. Alternatively, using the two output interfaces 1404a . 1404b Data with twice the data width or word width are output, wherein the first output interface 1404a For example, the low-order bits a22_1 of the data are output, the second output interface 1404b For example, the higher-order bits a22_2 of the data outputs.

Gemäß einem weiteren Ausführungsbeispiel kann die Funktionseinheit 1400c dazu vorgesehen sein, Daten aus einer Datenquelle wie beispielsweise der sekundären Speichereinrichtung 160 (1F) zu laden oder in diese zu schreiben. Hierfür kann die Funktionseinheit 1400c beispielsweise zwei andersartige Schnittstellen a24_1, a24_2 des vorstehend unter Bezugnahme auf 2A beschriebenen Typs a24 aufweisen, sodass zwei parallele Lese- oder zwei parallele Schreibvorgänge oder ein paralleler Lese- und Schreibvorgang oder zwei parallele Lesevorgange zusammen mit zwei parallelen Schreibvorgängen möglich sind. Besonders bevorzugt können die Lese- / Schreibvorgänge unabhängig voneinander ausgeführt werden. Alternativ können unter Verwendung der beiden andersartigen Schnittstellen a24_1, a24_2 Daten mit der doppelten Datenbreite bzw. Wortbereite eingelesen bzw. geschrieben werden, wobei die erste andersartige Schnittstelle a24_1 z.B. die niederwertigen Bits der Daten liest bzw. schreibt, und wobei die zweite andersartige Schnittstelle a24_2 z.B. die höherwertigen Bits der Daten liest bzw. schreibt.According to a further embodiment, the functional unit 1400c be provided to data from a data source such as the secondary storage device 160 ( 1F ) or to write in this. For this purpose, the functional unit 1400c For example, two different interfaces a24_1, a24_2 of the above with reference to 2A a24 so that two parallel read or two parallel writes or one parallel read and write or two parallel reads are possible along with two parallel writes. Most preferably, the read / write operations can be performed independently. Alternatively, using the two different interfaces a24_1, a24_2, data with twice the data width or word width can be read or written, wherein the first different type of interface a24_1 reads or writes eg the low-order bits of the data, and wherein the second different interface a24_2 eg the higher-order bits of the data are reading or writing.

Bei anderen Ausführungsformen ist eine abweichende Anzahl von Eingangsschnittstellen 1402 bzw. Ausgangsschnittstellen 1404 sowie andersartigen Schnittstellen a24 für die erfindungsgemäße Funktionseinheit ebenfalls denkbar.In other embodiments, a different number of input interfaces 1402 or output interfaces 1404 as well as other interfaces a24 for the functional unit according to the invention also conceivable.

Gemäß einer weiteren Ausführungsform kann eine Funktionseinheit 1400 ( 2A) Ausgangsdaten a22 über die Ausgabeschnittstelle 1404 dergestalt ausgeben, dass die Ausgangsdaten mindestens zwei Adressfelder ADR (2B) umfassen, wobei ADR jeweils unterteilt ist in eine erste Adresse ADR1, die eine bestimmte Funktionseinheit spezifiziert für welche das die Datenstruktur DS aufweisende Datenpaket bestimmt ist, sowie eine optionale zweite Adresse ADR2 die eine Zieladresse innerhalb der durch die erste Adresse ADR1 bestimmten Funktionseinheit definiert. Durch die primäre Verbindungseinheit 150 werden die Ausgangsdaten a22 einer Funktionseinheit dann an die mindestens zwei Ziel-Funktionseinheiten 1400 weitergeleitet.According to a further embodiment, a functional unit 1400 ( 2A ) Output data a22 via the output interface 1404 output such that the output data at least two address fields ADR ( 2 B ), each ADR being subdivided into a first address ADR1 specifying a particular functional unit for which the data packet DS comprising the data structure DS is determined, and an optional second address ADR2 defining a destination address within the functional unit designated by the first address ADR1. Through the primary connection unit 150 The output data a22 of a functional unit are then sent to the at least two destination functional units 1400 forwarded.

Gemäß noch einer weiteren Ausführungsform kann bei Ausgabe der Ausgangsdaten angegeben sein, ob und welche der mindestens zwei Adressen ADR gültig sind, so dass die primäre Verbindungseinheit 150 die Daten entsprechend an die jeweilige Ziel-Funktionseinheit weiterleitet oder nicht weiterleitet. Die Angabe der Gültigkeit einer Adresse kann weiteren Ausführungsformen zufolge durch zusätzliche Felder in den Ausgangsdaten erfolgen, beispielsweise durch ein zusätzliches Gültigkeits-Bit je Adressfeld. Alternativ oder ergänzend kann die Gültigkeit einer Adresse beispielsweise durch einen speziellen Wert von dem Feld ADR und/oder ADR1 und/oder ADR2 angegeben sein.According to yet another embodiment, upon output of the output data, it may be indicated whether and which of the at least two addresses ADR are valid, such that the primary connection unit 150 the data corresponding to the respective target functional unit forwards or not forwarded. According to further embodiments, the specification of the validity of an address can be effected by additional fields in the output data, for example by an additional validity bit per address field. Alternatively or additionally, the validity of an address may be indicated, for example, by a specific value from the field ADR and / or ADR1 and / or ADR2.

Ein bedeutender Vorteil der vorliegenden Erfindung besteht darin, dass die Funktionseinheiten 140, 140a, ..., 140q, 1400, 1400a, 1400b, 1440c aktiv, direkt und autonom (ohne das Erfordernis einer Steuerung durch zum Beispiel die Rechenkerne der Recheneinheit) miteinander kommunizieren bzw. Daten austauschen können. Dies wird bei einer Ausführungsform vorteilhaft dadurch erzielt, dass die Funktionseinheiten Datenpakete, insbesondere funktionseinheitsspezifische Datenpaketen, an andere Funktionseinheiten ausgeben können. Dies wird bei einer weiteren Ausführungsform vorteilhaft dadurch erzielt, dass die Funktionseinheiten Datenpakete, insbesondere funktionseinheitsspezifische Datenpakete, von anderen Funktionseinheiten empfangen können.A significant advantage of the present invention is that the functional units 140 . 140a , ..., 140q . 1400 . 1400a . 1400b . 1440c active, direct and autonomous (without the need for control by, for example, the computing cores of the arithmetic unit) communicate with each other or can exchange data. In one embodiment, this is advantageously achieved in that the functional units can output data packets, in particular functional unit-specific data packets, to other functional units. In a further embodiment, this is advantageously achieved in that the functional units can receive data packets, in particular functional unit-specific data packets, from other functional units.

Besonders bevorzugt können die Funktionseinheiten einer weiteren Ausführungsform zufolge selbst festlegen, an welche weitere Funktionseinheit bzw. Datensenke Ausgangsdaten der Funktionseinheit, beispielsweise in Form von einem oder mehreren Datenpaketen, ausgegeben werden. Insbesondere kann eine derartige Festlegung auch dynamisch, das bedeutet, während der Laufzeit der Funktionseinheit, getroffen werden. Beispielsweise kann hierzu das Adressfeld ADR der Datenstruktur DS (2B) verwendet werden, wobei die Daten dynamisch zur Laufzeit an jeweils unterschiedliche Funktionseinheiten bzw. Datensenken ausgegeben werden.According to a further embodiment, the functional units may particularly preferably determine to which further functional unit or data sink output data of the functional unit, for example in the form of one or more data packets, is output. In particular, such a determination can also dynamic, that is, during the runtime of the functional unit, are hit. For example, for this purpose, the address field ADR of the data structure DS ( 2 B ), wherein the data is output dynamically at runtime to different functional units or data sinks.

Besonders vorteilhaft ist- neben den Funktionseinheiten und einer sie verbindenden primären Verbindungseinheit 150 - keine weitere Komponente der Recheneinheit 100 erforderlich, um den entsprechenden Datenaustausch zwischen den Funktionseinheiten zu ermöglichen. Insbesondere ist keine den Funktionseinheiten übergeordnete Einheit wie z.B. ein Rechenkern 110a erforderlich, um den Datenaustausch zu ermöglichen. Besonders vorteilhaft ist auch keine der Funktionseinheit 1400 übergeordnete Einheit erforderlich, um während der Laufzeit der Funktionseinheiten ein jeweiliges Ziel für Ausgangsdaten einer Funktionseinheit zu ermitteln, weil bei bevorzugten Ausführungsformen diese Aufgabe durch die lokale Steuereinrichtung 1410 ( 2A) übernommen werden kann bzw. die Vorgabe einer Zieladresse aus über die Eingangsschnittstelle 1402 erhaltenen Eingangs- und Konfigurationsdaten abgeleitet werden kann.Particularly advantageous is in addition to the functional units and a primary connecting unit connecting them 150 - no further component of the arithmetic unit 100 required to enable the appropriate exchange of data between the functional units. In particular, there is no higher-level unit than the functional units, such as a calculation kernel 110a required to allow data exchange. Also particularly advantageous is none of the functional unit 1400 Parent unit required to determine a respective target for output data of a functional unit during the life of the functional units, because in preferred embodiments, this task by the local control device 1410 ( 2A ) or the specification of a destination address via the input interface 1402 obtained input and configuration data can be derived.

Ein weiterer Vorteil der erfindungsgemäßen Funktionseinheiten besteht darin, dass sie ihre Berechnungsaufgabe(n) ausführen, sobald sie korrekt konfiguriert und ihnen entsprechende Eingangsdaten zugeführt sind. Bei einer bevorzugten Ausführungsform hängen die Berechnungsdaten bzw. Ausgangsdaten einer Funktionseinheit ab von der Funktionalität der lokalen Berechnungseinheit 1420 sowie von der lokalen Steuereinrichtung 1410 in Verbindung mit der lokalen Rekonfigurationseinrichtung 1412, vergleiche hierzu beispielsweise das vorstehend unter Bezugnahme auf 3A beschriebene Ausführungsbeispiel mit dem Multiplikationsakkumulator.A further advantage of the functional units according to the invention is that they execute their calculation task (s) as soon as they are correctly configured and input data corresponding to them are supplied. In a preferred embodiment, the calculation data or output data of a functional unit depends on the functionality of the local calculation unit 1420 as well as from the local control device 1410 in conjunction with the local reconfiguration device 1412 See, for example, the above with reference to 3A described embodiment with the Multiplikationsakkumulator.

Bei weiteren vorteilhaften Ausführungsformen können die Berechnungsdaten bzw. Ausgangsdaten der Funktionseinheit abhängen von der Konfiguration der Funktionseinheit, von den zugeführten Eingangsdaten und gegebenenfalls von zusätzlichen Eingangsdaten bzw. Eingangssignalen, die der Funktionseinheit beispielsweise über weitere Eingangsschnittstellen zuführbar sind, vergleiche beispielsweise die Datenverbindung über die andersartige Schnittstelle a24 gemäß 2A und/oder die direkte Datenverbindung a34 gemäß 2C. Sofern beispielsweise eine direkte Datenverbindung a34 zwischen der Funktionseinheit und einer externen Komponente 200 (2C) vorgesehen ist, können beispielsweise Werte eines von der externen Komponente 200 in die Funktionseinheit gespiegelten Registers ebenfalls Einfluss auf die Ausgangsdaten der Funktionseinheit haben.In further advantageous embodiments, the calculation data or output data of the functional unit may depend on the configuration of the functional unit, the input data supplied and possibly additional input data or input signals which can be supplied to the functional unit via further input interfaces, for example compare the data connection via the different interface a24 according to 2A and / or the direct data connection a34 according to 2C , For example, if a direct data connection a34 between the functional unit and an external component 200 ( 2C ), for example, values of one of the external component 200 in the functional unit mirrored register also have influence on the output data of the functional unit.

Die erfindungsgemäße Ausbildung der Funktionseinheit mit definierten Eingangsschnittstellen 1402 und Ausgangsschnittstellen 1404 ermöglicht vorteilhaft einen besonders einfachen und effizienten Datenfluss, der auch in einfacher Weise analysiert werden kann, insbesondere in Bezug auf einen zeitlichen Verlauf der betreffenden Datenübertragungen. Darüber hinaus werden hierdurch Verschachtelungen von Lesezugriffen und Schreibzugriffen vorteilhaft vermieden und ein besonders tiefes Pipelining sowohl innerhalb einzelner Funktionseinheiten als auch in Datenflussketten umfassend mehrere Funktionseinheiten ermöglicht.The inventive design of the functional unit with defined input interfaces 1402 and output interfaces 1404 advantageously allows a particularly simple and efficient data flow, which can also be analyzed in a simple manner, in particular with respect to a time course of the relevant data transfers. Moreover, interleaves of read accesses and write accesses are thereby advantageously avoided and a particularly deep pipelining is made possible both within individual functional units and in data flow chains comprising a plurality of functional units.

4 zeigt beispielhaft eine insgesamt drei verschiedene Funktionseinheiten 1400e, 1400f, 1400g umfassende Datenflusskette zur Veranschaulichung einer mehrere Funktionseinheiten umfassenden Datenverarbeitung innerhalb der erfindungsgemäßen Recheneinheit. Insgesamt dient die abgebildete Datenflusskette zur Auswertung der Gleichung Z = D * exp(E) + F + sin (G), wobei exp() die Exponentialfunktion repräsentiert, wobei sin() die Sinusfunktion repräsentiert, wobei D, E, F, G Eingangsdaten repräsentieren, und wobei Z die unter Auswertung der Gleichung erhaltenen Ausgangsdaten repräsentiert. Der Übersichtlichkeit halber sind für die einzelnen Funktionseinheiten jeweils nur die lokale Steuereinheit 1410 und die lokale Berechnungseinheit 1420 abgebildet. Die weitere interne Struktur wenigstens einer der Funktionseinheiten kann beispielsweise identisch oder wenigstens ähnlich zu der in 2A abgebildeten Konfiguration sein. 4 shows by way of example a total of three different functional units 1400e, 1400f, 1400g comprehensive data flow chain to illustrate a multiple functional units comprehensive data processing within the arithmetic unit according to the invention. Overall, the mapped data flow chain is used to evaluate the equation Z = D * exp (E) + F + sin (G), where exp () represents the exponential function, where sin () represents the sine function, where D, E, F, G are input data and Z represents the output data obtained by evaluating the equation. For the sake of clarity, only the local control unit is for the individual functional units 1410 and the local calculation unit 1420 displayed. The further internal structure of at least one of the functional units may, for example, be identical or at least similar to that in FIG 2A be pictured configuration.

Zur Auswertung der Exponentialfunktion exp(E) weist die lokale Berechnungseinheit 1420 der Funktionseinheit 1400e eine Einheit e1 zur Berechnung der Exponentialfunktion auf. Ferner weist die lokale Berechnungseinheit 1420 der Funktionseinheit 1400e einen Multiplizierer e2 zur Berechnung des Ausdrucks D*exp(E) auf. Als Eingangsdaten werden der Funktionseinheit 1400e die Parameter D, E zugeführt, und als Ausgangsdaten stellt die Funktionseinheit 1400e das Zwischenergebnis Z1 = D * exp(E) bereit. Dieses Zwischenergebnis Z1 wird, ebenso wie der Parameter F, der weiteren Funktionseinheit 1400f als Eingangsdaten zugeführt.The local calculation unit evaluates the exponential function exp (E) 1420 the functional unit 1400e a unit e1 for calculating the exponential function. Furthermore, the local calculation unit points 1420 the functional unit 1400e a multiplier e2 for calculating the expression D * exp (E). The input data is the functional unit 1400e the parameters D, E supplied, and as output data represents the functional unit 1400e the intermediate result Z1 = D * exp (E) ready. This intermediate result Z1, like the parameter F, becomes the further functional unit 1400F supplied as input data.

Die lokale Berechnungseinheit 1420 der Funktionseinheit 1400f weist einen Addierer e3 auf, der das weitere Zwischenergebnis Z2 = Z1 + F ermittelt. Das weitere Zwischenergebnis Z2 wird, ebenso wie der Parameter G, der weiteren Funktionseinheit 1400g als Eingangsdaten zugeführt.The local calculation unit 1420 the functional unit 1400F has an adder e3, which determines the further intermediate result Z2 = Z1 + F. The further intermediate result Z2 becomes, like the parameter G, the further functional unit 1400g supplied as input data.

Die lokale Berechnungseinheit 1420 der Funktionseinheit 1400g weist eine Einheit e4 zur Berechnung der Sinusfunktion sin(G) sowie einen Addierer e5 auf, die in Abhängigkeit der Daten Z2, G das Endergebnis Z ermitteln, welches schließlich durch die Ausgangsschnittstelle (nicht gezeigt) der Funktionseinheit 1400g ausgegeben werden kann.The local calculation unit 1420 the functional unit 1400g indicates a unit e4 Calculation of the sine function sin (G) and an adder e5, which determine the final result Z as a function of the data Z2, G, which can finally be output by the output interface (not shown) of the functional unit 1400g.

Besonders vorteilhaft kann die in 4 abgebildete Konfiguration weiteren Ausführungen zufolge die Berechnungen eines Datenstroms in einer Pipelinestruktur vornehmen. Die Daten des Datenstrom, somit die Eingangsdaten D, E, F, G sowie die Zwischenergebnisse Z1, Z2 und das Ergebnis Z erhalten dabei z.B. einen Index „i“, „i-1“, „i-2“, „i+1“, „i+2“ usw., der je nach logischer Zusammengehörigkeit der Berechnungsformel für alle D, E, F, G, Z1, Z2, Z identisch ist, beispielsweise Z[i] = D[i] * exp(E[i]) + F[i] + sin (G[i]) sowie Z[i-1] = D[i-1] * exp(E[i-1]) + F[i-1] + sin (G[i-1]) sowie Z[i-2] = D[i-2] * exp(E[i-2]) + F[i-2] + sin (G[i-2]). Somit kann entsprechend 4 die Funktionseinheit 1400e aus den Eingangsdaten D[i], E[i] das Zwischenergebnis Z1 [i] berechnen, während dessen die Funktionseinheit 1400f aus den um einen Index vorhergehenden Eingangsdaten F[i-1] und dem um einen Index vorhergehenden Zwischenergebnis Z1[i-1] das Zwischenergebnis Z2[i-1] berechnet und entsprechend die Funktionseinheit 1400g aus den wiederum einen Index vorhergehenden Eingangsdaten G[i-2] und dem Zwischenergebnis Z2[i-2] das Ergebnis Z2[i-2] berechnet.Particularly advantageous is the in 4 In the illustrated configuration, the calculations of a data stream in a pipeline structure are performed. The data of the data stream, thus the input data D, E, F, G as well as the intermediate results Z1, Z2 and the result Z, receive eg an index "i", "i-1", "i-2", "i + 1 "," I + 2 ", etc., which is identical for all D, E, F, G, Z1, Z2, Z according to the logical identity of the calculation formula, for example Z [i] = D [i] * exp (E [ i]) + F [i] + sin (G [i]) and Z [i-1] = D [i-1] * exp (E [i-1]) + F [i-1] + sin ( G [i-1]) and Z [i-2] = D [i-2] * exp (E [i-2]) + F [i-2] + sin (G [i-2]). Thus, accordingly 4 the functional unit 1400e from the input data D [i], E [i] calculate the intermediate result Z1 [i], during which the functional unit 1400F the intermediate result Z2 [i-1] is calculated from the input data F [i-1] preceding by one index and the intermediate result Z1 [i-1] preceding by one index, and the functional unit is calculated accordingly 1400g From the turn an index previous input data G [i-2] and the intermediate result Z2 [i-2] the result Z2 [i-2] calculated.

Besonders vorteilhaft kann die in 4 abgebildete Konfiguration im Wesentlichen autonom die vorstehend beschriebene Gleichung mit dem Ergebnis Z auswerten, insbesondere ohne dass hierfür eine Interaktion mit einem Rechnerkern der Recheneinheit erforderlich ist, oder Zugriffe auf die Hauptverteilereinheit 130 oder dergleichen. Vielmehr kann beispielsweise eingangs der Auswertung der vorstehend beschriebenen Gleichung durch eine entsprechende Konfiguration sichergestellt werden, dass den einzelnen Funktionseinheiten 1400e, 1400f, 1400g die richtigen Eingangsdaten bereitgestellt werden bzw. deren lokale Berechnungseinheiten 1420 im Sinne der Auswertung der vorstehend beschriebenen Gleichung konfiguriert werden. Sodann können die Funktionseinheiten unter Verwendung ihrer jeweiligen lokalen Berechnungseinheit 1420 autonom die vorstehend beschriebene Gleichung berechnen, und erst nach der Berechnung kann das Ergebnis Z beispielsweise über die Ausgabeschnittstelle 1404 gegebenenfalls weiteren Funktionseinheiten 1400 zugeleitet und/oder über die andersartige Schnittstelle a24 (2A) in die primäre Speichereinheit 120 (1A) und/oder in die sekundäre Speichereinrichtung 160 (1F) geschrieben und/oder an eine weitere Peripheriekomponente 125 (1A) übertragen und/oder über die Datenverbindung a34 an eine externe Komponente 200 (2C) übertragen werden.Particularly advantageous is the in 4 illustrated configuration substantially autonomously evaluate the equation described above with the result Z, in particular without requiring an interaction with a computer core of the arithmetic unit, or accesses to the main distribution unit 130 or similar. Rather, for example, at the beginning of the evaluation of the equation described above can be ensured by a corresponding configuration that the individual functional units 1400e . 1400F . 1400g the correct input data are provided or their local calculation units 1420 be configured in the sense of the evaluation of the equation described above. Then, the functional units can be determined using their respective local computing unit 1420 autonomously calculate the equation described above, and only after the calculation, the result Z, for example, via the output interface 1404 optionally further functional units 1400 and / or via the different interface a24 ( 2A ) in the primary storage unit 120 ( 1A ) and / or in the secondary storage device 160 ( 1F ) and / or to another peripheral component 125 ( 1A ) and / or via the data connection a34 to an external component 200 ( 2C ) be transmitted.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, den Durchsatz bzw. Datenfluss aller Funktionseinheiten der erfindungsgemäßen Recheneinheit auszubalancieren, wodurch ermöglicht wird, alle Verarbeitungsstufen, das bedeutet insbesondere alle Funktionseinheiten und ihre Berechnungseinheiten, möglichst parallel arbeiten zu lassen. Gegebenenfalls kann die vorstehend unter Bezugnahme auf 4 beschriebene, rein beispielhafte Struktur hinsichtlich einer derartigen Ausbalancierung optimiert werden.In a further advantageous embodiment, it is provided to balance the throughput or data flow of all the functional units of the arithmetic unit according to the invention, which makes it possible to work as parallel as possible all processing stages, that means in particular all functional units and their calculation units. Optionally, the above with reference to 4 described, purely exemplary structure with regard to such a balance can be optimized.

Besonders vorteilhaft wird weiteren Ausführungsformen zufolge die Anzahl und/oder Konfiguration der Funktionseinheiten 1400 einer flexiblen Hardwareerweiterung 1500 (1A) so gewählt, dass der Datenfluss zwischen den Einheiten ausgewogen ist, so dass sich eine Blockierung einer einzelnen Funktionseinheit nicht nachteilig auf andere Funktionseinheiten auswirkt. Ist die Komplexität einer Operation zu hoch, so dass diese Ausgewogenheit durch einzelne Funktionseinheiten nicht gewährleistet werden kann, so können in einer besonders vorteilhaften Ausführungsform beispielsweise mehrere gleichartige Funktionseinheiten eingesetzt werden.According to further embodiments, the number and / or configuration of the functional units is particularly advantageous 1400 a flexible hardware extension 1500 ( 1A ) is chosen so that the data flow between the units is balanced, so that a blockage of a single functional unit does not adversely affect other functional units. If the complexity of an operation is too high, so that this balance can not be guaranteed by individual functional units, then in a particularly advantageous embodiment, for example, a plurality of similar functional units can be used.

Beispielsweise könnte die Funktionseinheit 1400g aus 4 mit der Einheit e4 zur Berechnung der Sinusfunktion sin(G) sowie dem Addierer e5 zweifach vorhanden sein als „1400g_1“ und „1400g_2“ (nicht gezeigt). Die Eingangsdaten mit dem Index „i-2“, „i“, „i+2“ usw. könnten sodann beispielsweise der Funktionseinheit 1400g_1 zugeführt werden und die Eingangsdaten mit dem Index „i-1“, „i+1“, „i+3“ usw. könnten beispielsweise der Funktionseinheit 1400g_2 zugeführt werden. Die Funktionseinheit 1400g_1 liefert dann die Ergebnisse Z[i-2], Z[i], Z[i+2], die Funktionseinheit 1400g_2 liefert dann die Ergebnisse Z[i-1], Z[i+1], Z[i+3]. Die Ergebnisse Z können beispielsweise durch Auswahl bzw. Konfiguration der identischen nachfolgenden Ziel-Funktionseinheit wieder zusammengeführt werden.For example, the functional unit could 1400g out 4 with the unit e4 for calculating the sine function sin (G) and the adder e5 to be present twice as "1400g_1" and "1400g_2" (not shown). The input data having the index "i-2", "i", "i + 2", etc. could then be supplied to the functional unit 1400g_1, for example, and the input data having the index "i-1", "i + 1", "i +3 "etc. could be supplied to the functional unit 1400g_2, for example. The functional unit 1400g_1 then supplies the results Z [i-2], Z [i], Z [i + 2], the functional unit 1400g_2 then supplies the results Z [i-1], Z [i + 1], Z [i +3]. The results Z can, for example, be brought together again by selecting or configuring the identical subsequent target functional unit.

Ein weiterer bedeutender Vorteil der erfindungsgemäßen Konfiguration besteht darin, dass die für den Datenaustausch zwischen den Funktionseinheiten erforderlichen Systemressourcen im Wesentlichen auf die primäre Verbindungseinheit 150 (1A) beschränkt sind, insbesondere nicht die Hauptverbindungseinheit 130 mit einbeziehen. Dies ermöglicht vorteilhaft eine effiziente Kommunikation der weiteren Komponenten 110a, 110b, 110c, 120 , 125a, 125b der erfindungsgemäßen Recheneinheit 100 unter Verwendung der durch die Funktionseinheiten im Wesentlichen nicht belasteten Hauptverbindungseinheit 130 sowie eine effiziente und präzise Voraussage von möglichen Blockierungszuständen innerhalb der flexiblen Hardwareerweiterung 1500 (1A). Daher kann unter Anwendung des erfindungsgemäßen Prinzips vorteilhaft auch das Risiko von Blockierungen bei der Datenverarbeitung durch die erfindungsgemäße Recheneinheit reduziert oder ausgeschlossen werden.Another significant advantage of the configuration according to the invention is that the system resources required for the exchange of data between the functional units essentially relate to the primary connection unit 150 ( 1A ), in particular not the main connection unit 130 to include. This advantageously allows efficient communication of the other components 110a . 110b . 110c . 120 , 125a, 125b of the computing unit according to the invention 100 using the main connection unit not substantially loaded by the functional units 130 and an efficient and accurate prediction of possible blocking conditions within flexible hardware extension 1500 ( 1A ). Therefore, using the principle according to the invention can advantageously also the risk be reduced or excluded by blocking in the data processing by the arithmetic unit according to the invention.

Bei einer weiteren vorteilhaften Ausführungsform ist, wie vorstehend bereits mehrfach beschrieben, vorgesehen, dass der Datenaustausch zwischen verschiedenen Funktionseinheiten 140,140 A, 140 B, vergleiche 1A, über eine primäre Verbindungseinheit 150 erfolgt, wobei die primäre Verbindungseinheit 150 bevorzugt als Koppelnetz, besonders bevorzugt als blockierungsfreies Koppelnetz, ausgebildet ist. Besonders vorteilhaft ermöglicht die primäre Verbindungseinheit 150 mehrere gleichzeitige oder zumindest teilweise zeitlich überlappende Datenübertragungen zwischen unterschiedlichen Funktionseinheiten.In a further advantageous embodiment, as already described several times above, it is provided that the data exchange between different functional units 140, 140 A, 140 B, compare 1A , via a primary connection unit 150 takes place, wherein the primary connection unit 150 is preferably designed as a coupling network, particularly preferably as a blocking-free coupling network. Particularly advantageous allows the primary connection unit 150 a plurality of simultaneous or at least partially temporally overlapping data transmissions between different functional units.

Alternativ oder ergänzend zur Vorsehung eines Koppelnetzes können ein oder mehrere direkt verdrahtete Datenverbindungen zwischen verschiedenen Funktionseinheiten vorgesehen sein. Beispielsweise kann bei einer Direktverdrahtung zwischen verschiedenen Funktionseinheiten vorgesehen sein, dass eine bestimmte Funktionseinheit eine oder mehrere oder auch alle anderen Funktionseinheiten als Ziel („Ziel-Funktionseinheit“) für die Ausgabe von Ausgangsdaten wie beispielsweise Datenpaketen selektieren kann. Je nach Anzahl der möglichen Ziel-Funktionseinheiten sind entsprechend viele direkte Datenverbindungen vorzusehen. Optional kann bei einer oder mehreren derartigen direktverdrahteten Datenverbindungen auch eine Anpassungslogik (englisch: glue logic), beispielsweise umfassend Multiplexer- oder Demultiplexerstrukturen oder dergleichen, vorgesehen sein. Ferner ist denkbar, dass für eine bestimmte Funktionseinheit, welche Datenpakete an z.B. drei mögliche Ziel-Funktionseinheiten ausgeben können soll, drei separate Ausgangsschnittstellen vorgesehen sind, von denen jede direkt mit einer entsprechenden Eingangsschnittstelle einer der möglichen Ziel-Funktionseinheiten verbunden ist.As an alternative or in addition to the provision of a switching network, one or more directly wired data connections can be provided between different functional units. For example, in the case of direct wiring between different functional units, it may be provided that a specific functional unit can select one or more or all other functional units as the target ("target functional unit") for the output of output data such as data packets. Depending on the number of possible destination functional units correspondingly many direct data connections are to be provided. Optionally, one or more of such direct-wired data connections may also be provided with adaptation logic (English: glue logic), for example comprising multiplexer or demultiplexer structures or the like. Furthermore, it is conceivable that for a particular functional unit which packets to e.g. should be able to output three possible destination functional units, three separate output interfaces are provided, each of which is directly connected to a corresponding input interface of one of the possible destination functional units.

Bei weiteren Ausführungsformen können auch flexiblere Verbindungstechniken als die vorstehend genannten direktverdrahteten beziehungsweise direkt verschalteten Datenverbindungen verwendet werden. Beispiele hierfür sind Koppelnetze, Bussysteme und dergleichen. Kombinationen aus den vorstehend genannten Technologien sind ebenfalls denkbar.In further embodiments, more flexible connection techniques than the above-mentioned directly wired or directly interconnected data connections may be used. Examples of this are coupling networks, bus systems and the like. Combinations of the aforementioned technologies are also conceivable.

Bei einer weiteren besonders bevorzugten Ausführungsform ist die primäre Verbindungseinheit 150 dazu ausgebildet, eine in ihr zugeführten Daten wie beispielsweise Datenpaketen enthaltene Zieladresse zu modifizieren, beispielsweise durch Subtraktion einer Offsetadresse einer Ziel-Funktionseinheit, insbesondere vor Weiterleitung dieser Daten an die entsprechende Ziel-Funktionseinheit, vorteilhafter Weise so, dass das Datenpaket an die empfangende Ziel-Funktionseinheit lediglich eine lokale Adresse für den lokalen Konfigurationsspeicher und/oder den lokalen Funktionsspeicher umfasst.In a further particularly preferred embodiment, the primary connection unit 150 adapted to modify a target data contained in it, such as data packets, for example, by subtracting an offset address of a destination functional unit, in particular before forwarding this data to the corresponding target functional unit, advantageously such that the data packet to the receiving destination Function unit comprises only a local address for the local configuration memory and / or the local function memory.

Bei einer weiteren besonders bevorzugten Ausführungsform kann eine Mehrzahl von gleichartigen oder verschiedenartigen Funktionseinheiten miteinander kombiniert und über eine primäre Verbindungseinheit datenmäßig miteinander verbunden werden, wodurch eine Form eines Berechnungsnetzwerks bzw. eine Berechnungseinrichtung erhalten wird, die dazu ausgebildet sein kann, einen bestimmten Algorithmus zu berechnen. Besonders bevorzugt kann die Berechnungseinrichtung Algorithmen berechnen, welche eine höhere Komplexität aufweisen als solche Algorithmen, die durch einzelne Funktionseinheiten, welche Bestandteile der Berechnungseinrichtung bilden, berechenbar sind. Beispiele für derartige Berechnungseinrichtungen sind vorstehend zum Beispiel unter Bezugnahme auf 1A, 1B, 1C, 4 bereits beschrieben worden. Insbesondere stellt die „flexible Hardwareerweiterung“ 1500 aus 1A eine solche Berechnungseinrichtung dar, ebenso wie die weitere flexible Hardwareerweiterung 1500a aus 1B oder auch jede der Gruppen G1, G2 aus 1C.In a further particularly preferred embodiment, a plurality of similar or different functional units may be combined with each other and data-joined to each other via a primary connection unit, thereby obtaining a form of calculation network or calculating means which may be configured to calculate a particular algorithm. Particularly preferably, the calculation device can calculate algorithms which have a higher complexity than those algorithms that can be calculated by individual functional units that form components of the calculation device. Examples of such calculating means are described above by way of example with reference to FIG 1A . 1B . 1C . 4 already described. In particular, the "flexible hardware extension" 1500 1A Such a calculation device, as well as the further flexible hardware extension 1500a out 1B or also each of the groups G1, G2 1C ,

Bei einer bevorzugten Ausführungsform ist ein Berechnungsalgorithmus des erfindungsgemäß ermöglichten Berechnungsnetzwerks charakterisiert durch einen oder mehrere der folgenden Aspekte: die spezifische Funktionalität jeder beteiligten Funktionseinheit, die spezifischen Möglichkeiten der Konfigurierbarkeit jeder beteiligten Funktionseinheit, insbesondere hinsichtlich ihrer (Berechnungs-) Funktionalität, die spezifische Konnektivität bzw. Verbindungsfähigkeit jeder beteiligten Funktionseinheit in Bezug auf die Herstellung von Datenverbindungen zu anderen Funktionseinheiten bzw. der primären Verbindungseinheit, die Herstellung von Datenverbindungen über andersartige Schnittstellen a24, die Herstellung von Datenverbindungen a34 zu externen Komponenten 200, die spezifischen Fähigkeiten und Möglichkeiten jeder beteiligten Funktionseinheit zur Konfiguration bzw. Rekonfiguration hinsichtlich der Konnektivität mit anderen Funktionseinheiten bzw. der primären Verbindungseinheit, die initiale funktionale Konfiguration jeder beteiligten Funktionseinheit, die initiale Konfiguration der Konnektivität bzw. Verbindung jeder beteiligten Funktionseinheit in Bezug auf die Herstellung von Datenverbindungen zu anderen Funktionseinheiten bzw. der primären Verbindungseinheit, die initiale Konfiguration zur Herstellung von Datenverbindungen über andersartige Schnittstellen a24, die initiale Konfiguration zur Herstellung von Datenverbindungen a34 zu externen Komponenten 200, die spezifische dynamische Rekonfiguration jeder beteiligten Funktionseinheit zur Laufzeit bezüglich ihrer Funktionalität (beispielsweise Eigenschaften der lokalen Berechnungseinheit 1420), die spezifische dynamische (während der Laufzeit der Funktionseinheit) Rekonfiguration jeder beteiligten Funktionseinheit bezüglich ihrer Konnektivität zu anderen Funktionseinheiten bzw. der primären Verbindungseinheit, die spezifische dynamische Konfiguration zur Herstellung von Datenverbindungen über andersartige Schnittstellen a24, die spezifische dynamische Konfiguration zur Herstellung von Datenverbindungen a34 zu externen Komponenten 200, eine Ausgangskonfiguration zu Beginn der Laufzeit der beteiligten Funktionseinheiten, Eingangsdaten, Ereignisse, die Berechnungsergebnisse bzw. eine Konfiguration wenigstens einer beteiligten Funktionseinheit bzw. der primären Verbindungseinheit beeinflussen können.In a preferred embodiment, a calculation algorithm of the calculation network enabled according to the invention is characterized by one or more of the following: the specific functionality of each functional unit involved, the specific capabilities of the configurability of each functional unit involved, in particular its (computing) functionality, the specific connectivity or Connectivity of each participating functional unit with respect to the establishment of data connections to other functional units or the primary connection unit, the production of data connections via different interfaces a24, the production of data connections a34 to external components 200 the specific capabilities and capabilities of each functional unit involved to configure or reconfigure for connectivity with other functional units or primary interconnect unit, the initial functional configuration of each functional unit involved, initial configuration of the connectivity of each involved functional unit with respect to fabrication from data connections to other functional units or the primary connection unit, the initial configuration for establishing data connections via different interfaces a24, the initial configuration for establishing data connections a34 to external components 200 , the specific dynamic reconfiguration of each functional unit involved at runtime in terms of their functionality (for example, properties of the local calculation unit 1420 ), the specific dynamic (during the lifetime of the functional unit) reconfiguration of each participating functional unit with respect to their connectivity to other functional units or the primary connection unit, the specific dynamic configuration for establishing data connections via different interfaces a24, the specific dynamic configuration for establishing data connections a34 to external components 200 , an initial configuration at the beginning of the term of the functional units involved, input data, events that can influence the calculation results or a configuration of at least one participating functional unit or the primary connection unit.

Bei einer weiteren besonders bevorzugten Ausführungsform ist wenigstens eine der Funktionseinheiten dazu ausgebildet, sich selbst oder eine andere Funktionseinheit zu konfigurieren bzw. zu rekonfigurieren, insbesondere dynamisch, also während der Laufzeit einer Funktionseinheit bzw. der anderen Funktionseinheit. Dadurch entfällt das Erfordernis der Konfiguration durch eine externe Komponente. Mit anderen Worten ist bei dieser Ausführungsform keine externe Komponente erforderlich, um die erfindungsgemäßen Funktionseinheiten zu konfigurieren oder zu rekonfigurieren.In another particularly preferred embodiment, at least one of the functional units is configured to configure itself or another functional unit or to reconfigure it, in particular dynamically, ie during the runtime of a functional unit or the other functional unit. This eliminates the need for configuration by an external component. In other words, in this embodiment, no external component is required to configure or reconfigure the functional units according to the invention.

Bei weiteren Ausführungsformen kann jedoch vorgesehen sein, dass wenigstens eine andere Komponente der erfindungsgemäßen Recheneinheit 100, beispielsweise ein Rechenkern 110a, oder auch eine der Peripheriekomponenten 125a, 125b, dazu ausgebildet ist, wenigstens eine der erfindungsgemäßen Funktionseinheiten zu konfigurieren bzw. zu rekonfigurieren.In further embodiments, however, it may be provided that at least one other component of the computing unit according to the invention 100 , for example, a calculation kernel 110a , or also one of the peripheral components 125a, 125b, is designed to configure or reconfigure at least one of the functional units according to the invention.

Ein weiterer Vorteil der erfindungsgemäßen Funktionseinheiten besteht in dem hohen Maß an „verteilter Intelligenz“ bzw. Rechenkapazität und Flexibilität, die sich aus der Funktionalität beispielsweise der einzelnen lokalen Berechnungseinheiten ergibt, ihrer flexiblen Konfigurierbarkeit und Rekonfigurierbarkeit. Besonders vorteilhaft skalieren diese Vorteile mit der Anzahl von Funktionseinheiten einer erfindungsgemäßen Recheneinheit. Eine derartige Funktionalität und Flexibilität kann mit beispielsweise nur einer zentralen, übergeordneten Einheit, wie sie von konventionellen Systemen bekannt ist, nicht wirtschaftlich realisiert werden. Ein bedeutender Vorteil der vorliegenden Erfindung ist die Vielzahl von Möglichkeiten hinsichtlich der Erstellung und (dynamischen) Änderung von Datenpfaden bzw. Verknüpfung der Funktionseinheiten untereinander, was beispielsweise durch die Verwendung entsprechender Adressen in zwischen den Funktionseinheiten ausgetauschten Datenpaketen ermöglicht wird. Ein weiterer Vorteil ist die hohe Parallelität, die sich daraus ergibt, dass Funktionseinheiten algorithmisch unabhängig voneinander betrieben werden können. Ein weiterer Vorteil ist die hohe Parallelität, die sich daraus ergibt, dass Funktionseinheiten algorithmisch abhängig voneinander in einer Funktionseinheiten-übergreifenden Pipeline betrieben werden können.A further advantage of the functional units according to the invention is the high degree of "distributed intelligence" or computing capacity and flexibility resulting from the functionality of, for example, the individual local calculation units, their flexible configurability and reconfigurability. These advantages scale particularly advantageously with the number of functional units of a computing unit according to the invention. Such functionality and flexibility can not be realized economically with, for example, only one central, higher-level unit, as known from conventional systems. A significant advantage of the present invention is the multitude of possibilities with regard to the creation and (dynamic) change of data paths or linking of the functional units with one another, which is made possible for example by the use of corresponding addresses in data packets exchanged between the functional units. Another advantage is the high degree of parallelism that results from the fact that functional units can be operated algorithmically independently of each other. Another advantage is the high degree of parallelism which results from the fact that functional units can be operated algorithmically dependent on one another in a functional unit-spanning pipeline.

Erfindungsgemäß ist erkannt worden, dass umso mehr Datenpakete übertragen werden, je mehr Funktionseinheiten parallel arbeiten, wobei sich die Zieladresse einzelner Datenpakete bevorzugten Ausführungsformen zufolge auch zwischen zwei aufeinanderfolgenden Übertragungen von Datenpaketen ändern kann. Insbesondere kann durch die primäre Verbindungseinheit auch eine besonders große Zahl von Datenpaketen gleichzeitig übertragen bzw. an Ziel-Funktionseinheiten vermittelt werden, weil die erfindungsgemäßen Funktionseinheiten selbst dazu ausgebildet sind, entsprechen der Zieladressen vorzugeben.According to the invention, it has been recognized that the more data units are transmitted, the more functional units operate in parallel, wherein the destination address of individual data packets can also change between two successive transmissions of data packets according to preferred embodiments. In particular, the primary connection unit can also transmit a particularly large number of data packets at the same time or convey them to destination functional units, because the functional units according to the invention are themselves designed to correspond to the destination addresses.

Bei einer weiteren bevorzugten Ausführungsform sind alle Komponenten der erfindungsgemäßen Recheneinheit auf einem selben Halbleitersubstrat angeordnet bzw. unter Verwendung derselben Halbleiterfertigungstechnologie hergestellt. Besonders vorteilhaft sind auch die erfindungsgemäßen Funktionseinheiten 140, 140a, 140b, ..., 140q; 1400, 1400a, 1400b, ..., 1400g auf demselben Halbleitersubstrat angeordnet wie die weiteren Komponenten 110a, 110b, 110c, 120, 125a, 125b, 130 der Recheneinheit. Dadurch ergibt sich vorteilhaft eine besonders klein bauende Konfiguration sowie die Möglichkeit der Herstellung einer effizienten und hochperformanten Datenverbindung zwischen den Komponenten, beispielsweise unter Einbeziehung der Hauptverbindungseinheit 130 und wenigstens einer primären Verbindungseinheit 150.In a further preferred embodiment, all components of the computing unit according to the invention are arranged on a same semiconductor substrate or manufactured using the same semiconductor manufacturing technology. The functional units according to the invention are also particularly advantageous 140 . 140a . 140b , ..., 140q ; 1400 . 1400a . 1400b , ..., 1400g arranged on the same semiconductor substrate as the other components 110a, 110b, 110c, 120, 125a, 125b, 130 of the computing unit. This advantageously results in a particularly small-sized configuration and the possibility of producing an efficient and high-performance data connection between the components, for example by including the main connection unit 130 and at least one primary connection unit 150.

Nachfolgend werden Aspekte des erfindungsgemäßen Betriebsverfahrens für eine Recheneinheit 100 (1A) anhand verschiedener Ausführungsformen und unter Bezugnahme auf die Flussdiagramme der 5A, 5B, 5C beschrieben. 5A zeigt schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines Verfahrens zum Betreiben einer erfindungsgemäßen Recheneinheit 100, 100a, 100b, 100c, 100d, 100e, 100f, 100g, vgl. die 1A bis 1H. Wie bereits vorstehend beschrieben weist die Recheneinheit wenigstens einen Rechenkern 110a, 110b, 110c, eine primäre Speichereinrichtung 120, und wenigstens eine Hauptverbindungseinheit 130 zur Verbindung des wenigstens einen Rechenkerns 110a, 110b, 110c mit der primären Speichereinrichtung 120 auf, wobei die Recheneinheit ferner wenigstens zwei Funktionseinheiten 140, 140a, 140b, 1400 aufweist.The following describes aspects of the operating method according to the invention for a computing unit 100 ( 1A ) based on various embodiments and with reference to the flowcharts of 5A . 5B . 5C described. 5A schematically shows a simplified flowchart of an embodiment of a method for operating a computing unit according to the invention 100 . 100a . 100b . 100c . 100d . 100e . 100f . 100 g , see. the 1A to 1H , As already described above, the arithmetic unit has at least one arithmetic core 110a . 110b . 110c , a primary storage device 120 , and at least one main connection unit 130 for connecting the at least one calculation kernel 110a . 110b . 110c with the primary storage device 120 on, wherein the arithmetic unit further comprises at least two functional units 140 . 140a . 140b . 1400 having.

In einem optionalen ersten Schritt 300 erfolgt eine Konfiguration wenigstens einer ersten Funktionseinheit 1400 (2A). Die optionale Konfiguration 300 kann beispielsweise das Beschreiben eines oder mehrerer der Konfigurationsregister 1432a, 1432b, 1432c, 1432d der Funktionseinheit 1400 durch die Funktionseinheit 1400 selbst (beispielsweise mittels ihrer Rekonfigurationseinrichtung 1412), eine andere Funktionseinheit bzw. eine andere Komponente der Recheneinheit wie beispielsweise einen Rechenkern 110a umfassen. Alternativ kann die Funktionseinheit optional durch eine initiale Konfiguration vorkonfiguriert sein, die nach deren erstem Aktivieren unmittelbar zur Verfügung steht. In an optional first step 300 a configuration of at least one first functional unit takes place 1400 ( 2A ). The optional configuration 300 For example, one or more of the configuration registers 1432a, 1432b, 1432c, 1432d of the functional unit may be described 1400 through the functional unit 1400 itself (for example by means of its reconfiguration device 1412 ), another functional unit or another component of the arithmetic unit, such as a computing core 110a. Alternatively, the functional unit may optionally be preconfigured by an initial configuration which is immediately available after its initial activation.

In dem Schritt 302 (5A) empfängt die erste Funktionseinheit 1400 erste Daten von wenigstens einer weiteren Funktionseinheit. Diese empfangenen ersten Daten können als Eingangsdaten für die erste Funktionseinheit 1400 verwendet und beispielsweise einer Berechnung durch die lokale Berechnungseinheit 1420 zu Grunde gelegt werden.In the step 302 ( 5A ) receives the first functional unit 1400 first data from at least one further functional unit. These received first data can be used as input data for the first functional unit 1400 used and, for example, a calculation by the local calculation unit 1420 be based on.

In dem Schritt 304 sendet die erste Funktionseinheit 1400 zweite Daten an wenigstens eine weitere Funktionseinheit. Bei diesen zweiten Daten kann es sich beispielsweise um Ausgangsdaten handeln, die bei der vorangehenden Berechnung durch die erste Funktionseinheit 1400 erhalten worden sind. Ein entsprechender Berechnungsschritt könnte gemäß der Ausführungsform nach 5A zwischen den Schritten 302, 304 erfolgen, ist jedoch nicht abgebildet.In the step 304 sends the first functional unit 1400 second data to at least one further functional unit. By way of example, these second data may be output data which has been used in the preceding calculation by the first functional unit 1400 have been obtained. A corresponding calculation step could according to the embodiment of 5A between the steps 302 . 304 done, but is not shown.

Das Empfangen bzw. Senden von Daten kann bevorzugten Ausführungsformen zufolge über entsprechende Eingangsschnittstellen 1402 (2A) bzw. Ausgangsschnittstellen 1404 sowie wenigstens eine, eine Datenverbindung zwischen den Funktionseinheiten beziehungsweise ihren Schnittstellen 1402, 1404 herstellende Komponente, wie beispielsweise die primäre Verbindungseinheit 150, erfolgen.The receiving or sending of data may, according to preferred embodiments, via corresponding input interfaces 1402 ( 2A ) or output interfaces 1404 and at least one, a data connection between the functional units or their interfaces 1402 , 1404 producing component, such as the primary connection unit 150 , respectively.

Bei weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann der optionale Schritt 300 auch einfallen. Bei weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann auch nur einer der beiden Schritte 302,304 ausgeführt und gegebenenfalls wiederholt werden. Bei weiteren vorteilhaften Ausführungsformen des erfindungsgemäßen Verfahrens, bei denen eine Vielzahl von Funktionseinheiten in der erfindungsgemäßen Recheneinheit enthalten ist, können ein oder mehrere der Funktionseinheiten Aspekte des vorstehend beispielhaft unter Bezugnahme auf 5A beschriebenen Betriebsverfahrens ausführen.In a further embodiment of the method according to the invention, the optional step 300 also come up with it. In a further embodiment of the method according to the invention, only one of the two steps 302, 304 may be carried out and optionally repeated. In further advantageous embodiments of the method according to the invention, in which a multiplicity of functional units are contained in the arithmetic unit according to the invention, one or more of the functional units may comprise aspects of the above by way of example with reference to FIG 5A perform the described operating procedure.

5B zeigt schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens. Hierbei ist ein beispielhafter Verfahrensablauf aus der Perspektive einer erfindungsgemäßen Funktionseinheit 1400 (2A) beschrieben. 5B schematically shows a simplified flow diagram of another embodiment of the method according to the invention. Here is an exemplary procedure from the perspective of a functional unit according to the invention 1400 ( 2A ).

In einem ersten optionalen Schritt 400 werden optional Eingangsdaten, die der Funktionseinheit zur Berechnung zur Verfügung gestellt werden sollen, bereitgestellt. Alternativ oder ergänzend können Konfigurationsinformationen, welche z.B. einen Betrieb der Funktionseinheit steuern, in dem Schritt 400 bereitgestellt werden. Die Funktionseinheit empfängt in diesem Schritt z.B. über die Eingangsschnittstelle 1402 die Eingangsdaten. Dies kann beispielsweise durch das Speichern der Eingangsdaten bzw. der Konfigurationsinformationen direkt in dem lokalen Konfigurationsspeicher der Funktionseinheit, beispielsweise in einem oder mehreren ihrer Konfigurationsregister, erfolgen.In a first optional step 400 Optionally, input data to be provided to the functional unit for calculation is provided. Alternatively or additionally, configuration information, which controls, for example, an operation of the functional unit, in the step 400 to be provided. The functional unit receives in this step, for example via the input interface 1402 the input data. This can be done, for example, by storing the input data or the configuration information directly in the local configuration memory of the functional unit, for example in one or more of its configuration registers.

In dem ebenfalls optionalen Schritt 402 wartet die Funktionseinheit optional auf die vorstehend genannten Eingangsdaten bzw. Konfigurationsinformationen und speichert gegebenenfalls eingehende Daten ab. Das Abspeichern erfolgt im lokalen Konfigurationsspeicher 1430 der Funktionseinheit und/oder in einem oder mehreren ihrer Konfigurationsregister und/oder im lokalen Funktionsspeicher 1440 z.B. in einem oder mehreren ihrer Funktionsregister.In the also optional step 402 Optionally, the functional unit waits for the aforementioned input data or configuration information and optionally stores incoming data. The saving takes place in the local configuration memory 1430 the functional unit and / or in one or more of its configuration registers and / or in the local function memory 1440 eg in one or more of its function registers.

Schritt 404, der ebenfalls optional ist, hat eine optionale Überprüfung zum Gegenstand, ob die Eingangsdaten und/oder Konfigurationsinformationen für eine Auswertung bzw. Berechnung durch die Funktionseinheit vollständig vorliegen. Sofern die Eingangsdaten und/oder Konfigurationsinformationen nicht vollständig vorliegen, wird zu dem Schritt 402 verzweigt. Andernfalls, sofern also die Eingangsdaten und/oder Konfigurationsinformationen vollständig vorliegen, wird zu dem Schritt 406 übergegangen.step 404 , which is also optional, has an optional check as to whether the input data and / or configuration information is completely available for evaluation or calculation by the functional unit. If the input data and / or configuration information is not complete, the step 402 branched. Otherwise, provided that the input data and / or configuration information is complete, the step 406 passed.

Schritt 406, der ebenfalls optional ist, hat die vorstehend genannte Auswertung bzw. Berechnung durch die Funktionseinheit, beispielsweise unter Verwendung ihrer lokalen Berechnungseinheit 1420, beispielsweise gesteuert durch die lokale Steuereinrichtung 1410, zum Gegenstand.step 406 , which is also optional, has the above-mentioned evaluation or calculation by the functional unit, for example using its local calculation unit 1420 , for example, controlled by the local control device 1410 , to the subject.

In Schritt 408, der ebenfalls optional ist, wird geprüft, ob Ausgangsdaten verfügbar sind, welche z.B. bei der Auswertung bzw. Berechnung durch die Funktionseinheit, vergleiche Schritt 406, erhalten worden sind. Sofern die Überprüfung in Schritt 408 ergibt, dass die Ausgangswerte verfügbar sind, wird zu Schritt 410 übergegangen. Andernfalls wird wiederum zu Schritt 402 verzweigt, wodurch gegebenenfalls weitere Eingangsdaten und/oder Konfigurationsinformationen erhalten werden können und gegebenenfalls weitere Berechnungen ausgeführt werden können, um die gewünschten Ausgangswerte zu erhalten.In step 408 , which is also optional, it is checked whether output data are available, which eg in the evaluation or calculation by the functional unit, see step 406 , have been received. Unless the review in step 408 shows that the output values are available becomes step 410 passed. Otherwise, turn to step 402 branches, whereby optionally further input data and / or configuration information can be obtained and optionally further calculations can be performed to obtain the desired output values.

In Schritt 410, der ebenfalls optional ist, werden die Ausgangswerte ausgegeben. Das Ausgeben 410 der Ausgangswerte kann beispielsweise umfassen: das Senden der Ausgangswerte an wenigstens eine weitere Funktionseinheit und/oder das Senden der Ausgangswerte an wenigstens eine weitere Komponente der Recheneinheit, beispielsweise an die primäre Speichereinrichtung 120, die sekundäre Speichereinrichtung 160, eine weitere Peripheriekomponente 125, eine externe Komponente 200, die Unterbrechungsanforderungs-Verteilereinrichtung 170 oder dergleichen. Die ausgegebenen Ausgangswerte können beispielsweise Ergebnisse aus der Berechnung 406 und/oder Statusinformationen und/oder Konfigurationsdaten zur Konfiguration nachfolgender Funktionseinheiten umfassen. In step 410 , which is also optional, the output values are output. Spending 410 the output values may include, for example: sending the output values to at least one further functional unit and / or sending the output values to at least one further component of the arithmetic unit, for example to the primary memory device 120 , the secondary storage device 160 , another peripheral component 125 , an external component 200 , the interrupt request dispatcher 170 or similar. The output values output can, for example, be results from the calculation 406 and / or status information and / or configuration data for configuring subsequent functional units.

Werden beispielsweise Ausgangswerte ausgegeben, siehe Schritt 410, dann können einer weiteren Ausführungsform zufolge in Schritt 412 entsprechende Ausgangs-Datenpakete in der vorstehend bereits beschriebenen Weise über die Ausgangsschnittstelle 1404 (2A) erstellt und ausgegeben werden.For example, if output values are output, see step 410 , then according to another embodiment, in step 412 corresponding output data packets in the manner already described above via the output interface 1404 ( 2A ) are created and output.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Bildung 412 des Ausgangs-Datenpakets auch das Bereitstellen von Adressinformationen ADR (2B) und/oder Konfigurationsinformationen und/oder Steuerinformationen CTRL umfasst, welche gemäß der Datenstruktur DS aus 2B wie bereits beschrieben ebenfalls in das Ausgangs-Datenpaket integriert werden können.In a further embodiment it can be provided that the formation 412 the output data packet also providing address information ADR ( 2 B ) and / or configuration information and / or control information CTRL, which according to the data structure DS 2 B as already described can also be integrated into the output data packet.

In jeder der vorgenannten Schritte 400, 402, 404, 406, 408, 410, 412, insbesondere jedoch in den Schritten 406, 410, kann die Funktionseinheit einer weiteren Ausführungsform zufolge aufgrund ihrer spezifischen Funktionalität und/oder ihrer spezifischen Möglichkeiten der Konfigurierbarkeit und/oder ihrer initialen funktionalen Konfiguration und/oder ihrer dynamischen Rekonfiguration zur Laufzeit und/oder ihrer Ausgangskonfiguration zu Beginn der Laufzeit, durch Eingangsdaten, Ereignisse sowie Berechnungsergebnisse jeweils optional eine interne Umkonfiguration vornehmen. Mit anderen Worten kann die Funktionseinheit einer weiteren Ausführungsform zufolge in Abhängigkeit ihrer spezifischen Funktionalität und/oder ihrer spezifischen Möglichkeiten der Konfigurierbarkeit und/oder ihrer initialen funktionalen Konfiguration und/oder ihrer dynamischen Rekonfiguration zur Laufzeit und/oder ihrer Ausgangskonfiguration zu Beginn der Laufzeit, und/oder in Abhängigkeit von Eingangsdaten und/oder Ereignissen und/oder Berechnungsergebnissen jeweils optional eine interne Umkonfiguration vornehmen.In each of the above steps 400 . 402 . 404 . 406 . 408 . 410 . 412 but especially in the steps 406 . 410 According to a further embodiment, the functional unit can, due to its specific functionality and / or its specific possibilities, the configurability and / or its initial functional configuration and / or its dynamic reconfiguration at runtime and / or its initial configuration at the beginning of the term, by input data, events and Calculation results optionally make an internal reconfiguration. In other words, according to a further embodiment, the functional unit may, depending on its specific functionality and / or its specific possibilities, the configurability and / or its initial functional configuration and / or its dynamic reconfiguration at runtime and / or its initial configuration at the beginning of the runtime, and / or, depending on input data and / or events and / or calculation results, optionally optionally carry out an internal reconfiguration.

In einer besonders bevorzugten Ausführungsform können wenigstens zwei, insbesondere jedoch sämtliche der vorgenannten Schritte 400, 402, 404, 406, 408, 410, 412 parallel durchgeführt werden, beispielsweise durch eine interne Pipeline der Funktionseinheit.In a particularly preferred embodiment, at least two, but in particular all of the aforementioned steps 400 . 402 . 404 . 406 , 408, 410, 412 are performed in parallel, for example, by an internal pipeline of the functional unit.

5C zeigt schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens. Hierbei ist ein beispielhafter Verfahrensablauf aus der Perspektive der erfindungsgemäßen Recheneinheit 100 (1A) bzw. eines ihrer Rechenkerne 110a beschrieben. 5C schematically shows a simplified flow diagram of another embodiment of the method according to the invention. Here is an exemplary procedure from the perspective of the processing unit according to the invention 100 ( 1A ) or one of their computing cores 110a described.

Schritt 420 markiert einen Start des Verfahrens. In dem optionalen Schritt 422 bereitet die Recheneinheit 100, beispielsweise ein hierfür vorgesehener Rechenkern 110a, Daten vor, welche später als Eingangsdaten einer oder mehreren Funktionseinheiten zugewiesen werden sollen. Bevorzugt werden die Eingangsdaten bei einer Ausführungsform des Verfahrens im globalen Adressraum der Recheneinheit, insbesondere in der primären Speichereinrichtung 120, abgelegt.step 420 marks a start of the procedure. In the optional step 422 prepares the arithmetic unit 100 , For example, a computing core provided for this purpose 110a , Data before, which should be assigned later as input data of one or more functional units. In one embodiment of the method, the input data are preferred in the global address space of the arithmetic unit, in particular in the primary memory device 120 , filed.

In einem optionalen Schritt 424 wird eine globale Konfiguration der flexiblen Hardwareerweiterung vorgenommen, die mehrere Funktionseinheiten und/oder die primäre(n) Verbindungseinheit(en) umfassen kann. Die Funktionseinheiten werden dabei einer weiteren Ausführungsform zufolge vorzugsweise nicht über die Eingangsschnittstelle 1402 konfiguriert. Beispielsweise kann die Konfiguration die Einstellung der Taktfrequenz und/oder das Einstellen von Fehlermodi und/oder die Behandlung von Interrupts und/oder die Verbindung mit den weiteren Komponenten außerhalb der flexiblen Hardwareerweiterung usw. umfassen.In an optional step 424 a global configuration of the flexible hardware extension is made, which may include multiple functional units and / or the primary interconnect unit (s). The functional units are according to another embodiment, preferably not via the input interface 1402 configured. For example, the configuration may include adjusting the clock frequency and / or setting fault modes and / or handling interrupts, and / or connecting to the other components outside the flexible hardware extension, and so on.

Von der globalen Konfiguration kann weiteren Ausführungsformen zufolge auch eine initiale Einstellung der primären Verbindungsstruktur 150 umfasst sein, insbesondere falls die Adressierung der Datenpakete a20, a21, a22, a23 ( 2A) nicht ausschließlich über eine entsprechend 2B ausgeprägte Adressierung mittels ADR, ADR1, ADR2 erfolgt.According to further embodiments, the global configuration may also include an initial setting of the primary connection structure 150 in particular if the addressing of the data packets a20, a21, a22, a23 ( 2A ) not exclusively about a corresponding 2 B pronounced addressing using ADR, ADR1, ADR2.

In Schritt 426 wird die mindestens eine Funktionseinheit vorkonfiguriert. Dies kann beispielsweise durch das Schreiben von entsprechenden Konfigurationsinformationen vorzugsweise über die Eingangsschnittstelle 1402 in hierfür vorgesehene Konfigurationsregister 1432a, 1432b, 1432c, 1432d (2A) der Funktionseinheit(en) erfolgen. Das Schreiben 426 der Konfigurationsinformationen kann beispielsweise durch den Rechenkern 110a ausgeführt werden. Alternativ oder ergänzend kann das Schreiben auch durch eine Speicherdirektzugriffs (DMA)-Steuereinrichtung der Recheneinheit erfolgen. In diesem Fall ist vorteilhaft entweder keine Aktion des Rechenkerns 110a oder lediglich das Absetzen eines Startbefehls an die Speicherdirektzugriffs-Steuereinrichtung zur Ausführung des Schritts 424 gemäß 5C erforderlich. Beim Einsatz einer Speicherdirektzugriffs-Steuereinrichtung liegen die Konfigurationsdaten insbesondere vor Beginn dieses Schritts vorteilhafterweise in der primären Speichereinrichtung 120 vor.In step 426 the at least one functional unit is preconfigured. This can be done, for example, by writing corresponding configuration information preferably via the input interface 1402 in this provided configuration register 1432 . 1432b . 1432c . 1432d ( 2A ) of the functional unit (s). The writing 426 The configuration information can be obtained, for example, by the calculation kernel 110a be executed. Alternatively or additionally, the writing can also be effected by a direct memory access (DMA) control device of the arithmetic unit. In this case, either no action of the calculation kernel is advantageous 110a or merely issuing a start command to the memory direct access Control device for executing the step 424 according to 5C required. When using a direct memory access control device, the configuration data are advantageously located in the primary memory device, especially before the start of this step 120 in front.

In Schritt 428 wird die mindestens eine Funktionseinheit konfiguriert, welche, einer bevorzugten Ausführungsform gemäß, vorzugsweise unmittelbar nach der Konfiguration, mit der Ausführung von Berechnungen startet.In step 428 the at least one functional unit is configured, which, according to a preferred embodiment, starts to perform calculations, preferably immediately after the configuration.

In Schritt 430 wartet die Recheneinheit bzw. der Rechenkern 110a, bis die Funktionseinheit(en) mit der Ausführung der Berechnungen fertig sind. Bei manchen Ausführungsformen kann die Fertigstellung von Berechnungen seitens der Funktionseinheit(en) über die Auslösung einer Unterbrechungsanforderung (englisch: interrupt) über die Unterbrechungsanforderungs-Verteilereinrichtung 170 an den betreffenden Rechenkern 110a und/oder an die Speicherdirektzugriffs-Steuereinrichtung signalisiert werden. Alternativ oder ergänzend kann die Recheneinheit bzw. der Rechenkern 110a und/oder eine weitere Peripheriekomponente 125 auch Polling (zyklische Abfrage)-Mechanismen nutzen, um einen Betriebszustand der Funktionseinheit(en), insbesondere eine Fertigstellung von Berechnungen, zu ermitteln.In step 430 the arithmetic unit or the arithmetic kernel waits 110a until the functional unit (s) have finished executing the calculations. In some embodiments, the completion of calculations by the functional unit (s) about the initiation of an interrupt request via the interrupt request dispatcher 170 to the particular arithmetic kernel 110a and / or to the memory direct access control means. Alternatively or additionally, the arithmetic unit or the arithmetic core 110a and / or another peripheral component 125 also use polling (cyclic query) mechanisms to determine an operating state of the functional unit (s), in particular a completion of calculations.

In Schritt 432 liest die Recheneinheit bzw. ihr Rechenkern 110a und/oder deren Speicherdirektzugriffs-Steuereinrichtung und/oder eine weitere Peripheriekomponente 125 das Ergebnis der Berechnung (en). In Schritt 434 wird das Verfahren beendet.In step 432 reads the arithmetic unit or its arithmetic kernel 110a and / or its direct memory access control device and / or another peripheral component 125 the result of the calculation (s). In step 434 the procedure is terminated.

Optional kann nach der Ausführung des Schritts 428 auch in einen Schritt 431 verzweigt werden, welcher eine dynamische Konfiguration beziehungsweise Rekonfiguration einer oder mehrerer Funktionseinheiten zum Gegenstand hat. Hierbei kann sich eine bestimmte Funktionseinheit selbst konfigurieren bzw. rekonfigurieren und/oder andere Funktionseinheiten konfigurieren. Alternativ oder ergänzend kann eine Rekonfiguration mindestens einer Funktionseinheit auch durch den Rechenkern 110a oder eine andere bezüglich der zu rekonfigurierenden Funktionseinheit externen Komponente vorgenommen werden.Optionally, after running the step 428 also in one step 431 be branched, which has a dynamic configuration or reconfiguration of one or more functional units to the object. In this case, a specific functional unit can itself configure or reconfigure and / or configure other functional units. Alternatively or additionally, a reconfiguration of at least one functional unit may also be performed by the computing core 110a or another component external to the functional unit to be reconfigured.

Die Schritte 420, 422, 424, 426, 428, 430, 432, 434 können in weiteren Ausführungsform in geänderte Reihenfolge durchgeführt werden.The steps 420 . 422 . 424 . 426 . 428 . 430 . 432 . 434 can be performed in a different embodiment in a changed order.

6 zeigt schematisch ein Betriebsszenario einer Recheneinheit 100 gemäß der vorliegenden Erfindung. Die Recheneinheit 100 ist Bestandteil eines Steuergeräts 1004 für eine Brennkraftmaschine 1002 eines Kraftfahrzeugs 1000. Die Recheneinheit 100 weist beispielsweise eine wie vorstehend unter Bezugnahme auf die 1A bis 1H beschriebene Konfiguration auf, sowie wenigstens zwei Funktionseinheiten 140, 1400, wie sie vorstehend beispielsweise unter Bezugnahme auf die 1A bis 2C beschrieben worden sind. Die erfindungsgemäße Recheneinheit 100 weist eine besonders große Flexibilität auf, weil die in ihr enthaltenen Funktionseinheiten dynamisch konfiguriert beziehungsweise rekonfiguriert werden können. Gleichzeitig ist durch die erfindungsgemäßen Funktionseinheiten vorteilhaft eine Erweiterung der Rechenleistung der Recheneinheit 100 über die Rechenleistung ihrer Rechenkerne 110a, 110b, 110c und sonstigen Peripheriekomponenten 125 hinaus, gegeben. 6 schematically shows an operating scenario of a computing unit 100 according to the present invention. The arithmetic unit 100 is part of a control unit 1004 for an internal combustion engine 1002 of a motor vehicle 1000 , The arithmetic unit 100 For example, as has been described above with reference to FIGS 1A to 1H described configuration, as well as at least two functional units 140 . 1400 , as described above, for example with reference to the 1A to 2C have been described. The computing unit according to the invention 100 has a particularly high flexibility, because the functional units contained in it can be dynamically configured or reconfigured. At the same time, the inventive functional units advantageously extend the computing power of the arithmetic unit 100 about the computing power of their cores 110a . 110b . 110c and other peripheral components 125 out, given.

Weitere vorteilhafte Anwendungsgebiete für das erfindungsgemäße Prinzip und die erfindungsgemäße Recheneinheit sind Steuergeräte für den Betrieb von elektrischen Motoren bzw. Generatoren, Steuergeräte für Batterien, Fahrerassistenzsysteme, Chassis-Systeme, Elektrowerkzeuge, Haushaltsgeräte, und dergleichen.Further advantageous fields of application for the principle according to the invention and the computing unit according to the invention are control devices for the operation of electric motors or generators, control units for batteries, driver assistance systems, chassis systems, power tools, household appliances, and the like.

Nachstehend werden weitere vorteilhafte Ausführungsformen und Aspekte der vorliegenden Erfindung beschrieben.Hereinafter, further advantageous embodiments and aspects of the present invention will be described.

Bei einer besonders bevorzugten Ausführungsform sind mehrere Funktionseinheiten 1400 (2A) durch wenigstens eine Datenverbindungen herstellende Verbindungsstruktur, insbesondere die primäre Verbindungseinheit 150 (1A), also beispielsweise ein Koppelnetz und/oder ein Bussystem und dergleichen, so miteinander verbunden, dass ein gesamtheitlicher Datenfluss gebildet wird, der die Berechnung eines spezifischen Algorithmus oder auch die Berechnung mehrerer paralleler spezifischer Algorithmen ermöglicht. In a particularly preferred embodiment, a plurality of functional units 1400 ( 2A ) by at least one data connection establishing connection structure, in particular the primary connection unit 150 ( 1A ), that is, for example, a switching network and / or a bus system and the like, connected to one another so that a comprehensive data flow is formed, which allows the calculation of a specific algorithm or the calculation of several parallel specific algorithms.

Besonders bevorzugt sind bei weiteren Ausführungsformen zumindest einige dieser Datenverbindungen dynamisch rekonfigurierbar, sodass auch der Algorithmus dynamisch änderbar ist. Dies kann wie vorstehend bereits beschrieben beispielsweise durch eine entsprechende Adressierung von zwischen den beteiligten Funktionseinheiten ausgetauschten Datenpaketen erfolgen.In further embodiments, at least some of these data connections are particularly preferably dynamically reconfigurable, so that the algorithm can also be dynamically changed. As already described above, this can be done, for example, by appropriate addressing of data packets exchanged between the participating functional units.

Bei weiteren Ausführungsformen kann dies, zum Beispiel im Falle von direkten Datenverbindungen zwischen Funktionseinheiten, vergleiche das Bezugszeichen 152c aus 1A, unter Verwendung von Multiplexerstrukturen bzw. Demultiplexerstrukturen realisiert werden, welche die direkten Datenverbindungen 152c unter einer entsprechenden Steuerung an die vorzunehmenden Modifikationen des betreffenden Algorithmus anpassen.In other embodiments, for example, in the case of direct data connections between functional units, this may be indicated by the reference numeral 152c 1A , are realized using multiplexer structures or demultiplexer structures which are the direct data connections 152c under appropriate control to the modifications to be made to the algorithm in question.

Bei bevorzugten Ausführungsformen weist die primäre Verbindungseinheit 150 eine hohe Parallelität auf, wodurch viele gleichzeitige oder zeitlich überlappende Datenverbindungen bzw. Datenübertragungen zwischen unterschiedlichen Funktionseinheiten ermöglicht sind.In preferred embodiments, the primary connection unit 150 a high Parallelism, which allows many simultaneous or temporally overlapping data connections or data transmissions between different functional units.

Weiter vorteilhaft kann ein hoher Datendurchsatz und eine hohe Rechenleistung bei der Datenverarbeitung durch die erfindungsgemäßen Funktionseinheiten einer Ausführungsform zufolge dadurch erzielt werden, dass die Funktionseinheiten ihre Ausgangsdaten untereinander vorzugsweise schreibend, insbesondere nur schreibend, weiterleiten, wodurch ein streaming-Mechanismus geschaffen wird. Insbesondere können hierdurch auch unerwünschte Unterbrechungen in dem Datenfluss vermieden werden.Further advantageously, a high data throughput and a high computing performance in the data processing by the functional units of the invention according to an embodiment can be achieved in that the functional units their output data among each other preferably write, in particular only write, forward, creating a streaming mechanism is created. In particular, unwanted interruptions in the data flow can also be avoided in this way.

Besonders bevorzugt ist keine zentrale Steuerung eines Datenflusses für die Datenverarbeitung durch die erfindungsgemäßen Funktionseinheiten vorgesehen, wie es bei herkömmlichen Mikrocontrollern beispielsweise in Form eines Rechenkerns üblich ist. Vielmehr wird bei bevorzugten Ausführungsform der Erfindung der Datenfluss für die Datenverarbeitung durch die erfindungsgemäßen Funktionseinheiten ausschließlich durch die Funktionseinheiten selbst bestimmt. Dabei wird insbesondere die primäre Verbindungseinheit 150 (1A), beispielsweise direkt und/oder beispielsweise entsprechend einer Konfiguration einer Funktionseinheit so geschaltet bzw. gesteuert, dass die Ausgangsdaten einer Funktionseinheit an eine konfigurierte Ziel-Funktionseinheit gesendet werden. Dies kann bei manchen Ausführungsformen beispielsweise für jeweils einen bestimmten Zeitraum, insbesondere bis zur erneuten Konfiguration bzw. Umkonfiguration der primären Verbindungseinheit 150, eingestellt werden. Dies kann bei manchen Ausführungsformen beispielsweise aber auch dadurch bewirkt werden, dass wenigstens manche, vorzugsweise jedoch alle von Funktionseinheiten versandte Datenpakete mit einer Zieladresse versehen werden, die beispielsweise die Ziel-Funktionseinheit für eine Datenübertragung angibt, optional zusätzlich einen Ziel-Speicherbereich bzw. eine Ziel-Speicherzelle oder dergleichen in einem lokalen Adressraum der Ziel-Funktionseinheit. Details hierzu sind vorstehend bereits unter Bezugnahme auf die Datenstruktur DS gemäß 2A beschrieben worden.Particularly preferably, no central control of a data flow for the data processing by the functional units according to the invention is provided, as is customary in conventional microcontrollers, for example in the form of a calculation kernel. Rather, in the preferred embodiment of the invention, the data flow for the data processing by the functional units according to the invention is determined exclusively by the functional units themselves. In this case, in particular, the primary connection unit 150 ( 1A ), for example, directly and / or, for example, according to a configuration of a functional unit switched or controlled so that the output data of a functional unit are sent to a configured target functional unit. In some embodiments, for example, this may be for a particular period of time, in particular until the reconfiguration or reconfiguration of the primary connection unit 150 to be discontinued. In some embodiments, however, this can also be effected, for example, by at least some, but preferably all data packets sent by functional units being provided with a destination address which, for example, indicates the destination functional unit for a data transmission, optionally additionally a destination memory area or a destination Memory cell or the like in a local address space of the destination functional unit. Details on this are already given above with reference to the data structure DS according to FIG 2A been described.

Bei einer weiteren Ausführungsform ist vorgesehen, dass eine Funktionseinheit eine Operation beziehungsweise Berechnungsaufgabe (nur) dann ausführt, wenn die konfigurierten Eingangsdaten verfügbar sind. Sofern beispielsweise die lokale Berechnungseinheit einer Funktionseinheit als Multiplikationsakkumulator (MAC) gemäß der folgenden Gleichung O = A * B + C nur auf die Berechnungsart „Multiplikation“ konfiguriert ist, reicht es aus, wenn die beiden Eingangswerte A, B vorliegen, damit die betreffende Funktionseinheit beziehungsweise ihre lokale Berechnungseinheit die Berechnung starten kann. Demgegenüber müsste die Funktionseinheit beziehungsweise ihre lokale Berechnungseinheit zusätzlich noch auf das Vorliegen des weiteren Eingangswerts C warten, sofern die Funktionseinheit bzw. ihre lokale Berechnungseinheit auf die Berechnungsarten „Multiplikation“ und „Addition“, also eine vollständige Multiplikationsakkumulation, konfiguriert ist.In a further embodiment it is provided that a functional unit carries out an operation or calculation task (only) if the configured input data are available. If, for example, the local calculation unit of a functional unit is configured as multiplication accumulator (MAC) according to the following equation O = A * B + C only to the calculation mode "multiplication", it is sufficient if the two input values A, B are present, so that the relevant functional unit or their local calculation unit can start the calculation. In contrast, the functional unit or its local calculation unit would additionally have to wait for the presence of the further input value C if the functional unit or its local calculation unit is configured for the calculation types "multiplication" and "addition", ie a complete multiplication accumulation.

Bei einer weiteren Ausführungsform ist vorgesehen, dass eine Funktionseinheit beispielsweise hinsichtlich der Funktionalität ihrer lokalen Berechnungseinheit so flexibel ausgelegt wird, dass sie wahlweise, z.B. in Abhängigkeit einer Konfiguration, für verschiedene Typen bzw. Varianten einer entsprechenden Berechnungsaufgabe nutzbar ist. Beispielsweise kann ein Addierer einer lokalen Berechnungseinheit bevorzugt so ausgelegt sein, dass er anstelle der Addition auch eine Subtraktion ausführen kann, wobei die unterschiedliche Funktionalität bzw. ein Wechsel zwischen diesen Funktionalitäten mittels einer Konfiguration einstellbar ist. Weiterhin kann bei dem Addierer konfigurierbar sein, ob die Addition mit „Carry“ (Übertrag), mit oder ohne Akkumulationsregister, und dergleichen ausgeführt wird.In a further embodiment, it is provided that a functional unit, for example in terms of the functionality of its local calculation unit, is designed so flexible that it can be optionally, e.g. Depending on a configuration, it can be used for different types or variants of a corresponding calculation task. For example, an adder of a local calculation unit may preferably be designed so that it can also perform a subtraction instead of the addition, wherein the different functionality or a change between these functionalities can be set by means of a configuration. Furthermore, it may be configurable at the adder whether the addition is carried out with "carry", with or without accumulation register, and the like.

Bei einer weiteren Ausführungsform können bei einer Funktionseinheit, die zum Laden von Daten und/oder zum Speichern von Daten konfiguriert ist, optional mindestens ein, bevorzugt mehrere konfigurierbare Offset-Register vorgesehen sein. In fest oder bevorzugt konfigurierbarer Weise erfolgt mit jeder Datenzugriffsoperation eine Änderung dieses mindestens einen Offsets, beispielsweise inkrementierend oder dekrementierend mit einem Wert größer, kleiner oder gleich 0, als Schiebeoperation um N Bits nach links oder rechts, ein Rücksetzen auf 0 oder einen anderen Wert, als sogenannter „Bitinverser“ Wert (engl. Bit-reverse, höherwertige Bits werden auf niederwertige Bits gespiegelt und umgekehrt), etc. Besonders bevorzugt können gegebenenfalls vorhandene mindestens zwei Offsets voneinander abhängig und/oder unabhängig konfigurierbar eingestellt werden, so dass sich beispielsweise ein erster Offset mit jedem Datenzugriff ändert und ein zweiter Offset sich beispielsweise erst dann ändert, wenn der erste Offset eine bestimmte Anzahl von Zugriffen durchführt hat. Besonders bevorzugt hat eine Funktionseinheit zum Laden und/oder zum Speichern von Daten eine, bevorzugt konfigurierbare, integrierte Einheiten zur Typenkonvertierung, insbesondere von Gleitkommazahlen in Festkommazahlen und umgekehrt und/oder zur Anpassung der Bitbreiten beispielsweise von 16 Bit in 32 Bit, und so fort.In a further embodiment, at least one, preferably a plurality of configurable offset registers may optionally be provided in a functional unit that is configured to load data and / or to store data. In a fixed or preferably configurable manner, with each data access operation, there is a change in that at least one offset, for example incrementing or decrementing with a value greater than, less than or equal to 0, shifting N bits left or right, resetting to 0 or another value, As a so-called "bit inverse" value (English bit-reverse, high-order bits are mirrored to lower bits and vice versa), etc. If desired, at least two offsets can optionally be set interdependent and / or independently configurable, so that, for example, a first Offset with each data access changes and a second offset, for example, changes only when the first offset has made a certain number of accesses. Particularly preferably, a functional unit for loading and / or storing data has a, preferably configurable, integrated units for type conversion, in particular of floating-point numbers in fixed-point numbers and vice versa and / or for adapting the bit widths, for example from 16 bits to 32 bits, and so on.

Bei einer weiteren vorteilhaften Ausführungsform kann eine Funktionseinheit 1400e (4) dazu ausgebildet sein, Kenngrößen einer algorithmischen Schleife zu berücksichtigen. Insbesondere kann die Funktionseinheit 1400e dazu ausgebildet sein, eine aktuelle Schleifentiefe einer betrachteten Rechenoperation an nachfolgende Funktionseinheiten 1400f auszugeben, beispielsweise in Form von Steuerdaten CTRL, vergleiche die Datenstruktur DS aus 2A, woraufhin mindestens eine solche Daten empfangende Funktionseinheit 1400f beispielsweise eine bedingte Ausführung von durch ihre lokale Berechnungseinheit 1420 vorgesehenen Berechnungsschritten in Abhängigkeit der durch die vorangehende Funktionseinheit 1400e mitgeteilten Schleifentiefe ausführen kann.In a further advantageous embodiment, a functional unit 1400e ( 4 ) be adapted to account for characteristics of an algorithmic loop. In particular, the functional unit 1400e be trained to a current loop depth of a considered arithmetic operation to subsequent functional units 1400F output, for example in the form of control data CTRL, compare the data structure DS 2A , whereupon at least one such data receiving functional unit 1400F For example, a conditional execution of by their local calculation unit 1420 provided calculation steps depending on the by the previous functional unit 1400e can communicate with specified loop depth.

Bei einer weiteren vorteilhaften Ausführungsform kann eine Funktionseinheit dazu ausgebildet sein, Informationen über einen Beginn und/oder ein Ende wenigstens einer algorithmischen Schleife (oder mehrere Schleifen-Ebenen, „first transfer / last transfer“) zu ermitteln. Die Funktionseinheit kann beispielsweise den Betrieb ihrer eigenen lokalen Berechnungseinheit 1410 in Abhängigkeit der so ermittelten Informationen steuern.In a further advantageous embodiment, a functional unit may be designed to determine information about a beginning and / or an end of at least one algorithmic loop (or several first-pass / last-transfer loops). For example, the functional unit may operate its own local computing unit 1410 depending on the information thus determined.

Bei einer weiteren vorteilhaften Ausführungsform kann eine Funktionseinheit dazu ausgebildet sein, zuvor ermittelte Informationen über einen Beginn und/oder ein Ende wenigstens einer algorithmischen Schleife an wenigstens eine weitere (Ziel-)Funktionseinheit zu übertragen. Die (Ziel-)Funktionseinheit kann in Abhängigkeit der empfangenen Informationen wiederum vorteilhaft beispielsweise eine bedingte Ausführung von Berechnungsaufgaben durchführen. Beispielhaft wird hierzu gemäß einer Ausführungsform eine Akkumulation von Daten in einer Funktionseinheit betrachtet, welche zur Ausführung der Rechenoperation „Addition“ ausgebildet ist. Bei einem Schleifenstart erfolgt ein Zurücksetzen (englisch: reset) des Akkumulatorregisters, während der Ausführung der Schleife erfolgt eine Akkumulation (das bedeutet, während der Schleife aufeinanderfolgende Eingangsdaten werden fortwährend addiert und in dem Akkumulatorregister zwischengespeichert), und zum Ende der Schleife, insbesondere nur dann, erfolgt eine Weiterleitung der akkumulierten Daten als Ausgangsdaten, beispielsweise an eine nachfolgende Funktionseinheit.In a further advantageous embodiment, a functional unit may be designed to transmit previously determined information about a beginning and / or an end of at least one algorithmic loop to at least one further (target) functional unit. The (target) functional unit can, in turn, advantageously perform, for example, a conditional execution of computational tasks, depending on the received information. By way of example, according to one embodiment, an accumulation of data in a functional unit is considered, which is designed to execute the arithmetic operation "addition". At a loop start, a reset of the accumulator register occurs during the execution of the loop, an accumulation (that is, during the loop consecutive input data is continuously added and latched in the accumulator register) and at the end of the loop, especially only then , the accumulated data is forwarded as output data, for example to a subsequent functional unit.

Bei einer weiteren vorteilhaften Ausführungsform kann eine Funktionseinheit dazu ausgebildet sein, aufgrund der ermittelten Informationen über den Beginn und/oder das Ende wenigstens einer algorithmischen Schleife innerhalb oder außerhalb derselben Funktionseinheit, eine interne Umkonfiguration, vorteilhafterweise nach ebenfalls konfigurierbaren Vorgaben, vorzunehmen, so dass beispielsweise die berechnete Funktion verändert wird. Beispielsweise wird ein Multiplikationsakkumulator am Ende einer ermittelten Schleife in einen reinen Multiplikator, also ohne weitere Addition, umkonfiguriert.In a further advantageous embodiment, a functional unit may be designed to perform an internal reconfiguration, advantageously according to likewise configurable specifications, based on the determined information about the beginning and / or the end of at least one algorithmic loop within or outside the same functional unit, such that, for example calculated function is changed. For example, a multiplication accumulator is reconfigured at the end of a determined loop into a pure multiplier, ie without further addition.

Bei einer weiteren Ausführungsform ist vorgesehen, dass mehrere Funktionseinheiten, z.B. zwei Funktionseinheiten, wahlweise getrennt, insbesondere unabhängig voneinander, arbeiten können und hierbei beispielsweise mehrere Datenworte, beispielsweise zwei, mit einer ersten, jeweils niedrigen Bitbreite von beispielsweise 32 Bit gleichzeitig verarbeiten können, oder wahlweise können die mehreren Funktionseinheiten zusammengeschaltet werden bzw. in dem Sinne zusammenarbeiten, dass sie eine reduzierte Anzahl Datenwörter, beispielsweise eins, jedoch mit höherer Bitbreite von beispielsweise 64 Bit gemeinsam verarbeiten können.In a further embodiment it is provided that a plurality of functional units, e.g. two functional units, optionally separated, in particular independently of each other, can work and in this case, for example, several data words, for example two, with a first, each low bit width of 32 bits, for example, simultaneously process, or optionally, the plurality of functional units can be interconnected or cooperate in the sense in that they can jointly process a reduced number of data words, for example one, but with a higher bit width of, for example, 64 bits.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass ein oder mehrere Konfigurationsregister 1432a, 1432b, 1432c, 1432d (2A) der Funktionseinheit 1400 direkt oder indirekt abgebildet werden in andere Register der erfindungsgemäßen Recheneinheit 100 (1A), beispielsweise in übergeordnete Peripherieregister innerhalb der flexiblen Hardwareerweiterung 1500 und/oder außerhalb der flexiblen Hardwareerweiterung 1500, beispielsweise in eine weitere Peripheriekomponente 125 oder in eine externe Komponente 200. Dadurch können andere Komponenten der erfindungsgemäßen Recheneinheit 100 wie beispielsweise ein Rechenkern 110a effizient auf das beziehungsweise die Konfigurationsregister der Funktionseinheit 1400 zugreifen.In a further advantageous embodiment it is provided that one or more configuration registers 1432 . 1432b . 1432c . 1432d ( 2A ) of the functional unit 1400 be mapped directly or indirectly into other registers of the arithmetic unit according to the invention 100 ( 1A ), for example, in higher-level peripheral registers within the flexible hardware extension 1500 and / or outside the flexible hardware extension 1500 , for example, in another peripheral component 125 or in an external component 200 , As a result, other components of the computing unit according to the invention 100 such as a calculation kernel 110a efficiently access the or the configuration register of the functional unit 1400.

Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass ein Verfahren zur Synthese eines Schaltungslayouts zur Herstellung der erfindungsgemäßen Recheneinheit bzw. einzelner Funktionseinheiten oder sonstiger Komponenten hiervon verwendet wird, wie es in der deutschen Patentanmeldung DE 102015207323.8 beschrieben ist. Dieses Verfahren umfasst einer bevorzugten Ausführungsform zufolge die folgenden Schritte: - primäre Schaltungsfunktionen werden auf dem Schaltungslayout platziert, - sekundäre Schaltungsfunktionen werden auf dem Schaltungslayout platziert, - mindestens eine erste Maske wird derart generiert, dass die erste Maske die primären Schaltungsfunktionen abbildet und die sekundären Schaltungsfunktionen verdeckt, wenn ein Halbleitersubstrat gemäß dem Schaltungslayout durch die mindestens erste Maske strukturiert wird, und ⊐⊐das Platzieren der Schaltungsfunktionen erfolgt derart, dass mindestens eine geänderte Maske die primären Schaltungsfunktionen und die sekundären Schaltungsfunktionen abbildet, wenn das Halbleitersubstrat gemäß dem Schaltungslayout durch mindestens eine zweite Maske strukturiert wird.In a further advantageous embodiment it can be provided that a method for the synthesis of a circuit layout for the production of the arithmetic unit according to the invention or individual functional units or other components thereof is used, as described in the German patent application DE 102015207323.8 is described. According to a preferred embodiment, this method comprises the following steps: primary circuit functions are placed on the circuit layout, secondary circuit functions are placed on the circuit layout, at least one first mask is generated such that the first mask maps the primary circuit functions and the secondary circuit functions concealed when a semiconductor substrate is patterned by the at least first mask according to the circuit layout, and ⊐⊐ placing the circuit functions such that at least one modified mask maps the primary circuit functions and the secondary circuit functions when the semiconductor substrate is interconnected by at least a second one according to the circuit layout Mask is structured.

Ein Vorteil dieser Ausführungsform liegt in der eröffneten Möglichkeit, vorerst nicht benötigte Funktionen zu implementieren, um diese dann vergleichsweise kostengünstig später im Wege einer Maskenänderung und der dadurch geänderten Funktion als sinnvolle Funktionserweiterung - etwa in einem Mikrocontroller wie beispielsweise der vorliegenden erfindungsgemäßen Recheneinheit 100 - benutzen zu können. Ein besonderer Vorteil dabei ist, dass die Kosten für die Implementierung der neuen Funktion, die im Idealfall lediglich eine Maskenänderung oder aber die Änderung nur weniger Masken erfordert, vergleichsweise gering sind, da anstelle eines kompletten Maskensatzes nur einzelne Masken generiert werden müssen. Auch ein Flächenoverhead, wie er von herkömmlichen voll programmierbaren Logikbausteinen wie z.B. FPGAs bekannt ist, wird bei der vorliegenden Ausführungsform nicht benötigt, da sowohl die Auswahl und Anzahl der feingranularen Basis-Elemente innerhalb des bezeichneten Halbleitersubstrats eingeschränkt werden kann, als auch da keine Multiplexer-/Demultiplexer-Schaltungen für eine dynamische Verbindung zwischen diesen Basis-Elemente vorzusehen sind, da die Verbindungen innerhalb des bezeichneten Halbleitersubstrats direkt mittels einer Maske fest verdrahtet werden. Schließlich kann eine Funktionserweiterung gemäß der vorliegenden Ausführungsform im Vergleich zu herkömmlichen Schaltungslayouts wesentlich später und schneller erfolgen.An advantage of this embodiment lies in the opened possibility of implementing functions which are not required for the time being, in order then to implement them relatively inexpensively later by way of a Mask change and the changed function as a meaningful functional extension - such as in a microcontroller such as the present inventive computing unit 100 - to be able to use. A particular advantage here is that the costs for the implementation of the new function, which ideally requires only a mask change or the change only requires fewer masks, are comparatively low, since instead of a complete mask set only individual masks must be generated. Also, area overhead, as known from conventional fully programmable logic devices, such as FPGAs, is not needed in the present embodiment because both the selection and number of finely granular base elements within the designated semiconductor substrate can be constrained, and because there are no multiplexers. / Demultiplexer circuits are to be provided for a dynamic connection between these base elements, since the compounds within the designated semiconductor substrate are hardwired directly by means of a mask. Finally, functional enhancements according to the present embodiment may be much later and faster compared to conventional circuit layouts.

Über die beträchtliche Dauer einschlägiger Entwicklungsprojekte, die bis zur Serienreife der resultierenden Schaltung durchaus fünf Jahre betragen kann, lassen sich die je nach Projekt verschiedenen Anforderungen wie Algorithmus, die geforderte Rechenleistung respektive Durchsatz und Latenz, Anpassungen in späten Entwicklungsphasen, usw. erfindungsgemäß durch die flexible Hardwareerweiterung, gegebenenfalls in Verbindung mit der Erweiterung entsprechend dem Verfahren gemäß Patentanmeldung DE 102015207323.8 zur einer Anpassung der Hardwareschaltung, umsetzen. Die ersatzweise Anpassung oder Ergänzung von Software - mit dem inhärenten Nachteil einer ineffizienteren da rechenleistungsschwächeren Ausführung der nachträglichen Schaltungsfunktionen - lässt sich auf diese Weise vermeiden.Over the considerable duration of relevant development projects, which can be up to the series production of the resulting circuit quite five years, depending on the project various requirements such as algorithm, the required computing power or throughput and latency, adjustments in late development phases, etc. According to the invention by the flexible Hardware extension, possibly in conjunction with the extension according to the method according to patent application DE 102015207323.8 to adapt the hardware circuit, implement. The substitution or supplementation of software - with the inherent disadvantage of a less efficient da rechnerleistungsschwächeren execution of the subsequent circuit functions - can be avoided in this way.

Nachfolgend sind weitere vorteilhafte Ausführungsform der vorliegenden Erfindung, deren Nutzen und bevorzugte Anwendungsbeispiele angegeben. Below are further advantageous embodiment of the present invention, their benefits and preferred examples of application given.

Die erfindungsgemäße Recheneinheit 100 ermöglicht vorteilhaft die effiziente Ausführung von rechenintensiven und aufwendigen mathematischen Berechnungen (insbesondere mit großer (Rechen-)Tiefe, viele Rechenoperationen), ohne dass hierzu spezielle Beschleunigerhardware wie beispielsweise der Einsatz mehrerer digitaler Signalprozessoren (DSP) oder ASICs zusätzlich zu einem herkömmlichen Mikrocontroller oder integriert in einen Mikrocontroller oder dergleichen erforderlich wären. Vielmehr können die rechenintensiven und aufwendigen mathematischen Berechnungen vorteilhaft durch die erfindungsgemäßen Funktionseinheiten 140, ..., 1400 ausgeführt werden, welche zudem flexibel untereinander verbindbar sind, wodurch eine einfache Anpassung der erfindungsgemäßen Recheneinheit 100 an mannigfaltige rechenintensive und aufwendige mathematische Berechnungen bzw. Algorithmen möglich ist. Beispielsweise kann die erfindungsgemäße Recheneinheit 100 vorteilhaft zur Verarbeitung von Sensorwerten, zum Beispiel in einem Steuergerät eines Kraftfahrzeugs, verwendet werden.The computing unit according to the invention 100 advantageously allows the efficient execution of computation-intensive and complex mathematical calculations (in particular with large (computational) depth, many computational operations), without requiring special accelerator hardware such as the use of multiple digital signal processors (DSP) or ASICs in addition to a conventional microcontroller or integrated in a microcontroller or the like would be required. Rather, the computation-intensive and complex mathematical calculations can advantageously be carried out by the functional units according to the invention 140 , ..., 1400 are executed, which are also flexibly interconnected, whereby a simple adaptation of the computing unit according to the invention 100 At various computationally intensive and complex mathematical calculations or algorithms is possible. For example, the arithmetic unit according to the invention 100 advantageously used for processing sensor values, for example in a control unit of a motor vehicle.

Bei einer bevorzugten Ausführungsform ergibt sich eine beispielhafte Datenverarbeitungskette wie folgt: Ein Sensorsignal (zum Beispiel eines Drehzahlsensors) bildet Eingangsdaten für die Recheneinheit 100, Berechnungen innerhalb eines Rechenkerns 110a der Recheneinheit 100, weitere Berechnungen durch die erfindungsgemäßen Funktionseinheiten 140, erneute Berechnungen durch den Rechenkern 110a, Erzeugung eines Steuersignals als Ausgangssignal der Recheneinheit 100 für nachgeordnete Systeme wie beispielsweise Aktoren beziehungsweise Endstufen zur Ansteuerung von Aktoren.In a preferred embodiment, an exemplary data processing chain results as follows: A sensor signal (for example a speed sensor) forms input data for the arithmetic unit 100 , Calculations within a calculation kernel 110a the arithmetic unit 100 , further calculations by the functional units according to the invention 140 , re-calculations by the calculator 110a , Generation of a control signal as an output signal of the arithmetic unit 100 for downstream systems such as actuators or power amplifiers for controlling actuators.

Bei anderen Ausführungsformen können sich auch andere Reihenfolgen der vorstehend genannten Elemente einer beispielhaften Datenverarbeitungskette ergeben. Beispielsweise können die erfindungsgemäßen Funktionseinheiten auch anstelle des Rechenkerns 110a direkt am Anfang der Datenverarbeitungskette oder auch ganz am Ende der Datenverarbeitungskette stehen. Bei weiteren Ausführungsformen sind anstelle eines Sensorsignals auch mehrere Eingangsgrößen und/oder mehrere Ausgangsgrößen möglich.In other embodiments, other orders of the aforementioned elements of an exemplary data processing chain may also result. For example, the functional units according to the invention can also be used instead of the calculation kernel 110a directly at the beginning of the data processing chain or at the very end of the data processing chain. In further embodiments, multiple input variables and / or multiple output variables are possible instead of a sensor signal.

Bei manchen Ausführungsformen kann die Ausgabe einer Ausgangsgröße am Ende einer derartigen Datenverarbeitungskette beispielsweise direkt durch einen getriebenen Pin der Recheneinheit („output pin“) gebildet sein, oder auch durch die Ausgabe eines berechneten Zahlenwerts. beispielsweise mittels einer geeigneten Kommunikationsschnittstelle. Insbesondere kann bei manchen Ausführungsformen die Ausgabe einer Ausgangsgröße am Ende einer derartigen Datenverarbeitungskette beispielsweise durch einen direkt durch die flexible Hardwareschaltung bzw. eine bestimmte Funktionseinheit hiervon getriebenen Pin gebildet sein.In some embodiments, the output of an output at the end of such a data processing chain may be formed, for example, directly by a driven pin of the arithmetic logic unit ("output pin"), or by the output of a calculated numerical value. for example by means of a suitable communication interface. In particular, in some embodiments, the output of an output at the end of such a data processing chain may be formed, for example, by a pin directly driven by the flexible hardware circuit or a particular functional unit thereof.

Generell ermöglicht die Anwendung des erfindungsgemäßen Prinzips, welches auf der Vorsehung von mehreren Funktionseinheiten beruht, eine Entlastung der Rechenkerne 110a, 110b, 110c der Recheneinheit 100. Besonders bevorzugt ist eine Pipeline der durch die Funktionseinheiten repräsentierten Berechnungseinheit gefüllt und arbeitet (massiv) parallel, was eine sehr schnelle Berechnung möglich macht.In general, the application of the principle according to the invention, which is based on the provision of several functional units, makes it possible to relieve the computing cores 110a . 110b . 110c the arithmetic unit 100 , Particularly preferably, a pipeline of the calculation unit represented by the functional units is filled and operates (massively) in parallel, which makes a very fast calculation possible.

Aufgrund ihrer Leistungsfähigkeit ist die erfindungsgemäße Recheneinheit besonders für Steuergeräte für Brennkraftmaschinen, insbesondere von Kraftfahrzeugen, geeignet, bei denen eine Vielzahl von Eingangswerten wie beispielsweise Sensorsignalen einer komplexen Verarbeitung unterzogen wird, um entsprechende Ausgangssignale für Aktoren wie beispielsweise magnetisch oder piezoelektrisch betätigte Einspritzventile für ein Kraftstoffeinspritzsystem der Brennkraftmaschine zu bilden. Because of its performance, the arithmetic unit according to the invention is particularly suitable for control devices for internal combustion engines, especially motor vehicles, where a plurality of input values such as sensor signals of complex processing is subjected to corresponding output signals for actuators such as magnetically or piezoelectrically actuated injectors for a fuel injection system To form internal combustion engine.

Die erfindungsgemäße Recheneinheit kann ferner vorteilhaft bei Steuergeräten für Fahrerassistenzsysteme eingesetzt werden, beispielsweise zur Auswertung von Radardaten zur Steuerung von Fahrerassistenzfunktionen, bei denen herkömmliche Steuergeräte typischerweise mehrere digitale Signalprozessoren aufweisen, um die anfallenden Datenmengen der Radarsensorik verarbeiten zu können.The arithmetic unit according to the invention can also be advantageously used in control units for driver assistance systems, for example for the evaluation of radar data for controlling driver assistance functions in which conventional control units typically have a plurality of digital signal processors in order to process the accumulating data volumes of the radar sensor.

Die erfindungsgemäße Recheneinheit mit der flexible Hardwareerweiterung kann ferner vorteilhaft bei Steuergeräten eingesetzt werden, in denen komplexe regelungstechnische Modelle berechnet werden und/oder in denen eine komplexe digitale Signalverarbeitung erfolgt.The arithmetic unit according to the invention with the flexible hardware extension can also be advantageously used in control units in which complex control engineering models are calculated and / or in which complex digital signal processing takes place.

Neben den vorstehend bereits beschriebenen Berechnungsmöglichkeiten, welche durch einzelne Funktionseinheiten 1400 (2A) bzw. durch einen Verbund einzelner Funktionseinheiten, insbesondere durch deren jeweilige lokale Berechnungseinheit(en) 1420 realisiert werden können, ist es ebenfalls möglich, die nachfolgenden Funktionalitäten durch eine oder mehrere erfindungsgemäße Funktionseinheiten im Verbund bereitzustellen, sofern in einer entsprechenden Ausbaustufe der flexiblen Hardwareerweiterung 1500 die benötigten Grundfunktionalitäten in Form von Funktionseinheiten einschließlich Berechnungseinheiten überhaupt und zudem in erforderlicher Anzahl, Konfiguration und Verbindung untereinander vorhanden sind sowie eine Berechnung mit der erforderlichen Gesamtrechenleistung erlauben: Berechnung von (auch hochdimensionalen) Kennfeldern (mit z.B. mehr als fünf Dimensionen), Berechnung von datenbasierten Modellen, Berechnung von physikalischen Modellen, Berechnung von neuronalen Netzen, Lösung linearer Gleichungssysteme, Bildung inverser Matrizen (insbesondere Matrizen höherer Ordnung), Lösung nichtlinearer Gleichungssysteme, Zeit-zu-Frequenz Umwandlung beispielsweise durch Berechnung der Fast Fourier Transformation (FFT), Frequenz-zu-Zeit Umwandlung beispielsweise durch Berechnung der inversen Fast Fourier Transformation (iFFT), Berechnung verschiedener Filtertypen wie FIR (Finite Impulse Response), IIR (Infinite Impulse Response), usw.In addition to the previously described calculation options, which by individual functional units 1400 ( 2A ) or by a combination of individual functional units, in particular by their respective local calculation unit (s) 1420 can be realized, it is also possible to provide the following functionalities by one or more functional units according to the invention in combination, if in a corresponding expansion stage of the flexible hardware extension 1500 the required basic functionalities in the form of functional units including calculation units at all and additionally in the required number, configuration and connection with each other and allow a calculation with the required total computing power: calculation of (even high-dimensional) maps (with eg more than five dimensions), calculation of data-based Models, calculation of physical models, calculation of neural networks, solution of linear equation systems, formation of inverse matrices (in particular higher-order matrices), solution of non-linear equation systems, time-to-frequency conversion, for example by calculation of Fast Fourier Transformation (FFT), frequency-to-frequency -Time Conversion, for example, by calculating the inverse Fast Fourier Transform (iFFT), calculating various filter types such as FIR (Finite Impulse Response), IIR (Infinite Impulse Response), etc.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens zwei Funktionseinheiten miteinander gekoppelt werden, um zu ermöglichen, die Datenbreite von zu verarbeitenden Daten zu erhöhen. 7 zeigt hierzu schematisch ein vereinfachtes Blockdiagramm, in dem zwei Funktionseinheiten 1400h, 1400i einer Recheneinheit gemäß einer Ausführungsform gezeigt sind.In a further advantageous embodiment it is provided that at least two functional units are coupled together in order to make it possible to increase the data width of data to be processed. 7 schematically shows a simplified block diagram in which two functional units 1400h . 1400i a computing unit according to an embodiment are shown.

Bei der vorliegend beschriebenen Ausführungsform können die Funktionseinheiten 1400h, 1400i in einer ersten Betriebsart unabhängig voneinander arbeiten. Hierbei verarbeitet beispielsweise die Funktionseinheit 1400h ihr zugeführte Eingangsdaten a40 einer ersten Datenbreite von beispielsweise 32 Bit, wodurch Ausgangsdaten a42, beispielsweise ebenfalls mit einer Datenbreite von 32 Bit, erhalten werden. Die Funktionseinheit 1400i verarbeitet ihr zugeführte Eingangsdaten a41 (mit einer Datenbreite von beispielsweise ebenfalls 32 Bit) unabhängig von dem Betrieb der Funktionseinheit 1400h bzw. unabhängig von der Verarbeitung der Eingangsdaten a40, wodurch Ausgangsdaten a43, beispielsweise ebenfalls mit einer Datenbreite von 32 Bit, erhalten werden.In the presently described embodiment, the functional units 1400h . 1400i work independently in a first mode. In this case, for example, the functional unit 1400h processes its input data a40 of a first data width of, for example, 32 bits, whereby output data a42, for example also having a data width of 32 bits, are obtained. The functional unit 1400i processes its input data a41 (with a data width of, for example, also 32 bits) independently of the operation of the functional unit 1400h or independently of the processing of the input data a40, whereby output data a43, for example also with a data width of 32 bits, are obtained.

In einer zweiten Betriebsart können die Funktionseinheiten 1400h, 1400i jedoch auch miteinander gekoppelt werden, was durch den Blockpfeil a44 angedeutet ist. Dies ermöglicht eine Erhöhung der Datenbreite der durch die Funktionseinheiten 1400h, 1400i nunmehr gemeinsam verarbeiteten Daten, beispielsweise auf nunmehr 64 Bit. Besonders bevorzugt können die beteiligten Funktionseinheiten dazu ausgebildet sein, Operanden und die auf ihnen auszuführenden Rechenschritte untereinander zu verteilen und/oder zwischen den Funktionseinheiten 1400h, 1400i bzw. ihren jeweiligen lokalen Berechnungseinheiten (nicht gezeigt) aufzutrennen, vgl. Pfeil a44. Pfeil a44 charakterisiert hierbei eine gesonderte Datenverbindung zwischen den Funktionseinheiten 1400h, 1400i, die eine Abstimmung der Funktionseinheiten 1400h, 1400i hinsichtlich der gemeinsamen Datenverarbeitung ermöglicht.In a second mode, the functional units 1400h . 1400i However, also be coupled to each other, which is indicated by the block arrow a44. This allows an increase in the data width of the functional units 1400h . 1400i now jointly processed data, for example, now at 64 bits. Particularly preferably, the functional units involved can be designed to distribute operands and the computing steps to be performed on them among one another and / or between the functional units 1400h . 1400i or their respective local calculation units (not shown), cf. Arrow a44. Arrow a44 characterizes a separate data connection between the functional units 1400h . 1400i which enables coordination of the functional units 1400h, 1400i with respect to the common data processing.

Bei einer Ausführungsform können die Funktionseinheiten 1400h, 1400i dazu ausgebildet sein, dynamisch (während eines Betriebs der Funktionseinheiten 1400h, 1400i) zwischen der ersten Betriebsart und der zweiten Betriebsart zu wechseln. Dies kann beispielsweise durch entsprechende Konfiguration der Funktionseinheiten 1400h, 1400i erreicht werden.In one embodiment, the functional units 1400h . 1400i be configured to dynamically (during operation of the functional units 1400h, 1400i) to switch between the first mode and the second mode. This can be done, for example, by appropriate configuration of the functional units 1400h . 1400i be achieved.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheiten sich bezüglich des Empfangs ihrer jeweiligen Eingangsdaten a40, a41 synchronisieren, um die gemeinsame Datenverarbeitung korrekt ausführen zu können. Dies kann beispielsweise umfassen, dass alle beteiligten Funktionseinheiten so lange mit der Ausführung von Berechnungen warten, bis alle beteiligten Funktionseinheiten über gültige Eingangsdaten verfügen, insbesondere wenn ein nicht synchronisierter Berechnungsstart eine fehlerhafte Berechnung zur Folge hätte. Vorteilhaft synchronisieren sich die Funktionseinheiten auch während der Ausführung der Berechnungen untereinander. Sofern die durch die gemeinsame Datenverarbeitung entstehenden Ausgangsdaten die Datenbreite einer Funktionseinheit, beispielsweise 32 Bit, überschreiten, kann bei manchen Ausführungsformen vorgesehen sein, dass die Funktionseinheiten 1400h, 1400i die Ausgangsdaten beispielsweise in aufgeteilter Form an ein oder mehrere Ziel-Funktionseinheiten senden.In a further advantageous embodiment, it is provided that the functional units synchronize with respect to the reception of their respective input data a40, a41 in order to be able to execute the common data processing correctly. This may include, for example, all of the functional units involved waiting to perform calculations until all have completed participating function units have valid input data, especially if an unsynchronized calculation start would result in a faulty calculation. Advantageously, the functional units also synchronize with one another during the execution of the calculations. If the output data resulting from the joint data processing exceeds the data width of a functional unit, for example 32 bits, it may be provided in some embodiments that the functional units 1400h . 1400i send the output data, for example, in a split form to one or more destination functional units.

In einer Ausführungsform können die Teil-Ausgangsdaten durch nur einen Teil der beteiligten Funktionseinheiten versendet werden, beispielsweise durch genau eine.In one embodiment, the partial output data may be sent by only a part of the functional units involved, for example by exactly one.

In einer alternativen Ausführungsform können alle beteiligten Funktionseinheiten den entsprechenden Teil der aufgetrennten Teil-Ausgangsdaten versenden.In an alternative embodiment, all participating functional units can send the corresponding part of the split partial output data.

In beiden vorstehend genannten Ausführungsformen kann das Versenden der Teil-Ausgangsdaten beispielsweise zeitlich nacheinander erfolgen, in letztgenannter Ausführungsform auch parallel.In both of the aforementioned embodiments, the sending of the partial output data may, for example, take place in succession in time, in the latter embodiment also in parallel.

Beispielsweise können einer Ausführungsform zufolge beide Funktionseinheiten 1400h, 1400i dazu ausgebildet sein, Additionen („ADD“) bzw. Subtraktionen („SUB“) mit einer Datenbreite von 32 Bit auszuführen. In der der zweiten Betriebsart entsprechenden gekoppelten Betriebsweise können die Funktionseinheiten 1400h, 1400i somit eine Addition bzw. Subtraktion mit einer Datenbreite von 64 Bit ausführen. Beispielsweise berechnet die Funktionseinheit 1400h die 32 höherwertigen Bits, während die Funktionseinheit 1400i die 32 niederwertigen Bits berechnet. Ferner kann vorgesehen sein, dass ein Übertragsbit (englisch_ „Carry Bit“) von der Funktionseinheit 1400i zu der Funktionseinheit 1400a übertragen wird, vergleiche Blockpfeil a44.For example, according to one embodiment, both functional units 1400h, 1400i may be configured to perform additions ("ADD") or subtractions ("SUB") with a data width of 32 bits. In the coupled mode corresponding to the second mode, the functional units 1400h . 1400i thus perform an addition or subtraction with a data width of 64 bits. For example, the functional unit 1400h calculates the 32 high-order bits while the functional unit 1400i calculates the 32 least significant bits. Furthermore, it can be provided that a carry bit (English_ "carry bit") from the functional unit 1400i to the functional unit 1400a is transmitted, see block arrow a44.

In einer weiteren Betriebsart können insbesondere zwei Festkommazahlen ausführende Funktionseinheiten 1400h, 1400i dergestalt gekoppelt werden, dass im Verbund nunmehr eine Fließkommaberechnung ermöglicht wird. In einer vorteilhaften Ausführung werden insbesondere die für eine Fließkommaberechnung erforderlichen Berechnungen auf der Mantisse sowie die Berechnungen auf dem Exponenten in einer jeweils unterschiedlichen Funktionseinheit vorgenommen.In a further mode of operation, in particular two fixed-point numbers can execute functional units 1400h . 1400i be coupled in such a way that in the composite now a floating-point calculation is made possible. In an advantageous embodiment, in particular the calculations required for a floating-point calculation on the mantissa and the calculations on the exponent are carried out in a respectively different functional unit.

Bei weiteren Ausführungsformen ist es auch denkbar, mehr als zwei Funktionseinheiten in der vorstehend beispielhaft beschriebenen Weise miteinander koppelbar auszulegen, wodurch sich die verarbeitete Datenbreite entsprechend weiter erhöht.In further embodiments, it is also conceivable to intercouple more than two functional units in the manner described above by way of example, whereby the processed data width increases correspondingly further.

8A zeigt schematisch einen vereinfachten Datenfluss gemäß einer weiteren Ausführungsform, bei der beispielhaft insgesamt vier Funktionseinheiten 1400_A1, 1400_A2, 1400_B, 1400_C abgebildet sind. Ein möglicher Datenfluss von der Funktionseinheit 1400_A1 zu der Funktionseinheit 1400_B ist mit dem Pfeil a50 gekennzeichnet. Ein möglicher Datenfluss von der Funktionseinheit 1400_A2 zu der Funktionseinheit 1400_B ist mit dem Pfeil a51 gekennzeichnet. Ein möglicher Datenfluss von der Funktionseinheit 1400_B zu sich selbst (ermöglicht Rekursion) ist mit dem Pfeil a52 gekennzeichnet. Ein möglicher Datenfluss von der Funktionseinheit 1400_B zu der Funktionseinheit 1400_C ist mit dem Pfeil a53 gekennzeichnet. Ausgangsdaten der Funktionseinheit 1400_C sind mit dem Pfeil a54 gekennzeichnet. 8A schematically shows a simplified data flow according to another embodiment, in which, for example, a total of four functional units 1400_A1, 1400_A2, 1400_B, 1400_C are shown. A possible data flow from the functional unit 1400_A1 to the functional unit 1400_B is indicated by the arrow a50. A possible data flow from the functional unit 1400_A2 to the functional unit 1400_B is indicated by the arrow a51. A possible data flow from the functional unit 1400_B to itself (enables recursion) is indicated by the arrow a52. A possible data flow from the functional unit 1400_B to the functional unit 1400_C is indicated by the arrow a53. Output data of the functional unit 1400_C are indicated by the arrow a54.

Wie aus 8A ersichtlich ist, können der Funktionseinheit 1400_B eingangsseitig Daten von den zwei verschiedenen Funktionseinheiten 1400_A1, 1400A2 zugeführt werden. Beispielsweise kann die Funktionseinheit 1400_B dazu ausgebildet sein, Daten a50 von der ersten Funktionseinheit 1400_A1 anzunehmen, während Daten a51 von der zweiten Funktionseinheit 1400_A2 jedoch nicht bereits angenommen werden. Ferner kann die Funktionseinheit 1400_B dazu ausgebildet sein, Daten a51 von der zweiten Funktionseinheit 1400_A2 anzunehmen, während Daten a50 von der ersten Funktionseinheit 1400_A1 jedoch nicht bereits angenommen werden. Ferner kann die Funktionseinheit 1400_B dazu ausgebildet sein, Daten über den Rekursionszweig a52 von sich selbst anzunehmen, während Daten a50, a51 von den Funktionseinheiten 1400_A1, 1400_A2 jedoch nicht bereits angenommen werden. Andere Konstellationen zur Steuerung des Datenflusses zwischen den Funktionseinheiten sind weiteren Ausführungsformen zufolge ebenfalls denkbar. Insbesondere ist bei weiteren Ausführungsformen auch der gleichzeitige Empfang von Daten bzw. Informationen von mehr als einer Funktionseinheit 1400_A1, 1400_A2 oder durch Rekursion von 1400_B auf sich selbst möglich.How out 8A can be seen, the function unit 1400_B input side data from the two different functional units 1400_A1, 1400A2 are supplied. For example, the functional unit 1400_B may be configured to accept data a50 from the first functional unit 1400_A1, while data a51 from the second functional unit 1400_A2, however, is not already accepted. Further, the functional unit 1400_B may be configured to accept data a51 from the second functional unit 1400_A2, while data a50 from the first functional unit 1400_A1, however, is not already adopted. Furthermore, the functional unit 1400_B may be configured to accept data about the recurrence branch a52 on its own, while data a50, a51 are not already accepted by the functional units 1400_A1, 1400_A2. Other constellations for controlling the data flow between the functional units are also conceivable according to further embodiments. In particular, in further embodiments, simultaneous reception of data or information from more than one functional unit 1400_A1, 1400_A2 or recursion of 1400_B to itself is also possible.

8B zeigt einen vergleichbaren Datenfluss unter Einbeziehung einer die in 8A abgebildeten Funktionseinheiten verbindenden primären Verbindungseinheit 150, die vorliegend beispielsweise als Koppelnetz ausgebildet ist bzw. wenigstens ein Koppelnetz aufweist. 8B shows a comparable data flow including one in 8A pictured functional units connecting primary connection unit 150 in the present case, for example, is designed as a coupling network or at least has a coupling network.

Um die korrekte Reihenfolge von Daten in dem in den 8A, 8B abgebildeten Datenfluss sicherzustellen, können bei bevorzugten Ausführungsformen der Erfindung eine oder mehrere der nachfolgend genannten Maßnahmen jeweils einzeln oder in beliebiger Kombination miteinander eingesetzt werden. Die nachstehend genannten Maßnahmen können einer vorteilhaften Ausführungsform zufolge beispielsweise durch die lokale Steuereinrichtung 1410 (2A) der Funktionseinheit angewandt werden.Order the correct order of dates in the 8A . 8B In the case of preferred embodiments of the invention, one or more of the measures listed below can each be carried out individually or used in any combination with each other. The measures mentioned below, according to an advantageous embodiment, for example, by the local control device 1410 ( 2A ) of the functional unit.

Maßnahme 1: „Busy Status“ (deutsch: „Belegt“-Zustand), der angibt, ob Daten an einer Eingangsschnittstelle 1402 (2A) einer Funktionseinheit entgegengenommen werden können. Besonders bevorzugt kann ein derartiger „Busy Status“ bei einer Ausführungsform für jede Eingangsschnittstelle (alternativ nur für manche Eingangsschnittstellen) einer Funktionseinheit angezeigt werden. Beispielsweise kann eine primäre Verbindungseinheit 150 (1A) dazu ausgebildet sein, Daten bzw. Datenpakete nur an solche Eingangsschnittstellen von Funktionseinheiten zu übertragen bzw. zu senden, für die kein „Belegt“-Zustand signalisiert wird, die also zum Empfang von Daten bzw. Datenpaketen bereit sind.measure 1 : "Busy Status" (German: "busy" state), indicating whether data is present at an input interface 1402 ( 2A ) can be received by a functional unit. Particularly preferably, such a "busy status" in one embodiment can be displayed for each input interface (alternatively only for some input interfaces) of a functional unit. For example, a primary connection unit 150 ( 1A ) be designed to transmit data or data packets only to such input interfaces of functional units or to send for which no "busy" state is signaled, which are therefore ready to receive data or data packets.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die primäre Verbindungseinheit 150 dazu ausgebildet ist, Daten bzw. Datenpakete, die für momentan belegte Eingangsschnittstellen vorgesehen sind, zumindest zeitweise zwischenzuspeichern, gegebenenfalls für eine zukünftige Übertragung bzw. Aussendung an die entsprechende Eingangsschnittstelle. Der „Belegt“-Zustand kann bei einer Ausführungsform beispielsweise durch eine lokale Steuereinrichtung 1410 einer Funktionseinheit ermittelt bzw. angegeben werden.In a further embodiment it can be provided that the primary connection unit 150 is designed to at least temporarily store data or data packets that are provided for currently occupied input interfaces, possibly for a future transmission or transmission to the corresponding input interface. The "busy" state, in one embodiment, may be, for example, a local controller 1410 a functional unit determined or specified.

Maßnahme 2: Angabe eines Pakettyps (englisch: „packet type identifier“) für ein oder mehrere Datenpakete. Bei bevorzugten Ausführungsformen können Datenpakete einen Pakettyp aufweisen, um zwischen Datenpaketen unterschiedlichen Typs zu unterscheiden. Insbesondere kann manchen Ausführungsformen zufolge eine Differenzierung von unterschiedlichen Pakettypen erfolgen, welche zwischen zur Verarbeitung vorgesehenen Datenpaketen sowie Konfigurationsdaten enthaltenden Datenpaketen unterscheidet. Datenpakete mit Konfigurationsdaten können bei manchen Ausführungsformen beispielsweise dazu verwendet werden, einen Datenfluss zwischen unterschiedlichen Funktionseinheiten zu verändern. Beispielsweise kann der Pakettyp als gesonderter Wert in einem Datenpaket aufgeführt sein, beispielsweise in den Steuerdaten CTRL (2B), oder der Pakettyp kann weiteren Ausführungsformen zufolge von anderen Werten ableitbar sein, beispielsweise aus einer Quell- und/oder Zieladresse eines Datenpakets oder aus einer sonstigen Information, welche eine Quell- und/oder Ziel-Funktionseinheit identifiziert.measure 2 : Specification of a packet type (English: "packet type identifier") for one or more data packets. In preferred embodiments, data packets may have a packet type to distinguish between data packets of different types. In particular, according to some embodiments, a differentiation of different packet types can take place, which distinguishes between data packets intended for processing and data packets containing configuration data. For example, data packets with configuration data may be used in some embodiments to alter a data flow between different functional units. For example, the packet type may be listed as a separate value in a data packet, for example in the control data CTRL (FIG. 2 B ), or the packet type may, according to further embodiments, be derivable from other values, for example from a source and / or destination address of a data packet or from any other information identifying a source and / or destination functional unit.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass eine Funktionseinheit, welche ein Datenpaket ausgibt, dazu ausgebildet ist, einen entsprechenden Pakettyp für das Datenpaket anzugeben. Es ist bei anderen Erfindungsvarianten auch denkbar, die Ausgabe des Pakettyps konfigurierbar zu machen, d.h. mittels Konfiguration zu bestimmen, ob eine Funktionseinheit einen Pakettyp definiert und angibt (und gegebenenfalls welchen), oder ob nicht.In a further embodiment it can be provided that a functional unit which outputs a data packet is designed to specify a corresponding packet type for the data packet. It is also conceivable in other variants of the invention to make the output of the packet type configurable, i. to determine by configuration whether a functional unit defines and indicates a packet type (and if so which), or not.

Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die primäre Verbindungseinheit 150, welche Datenpakete weiterleitet, dazu ausgebildet ist, einen entsprechenden Pakettyp für das Datenpaket anzugeben.In a further embodiment it can be provided that the primary connection unit 150 which forwards data packets, is designed to specify a corresponding packet type for the data packet.

Bei weiteren Ausführungsformen ist denkbar, dass eine Funktionseinheit angibt, dass sie über eine bestimmte Eingangsschnittstelle (nur) Datenpakete eines bestimmten Pakettyps entgegennimmt. Beispielsweise kann eine primäre Verbindungseinheit 150 (1A), die zum Beispiel ein Koppelnetz 152 umfassen kann, nur solche Datenpakete zu einer Eingangsschnittstelle einer bestimmten Funktionseinheit weiterleiten, die signalisiert, dass sie in der Lage ist, Datenpakete eines bestimmten Datentyps entgegenzunehmen.In further embodiments, it is conceivable that a functional unit specifies that it receives (only) data packets of a specific packet type via a specific input interface. For example, a primary connection unit 150 ( 1A ), which, for example, a switching network 152 may forward only those data packets to an input interface of a particular functional unit signaling that it is capable of accepting data packets of a particular data type.

Maßnahme 3: Bei einer Ausführungsform kann eine Funktionseinheit dazu ausgebildet sein, von ihr empfangene Daten bzw. von ihr bearbeitete bzw. zu bearbeitende Daten zu überwachen und/oder zu überprüfen. Wenn beispielsweise für eine Berechnungsaufgabe zwei Operanden als Eingangswerte erwartet werden, kann die Funktionseinheit einer Ausführungsform zufolge dazu ausgebildet sein, zu überwachen, dass beide Operanden genau einmal für jede Berechnungsaufgabe empfangen bzw. verwendet werden, und beispielsweise nicht öfters oder weniger oft. Beispielsweise kann dadurch erkannt werden, dass ein Fehlerfall vorliegt, wenn ein erster Operand bereits empfangen worden ist und sodann erneut empfangen wird. Vielmehr müsste zunächst der erste empfangene Operand der Berechnung zugrunde gelegt werden, die Berechnung müsste ausgeführt werden, nachdem der zweite Operand vorliegt und sodann könnte die Funktionseinheit beispielsweise einen weiteren ersten Operanden und einen weiteren zweiten Operanden von einer anderen Funktionseinheit empfangen. Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass eine Funktionseinheit während einer laufenden Berechnung keine Konfiguration bzw. Rekonfiguration ausführt, sondern vielmehr zunächst die laufende Berechnung abgeschlossen wird bzw. auf gegebenenfalls erforderliche notwendige (weitere) Operanden als Eingangsdaten gewartet wird.measure 3 In one embodiment, a functional unit may be designed to monitor and / or check data received by it or data processed or processed by it. For example, if for a computational task two operands are expected as input values, one embodiment of the functional unit may be configured to monitor that both operands are received or used exactly once for each computational task, and not more often or less often. For example, it can be recognized that there is an error case when a first operand has already been received and is then received again. Rather, the first received operand would first have to be based on the calculation, the calculation would have to be carried out after the second operand is present, and then the functional unit could receive, for example, a further first operand and a further second operand from another functional unit. In a further advantageous embodiment, it can be provided that a functional unit does not perform a configuration or reconfiguration during a running calculation, but rather that the current calculation is first completed or that any necessary (further) operands which may be required are awaited as input data.

Maßnahme 4: Abweisung von Datenpaketen. Bei manchen Ausführungsformen kann vorgesehen sein, dass wenigstens eine Funktionseinheit dazu ausgebildet ist, ein Datenpaket abzuweisen, das ihr eingangsseitig, beispielsweise über eine Eingangsschnittstelle oder eine direkte Datenverbindung, zugeführt wird. Bei einer Variante kann vorgesehen sein, dass das Abweisen zumindest zeitweise möglich ist.measure 4 : Rejection of data packets. In some embodiments, it can be provided that at least one functional unit is designed to reject a data packet that is associated with it on the input side, for example via an input interface or a direct data connection, is supplied. In a variant it can be provided that the rejection is possible at least temporarily.

Sofern die primäre Verbindungseinheit 150 (1A) erkennt, dass ein einer Funktionseinheit zugeführtes Datenpaket abgewiesen worden ist, kann die primäre Verbindungseinheit verhindern, dasselbe Datenpaket erneut an die Aktionseinheit zu senden, beispielsweise bis die Funktionseinheit mindestens ein anderes Datenpaket empfangen hat. Bei einer bevorzugten Ausführungsform ist die primäre Verbindungseinheit dazu ausgebildet, andere anhängige Übertragungsanforderungen bezüglich weiterer Datenpakete an die Funktionseinheit zu priorisieren, damit beispielsweise weitere Datenpakete an die Funktionseinheit gesendet werden können, die zuvor ein bestimmtes Datenpaket abgewiesen hat.Unless the primary connection unit 150 ( 1A ) detects that a data packet supplied to a functional unit has been rejected, the primary connection unit may prevent it from sending the same data packet to the action unit again, for example, until the functional unit has received at least one other data packet. In a preferred embodiment, the primary connection unit is configured to prioritize other pending transmission requests with respect to further data packets to the functional unit so that, for example, further data packets can be sent to the functional unit that has previously rejected a specific data packet.

Bei einer weiteren Ausführungsform ist die primäre Verbindungseinheit dazu ausgebildet, eine erneute Übertragung des abgewiesenen Datenpakets auszuführen, beispielsweise periodisch oder zumindest dann, wenn alle seither für die Funktionseinheit bestimmten Datenpakete an diese übertragen worden sind, mithin keine weiteren als das zuvor abgewiesene Datenpaket für die bestimmte Funktionseinheit vorliegt. Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass die primäre Verbindungseinheit alle Schreibzugriffe auf eine oder mehrere, vorzugsweise alle Eingangsschnittstellen von Funktionseinheiten, die mit ihr verbunden sind, überwacht, wodurch die vorstehend genannten Schritte besonders effizient und präzise ausgeführt werden können. Bei einer Ausführungsform kann vorgesehen sein, dass (zumindest zeitweise) abgewiesene Datenpakete innerhalb der primären Verbindungseinheit zwischengespeichert bzw. gepuffert werden, und/oder innerhalb der sie aussendenden Funktionseinheit.In a further embodiment, the primary connection unit is designed to carry out a retransmission of the rejected data packet, for example periodically or at least when all data packets that have since been assigned to the functional unit have been transmitted to it, thus no further than the previously rejected data packet for the particular Function unit is present. In a further advantageous embodiment it can be provided that the primary connection unit monitors all write accesses to one or more, preferably all, input interfaces of functional units that are connected to it, whereby the above-mentioned steps can be carried out particularly efficiently and precisely. In one embodiment, it may be provided that data packets rejected at least temporarily are buffered or buffered within the primary connection unit, and / or within the functional unit transmitting them.

Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass eine Funktionseinheit dazu ausgebildet ist, anzuzeigen, dass Sie nunmehr ein zuvor abgewiesenes Datenpaket empfangen kann bzw. empfangen möchte. Eine entsprechende Signalisierung kann beispielsweise von der betreffenden Funktionseinheit an die primäre Verbindungseinheit erfolgen. Dadurch können vorteilhaft wiederholte Abweisungen von Datenpaketen vermieden werden, indem die primäre Verbindungseinheit nach Empfang der Signalisierung das zuvor abgewiesene Datenpaket erneut an die nunmehr für den Empfang bereite Funktionseinheit sendet.In a further advantageous embodiment, it can be provided that a functional unit is designed to indicate that you can now receive or receive a previously rejected data packet. A corresponding signaling can take place, for example, from the respective functional unit to the primary connection unit. As a result, advantageously repeated rejections of data packets can be avoided by the primary connection unit, after receiving the signaling, sending the previously rejected data packet again to the functional unit ready for reception.

Maßnahme 5: Priorisierung von Datenpaketen, insbesondere in Abhängigkeit einer Position einer betreffenden Funktionseinheit in einem Datenflussgrafen einer Gruppe von Funktionseinheiten bzw. einer erfindungsgemäßen Recheneinheit.measure 5 Prioritization of data packets, in particular as a function of a position of a respective functional unit in a data flow graph of a group of functional units or of a computer unit according to the invention.

Bei einer besonders bevorzugten Ausführungsform ist es möglich, Datenpakete zu priorisieren, die an dieselbe Eingangsschnittstelle einer bestimmten Funktionseinheit adressiert sind. Besonders bevorzugt kann eine derartige Priorisierung in Abhängigkeit einer Priorität aller Funktionseinheiten und/oder einer Priorität aller Ausgabeschnittstellen von Funktionseinheiten 1400_A1, 1400_A2, 1400_B (8A) erfolgen, welche zugleich auf dieselbe Eingangsschnittstelle der bestimmten Funktionseinheit 1400_B zugreifen. Einer bevorzugten Ausführungsform zufolge ermöglicht eine Priorisierung eine Unterscheidung zwischen unterschiedlichen Funktionseinheiten und/oder zwischen unterschiedlichen Ausgabeschnittstellen von Funktionseinheiten, welche alle auf dieselbe Ziel-Funktionseinheit schreibend zugreifen (durch das Senden von Datenpaketen), aber welche z.B. an unterschiedlichen Stellen in einem Datenflussgraphen einer Gruppe von Funktionseinheiten bzw. der erfindungsgemäßen Recheneinheit angeordnet sind.In a particularly preferred embodiment, it is possible to prioritize data packets that are addressed to the same input interface of a particular functional unit. Such prioritization particularly preferably depends on a priority of all functional units and / or a priority of all output interfaces of functional units 1400_A1, 1400_A2, 1400_B ( 8A ), which at the same time access the same input interface of the particular functional unit 1400_B. According to a preferred embodiment, prioritization allows a distinction to be made between different functional units and / or between different output interfaces of functional units which all write to the same target functional unit (by sending data packets) but which eg at different locations in a data flow graph of a group of Functional units or the arithmetic unit according to the invention are arranged.

Bei einer besonders bevorzugten Ausführungsform ist es möglich, eine Priorisierung für eine individuelle Eingangsschnittstelle einer Funktionseinheit vorzugeben. Es ist ebenso denkbar, eine unterschiedliche Priorisierung für verschiedene Eingangsschnittstellen der Funktionseinheit vorzugeben.In a particularly preferred embodiment, it is possible to specify a prioritization for an individual input interface of a functional unit. It is also conceivable to specify a different prioritization for different input interfaces of the functional unit.

Bei einer weiteren vorteilhaften Ausführungsform ist es möglich, eine derartige Priorisierung für alle möglichen Relationen zwischen einer die Daten bzw. Datenpakete sendenden Funktionseinheit und einer empfangenden Funktionseinheit bzw. ihrer Eingangsschnittstelle vorzugeben.In a further advantageous embodiment, it is possible to predetermine such prioritization for all possible relations between a functional unit transmitting the data or data packets and a receiving functional unit or its input interface.

Bei einer weiteren Ausführungsform ist vorgesehen, dass die Priorisierung statisch festverdrahtet vorgegeben ist. Alternativ oder ergänzend kann auch eine statische aber konfigurierbare Priorisierung vorgesehen sein. Alternativ oder ergänzend kann auch eine dynamische Priorisierung vorgesehen sein. Die dynamische Priorisierung kann beispielsweise geeignet sein, sicherzustellen, dass alle Funktionseinheiten eine gleiche Anzahl von Datenpaketen übertragen können, oder eine Funktionseinheit eine gleiche Anzahl von Datenpaketen von verschiedenen Funktionseinheiten empfangen kann, und/oder eine Herabstufung der Priorität vorzunehmen wenn Datenpakete zum jeweiligen Zeitpunkt nicht oder nicht vorzugsweise akzeptiert werden, und/oder die Priorität herabzustufen, wenn Funktionseinheiten zum aktuellen Zeitpunkt beschäftigt sind, und/oder die Priorität herabzustufen wenn Datenpaket-Puffer in der primären Verbindungseinheit ganz oder teilweise gefüllt sind, und/oder die Priorität herabzustufen wenn interne Puffer der Funktionseinheiten ganz oder teilweise gefüllt sind, und/oder die Priorität heraufzusetzen wenn Datenpakete über eine entsprechende Kennzeichnung verfügen, etc.In a further embodiment, it is provided that the prioritization is statically fixed wired. Alternatively or additionally, a static but configurable prioritization can be provided. Alternatively or additionally, a dynamic prioritization can also be provided. The dynamic prioritization may, for example, be suitable for ensuring that all functional units can transmit an equal number of data packets, or a functional unit can receive an equal number of data packets from different functional units, and / or downgrade the priority if data packets do not or at that particular time not preferably be accepted and / or downgrade the priority when functional units are busy at the current time and / or downgrade the priority when data packet buffers in the primary connection unit are completely or partially filled, and / or downgrade the priority if internal buffers Function units are completely or partially filled, and / or increase the priority if data packets have an appropriate label, etc.

Vorteilhafterweise ist eine gegebenenfalls vorhandene dynamische Priorisierung in ihrem Verhalten konfigurierbar.Advantageously, any existing dynamic prioritization is configurable in its behavior.

Die Priorisierung ist unabhängig von der Ausführungsform vorzugsweise mittels einer Hardwareschaltung realisiert.The prioritization is realized independently of the embodiment, preferably by means of a hardware circuit.

Bei weiteren Ausführungsformen ist es möglich, Maßnahmen zur Implementierung der vorstehend genannten Priorisierung sowohl innerhalb der primären Verbindungseinheit 150 (8B) als auch innerhalb wenigstens einer Funktionseinheit 1400_A1, 14000_A2 vorzusehen.In further embodiments, it is possible to implement measures for implementing the aforementioned prioritization both within the primary connection unit 150 ( 8B ) as well as within at least one functional unit 1400_A1, 14000_A2.

Bei einer vorteilhaften Ausführungsform ist es möglich, eine Priorisierung in Abhängigkeit von Inhalten der zu übertragenen Datenpakete vorzusehen, beispielsweise in Abhängigkeit von Steuerflags bzw. Steuerinformationen, welche in Datenpaketen enthalten sein können.In an advantageous embodiment, it is possible to provide a prioritization as a function of contents of the data packets to be transmitted, for example as a function of control flags or control information, which may be contained in data packets.

Die vorstehend genannten Maßnahmen können vorteilhaft mit einigen oder allen der anderen vorstehend genannten Aspekte der Ausführungsformen kombiniert werden. Insbesondere können die vorstehend genannten Maßnahmen auch mit einer Kopplung von mehreren Funktionseinheiten, wie sie vorstehend beispielhaft unter Bezugnahme auf 7 beschrieben worden ist, kombiniert werden.The above measures may be advantageously combined with some or all of the other aspects of the embodiments mentioned above. In particular, the above-mentioned measures can also be used with a coupling of a plurality of functional units, as described above by way of example with reference to FIG 7 has been described.

Weiteren Ausführungsformen zufolge können die vorstehend genannten Maßnahmen zur Datenflusskontrolle bzw. generell zur Beeinflussung eines Datenflusses einzeln oder in beliebiger Kombination miteinander beispielsweise auch verwendet werden für die Übertragung von Daten zwischen einer oder mehreren der erfindungsgemäßen Funktionseinheiten und wenigstens einer Speichereinrichtung wie beispielsweise der sekundären Speichereinrichtung 160 (1F).According to further embodiments, the aforementioned measures for data flow control or generally for influencing a data flow individually or in any combination with each other, for example, also be used for the transmission of data between one or more functional units according to the invention and at least one memory device such as the secondary memory device 160 ( 1F ).

Durch die vorstehend genannten Maßnahmen können vorteilhaft auch Blockierungen (englisch: deadlocks) vermieden werden.By the measures mentioned above, blockages (English: deadlocks) can be advantageously avoided.

Bei weiteren Ausführungsformen ist auch denkbar, wenigstens eine Funktionseinheit so auszubilden, dass sie eine oder mehrere der vorstehend genannten Maßnahmen zur Beeinflussung eines Datenflusses bezüglich sich selbst und/oder der primären Verbindungseinheit 150 und/oder bezüglich wenigstens einer weiteren Funktionseinheit und/oder bezüglich der sekundären Speichereinrichtung 160 ausführen kann.In further embodiments, it is also conceivable to design at least one functional unit such that it has one or more of the abovementioned measures for influencing a data flow with respect to itself and / or the primary connection unit 150 and / or with regard to at least one further functional unit and / or with respect to the secondary storage device 160 can perform.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinheit über mindestens eine Überwachungseinheit (englisch: watchdog) verfügt, die dazu ausgebildet ist, eine Blockierung wenigstens einer Funktionseinheit und/oder wenigstens eines Rechenkerns zu erkennen und sodann gegebenenfalls Gegenmaßnahmen wie beispielsweise eine Fehlerreaktion oder einen Neustart der Recheneinheit bzw. der betreffenden Funktionseinheit einzuleiten. Ein Neustart der betreffenden Funktionseinheit kann bei einer Ausführungsform beispielsweise direkt und/oder mittelbar durch einen Neustart der gesamten flexiblen Hardwareerweiterung 1500 und/oder mittelbar durch einen Neustart der gesamten Recheneinheit 100 erfolgen. Die Überwachungseinheit kann beispielsweise in eine Funktionseinheit integriert sein, und/oder anderen Komponenten der erfindungsgemäßen Recheneinheit zugeordnet sein und/oder sich extern zu der Recheneinheit befinden. Beispielsweise kann bei einer weiteren Ausführungsform die Funktionalität der Überwachungseinheit auch der primären Verbindungseinheit zugeordnet sein.In a further advantageous embodiment, it is provided that the arithmetic unit has at least one watchdog, which is designed to detect a blockage of at least one functional unit and / or at least one arithmetic and then optionally countermeasures such as an error response or a Restart the arithmetic unit or the respective functional unit to initiate. In one embodiment, a restart of the respective functional unit can, for example, directly and / or indirectly by restarting the entire flexible hardware extension 1500 and / or indirectly by restarting the entire arithmetic unit 100 respectively. The monitoring unit may for example be integrated into a functional unit, and / or be associated with other components of the computing unit according to the invention and / or be located external to the computing unit. For example, in another embodiment, the functionality of the monitoring unit may also be assigned to the primary connection unit.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • WO 2011/120823 A1 [0193]WO 2011/120823 A1 [0193]
  • DE 102015207323 [0284, 0286]DE 102015207323 [0284, 0286]

Claims (25)

Recheneinheit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g), insbesondere Mikrocontroller für ein Steuergerät (1004) für eine Brennkraftmaschine (1002) eines Kraftfahrzeugs (1000), mit wenigstens einem Rechenkern (110a, 110b, 110c), einer primären Speichereinrichtung (120), und wenigstens einer Hauptverbindungseinheit (130) zur Verbindung des wenigstens einen Rechenkerns (110a, 110b, 110c) mit der primären Speichereinrichtung (120), wobei die Recheneinheit (100) wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) aufweist, wobei wenigstens eine erste Funktionseinheit (140a) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) dazu ausgebildet ist, a) erste Daten von wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) zu empfangen (302) und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) zu senden (304).Computing unit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g), in particular microcontroller for a control unit (1004) for an internal combustion engine (1002) of a motor vehicle (1000), having at least one arithmetic core (110a, 110b, 110c) a primary memory device (120), and at least one main connection unit (130) for connecting the at least one arithmetic core (110a, 110b, 110c) to the primary memory device (120), wherein the arithmetic unit (100) comprises at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g), wherein at least a first functional unit (140a) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a 1400b, 1400c, 1400e, 1400f, 1400g) is adapted to a) first data from at least one further functional unit (140, 140b) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b ; 1400c; 1400e; 1400f; 1400g) to receive (302) and / or b) second data to at least one further functional unit (140, 140b) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400F; 1400g) (304). Recheneinheit (100) nach Anspruch 1, wobei wenigstens eine primäre Verbindungseinheit (150) vorgesehen ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung (a1, a2) zwischen der ersten Funktionseinheit (140a) und wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) herzustellen.Arithmetic unit (100) according to Claim 1 , wherein at least one primary connection unit (150) is provided, which is designed, at least temporarily, a, in particular direct, data connection (a1, a2) between the first functional unit (140a) and at least one further functional unit (140, 140b) of the at least two Functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g). Recheneinheit (100) nach Anspruch 2, wobei die primäre Verbindungseinheit (150) wenigstens eine der folgenden Komponenten aufweist: ein Koppelnetz (152a), ein Bussystem (152b), wenigstens eine direkte Datenverbindung (152c) zwischen wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g).Arithmetic unit (100) according to Claim 2 wherein the primary connection unit (150) comprises at least one of: a switching network (152a), a bus system (152b), at least one direct data connection (152c) between at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei mehrere Gruppen (G1, G2) von Funktionseinheiten (140c, 140d, 140e; 140f, 140g) vorgesehen sind, und wobei jeder der mehreren Gruppen (G1, G2) wenigstens eine primäre Verbindungseinheit (150_1, 150_2) zugeordnet ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen Funktionseinheiten (140c, 140d, 140e) der betreffenden Gruppe (G1, G2) herzustellen.Arithmetic unit (100) according to one of the preceding claims, wherein a plurality of groups (G1, G2) of functional units (140c, 140d, 140e; 140f, 140g) are provided, and wherein each of the plurality of groups (G1, G2) comprises at least one primary connection unit ( 150_1, 150_2), which is designed to produce, at least temporarily, a, in particular direct, data connection between functional units (140c, 140d, 140e) of the relevant group (G1, G2). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine sekundäre Verbindungseinheit (155; 155a; 155c; 155d) vorgesehen ist, die dazu ausgebildet ist, a) eine Datenverbindung (a3; a4, a5; a9, a10) zwischen der Hauptverbindungseinheit (130) und wenigstens einer Funktionseinheit (140, 140a, 140b, 140c, 140d, 140e, 140f, 140g, 140h, 140i) und/oder b) eine Datenverbindung (a3, a4, a5, a6, a7, a8, a8', a15) zwischen der Hauptverbindungseinheit (130) und wenigstens einer primären Verbindungseinheit (150; 150a, 150b) herzustellen.The computing unit (100) of any one of the preceding claims, wherein there is provided at least one secondary connection unit (155; 155a; 155c; 155d) adapted to: a) a data connection (a3; a4, a5; a9, a10) between the main connection unit (130) and at least one functional unit (140, 140a, 140b, 140c, 140d, 140e, 140f, 140g, 140h, 140i) and / or b) a data connection (a3, a4, a5, a6, a7, a8, a8 ' , a15) between the main connection unit (130) and at least one primary connection unit (150; 150a, 150b). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei mindestens eine sekundäre Speichereinrichtung (160) vorgesehen ist, wobei zwischen der mindestens einen sekundären Speichereinrichtung (160) und wenigstens einer Funktionseinheit (140i, 140k) eine direkte Datenverbindung (a13, a12) besteht.Arithmetic unit (100) according to one of the preceding claims, wherein at least one secondary memory device (160) is provided, wherein between the at least one secondary memory device (160) and at least one functional unit (140i, 140k) a direct data connection (a13, a12) exists. Recheneinheit (100) nach Anspruch 6, wobei die mindestens eine sekundäre Speichereinrichtung (160) mehrere Speicherbänke (162a, 162b, 162c, ..., 162n) aufweist, wobei insbesondere die mindestens eine sekundäre Speichereinrichtung (160) dazu ausgebildet ist, einen parallelen Datenzugriff auf wenigstens zwei der mehreren Speicherbänke (162a, 162b, 162c, ..., 162n) zu ermöglichen.Arithmetic unit (100) according to Claim 6 wherein the at least one secondary memory device (160) comprises a plurality of memory banks (162a, 162b, 162c, ..., 162n), wherein in particular the at least one secondary memory device (160) is adapted to provide parallel data access to at least two of the plurality of memory banks (162a, 162b, 162c, ..., 162n). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet ist.Arithmetic unit (100) according to one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) is designed as a hardware circuit, in particular completely as a hardware circuit is. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) wenigstens eines der folgenden Elemente aufweist: einen Mikrocontroller, einen Software ausführenden Rechenkern, einen digitalen Signalprozessor, eine programmierbare Logikschaltung, einen anwendungsspezifischen integrierten Schaltkreis, einen durch ein Gatter- und/oder Transistor Array vorgefertigten aber noch nicht anwendungsspezifisch verdrahteten integrierten Schaltkreis.The computing unit (100) of any one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) comprises at least one of: a microcontroller , a software executing kernel, a digital signal processor, a programmable logic circuit, an application specific integrated circuit, a pre-fabricated by a gate and / or transistor array but not yet application-specific wired integrated circuit. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b) wenigstens eine der folgenden Komponenten aufweist: Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator, arithmetisch-logische Einheit, Speichereinheit, Speicherzugriffseinheit, Register, Multiplexer, Demultiplexer, Schnittstelle, Kommunikationsschnittstelle, Einheit zur Berechnung von Exponentialfunktionen, Einheit zur Berechnung von trigonometrischen Funktionen, Einheit zur Berechnung von logarithmischen Funktionen, Einheit zur Berechnung von Wurzelfunktionen, Lookup-Tabelle(n).The arithmetic unit (100) of any of the preceding claims, wherein at least one of the functional units (140, 140a, 140b) comprises at least one of: adder, multiplier, divider, shift register, barrel shifter, comparator, multiplication accumulator, arithmetic logic unit, Memory unit, memory access unit, register, multiplexer, demultiplexer, interface, communication interface, unit for calculating exponential functions, unit for calculating trigonometric functions, unit for calculating logarithmic Functions, unit for calculating root functions, lookup table (s). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b) wenigstens ein grobgranulares Hardwareelement (e1, e2; 1420) aufweist oder als grobgranulares Hardwareelement ausgebildet ist.Arithmetic unit (100) according to one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b) has at least one coarse granular hardware element (e1, e2; 1420) or is designed as a coarse-granular hardware element. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei die Recheneinheit (100) dazu ausgebildet ist, eine Konfiguration wenigstens einer Funktionseinheit (140, 140a, 140b, ..., 140p) zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens einer Funktionseinheit (140, 140a, 140b, ..., 140p) zu überprüfen.Arithmetic unit (100) according to any one of the preceding claims, wherein the arithmetic unit (100) is adapted to change a configuration of at least one functional unit (140, 140a, 140b, ..., 140p) and / or a state or the configuration at least a functional unit (140, 140a, 140b, ..., 140p) to check. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei die Recheneinheit (100) dazu ausgebildet ist, eine Konfiguration der primären Verbindungseinheit (150) und/oder wenigstens einer sekundären Verbindungseinheit (150a, 150b) zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens der primären Verbindungseinheit (150) und/oder wenigstens einer sekundären Verbindungseinheit (150a, 150b) zu überprüfen.The arithmetic unit (100) according to one of the preceding claims, wherein the arithmetic unit (100) is adapted to modify a configuration of the primary connection unit (150) and / or at least one secondary connection unit (150a, 150b) and / or a state or the Configuration of at least the primary connection unit (150) and / or at least one secondary connection unit (150a, 150b) to check. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140j, 140k, 140l) wenigstens eine, insbesondere direkte, Datenverbindung (a16) zu einer Unterbrechungsanforderungs-Verteilereinrichtung (170) der Recheneinheit (100) aufweist, und/oder wenigstens eine, insbesondere mittelbar über eine Vorstufe (170a) verlaufende, Datenverbindung (a16, a18) zu einer Unterbrechungsanforderungs-Verteilereinrichtung (170) der Recheneinheit (100) aufweist.Arithmetic unit (100) according to one of the preceding claims, wherein at least one of the functional units (140j, 140k, 140l) has at least one, in particular direct, data connection (a16) to an interrupt request distributor device (170) of the arithmetic unit (100), and / or at least one, in particular indirectly via a preliminary stage (170a) extending, data connection (a16, a18) to an interrupt request distribution means (170) of the arithmetic unit (100). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140l, 140m) wenigstens eine, insbesondere direkte, Datenverbindung (a17) zu einer Eingabeschnittstelle (180) und/oder Ausgabeschnittstelle (180) der Recheneinheit (100) aufweist.Arithmetic unit (100) according to one of the preceding claims, wherein at least one of the functional units (140l, 140m) has at least one, in particular direct, data connection (a17) to an input interface (180) and / or output interface (180) of the arithmetic unit (100). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b) dazu ausgebildet ist, ihre eigene Konfiguration und/oder eine Konfiguration wenigstens einer weiteren Funktionseinheit (140c) zu verändern.Arithmetic unit (100) according to one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b) is adapted to change its own configuration and / or a configuration of at least one further functional unit (140c). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b) dazu ausgebildet ist, eine Konfiguration der primären Verbindungseinheit (150) und/oder wenigstens einer sekundären Verbindungseinheit (150a, 150b) zu verändern und/oder einen Zustand bzw. die Konfiguration wenigstens der primären Verbindungseinheit (150) und/oder wenigstens einer sekundären Verbindungseinheit (150a, 150b) zu überprüfen.The arithmetic unit (100) of any one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b) is adapted to alter a configuration of the primary connection unit (150) and / or at least one secondary connection unit (150a, 150b). or to check a state or configuration of at least the primary connection unit (150) and / or at least one secondary connection unit (150a, 150b). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b) dazu ausgebildet ist, Daten aus der primären Speichereinrichtung (120) und/oder aus der sekundären Speichereinrichtung (160) und/oder aus weiteren Peripheriekomponenten (125) zu lesen und/oder in diese zu schreiben.Arithmetic unit (100) according to one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b) is adapted to receive data from the primary memory device (120) and / or from the secondary memory device (160) and / or from other peripheral components (125) to read and / or write in these. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b; 1400) eine Eingangsschnittstelle (1402) zum Empfang der ersten Daten und/oder eine Ausgangsschnittstelle (1404) zur Ausgabe der zweiten Daten aufweist.The arithmetic unit (100) of any of the preceding claims, wherein at least one of the functional units (140, 140a, 140b; 1400) has an input interface (1402) for receiving the first data and / or an output interface (1404) for outputting the second data. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b; 1400) eine lokale Steuereinrichtung (1410) zur Steuerung eines Betriebs der Funktionseinheit aufweist.The arithmetic unit (100) of any one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b; 1400) includes local control means (1410) for controlling operation of the functional unit. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b; 1400) eine lokale Berechnungseinheit (1420) aufweist.The computing unit (100) of any one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b; 1400) comprises a local computing unit (1420). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b; 1400) einen lokalen Konfigurationsspeicher (1430) aufweist, wobei der lokale Konfigurationsspeicher (1430) insbesondere eine Mehrzahl von Konfigurationsregistern (1432a, 1432b, 1432c, 1432d) umfasst.The computing unit (100) of any one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b; 1400) includes a local configuration memory (1430), the local configuration memory (1430) having in particular a plurality of configuration registers (1432a, 1432b, 1432c , 1432d). Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b; 1400) einen lokalen Funktionsspeicher (1440) aufweist, wobei der lokale Funktionsspeicher (1440) insbesondere wenigstens ein Funktionsregister (1442a) umfasst.The arithmetic unit (100) of any one of the preceding claims, wherein at least one of the functional units (140, 140a, 140b; 1400) comprises a local function memory (1440), the local functional memory (1440) comprising in particular at least one function register (1442a). Steuergerät (1004), insbesondere für eine Brennkraftmaschine (1002) eines Kraftfahrzeugs (1000), mit wenigstens einer Recheneinheit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g) nach einem der vorstehenden Ansprüche.Control unit (1004), in particular for an internal combustion engine (1002) of a motor vehicle (1000), having at least one computing unit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g) according to one of the preceding claims. Verfahren zum Betreiben einer Recheneinheit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g), insbesondere eines Mikrocontrollers für ein Steuergerät (1004) für eine Brennkraftmaschine (1002) eines Kraftfahrzeugs (1000), mit wenigstens einem Rechenkern (110a, 110b, 110c), einer primären Speichereinrichtung (120), und wenigstens einer Hauptverbindungseinheit (130) zur Verbindung des wenigstens einen Rechenkerns (110a, 110b, 110c) mit der primären Speichereinrichtung (120), wobei die Recheneinheit (100) wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) aufweist, wobei wenigstens eine erste Funktionseinheit (140a) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) a) erste Daten von wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) empfängt (302) und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) sendet (304).Method for operating a computing unit (100; 100a; 100b; 100c; 100d; 100e; 100f; 100g), in particular a microcontroller for a control unit (1004) for an internal combustion engine (1002) of a motor vehicle (1000), having at least one arithmetic core (110a , 110b, 110c), a primary storage device (120), and at least one main connection unit (130) for connecting the at least one arithmetic core (110a, 110b, 110c) with the primary memory device (120), wherein the arithmetic unit (100) has at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f 1400g), wherein at least a first functional unit (140a) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) a) first data of at least one another functional unit (140, 140b) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) receives (302) and / or b) second data at least another functional unit (140, 140b) of the at least two functional units (140, 140a, 140b, .., 140m; 1400; 1400a; 1400b; 1400c; 1400e; 1400f; 1400g) transmits (304).
DE102017200456.8A 2017-01-12 2017-01-12 Arithmetic unit and operating method for this Pending DE102017200456A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017200456.8A DE102017200456A1 (en) 2017-01-12 2017-01-12 Arithmetic unit and operating method for this
CN201810026602.2A CN108304344B (en) 2017-01-12 2018-01-11 Computing unit and method for operating same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017200456.8A DE102017200456A1 (en) 2017-01-12 2017-01-12 Arithmetic unit and operating method for this

Publications (1)

Publication Number Publication Date
DE102017200456A1 true DE102017200456A1 (en) 2018-07-12

Family

ID=62636644

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017200456.8A Pending DE102017200456A1 (en) 2017-01-12 2017-01-12 Arithmetic unit and operating method for this

Country Status (2)

Country Link
CN (1) CN108304344B (en)
DE (1) DE102017200456A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488963A (en) * 2019-01-28 2020-08-04 中科寒武纪科技股份有限公司 Neural network computing device and method
CN112972892A (en) * 2021-02-05 2021-06-18 杭州诺为医疗技术有限公司 Method and device for automatically detecting epilepsy based on line length algorithm for implanted closed-loop system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017209856A1 (en) * 2017-06-12 2018-12-13 Robert Bosch Gmbh Arithmetic unit and operating method for this
EP4063977A4 (en) * 2020-03-27 2022-12-14 Huawei Technologies Co., Ltd. Interface circuit for vehicle-mounted control unit, device, vehicle and control method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011120823A1 (en) 2010-03-31 2011-10-06 Robert Bosch Gmbh Circuit arrangement for a data processing system and method for data processing
DE102015207323A1 (en) 2015-04-22 2016-10-27 Robert Bosch Gmbh Method and apparatus for synthesizing a circuit layout

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2629230B1 (en) * 1988-03-22 1990-12-28 Texas Instruments France HIGH SPEED DATA CONTROL AND ACQUISITION DEVICE
US5699537A (en) * 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US7058065B2 (en) * 2000-02-08 2006-06-06 Mips Tech Inc Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing
WO2003046725A1 (en) * 2001-11-30 2003-06-05 Fujitsu Ten Limited Microcomputer logic developing apparatus
DE10302061B4 (en) * 2003-01-21 2016-03-24 Robert Bosch Gmbh Method for operating an internal combustion engine, in particular in a motor vehicle, and computer program, storage medium, control and / or regulating device, and internal combustion engine
JP4795025B2 (en) * 2006-01-13 2011-10-19 キヤノン株式会社 Dynamic reconfigurable device, control method, and program
US20080263319A1 (en) * 2007-04-17 2008-10-23 Cypress Semiconductor Corporation Universal digital block with integrated arithmetic logic unit
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
DE102015209123A1 (en) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Computing device and operating method for this
DE102015211320A1 (en) * 2015-06-19 2016-12-22 Robert Bosch Gmbh Storage unit for automatically multiplying the contents of a storage location, and data network with storage unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011120823A1 (en) 2010-03-31 2011-10-06 Robert Bosch Gmbh Circuit arrangement for a data processing system and method for data processing
DE102015207323A1 (en) 2015-04-22 2016-10-27 Robert Bosch Gmbh Method and apparatus for synthesizing a circuit layout

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488963A (en) * 2019-01-28 2020-08-04 中科寒武纪科技股份有限公司 Neural network computing device and method
CN111488963B (en) * 2019-01-28 2023-11-24 中科寒武纪科技股份有限公司 Neural network computing device and method
CN112972892A (en) * 2021-02-05 2021-06-18 杭州诺为医疗技术有限公司 Method and device for automatically detecting epilepsy based on line length algorithm for implanted closed-loop system

Also Published As

Publication number Publication date
CN108304344B (en) 2023-09-26
CN108304344A (en) 2018-07-20

Similar Documents

Publication Publication Date Title
EP0948842B1 (en) METHOD FOR AUTOMATIC DYNAMIC UNLOADING OF DATA FLOW PROCESSORS (DFP) AS WELL AS MODULES WITH BIDIMENSIONAL OR MULTIDIMENSIONAL PROGRAMMABLE CELL STRUCTURES (EPGAs, DPGAs OR THE LIKE)
EP0961980B1 (en) Method for self-synchronization of configurable elements of a programmable component
DE60037065T2 (en) Transmission control with hub and gate architecture
EP1329816B1 (en) Method for automatic dynamic unloading of data flow processors (dfp) as well as modules with bidimensional or multidimensional programmable cell structures (fpgas, dpgas or the like)
EP1228440B1 (en) Sequence partitioning in cell structures
DE4416881C2 (en) Method for operating a data processing device
DE102017200456A1 (en) Arithmetic unit and operating method for this
EP1361517A2 (en) Data processing method and apparatus therefore
DE19722365A1 (en) Reconfigurable computer component with adaptive logic processor
WO2004021176A2 (en) Method and device for processing data
DE19704044A1 (en) Address generation with systems having programmable modules
EP1599794B1 (en) Processor with different types of control units for commonly used resources
EP1540507B1 (en) Device for processing data with an array of reconfigurable elements
EP1927063B1 (en) Hardware programming and layout design
DE102005005073A1 (en) Reconfigurable architecture for parallel calculation of any algorithm whereby input and output variables are defined at particular times and the architecture has means for controlling the output variables in a clocked manner
DE112017007865T5 (en) NETWORKED SHUFFLE DATA STORAGE
DE102017209856A1 (en) Arithmetic unit and operating method for this
DE102017217908A1 (en) Arithmetic unit and operating method for this
DE102006025133A1 (en) Storage and storage communication system
WO2002071249A9 (en) Method and devices for treating and/or processing data
DE102017208522A1 (en) Arithmetic unit and operating method for this
DE2459476C3 (en)
EP1789889B1 (en) Computer with a reconfigurable architecture for integrating a global cellular automaton
DE102017200458A1 (en) Arithmetic unit and operating method for this
DE102017200460A1 (en) Arithmetic unit and operating method for this

Legal Events

Date Code Title Description
R012 Request for examination validly filed