WO2023275348A1 - Simulator und verfahren zum betreiben eines simulators - Google Patents

Simulator und verfahren zum betreiben eines simulators Download PDF

Info

Publication number
WO2023275348A1
WO2023275348A1 PCT/EP2022/068232 EP2022068232W WO2023275348A1 WO 2023275348 A1 WO2023275348 A1 WO 2023275348A1 EP 2022068232 W EP2022068232 W EP 2022068232W WO 2023275348 A1 WO2023275348 A1 WO 2023275348A1
Authority
WO
WIPO (PCT)
Prior art keywords
simulator
matrix
sim
multiplier
adder
Prior art date
Application number
PCT/EP2022/068232
Other languages
English (en)
French (fr)
Inventor
Axel Kiffe
Thorben Hoffstadt
Original Assignee
Dspace 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 Dspace Gmbh filed Critical Dspace Gmbh
Priority to US18/572,221 priority Critical patent/US20240289418A1/en
Priority to CN202280046970.8A priority patent/CN117597636A/zh
Publication of WO2023275348A1 publication Critical patent/WO2023275348A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric

Definitions

  • the application relates to a simulator with a computer and a method for operating a simulator.
  • the task of the application is to achieve better utilization of the simulator's existing resources for the calculation, in order to achieve a balance between a latency time in the simulator and the required hardware resources.
  • a simulator with a computer and a method for operating a simulator with such a computer with the features of the independent patent claims have the advantage that the parallelization of computing tasks of at least one multiplier and at least one adder achieves improved utilization of the available resources for the calculation will.
  • a simulator with a computer simulating a technical system and, depending on an input vector, determining an output vector for the output of an output signal of the simulator by matrix-vector multiplication.
  • the matrix represents the technical system, with the computer for the matrix-vector multiplication having at least one multiplier and at least one adder.
  • the at least one multiplier and the at least one adder are each configured for time division multiplexing to perform their respective tasks.
  • a scheduler is provided, which assigns an output value of the at least one multiplier to the at least one adder. In addition to the input values of an intended multiplication, the scheduler can assign the at least one multiplier.
  • the method for operating the simulator is designed accordingly with a computer.
  • a simulator is to be understood as meaning a device which is suitable for testing a device, for example a control unit, with regard to its functionality and possibly also its durability. i.e.
  • the simulator is connected to the device that is to be tested in order to pass on output values in the form of an output signal to the device by simulating the technical system depending on corresponding input values in the form of an input signal, so that the device then functions properly can react.
  • the output values of the device are recorded by the simulator as its input values and processed by the simulated technical system.
  • Such a simulator therefore has interfaces in order to establish the appropriate connections to the device. These can be wired, but also wireless.
  • Such simulators are mainly used in the automotive industry, but also in all other industries de verwen the technical devices, especially with software, so that this software can be tested for their functionality or for the security of the process from reaching. Such simulators therefore provide an environment to test these devices. Devices that have software for their operation must be checked for their respective states in order to verify the correct process in all possible situations, especially in the case of safety-critical devices such as a vehicle or other machine.
  • the central element of such a simulator is a computer.
  • This computer can have one or more computers, for example microprocessors, microcontrollers, signal processors, but also so-called FPGAs, as can be seen from the dependent claims.
  • An FPGA is a so-called Field Programmable Gate Array, which represents an integrated circuit in digital technology, in which a logic circuit can be loaded. As the name suggests, the corresponding function is loaded onto this FPGA and programmed beforehand.
  • the computer can have such an FPGA or several and in combination also other processors such as a microprocessor, microcontroller, etc.
  • the technical system according to this application is to be understood as meaning all possible devices that are intended to be simulated by the simulator in order to be connected to another device during a test phase to be brought.
  • the simulator will then use its computer to simulate this technical system as a function of corresponding input values in order to generate output values as a function of these input values.
  • This technical system is represented by a matrix.
  • the input values are included in an input vector.
  • the reaction of the technical system to the input values is determined by what is known as matrix-vector multiplication, ie the matrix is multiplied by the input vector.
  • matrix coefficients of a row are first multiplied by the vector components of the input vector. Adding these products gives the first component of the output vector. This is then carried out line by line in such a way that the output vector is then available in its entirety. Therefore, multipliers and adders are needed for this matrix vector multiplication to perform it. These are then set up in the computer according to the existing hardware.
  • the at least one multiplier and the at least one adder are configured for a time division multiplex for the implementation of their respective tasks.
  • a so-called scheduler is provided according to this application. This scheduler allocates an output value of the at least one multiplier to the at least one adder.
  • Such a skillful assignment makes it possible to use the available resources for matrix vector multiplication in a suitable manner. This is achieved by using the existing multipliers and adders in parallel.
  • Both the at least one multiplier and the at least one adder as well as the scheduler can be implemented in software and/or hardware on the computer of the simulator.
  • the technical system can be a power electronics circuit with at least one switch and the matrix can represent the power electronics circuit.
  • a power electronics circuit forms electrical energy and uses in particular switches, in particular semiconductor switches, which are designed for example as transistors and / or thyristors and / or diodes.
  • the power electronics circuit controls an electric motor, for example, diagnoses data from the electric motor and/or is connected to an energy source, for example a battery or a mains connection, in order to convert this energy accordingly for the electric motor.
  • the power electronics circuit converts alternating current into direct current or vice versa. There is then a converter. If such power electronics circuits become more complex, ie if several switches are used, the simulation of such a power electronics circuit is correspondingly complex.
  • the subject of the application is therefore resource-saving in that existing multipliers and adders are used in parallel, at least in part.
  • the at least one multiplier and/or the at least one adder can begin its respective fol lowing task before the respective current task is completed with the respective result of this current task. In this way, parallelization can be achieved which allows time to be gained and not to wait until the at least one multiplier has completed the calculation of the result, for example.
  • the following task is already started after one cycle has elapsed.
  • the parallelization can thus be improved, so that, for example, the addition can be started as soon as the at least one multiplier has completed a multiplication of a previous cycle.
  • the computer has a processor or an FPGA as described above.
  • the input vector has electrical parameters that are intended to be applied to the technical system, in particular to the power electronics circuit. i.e. the input vector has e.g. B. Voltage and/or current values that are applied to the technical system in order to operate it.
  • the scheduler assigns matrix coefficients and vector components for the matrix-vector multiplication to the at least one multiplier and/or the at least one adder and/or further hardware and/or software components of the computer.
  • the scheduler can therefore be understood as a control entity that organizes the matrix-vector multiplication.
  • a matrix coefficient is an entry in a matrix, i. H. there is exactly one such matrix coefficient at a given column and given row.
  • a vector is known to have multiple components, and those vector components are addressed herein.
  • the scheduler assigns the respective result of the respective task of the at least one respective multiplier to the at least one respective adder for carrying out a further task, ie the addition.
  • the result of the multiplication of the at least one multiplier is thus immediately used for the next task, ie the addition. This can shorten the execution time of matrix vector multiplication.
  • the calculator has a number of multipliers which depends on the dimension of the matrix. According to this application, it has been recognized that the number of multipliers can be determined according to the dimension of the matrix in such a way that the ratio of the required hardware resources and the latency time for the matrix-vector multiplication can advantageously be adjusted.
  • the dimension of the matrix is the product of the multiplication of the number of columns and the number of rows.
  • a preferred number of multipliers is half the dimension of the matrix.
  • the simulator checks the matrix before the matrix-vector multiplication, the execution of the task of the at least one multiplier and/or the execution of the task of the at least one adder and/or the assignment of the output value by the scheduler depending on the result of the check depends. In this way, particular values of the matrix coefficients can be addressed and the execution of the multiplication and/or the execution of the addition and/or the assignment to the adder can depend on whether the component has assumed a particular value. In the case of multiplication, special values are in particular the values 1 and/or 0.
  • FIG. 1 shows the connection of a simulator with a device to be tested
  • FIG. 2 shows a schematic hardware structure of the simulator
  • FIG. 3 shows a block diagram to explain how the simulator or the method works
  • FIG. 4 shows timing diagrams of matrix vector multiplication
  • FIG. 5 Examples of so-called latency times and numbers of multipliers and adders that cause them.
  • FIG. 1 shows a SIM simulator, which in the present case is connected to what is known as a device under test DUT via lines.
  • the simulator SIM receives an input signal from the device DUT in the form of an input vector v, which the simulator SIM multiplies by means of a matrix M, which represents the technical system, via matrix-vector multiplication in order to produce an output vector b that is then output to the device DUT.
  • the technical system is simulated by the simulator SIM.
  • the device DUT can be tested.
  • the SIM simulator simulates a power electronics circuit.
  • the device is, for example, a control unit that controls the power electronics circuit, so that its functions can then be tested according to corresponding specifications of the control unit.
  • FIG. 2 schematically shows the hardware structure of the SIM simulator.
  • a processor mP which can be a microprocessor or a microcontroller, for example, and a so-called FPGA, ie a Field Programmable Gate Array, which is programmed according to the structure of the power electronics circuit, for example.
  • FPGA Field Programmable Gate Array
  • input/output interface IO via which the input vector v and then correspondingly the output vector b are received or output.
  • the input/output takes place via registers, for example.
  • FIG. 3 shows the sequence that represents the method according to this application and the mode of operation of the simulator.
  • the scheduler S controls this sequence of execution of the steps/blocks 30, 31, 32, 33, 34.
  • a step/block 30 is supplied with a matrix M with matrix coefficients Mil, M12, ..., M21 ..., Mmn and a vector v with vector components v1, v2, ..., vn.
  • corresponding matrix coefficients Mil, M12,..., M21..., Mmn are each associated with a corresponding component v1, v2,..., vn of the input vector v.
  • at least one multiplier Mul, Mu2, Mu3 carries out the multiplication between the matrix coefficients Mil, M12, .
  • step/block 32 ie the results of these multiplications are assigned by the scheduler S to the corresponding adders Add1, Add2 in accordance with a specification.
  • step/block 33 the multiplication results are then added.
  • step/block 34 the scheduler S stores the corresponding results for the output vector b in corresponding registers for output via the input/output interface IO.
  • the method and the simulator are designed in such a way that individual operations of the steps/blocks 30, 31, 32, 33, 34 are parallelized by multiplexing and operations of the following steps/blocks can be carried out before other operations of the preceding steps /blocks are finished.
  • FIG. 4 now shows the sequence according to this application in an example in a time diagram.
  • the cycle time T FPGA of this FPGA should be 8 ns in the present case.
  • three multipliers Mul, Mu2 and Mu3 are provided here, as well as two adders Add1 and Add2.
  • two clocks T FPGA are provided for an arithmetic operation, ie for a multiplication and for an addition.
  • the multiplication of the first matrix coefficients or vector components is now begun, specifically by multiplying the multipliers Mul, Mu2 and in Mu3 and thereby multiplying the coefficients of the matrix M with components of the vector v Mil * VI, M12 * V2 and M13 * V3.
  • the next multiplication of the next matrix coefficients or input vector components is already started and at the same time the multiplications started in the first cycle T FPGA are completed. In this staggered manner, all multiplications are performed by the three multipliers Mul, Mu2 and Mu3.
  • the multiplication results are available, they are sent to the adders Addl and Add2 assigned by the scheduler S. But here, too, the next addition is already started in the second cycle T FPGA by the respective adder. It is also shown here that the intermediate results of the addition are continually added in order to calculate the corresponding output components of the output vector b. i.e. With this adder, too, the further addition is always started before the addition started one cycle T FPGA before has been completed. The components of the output vector b are then determined line by line. i.e. here in Figure 4 the calculation of a component of the output vector b is shown.
  • the lower figure shows the latency of the matrix-vector multiplication for a specific number of multiplications Mul, Mu2, Mu3 and additions Add1, Add2.
  • the total latency is only increased by one clock T FPGA when implementing a partially time-division multiplexed eight multiplier and four adder arrangement. But this arrangement only uses half the hardware resources that are required for a fully parallelized configuration. Taking the latency into account, a systematic design of the matrix vector multiplication is possible.
  • the dashed line shows the influence of the clock T FPGA.
  • the clock T FPGA has been reduced to 2 ns, while the latency for multiplication and addition has been increased to eight, so that a single multiplication or addition takes 16 nanoseconds. Therefore, a purely parallel calculation requires 48 ns for both clocks T FPGA examined. However, reducing the clock T FPGA will increase throughput when using a multiplex as present. This further reduces resources without increasing latency. However, it is the case that the tasks of the scheduler S are also increased with the degree of multiplexing and more computing capacity for the scheduler S is required.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Die Anmeldung betrifft einen Simulator (SIM) mit einem Rechner (FPGA), der eingerichtet ist, ein technisches System zu simulieren, wobei der Simulator (SIM) eingerichtet ist, in Abhängigkeit von einem Eingangsvektor (v) einen Ausgangsvektor (b) zur Ausgabe eines Ausgangssignals des Simulators (SIM) durch eine Matrix-Vektormultiplikation zu bestimmen, wobei die Matrix (M) das technische System repräsentiert, wobei der Rechner (FPGA) für die Matrix-Vektormultiplikation wenigstens einen Multiplizierer (Mu1, Mu2, Mu3) und wenigstens einen Addierer (Add1, Add2) aufweist, wobei der wenigstens eine Multiplizierer (Mu1, Mu2, Mu3) und der wenigstens eine Addierer (Add1, Add2) jeweils für einen Zeitmultiplex für die Durchführung ihrer jeweiligen Aufgaben konfiguriert sind, wobei ein Scheduler (S) vorgesehen ist, der eingerichtet ist, einen Ausgabewert des wenigstens einen Multiplizierers (Mu1, Mu2, Mu3) dem wenigstens einen Addierer (Add1, Add2) zuzuordnen. Die Anmeldung betrifft weiter ein Verfahren zum Betreiben eines Simulators (SIM).

Description

Simulator und Verfahren zum Betreiben eines Simulators
Technisches Gebiet
Die Anmeldung betrifft einen Simulator mit einem Rechner sowie ein Verfahren zum Betreiben eines Simulators.
Hintergrund
Aufgabe der Anmeldung ist es, eine bessere Ausnutzung von vorhandenen Res sourcen des Simulators zur Berechnung zu erreichen, um eine Balance zwischen einer Latenzzeit im Simulator und den erforderlichen Hardwareressourcen zu er reichen.
Übersicht
Ein Simulator mit einem Rechner sowie ein Verfahren zum Betreiben eines Simu lators mit einem solchen Rechner mit den Merkmalen der unabhängigen Patentan sprüche haben den Vorteil, dass durch eine Parallelisierung von Rechenaufgaben wenigstens eines Multiplizierers und wenigstens eines Addierers eine verbesserte Ausnutzung der vorhandenen Ressourcen zur Berechnung erreicht wird.
Daher wird ein Simulator mit einem Rechner vorgeschlagen, wobei der Simulator ein technisches System simuliert und dabei in Abhängigkeit von einem Ein gangsvektor einen Ausgangsvektor zur Ausgabe eines Ausgangssignals des Simu lators durch eine Matrix-Vektormultiplikation bestimmt. Die Matrix repräsentiert das technische System, wobei der Rechner für die Matrix-Vektormultiplikation we nigstens einen Multiplizierer und wenigstens einen Addierer aufweist. Der wenigs tens eine Multiplizierer und der wenigstens eine Addierer sind jeweils für einen Zeitmultiplex für die Durchführung ihrer jeweiligen Aufgaben konfiguriert. Dabei ist ein Scheduler vorgesehen, der einen Ausgabewert des wenigstens einen Mul tiplizierers dem wenigstens einen Addierer zuordnet. Der Scheduler kann außer dem Eingangswerte einer vorgesehenen Multiplikation dem mindestens einen Mul tipliziererzuordnen. Entsprechend ist das Verfahren zum Betreiben des Simulators mit einem Rechner ausgestaltet. Unter einem Simulator ist vorliegend eine Vorrichtung zu verstehen, die dazu ge eignet ist, insbesondere ein Gerät beispielsweise ein Steuergerät hinsichtlich sei ner Funktionalität und gegebenenfalls auch auf Dauerfestigkeit zu prüfen. D. h. der Simulator ist mit dem Gerät, das getestet werden soll, entsprechend verbun den, um durch die Simulation des technischen Systems in Abhängigkeit entspre chender Eingangswerte in Form eines Eingangssignals Ausgangswerte in Form ei nes Ausgangssignals an das Gerät weiterzugeben, sodass das Gerät dann funkti onsgemäß darauf reagieren kann. Die Ausgangswerte des Geräts werden vom Si mulator als dessen Eingangswerte aufgenommen und durch das simulierte tech nische System verarbeitet. Daher weist ein solcher Simulator Schnittstellen auf, um die entsprechenden Verbindungen zu dem Gerät herzustellen. Diese können kabelgebunden, aber auch drahtlos ausgebildet sein. Solche Simulatoren werden vor allem in der Fahrzeugindustrie, aber auch in allen anderen Industrien verwen det, die technische Geräte, insbesondere mit Software einsetzen, damit diese Software für ihre Funktionalität oder aber auch für die Sicherheit des Ablaufs aus reichend getestet werden kann. Solche Simulatoren stellen daher eine Umgebung dar, um diese Geräte zu testen. Geräte, die Software für ihren Betrieb aufweisen, müssen auf ihre jeweiligen Zustände geprüft werden, um insbesondere bei sicher heitskritischen Geräten wie einem Fahrzeug oder einer anderen Maschine den kor rekten Ablauf in allen möglichen Situationen nachzuprüfen.
Zentrales Element eines solchen Simulators ist ein Rechner. Dieser Rechner kann einen oder mehrere Computer beispielsweise Mikroprozessoren, Mikrocontroller Signalprozessoren, aber auch sogenannte FPGA aufweisen, wie es aus den abhän gigen Ansprüchen hervorgeht. Ein FPGA ist ein sogenanntes Field Programmable Gate Array, das einen integrierten Schaltkreis in der Digitaltechnik darstellt, in welchem eine logische Schaltung geladen werden kann. Wie aus der Bezeichnung hervorgeht, wird dabei die entsprechende Funktion auf dieses FPGA geladen und vorher programmiert. Der Rechner kann ein solches FPGA oder mehrere und in Kombination auch noch andere Prozessoren wie ein Mikroprozessor, Mikrocontrol ler usw. aufweisen.
Unter dem technischen System gemäß dieser Anmeldung sind alle möglichen Vor richtungen zu verstehen, die bestimmungsgemäß durch den Simulator simuliert werden, um mit einem anderen Gerät während einer Testphase in Verbindung gebracht zu werden. Der Simulator wird dann durch seinen Rechner dieses tech nische System in Abhängigkeit von entsprechenden Eingangswerten simulieren, um in Abhängigkeit von diesen Eingangswerten Ausgangswerte zu erzeugen. Da bei wird durch eine Matrix dieses technische System repräsentiert. Die Eingangs werte werden dabei in einen Eingangsvektor aufgenommen. Durch eine soge nannte Matrix-Vektormultiplikation wird die Reaktion des technischen Systems auf die Eingangswerte bestimmt, d. h. die Matrix wird mit dem Eingangsvektor multi pliziert. Für eine Matrix-Vektormultiplikation wird zunächst eine Multiplikation der Matrixkoeffizienten einer Zeile mit den Vektorkomponenten des Eingangsvektors durchgeführt. Die Addition dieser Produkte ergibt die erste Komponente des Aus gangsvektors. Dies wird dann zeilenweise so durchgeführt, sodass dann der Aus gangsvektor in Gänze vorliegt. Daher werden Multiplizierer und Addierer für diese Matrix-Vektormultiplikation benötigt, um sie auszuführen. Diese werden dann im Rechner entsprechend der vorhandenen Hardware so eingerichtet.
Gemäß dieser Anmeldung ist es nun vorgesehen, dass der zumindest eine Multi plizierer und der zumindest eine Addierer für einen Zeitmultiplex für die Durch führung ihrer jeweiligen Aufgaben konfiguriert sind. Um die Aufgaben entspre chend geeignet zuzuordnen, ist gemäß dieser Anmeldung ein sogenannter Scheduler vorgesehen. Dieser Scheduler ordnet einen Ausgabewert des wenigs tens einen Multiplizierers, dem wenigstens einen Addierer zu. Durch solch eine geschickte Zuordnung ist es möglich, die vorhandenen Ressourcen zur Matrix- Vektormultiplikation geeignet auszunutzen. Dies wird durch eine parallele Nutzung der vorhandenen Multiplizierer und Addierer erreicht.
Sowohl der wenigstens eine Multiplizierer als auch der wenigstens eine Addierer als auch der Scheduler können in Software und/oder Hardware auf dem Rechner des Simulators ausgebildet sein.
Durch die in den abhängigen Ansprüchen vorgeschlagenen Maßnahmen und Wei terbildungen sind vorteilhafte Verbesserungen des in den unabhängigen Patentan sprüchen angegebenen Simulators mit einem Rechner bzw. Verfahrens zum Be treiben eines solchen Simulators möglich.
In einer Ausführungsform kann das technische System eine Leistungselektronik schaltung mit wenigstens einem Schalter sein und die Matrix kann die Leistungs elektronikschaltung repräsentieren. Eine Leistungselektronikschaltung formt elektrische Energie um und verwendet dabei insbesondere Schalter, insbesondere Halbleiterschalter, die beispielsweise als Transistoren und/oder Thyristoren und/oder auch Dioden ausgebildet sind. Die Leistungselektronikschaltung steuert beispielsweise einen Elektromotor an, diagnostiziert Daten vom Elektromotor und/oder ist mit einer Energiequelle beispielsweise einer Batterie oder einem Netzanschluss in Verbindung, um diese Energie für den Elektromotor entspre chend umzuwandeln. Beispielsweise wird durch die Leistungselektronikschaltung Wechselstrom in Gleichstrom gewandelt oder umgekehrt. Es liegt dann also ein Umrichter vor. Werden solche Leistungselektronikschaltungen komplexer, d. h. werden mehrere Schalter verwendet, ist die Simulation einer solcher Leistungs elektronikschaltung entsprechend aufwendig. Daher ist der Gegenstand der An meldung ressourcensparend, indem vorhandene Multiplizierer und Addierer zu mindest teilweise parallel verwendet werden.
In einem Ausführungsbeispiel kann zur Umsetzung des Zeitmultiplex der wenigs tens eine Multiplizierer und/oder der wenigstens eine Addierer seine jeweilige fol gende Aufgabe beginnen, bevor die jeweilige aktuelle Aufgabe mit dem jeweiligen Ergebnis dieser aktuellen Aufgabe abgeschlossen ist. Damit kann eine Parallelisie rung erreicht werden, die es erlaubt, Zeit zu gewinnen und nicht abzuwarten, dass beispielsweise der zumindest eine Multiplizierer die Berechnung des Ergebnisses abgeschlossen hat.
Darüber hinaus kann es in einem Ausführungsbeispiel vorgesehen sein, für die Durchführung der jeweiligen Aufgabe von Multiplizierer und/oder Addierer zumin dest zwei Takte vorzusehen. Dabei wird die jeweils folgende Aufgabe nach Ablauf jeweils eines Taktes bereits begonnen. Dies führt zu der oben genannten Paralle lisierung und damit zur verbesserten Ausnutzung der vorhandenen Ressourcen. Damit kann die Parallelisierung verbessert werden, so dass beispielsweise mit der Addition begonnen werden kann, sobald der zumindest eine Multiplizierer eine Multiplikation eines vorhergehenden Taktes abgeschlossen hat.
Darüber hinaus gibt es Ausführungsformen, in denen der Rechner einen Prozessor oder ein FPGA wie oben beschrieben aufweist.
In einer Ausführungsform weist der Eingangsvektor elektrische Kenngrößen auf, die vorgesehen sind, an das technische System, insbesondere an die Leistungs elektronikschaltung, angewendet zu werden. D. h. der Eingangsvektor weist z. B. Spannungs- und/oder Stromwerte auf, die an das technische System angelegt werden, um es zu betreiben.
Weiterhin kann es vorgesehen sein, dass der Scheduler Matrixkoeffizienten und Vektorkomponenten für die Matrix-Vektormultiplikation dem zumindest einen Mul tiplizierer und/oder dem zumindest einen Addierer und/oder weiteren Hardware und/oder Softwarekomponenten des Rechners zuordnet. Unter dem Scheduler kann daher eine Steuerinstanz zu verstehen sein, die die Matrix-Vektormultiplika tion organisiert. Unter einem Matrixkoeffizienten ist ein Eintrag in einer Matrix zu verstehen, d. h. an einer vorgegebenen Spalte und einer vorgegebenen Zeile ist genau ein solcher Matrixkoeffizient vorhanden. Ein Vektor weist bekanntermaßen mehrere Komponenten auf und diese Vektorkomponenten sind vorliegend ange sprochen.
In einer Ausführungsform ordnet der Scheduler das jeweilige Ergebnis der jewei ligen Aufgabe des wenigstens einen jeweiligen Multiplizierers dem wenigstens ei nen jeweiligen Addierer zur Durchführung einer weiteren Aufgabe, also der Addi tion, zu. Damit wird das Ergebnis der Multiplikation des zumindest einen Multipli zierers sofort für die nächste Aufgabe, also die Addition verwendet. Dies kann die Ausführungsdauer der Matrix-Vektormultiplikation verkürzen.
In einer Ausführungsform weist der Rechner eine Anzahl Multiplizierer auf, welche von der Dimension der Matrix abhängt. Es ist gemäß dieser Anmeldung erkannt worden, dass die Anzahl der Multiplizierer entsprechend der Dimension der Matrix derart bestimmt werden kann, dass das Verhältnis aus erforderlichen Hardware ressourcen und Latenzzeit für die Matrix-Vektor-Multiplikation vorteilhaft einge stellt werden kann. Unter der Dimension der Matrix wird das Produkt aus der Mul tiplikation von Spaltenanzahl und Zeilenanzahl verstanden. Eine bevorzugte Zahl der Multiplizierer ist die Hälfte der Dimension der Matrix.
Bei einer solchen Auslegung mit einer Anzahl von Multiplizierern, die der Hälfte der Dimension der Matrix entspricht, erhöht sich zwar im Vergleich mit einem voll parallelisierten System die gesamte Latenzzeit. Aber diese Anordnung nutzt eben nur die Hälfte der Hardwareressourcen, die für eine voll parallelisierten Konfigu ration benötigt werden. Im Vergleich zu der großen Einsparung an Hardwareres- sourcen, ist die Erhöhung der Latenzzeit gering. Unter Berücksichtigung der La tenzzeit ist somit ein systematisches Design der Matrix-Vektormultiplikation mög lich.
In einer Ausführungsform überprüft der Simulator die Matrix vor der Matrix-Vek tormultiplikation, wobei die Ausführung der Aufgabe des zumindest einen Multi plizierers und/oder die Ausführung der Aufgabe des zumindest einen Addierers und/oder die Zuordnung des Ausgabewertes durch den Scheduler vom Ergebnis der Überprüfung abhängt. Damit kann auf besondere Werte der Matrixkoeffizien ten eingegangen werden und die Ausführung der Multiplikation und/oder die Aus führung der Addition und/oder die Zuordnung an den Addierer davon abhängen, ob die Komponente einen besonderen Wert angenommen hat. Für den Fall der Multiplikation sind besondere Werte insbesondere die Werte 1 und/oder 0.
Bei einem Wert eines Matrixkoeffizienten von 0 muss eine Multiplikation nicht aus geführt werden, da das Ergebnis einer Multiplikation mit 0 bekannt ist und 0 be trägt. Eine darauffolgende Addition muss auch nicht ausgeführt werden, da eine Addition mit 0 die Summe nicht verändert. Der Scheduler würde also bei einem Matrixkoeffizienten 0 weder die Multiplikation noch die Addition vorsehen.
Bei einem Wert eines Matrixkoeffizienten von 1 muss eine Multiplikation mit der entsprechenden Vektorkomponente nicht ausgeführt werden, da eine Multiplika tion mit 1 das Produkt nicht verändert. An den darauffolgenden Addierer kann durch den Scheduler also der Wert der entsprechenden Vektorkomponente ohne vorherige Multiplikation mit dem Matrixkoeffizienten, die ja den Wert 1 hat, wei tergegeben werden.
Fiaurenliste
In der nachfolgenden Beschreibung wird der Gegenstand dieser Anmeldung an hand der Figuren beschrieben.
Es zeigen
Figur 1 die Verbindung eines Simulators mit einem mit einer zu testenden Vor richtung,
Figur 2 einen schematischen Hardwareaufbau des Simulators, Figur 3 ein Blockdiagramm zur Erläuterung der Funktionsweise des Simulators bzw. des Verfahrens,
Figur 4 einen Zeitablaufdiagrammen der Matrix-Vektormultiplikation und
Figur 5 Beispiele für sogenannte Latenzzeiten und Zahlen von Multiplizieren und Addierer, die diese bedingen.
Es werden in den Figuren die gleichen Bezugszeichen für gleiche oder ähnliche Elemente verwendet.
Fiaurenbeschreibuna
Figur 1 zeigt einen Simulator SIM, der vorliegend über Leitungen mit einem soge nannten Device Under Test DUT verbunden ist. Der Simulator SIM erhält von der Vorrichtung DUT ein Eingangssignal in Form eines Eingangsvektors v, den der Simulator SIM mittels einer Matrix M, die das technische System repräsentiert, multipliziert, und zwar über eine Matrix-Vektormultiplikation, um einen Aus gangsvektor b zu erzeugen, der dann als Ausgangssignal an die Vorrichtung DUT ausgegeben wird. In dieser Weise wird das technische System durch den Simula tor SIM simuliert. Damit kann die Vorrichtung DUT getestet werden. Beispiels weise simuliert der Simulator SIM eine Leistungselektronikschaltung. Die Vorrich tung ist beispielsweise ein Steuergerät, dass die Leistungselektronikschaltung an steuert, sodass dann nach entsprechenden Vorgaben des Steuergeräts in seinen Funktionen dadurch getestet werden kann.
Figur 2 zeigt schematisch die Hardwarestruktur des Simulators SIM. Es liegt ein Prozessor mP vor, der beispielsweise ein Mikroprozessor oder ein Mikrocontroller sein kann, und ein sogenanntes FPGA, also ein Field Programmable Gate Array, das entsprechend der Struktur beispielsweise der Leistungselektronikschaltung programmiert wird. Und es liegt natürlich eine Ein-/Ausgabe-Schnittstelle IO vor, über die der Eingangsvektor v und dann entsprechend auch der Ausgangsvektor b erhalten bzw. ausgegeben werden. Die Ein-/Ausgabe erfolgt beispielsweise über Register.
Figur 3 zeigt in einem Blockdiagramm den Ablauf, der das Verfahren gemäß dieser Anmeldung bzw. die Funktionsweise des Simulators darstellt. Der Scheduler S steuert diesen Ablauf der Ausführung der Schritte/Blöcke 30, 31, 32, 33, 34. Dafür wird einem Schritt/Block 30 eine Matrix M mit Matrixkoeffizienten Mil, M12, ... , M21..., Mmn und ein Vektor v mit Vektorkomponenten vl, v2, ..., vn zugeführt. In Block 30 werden entsprechende Matrixkoeffizienten Mil, M12, ... , M21..., Mmn jeweils einer entsprechenden Komponente vl, v2, ..., vn des Eingangsvektors v zugeordnet. In Schritt/Block 31 wird durch zumindest einen Multiplizierer Mul, Mu2, Mu3 die Multiplikation zwischen den Matrixkoeffizienten Mil, M12, ... , M21..., Mmn mit den jeweiligen Komponenten des Eingangsvektors v durchge führt. In Schritt/Block 32 erfolgt das Routing, d. h. es werden die Ergebnisse die ser Multiplikationen vom Scheduler S entsprechend einer Vorgabe den entspre chenden Addierern Addl, Add2 zugeordnet. In Schritt/Block 33 erfolgt dann die Additionen der Multiplikationsergebnisse. In Schritt/Block 34 werden vom Scheduler S die entsprechenden Ergebnisse für den Ausgangsvektor b in entspre chende Register für die Ausgabe über die Ein-/Ausgabe-Schnittstelle IO abgespei chert.
Das Verfahren und der Simulator sind dabei so ausgebildet, dass einzelne Opera tionen der Schritt/Blöcke 30, 31, 32, 33, 34 durch Multiplexing parallelisiert wer den und Operationen der folgenden Schritte/Blöcke ausgeführt werden könne, be vor andere Operationen der vorhergehenden Schritte/Blöcke beendet sind.
Figur 4 zeigt nun in einem Zeit-Diagramm den Ablauf gemäß dieser Anmeldung an einem Beispiel. Die Taktzeit T FPGA dieser FPGA soll vorliegend 8 ns betragen. Beispielhaft sind hier drei Multiplizierer Mul, Mu2 und Mu3 vorgesehen sowie zwei Addierer Addl und Add2.
Vorliegend wird für eine Rechenoperation, also für eine Multiplikation und für eine Addition, jeweils zwei Takte T FPGA bereitgestellt. Im ersten Takt T FPGA wird nun die Multiplikation der ersten Matrixkoeffizienten bzw. Vektorkomponenten begon nen, und zwar durch die Multiplikation der Multiplizierer Mul, Mu2 und im Mu3 und dabei die Multiplikation der Koeffizienten der Matrix M mit Komponenten des Vektors v Mil * Vl, M12 * V2 und M13 * V3. Im zweiten Takt T FPGA wird jedoch bereits die nächste Multiplikation der nächsten Matrixkoeffizienten bzw. Ein gangsvektorkomponenten begonnen und gleichzeitig wird die im ersten Takt T FPGA begonnen Multiplikationen abgeschlossen. In dieser versetzten Weise wer den alle Multiplikationen durch die drei Multiplizierer Mul, Mu2 und Mu3 ausge führt. Liegen die Multiplikationsergebnisse vor, werden diese den Addierern Addl und Add2 vom Scheduler S zugeordnet. Aber auch hier wird bereits im zweiten Takt T FPGA die nächste Addition vom jeweiligen Addierer begonnen. Hier wird auch dargestellt, dass die Zwischenergebnisse der Addition immer weiter addiert werden, um die entsprechenden Ausgangskomponenten des Ausgangsvektor b zu berechnen. D. h. auch bei diesem Addierer wird immer die weitere Addition be gonnen, bevor die einen Takt T FPGA vorher begonnene Addition beendet wurde. Damit werden dann zeilenweise die Komponenten des Ausgangsvektors b be stimmt. D. h. vorliegend in Figur 4 wird die Berechnung einer Komponente des Ausgangsvektor b gezeigt.
In den beiden Teilfiguren von Figur 5 wird in der unteren Figur dargestellt, welche Latenzzeit die Matrix-Vektormultiplikation bei einer bestimmten Anzahl von Multi plizieren Mul, Mu2, Mu3 und Addieren Addl, Add2 aufweist. Verglichen mit einem voll parallelisierten System mit 16 Multiplizierern und 8 Addierern wird die ge samte Latenzzeit nur um einen Takt T FPGA vergrößert, wenn eine teilweise mit einem Zeitmultiplex konfigurierte Anordnung mit acht Multiplizieren und vier Ad dierern implementiert wird. Aber diese Anordnung nutzt eben nur die Hälfte der Hardwareressourcen, die für eine voll parallelisierte Konfiguration benötigt wer den. Unter Berücksichtigung der Latenzzeit ist ein systematisches Design der Mat rix-Vektormultiplikation möglich. Zusätzlich zeigt die gestrichelte Linie den Ein fluss des Taktes T FPGA. Vorliegend wurde der Takt T FPGA auf 2 ns reduziert, während die Latenzzeit für die Multiplikation und Addition auf acht erhöht wurde, sodass eine einzige Multiplikation oder Addition 16 Nanosekunden dauert. Daher benötigt eine rein parallele Berechnung 48 ns für beide untersuchten Takte T FPGA. Wird jedoch der Takt T FPGA reduziert, wird dies den Durchsatz, wenn ein Multiplex wie vorliegend verwendet wird, erhöhen. Damit werden die Ressourcen weiter reduziert, ohne die Latenzzeit zu erhöhen. Es ist jedoch so, dass die Auf gaben des Schedulers S mit dem Grad des Multiplex ebenfalls erhöht werden und mehr Rechenkapazität für den Scheduler S benötigt wird. Bezugszeichenliste
SIM Simulator
DUT Device under Test
FPGA Rechner
S Scheduler mP Mikroprozessor
10 Eingabe-/Ausgabeschnittstelle
M Matrix
Mil, M12, ... , M21..., Mmn Matrixkoeffizient v Eingangsvektor vl, v2, ..., vn Vektorkom ponente b Ausgangsvektor
30 Routing der Koeffizienten und Komponenten
31 Multiplizierer-Stufe
32 Routing
33 Addierer-Stufe
34 Ausgabe
Mul, Mu2, Mu3 Multiplizierer Addl, Add2 Addierer T FPGA FPGA-Takt

Claims

Ansprüche
1. Simulator (SIM) mit einem Rechner (FPGA), der eingerichtet ist, ein techni sches System zu simulieren, wobei der Simulator (SIM) eingerichtet ist, in Abhängigkeit von einem Eingangsvektor (v) einen Ausgangsvektor (b) zur Ausgabe eines Ausgangssignals des Simulators (SIM) durch eine Matrix- Vektormultiplikation zu bestimmen, wobei die Matrix (M) das technische System repräsentiert, wobei der Rechner (FPGA) für die Matrix-Vektormul tiplikation wenigstens einen Multiplizierer (Mul, Mu2, Mu3) und wenigstens einen Addierer (Addl, Add2) aufweist, wobei der wenigstens eine Multipli zierer (Mul, Mu2, Mu3) und der wenigstens eine Addierer (Addl, Add2) je weils für einen Zeitmultiplex für die Durchführung ihrer jeweiligen Aufgaben konfiguriert sind, wobei ein Scheduler (S) vorgesehen ist, der eingerichtet ist, einen Ausgabewert des wenigstens einen Multiplizierers (Mul, Mu2, Mu3) dem wenigstens einen Addierer (Addl, Add2) zuzuordnen.
2. Simulator (SIM) nach Anspruch 1, wobei das technische System eine Leis tungselektronikschaltung mit wenigstens einem Schalter ist und die Matrix (M) die Leistungselektronikschaltung repräsentiert.
3. Simulator (SIM) nach Anspruch 1 oder 2, wobei zur Umsetzung des Zeit multiplex der wenigstens eine Multiplizierer (Mul, Mu2, Mu3) und der we nigstens eine Addierer (Addl, Add2) eingerichtet sind, ihre jeweilige fol gende Aufgabe zu beginnen, bevor die jeweilige aktuelle Aufgabe mit dem jeweiligen Ergebnis dieser aktuellen Aufgabe abgeschlossen ist.
4. Simulator (SIM) nach Anspruch 3, wobei für die Durchführung der jeweili gen Aufgabe zumindest zwei Takte (T FPGA) vorgesehen sind, wobei vorge sehen ist, dass die jeweilige folgende Aufgabe nach Ablauf jeweils eines Taktes (T FPGA) beginnt.
5. Simulator (SIM) nach einem der vorhergehenden Ansprüche, wobei der Rechner (FPGA) einen Prozessor und/oder ein FPGA aufweist.
6. Simulator (SIM) nach einem der vorhergehenden Ansprüche, wobei der Ein gangsvektor (v) elektrische Kenngrößen aufweist, die vorgesehen sind, an das technische System, insbesondere an die Leistungselektronikschaltung, angewendet zu werden.
7. Simulator (SIM) nach einem der vorhergehenden Ansprüche , wobei der Scheduler (S) eingerichtet ist, Matrixkoeffizienten und Vektorkomponenten für die Matrix-Vektormultiplikation zuzuordnen.
8. Simulator (SIM) nach Anspruch 7, wobei der Scheduler (S) eingerichtet ist, das jeweilige Ergebnis der jeweiligen Aufgabe des wenigstens einen jeweili gen Multiplizierers (Mul, Mu2, Mu3) dem wenigstens einen jeweiligen Ad dierer (Addl, Add2) zur Durchführung einer weiteren Aufgabe zuzuordnen.
9. Simulator (SIM) nach einem der vorhergehenden Ansprüche, wobei der Rechner (FPGA) eine Anzahl Multiplizierer (Mul, Mu2, Mu3) aufweist, wel che von der Dimension der Matrix (M) abhängt.
10. Simulator (SIM) nach einem der vorhergehenden Ansprüche, wobei der Si mulator eingerichtet ist, die Matrix (M) vor der Matrix-Vektormultiplikation zu überprüfen, wobei die Ausführung der Aufgabe des zumindest einen Mul tiplizierers (Mul, Mu2, Mu3) und/oder die Ausführung der Aufgabe des zu mindest einen Addierers (Addl, Add2) und/oder die Zuordnung des Ausga bewertes durch den Scheduler (S) vom Ergebnis der Überprüfung abhängt.
11. Verfahren zum Betreiben eines Simulators (SIM) mit einem Rechner (FPGA), der ein technisches System, insbesondere eine Leistungselektro nikschaltung mit wenigstens einem Schalter, simuliert, wobei der Simulator (SIM) in Abhängigkeit von einem Eingangsvektor (v) einen Ausgangsvektor (b) zur Ausgabe von einem Ausgangssignal des Simulators (SIM) durch eine Matrix-Vektormultiplikation bestimmt, wobei die Matrix (M) die Leis tungselektronikschaltung repräsentiert, wobei der Rechner (FPGA) für die Matrix-Vektormultiplikation wenigstens einen Multiplizierer (Mul, Mu2,
Mu3) und wenigstens einen Addierer (Addl, Add2) verwendet, wobei der wenigstens eine Multiplizierer (Mul, Mu2, Mu3) und der wenigstens eine Addierer (Addl, Add2) jeweils einen Zeitmultiplex für eine Durchführung ih- rer jeweiligen Aufgaben verwenden, wobei ein Scheduler (S) einen Ausga bewert: des wenigstens einen Multiplizierers (Mul, Mu2, Mu3) dem wenigs tens einen Addierer (Addl, Add2) zuordnet.
PCT/EP2022/068232 2021-07-02 2022-07-01 Simulator und verfahren zum betreiben eines simulators WO2023275348A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/572,221 US20240289418A1 (en) 2021-07-02 2022-07-01 Simulator and method for operating a simulator
CN202280046970.8A CN117597636A (zh) 2021-07-02 2022-07-01 模拟器和用于运行模拟器的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021117141.5 2021-07-02
DE102021117141 2021-07-02

Publications (1)

Publication Number Publication Date
WO2023275348A1 true WO2023275348A1 (de) 2023-01-05

Family

ID=82694215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/068232 WO2023275348A1 (de) 2021-07-02 2022-07-01 Simulator und verfahren zum betreiben eines simulators

Country Status (4)

Country Link
US (1) US20240289418A1 (de)
CN (1) CN117597636A (de)
DE (1) DE102022116449A1 (de)
WO (1) WO2023275348A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019130971A1 (de) * 2018-11-15 2020-05-20 Dspace Digital Signal Processing And Control Engineering Gmbh Computerimplementiertes Verfahren zur Simulation einer elektrischen Schaltung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019130971A1 (de) * 2018-11-15 2020-05-20 Dspace Digital Signal Processing And Control Engineering Gmbh Computerimplementiertes Verfahren zur Simulation einer elektrischen Schaltung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BAEK HWAN ET AL: "FPGA Matrix Multiplier", 12 July 2019 (2019-07-12), pages 1 - 6, XP055965551, Retrieved from the Internet <URL:https://web.archive.org/web/20190712063450if_/http://www.seas.ucla.edu:80/~baek/FPGA.pdf> [retrieved on 20220927] *

Also Published As

Publication number Publication date
CN117597636A (zh) 2024-02-23
DE102022116449A1 (de) 2023-01-05
US20240289418A1 (en) 2024-08-29

Similar Documents

Publication Publication Date Title
DE69315576T2 (de) Verfahren und testanlage zur entwicklung einer integrierten schaltung.
DE19950821A1 (de) Bewertungssystem für integrierte Halbleiterschaltungen
EP3130970A1 (de) Verfahren zum verbinden einer eingabe/ausgabe-schnittstelle eines für die steuergerätentwicklung eingerichteten testgeräts
DE112008001707T5 (de) Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator
DE69517604T2 (de) Zeitgeber mit mehreren kohärenten synchronisierten takten
DE4121637C2 (de) Verfahren zur Prüfung von Steuergeräten und Prüfeinrichtung zur Durchführung des Verfahrens
EP4068138A1 (de) Verfahren zur aufteilung von simulationsmodellen zwischen einem prozessor und einem fpga
DE102012016610B4 (de) Echtzeit-Schaltungssimulation
EP4128539A1 (de) Verfahren zur zeitlich synchronisierten eingabe und/oder ausgabe von signalen mit wählbarer abtastrate
WO2023275348A1 (de) Simulator und verfahren zum betreiben eines simulators
DE102016101344A1 (de) Verfahren zur Konfiguration eines für das Testen eines Steuergeräts eingerichteten Testgeräts
DE102011051724B4 (de) Verfahren und Vorrichtung für komplexe Zeitmessungen
DE3817143A1 (de) Schaltungseinrichtung mit selbsttestfunktion und testverfahren zum selbsttest
WO2006035038A2 (de) Verfahren zum testen von steuergerätesoftware für ein steuergerät
DE102017214125A1 (de) Verfahren und Vorrichtung zum Synchronisieren einer Simulation mit einem Echtzeitsystem
DE102021131391A1 (de) Verfahren zur Simulation eines elektrischen Motors
DE102017120013A1 (de) Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem
DE102021133786A1 (de) Konfiguration einer auf einem Computer laufenden SIL-Simulation eines Steuergeräts
EP4198722A1 (de) Konfiguration einer auf einem computer laufenden sil-simulation eines steuergeräts
DE102018200441A1 (de) Emulationsvorrichtung zur Emulation eines Elektromotors
DE102021110380A1 (de) Echtzeit-Simulation des Betriebs eines spezifischen elektrischen Motors
DE10239782A1 (de) Verfahren und Vorrichtung zur Verifikation von digitalen Schaltungen
DE19710463C2 (de) Verfahren zur automatischen Differentiation auf einem Rechner insbesondere zur Simulation elektronischer Schaltungen
DE102020127474A1 (de) System und Verfahren zur Echtzeit-Simulation und/oder -Emulation einer rotierenden elektrischen Maschine
DE102022116445A1 (de) Simulator und Verfahren zum Betreiben eines Simulators

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22746967

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18572221

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 202280046970.8

Country of ref document: CN

122 Ep: pct application non-entry in european phase

Ref document number: 22746967

Country of ref document: EP

Kind code of ref document: A1