WO2022128556A1 - Verfahren zum bestimmen eines anschlussschemas einer recheneinheit an eine menge von funktionsmodulen - Google Patents

Verfahren zum bestimmen eines anschlussschemas einer recheneinheit an eine menge von funktionsmodulen Download PDF

Info

Publication number
WO2022128556A1
WO2022128556A1 PCT/EP2021/084328 EP2021084328W WO2022128556A1 WO 2022128556 A1 WO2022128556 A1 WO 2022128556A1 EP 2021084328 W EP2021084328 W EP 2021084328W WO 2022128556 A1 WO2022128556 A1 WO 2022128556A1
Authority
WO
WIPO (PCT)
Prior art keywords
function module
interface
interfaces
processing unit
value
Prior art date
Application number
PCT/EP2021/084328
Other languages
English (en)
French (fr)
Inventor
Gordana KULUSHICH
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
Publication of WO2022128556A1 publication Critical patent/WO2022128556A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Definitions

  • the present invention relates to a method for determining a connection scheme of a computing unit to a number of functional modules and a computer and a computer program for its implementation, and a method for connecting a computing unit to a number of functional modules.
  • a constraint satisfaction problem (CSP; German: condition fulfillment problem) is a task with the aim of finding a state (i.e. assignments of variables) that satisfies all the established conditions (constraints).
  • CSP consists of a set of variables, their value ranges, and the conditions that establish links between the variables and thereby determine which combinations of values of the variable are permissible.
  • a CSP is solved by finding a variable assignment that satisfies all the conditions.
  • the basic problem of CSP algorithms is described in the publication "Network-based Heuristics for Constraint Satisfaction Problems", Dechter & Pearl, J., Artificial Intelligence 34, 1-38 (1987).
  • a method for determining a connection scheme of a computing unit such as a microcontroller, microprocessor, Control unit, etc.
  • a computing unit such as a microcontroller, microprocessor, Control unit, etc.
  • the invention also relates to a method for connecting a computing unit to a number of function modules.
  • ASIC application-specific integrated circuits
  • Various function modules such as application-specific integrated circuits (ASIC), output stages or power semiconductors, communication interfaces or sensors are located outside of computing units such as microcontrollers and require certain computing unit resources (such as functionalities or resources from a microcontroller) that are particularly be provided by connections from function module interfaces to computing unit interfaces such as microcontroller pins.
  • computing unit resources such as functionalities or resources from a microcontroller
  • function module interfaces that require processing unit resources but not exclusive microcontroller pins, e.g. because they are served via a bus such as MSC (Micro Second Channel).
  • MSC Micro Second Channel
  • the arithmetic unit thus has arithmetic unit interfaces and arithmetic unit resources with which the function module interfaces must be occupied as required.
  • the invention proposes a computer-implemented determination of the interface assignments for each function module interface by performing a special constraint satisfaction problem algorithm.
  • an assignment of processing unit interfaces and processing unit resources to the function module interface is determined as the value (assignment) of a variable.
  • the function module interfaces represent the variables and the processing unit resources and processing unit interfaces represent their value ranges in the CSP.
  • the reduction specification advantageously includes the formation of sub-combinations (sub-matrices), each of which includes all rows with the same number of first values, and removing from the concatenation all identical rows if the number of identical rows is equal to the number of first values in such row.
  • a computing unit according to the invention is set up, in particular in terms of programming, to carry out a method according to the invention.
  • a microcontroller as the computing unit with pins as the computing unit interfaces.
  • a microcontroller particularly a microcontroller for a vehicle, provides a lot of pins and a lot of resources.
  • the resources can include various functionalities, which in particular are each accessible via at least one pin. These can be so-called “peripherals", i.e.
  • CAN Controller Area Network
  • LIN Local Internet Network
  • SPI Serial Peripheral Interface
  • ADC analog-to-digital converter
  • DAC digital-to-analog converter
  • PWM outputs pulse width modulation outputs
  • TIM clock input module
  • TOM Timer Output Function Module
  • MCS multi channel sequencer
  • FIG. 1 schematically shows a pin distribution and resource distribution of a microcontroller for which a preferred embodiment of a method according to the invention can be carried out;
  • FIG. 2a schematically shows a function module with an interface that can be connected to a pin of the microcontroller, for which a preferred embodiment of a method according to the invention can be carried out;
  • FIG. 2b schematically shows another function module with interfaces that can be connected to a respective pin of the microcontroller, for which a preferred embodiment of a method according to the invention can be carried out;
  • FIG. 3 schematically shows a linking of pins of a microcontroller with resources of a microcontroller, for which a preferred embodiment of a method according to the invention can be carried out;
  • FIG. 4 shows schematically a linking of pins of a microcontroller with resources of a microcontroller and links between resources of the microcontroller.
  • FIG. 5 shows an overall scheme of a preferred embodiment of the invention.
  • FIG. 6 shows a flowchart for a preferred embodiment of an initialization of an occupancy method
  • FIG. 7 shows a flowchart for a preferred embodiment of carrying out the allocation method
  • Figure 8 shows a more detailed flowchart for the consistency check steps from Figures 6 and 7.
  • FIG. 9 shows on two pages the effect of the steps from FIG. 8 on a combination of value ranges represented as a matrix.
  • FIG. 1 shows a schematic of a microcontroller with a number of pins in the form of port pins (footprint) for a so-called BGA package and a number of resources to which an embodiment of a method according to the invention can be used to determine a connection scheme.
  • a capital letter between A and T and a number between 1 and 20 denote pC pins or pins of the microcontroller and are shown as small square boxes.
  • resources of the microcontroller are shown as small rectangular boxes and are denoted by ai, a2 , an, bi, b2, bn , Ci, C2, di, d2, dn .
  • the resources of the microcontroller are microcontroller-internal functionalities that are made available to the outside via the pins, such as ADC, DAC, CAN, LIN, SPI, TIM, TOM and many more.
  • each pin is linked to pin-specific resources.
  • Lines indicate purely by way of example that pin D1 is linked to resources ai and a2, that pin D6 is linked to resource ai, that pin B8 is linked to resource ai and that pin E9 is linked to resources ai , bi and Ci is linked.
  • possible links can only be indicated here.
  • pins without resources such as for power supply or simple GPIO.
  • Resources can also be linked to one another.
  • lines between b2 and di and between C2 and d2 indicate that these resources are linked to one another.
  • ADC modules are linked to clock generator modules in order to be able to carry out analog-to-digital conversion in a time-dependent manner.
  • assigning certain resources to pins also occupies the resources associated with them.
  • FIG. 2a schematically shows an external function module with a number of interfaces which can or must be connected to pins of the microcontroller, for which a preferred embodiment of a method according to the invention can be carried out.
  • the function module is labeled 100 and has the interface 1.
  • An interface is a signal line of a function module that requires specific pC resources and must therefore be connected to a pC pin with the correct pin-specific pC resources.
  • the function module can be, for example, an evaluation circuit for a speed sensor, which is to be connected to interface 1 with a sensor input. This is symbolized by a module M1 with interface M1_I1. The "encoder input" condition is therefore linked to this interface M1_I1.
  • the pins and resources of a microcontroller must be assigned to functional module interfaces.
  • the interface allocations occupy each interface of a function module with a resource and possibly a pin that has the resources required by the interface.
  • FIG. 2b schematically shows an external function module 110, which is designed, for example, as an ASIC with four semiconductor output stages.
  • Each semiconductor output stage has an output OUT1 , ... , OUT4, in particular so-called "Power Stage Outputs", e.g. low-side output stages.
  • the function module 110 is to be connected to a microcontroller via MSC and requires, for example, four interfaces 120 (CLOCK, DATAIN, DATAOUT, MSC-ENABLE) for this purpose.
  • Each output stage must be assigned a specific bit address and GTM resources via the MSC interfaces. These GTM resources are not directly connected to the pC pins, but are linked internally in the controller.
  • a knock sensor which is arranged in a cylinder of an internal combustion engine and is used to detect unusual pulsations caused by the fuel explosion, outputs a differential signal as a measurement signal at two interfaces, which are connected to a differential ADC (DS-ADC) must be connected.
  • a clock input TIM, Timer Input Module
  • TOM Timer Output Module
  • ARU Advanced Router Unit, microcontroller-internal routing unit
  • MCS Multi-Channel-Sequencer
  • GTM Generic Timer Module
  • microcontroller resources such as an SAR-ADC (successive approximation register (SAR) analog-to-digital converters (ADCs)) and an ATOM or TOM. This also results in mi- Internal rocontroller conditions affecting the connection between timer and ADC.
  • SAR-ADC uccessive approximation register (SAR) analog-to-digital converters (ADCs)
  • ATOM or TOM ATOM
  • a lambda sensor which is used, for example, to measure the amount of oxygen in the exhaust gas, requires microcontroller resources such as SPI, which can also be emulated via conventional I/O pins, in particular TIM and TOM, for example one TIM and three ATOM. This results in microcontroller-internal conditions that all TIM and ATOM must come from a common GTM cluster.
  • Function modules with complex conditions are, for example, integrated circuits (IC), such as the so-called ASIC (application-specific integrated circuit).
  • ASICs can be used, for example, in internal combustion engines to control the individual injectors.
  • IC integrated circuits
  • ASICs can be used, for example, in internal combustion engines to control the individual injectors.
  • START interface for each injector, which must be connected to an output of the microcontroller, which, however, is also configured as an input at the same time in order to monitor the output signal that is actually present.
  • ATOM, MCS and TIM, MCS as resources per injector.
  • STATE interface for each injector, which must be connected to an output of the microcontroller.
  • ATOM, MCS are required as resources per injector.
  • interface DI_BUSY1 can exist for the entire bank, which must be connected to an input of the microcontroller in order to feed back a feedback signal.
  • TIM, MCS are required as resources for this.
  • interfaces DI_OA1 and DI_OA2 can also be provided for a differential monitoring signal to a DS-ADC, which in turn requires TIM, ATOM and MCS inside the processor.
  • FIG. 3 shows an example of how pins of a microcontroller are linked to different resources.
  • Resource TOM1 has channels “ch:0-8" and channel “ch:0” is connected to pins P21, P56 and P234.
  • Resource TOM2 has channels “ch:9-15” and channel ch:15 is also connected to pin P234 and next to it also to pins P56 and P234.
  • FIG. 4 also shows an example of how pins of a microcontroller are linked to different resources. However, the resources are still linked to one another.
  • the ADCO resource is linked to the resources TOM1(ch:0-8) and TOM1(ch:9-15), among other things, as well as to pin P20 as ADC0(ch:0) and to pin P21 as ADC0(ch:1). .
  • the resource ADC1 is inter alia linked to the resources TOM2(ch:0-8) and TOM2(ch:9-15).
  • the resource ADC2 is linked, among other things, to the resources TOM 1(ch:0-8) and TOM1(ch:9-15), also as ADC2(ch:6) with pin P22 and as ADC2(ch:7) with pin, among other things P23.
  • the assignment begins with a step 501, in which for each interface so far required a value range containing assignable pins A1-T20 of the microcontroller and a value range containing assignable resources ai, a2, a n , bi, b2, b n , Ci, C2, di, d2, d n of the microcontroller is formed.
  • the value ranges are restricted as far as possible on the basis of the known conditions, ie impossible values are deleted, and the value ranges are checked for content consistency across interfaces (cf. also FIGS. 8 and 9).
  • the resources that can actually be assigned result directly from the conditions (i.e. which resources does the interface need) and the assignable pins result, for example, from multiplying the interface/resource matrix by a resource/pin matrix (i.e. which resource is actually on which pins available).
  • the first or the next interface to be occupied is selected.
  • this can be done in accordance with a selection rule.
  • one or more of the following criteria can be included in the selection specification: how powerful are their value ranges; it is a carrier; if it is a carrier, how many dependents does it have; it is an addict.
  • a first solution (hereinafter also referred to as a child) is selected for the current interface.
  • a child a first solution
  • particular attention can be paid to prioritization strategies according to which the children were placed in a specific order. For example, a layout-friendly assignment can lead to a higher priority.
  • a step 504 it is checked whether the value ranges of the interfaces that have not yet been assigned are consistent when the child is selected as the solution. In particular, it takes into account that certain pins and resources can only be assigned once and checks whether there are still enough pins and resources left for all other interfaces. If the value ranges are not consistent, return to step 503 and select the next child. However, if the value ranges are consistent, in step 505 the child is accepted as a partial solution for the current interface. If there are still interfaces left to be occupied, the process branches back to step 501 and the value ranges for the interfaces that are still to be occupied are calculated based on the just made occupancy reduced. The cross-interface check of the value ranges for content consistency also takes place here (cf. also FIGS. 8 and 9).
  • the method ends.
  • the computing unit is then preferably also connected to the set of function modules according to the determined solution.
  • FIG. 6 shows an initialization part that is essentially concerned with defining the value ranges for the variables. This corresponds to a possible implementation of step 501 from Figure 5.
  • interface-specific conditions e.g. which resource and, if applicable, pin are required
  • microcontroller-internal conditions e.g. to which pins is the resource connected and which other resources are required by it
  • direct conditions e.g. which other interfaces are affected
  • mutual condition distinguished Reciprocal conditions are those in which the assignment of a specific interface restricts the value range of other interfaces. E.g. if a SENT signal is assigned to pin P1 and then pins P2, P3, P7 are no longer configured with driver strength STRONG (i.e. for some interfaces these three pins are no longer available; the value range for some interfaces has changed) ; or conversely, if an interface with driver strength STRONG is assigned to pin P2, one can no longer assign pin P1 to a SENT interface.
  • driver strength STRONG i.e. for some interfaces these three pins are no longer available; the value range for some interfaces has changed
  • the conditions can be divided into unary conditions (conditions that control the value or value range of an individual variable), binary conditions (links between two variables) and Higher-order conditions (links involving three or more variables).
  • S1 is a selection step that indicates that an interface is used. This means that the following steps of the method are carried out one after the other for each interface of each function module.
  • each interface-specific value range initially includes all resources possible for this interface and—if required—pins of the microcontroller.
  • all CANTX resources are determined as a range of values (but no impossible resources such as GTM resources or CANRX resources).
  • the range of values for the selected interface is restricted to the extent that all conditions of the first part are fulfilled.
  • the first part of the conditions includes in particular interface-specific conditions and microcontroller-internal conditions.
  • the first part of the conditions is first determined for this purpose, S3, and then all pins and resources that do not meet the first part of the conditions are removed from the respective value range, S4. If an interface requires, for example, digital pins (I/O) and also a TOM and a TIM, in step S2 all digital pins, all TOMs and all TIMs are included in the respective value range.
  • step S3 only the pins in the pin value range that have TIMs and TOMs available at the same time are kept.
  • TIM value range and TOM value range only those TIMs or TOMs that can be found in these available pins are kept.
  • a microcontroller-internal condition it can be taken into account, for example, that the TIMs and TOMs must be from the same GTM cluster.
  • step S5 all interfaces are determined whose occupancy affects at least one other interface, ie in particular interfaces with binary and higher conditions.
  • the START1 interface mentioned above is such an interface whose assignment also affects all interfaces START2, ... , STATE1, ... etc. because all the required resources (TOM, TIM, MOS, ATOM) come from the same GTM in the microcontroller must originate with a very specific sequence of channels.
  • An interface whose occupancy affects at least one other interface is defined as a bearer (e.g. START1); the affected interfaces (e.g. START2 etc.) as dependents.
  • a bearer e.g. START1
  • the affected interfaces e.g. START2 etc.
  • Step S6 is a selection step which indicates that the procedure is carrier-by-carrier, i.e. the following steps of the method are carried out in succession for each carrier. This can be done using an order that leads to the fastest possible reduction of value ranges. In particular, such an order is based on the number of carriers on which the carrier to be examined itself depends, in ascending order. For example, has a Carrier1 as Dependents Carrier2, Dependents2, and Dependent; and Carrier2 as Dependents Dependents2 and Dependents, it is expedient to process Carrier1 first and only then Carrier2.
  • Step S7 is a further selection step, which indicates that the procedure continues to be dependent-wise, ie that the following steps of the method for the carrier selected in step S6 are carried out one after the other for each of its dependents.
  • This can be done using an order that leads to the fastest possible reduction of value ranges. In particular, such an order is based on the number of carriers on which the dependent to be examined is itself dependent, in ascending order.
  • block S8-S11 there is again a restriction of the value range rich of both the bearer and the dependent.
  • an interface can also be dependent on several carriers and is then dealt with several times in step S7.
  • An example of this is analog/digital interfaces, which actually represent two interfaces, one digital and one analog. Such situations arise in particular when a layout is designed for an entire platform or multiple hardware variants.
  • a carrier itself can also be dependent on another carrier, so that such an interface is dealt with once at S6 and once at S7.
  • Block S8-S11 consists of determining conditions, S8 and S10, and removing values from the value range that do not meet the condition, S9 and S11.
  • step S8 the direct conditions, i.e. those between carrier and dependent, are determined for the dependent, and in step S10 the interface-specific conditions and microcontroller-internal conditions are determined for the dependent.
  • this initially has a value range of TOM0_0, TOMO_1, ..., TOMO_8.
  • this initially also has a value range TOM0_0, TOMO_1 , ... , TOMO_8.
  • the direct dependency means that the dependents TOMO_1 and TOMO_2 and the carrier TOMO_7 and TOMO_8 are eliminated, so the respective value range can be restricted accordingly.
  • step S12 determines whether the value range has changed for (any) carriers. If such carriers exist (e.g. in the example above), in step S13 the system branches back to S6 and the block is run through again for each carrier and its dependents.
  • step S14 it is checked whether the value range before the pins contain are consistent overall, ie whether, for example, enough pins are available for all interfaces. For example, if the value ranges Pin1 , Pin2 were obtained for the three interfaces Inti , Int2 and Int3 , ie
  • Pin value range Pin1 ; Pin2
  • Pin value range Pin1 ; Pin2
  • Pin value range Pin1 ; Pin2 each interface alone has enough pins available.
  • step S14 it would be recognized that there is one pin too few available overall, i.e. no pin can be assigned to an interface. The user can be informed about this and then decide which interface is to be excluded from the allocation, or cancel the procedure and, if necessary, change the conditions in such a way that allocation is possible.
  • Step S15 does the same for the resources, i.e. it is checked whether the value ranges containing the resources are consistent. For example, it is checked whether there are enough ATOMs for all interfaces that require ATOMs.
  • the interfaces can be assigned, which is shown as an example for a first variable in FIG.
  • a node denotes the constraint satisfaction problem (CSP) of the current interface occupancy with all completed partial occupancies, a selected interface to be occupied next, remaining interfaces that are not yet occupied, and all current conditions.
  • CSP constraint satisfaction problem
  • each interface has zero, one, or more possible partial solutions.
  • Each condition-consistent partial solution of the interface defines a child of an interface.
  • such children can be combined from the existing value ranges and their links be taken, in particular from the interface/pin assignment and the interface/resource assignment, ie each child consists of a permissible resource/pin combination. Which of the children is used as a solution for the selected interface depends on its priority and the satisfaction of the consistency of the value ranges.
  • the next interface to be occupied is selected according to a selection rule (cf. step 502, FIG. 5).
  • the interfaces to be assigned can be sorted in ascending order based on the size of their value ranges, those with the smallest value range first.
  • a first step S16 all children (solutions for this variable) are determined. Every CSP problem, i.e. every node here, either has no solution, exactly one solution or several solutions.
  • a prioritization strategy is applied to the children and the children are ordered accordingly. For example, if an interface requires a "Timer Output Module", TOMs and ATOMs can be used for this. For example, the use of TOMs can have a higher priority than ATOMs. As a result, the partial solutions (children) with TOM are sorted in front of the partial solutions with ATOM. Another example concerns a layout-friendly allocation. For example, the CANTX and CANRX interfaces of the same CAN connection should be assigned to adjacent pins. Then the partial solutions are sorted in first where the pins are adjacent.
  • step S18 the child with the highest priority is selected from the possible children (cf. step 503, FIG. 5) and the subsequent steps up to S28 are carried out for this child.
  • step S20 all interfaces are determined that have not yet been assigned and that are linked to the interface that is currently to be occupied via conditions.
  • Step S21 describes a selection step in which each of these interfaces determined in step S20 is selected in turn, with the subsequent steps up to S23 being carried out for each selected interface.
  • step S22 the range of values for the selected (not yet assigned) interface is further restricted or newly determined on the basis of all of its conditions (interface-specific conditions, microcontroller-internal conditions and direct conditions), taking into account all interfaces assigned up to that point. In particular, the resources and pins assigned to the interfaces that have already been completed are no longer available.
  • step S22 the value ranges obtained are checked for consistency (cf. step 504, FIG. 5), in particular compared with all value ranges of the other interfaces determined in step S20. If, for example, the currently selected interface 1 only has the only resource ATOM2_3 in the value range and exactly the same resource has remained as the only possible resource for another interface, there is no longer any consistency.
  • step S24 If there is no consistency for an interface and the interface currently to be occupied (ie the interface on which Figure 6 is being performed) has other children (step S24), a return is made to step S18 and the next child in the priority order is selected. The steps from S19 are repeated with the next child. If the interface currently to be occupied has no other children, this means that there is no solution and a branch is made to step S29. If there is consistency in step S23, a return is made to step S21 and the next interface determined in step S20 is selected. If there is consistency in S23 for all affected interfaces, step S25 is continued.
  • steps S25 and S26 a value range check of all value ranges is carried out as in steps S14 and S15 in FIG. In this regard, reference is once again made to FIGS. 8 and 9.
  • step S27 it is checked whether inconsistencies were discovered in steps S25 and S26. If consistency is confirmed, the method continues with step S30. If the consistency is not confirmed, it is checked again in step S28 whether it is the last child of the node. If yes, this means that there is no solution and a branch is made to step S29. Otherwise, steps S18 through S27 continue with the next child in the priority order.
  • step S30 the current child is accepted as the solution (cf. step 505, Figure 5), i.e. the interface to be occupied at the moment (i.e. the interface on which Figure 6 is performed) is assigned pin and resources as far as necessary.
  • the next interface to be occupied is then selected - in particular again in accordance with the above-mentioned selection rule.
  • this can also include a new sorting. Then it starts again with S16.
  • step S29 it is determined that no complete solution exists and information about the possible partial solutions is communicated to the user.
  • the user can then decide in particular that no pin/resources are assigned to the interface that is currently to be occupied. As a rule, this will mean that not all interfaces can be occupied.
  • FIG. 8 describes the value range consistency check according to steps S14/S15 from FIG. 5 and S25/S26 from FIG. 7 in a flowchart with reference to the matrices shown on two pages in FIG. For this purpose, using the example of the interface/pin assignment, the value ranges are linked as a matrix with elements ay, shown with the interfaces as rows i and the pins as columns j.
  • an interface/pin assignment results in particular from (Boolean) matrix multiplication of the interface/resource assignment with the resource/pin assignment.
  • a first reduction step S31 unique solutions are eliminated. If there is only one "1" in a line, this means that this interface can only be connected to this pin and accordingly this pin is no longer available for other interfaces. Accordingly, this column value is set to "0" in all other rows. This means a reduction of these other value ranges.
  • Step S32 is a decision step in which it is checked whether the matrix obtained is consistent or permissible, i.e. in particular whether each row still contains at least one "1". If yes, proceed to step S33. Otherwise, the method ends with step S45.
  • step S33 all independent interfaces are removed from the matrix. Independent means that they do not have an overlap in the value range with other interfaces, i.e. all rows that only have "1” in columns in which no other rows have a "1" and the associated ones (then only from "0 " existing) columns deleted.
  • step S37 all identical rows, i.e. the intersections with an identical value range, are determined for the selected matrix.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Bestimmen eines Anschlussschemas einer Recheneinheit an eine Menge von Funktionsmodulen (100), wobei die Recheneinheit eine Menge von Recheneinheitsschnittstellen (A1-T20) und eine Menge von Recheneinheitsressourcen (a1, a2, an, b1, b2, bn, c1,c2, d1, dn, dn) aufweist, wobei jede Recheneinheitsschnittstelle mit einer recheneinheitsschnittstellenspezifischen Untermenge der Menge von Recheneinheitsressourcen verknüpft ist, wobei jedes Funktionsmodul (100) Funktionsmodulschnittstellen (1, 2) aufweist, die jeweils eine oder mehrere Recheneinheitsressourcen benötigen, wobei für jede Funktionsmodulschnittstelle (1, 2) eine Menge von Bedingungen dafür gilt, mit welchen Recheneinheitsschnittstellen (A1-T20) und welchen Recheneinheitsressourcen (a1, a2, an, b1, b2, bn, c1,c2, d1, dn, dn) diese Funktionsmodulschnittstelle (1, 2) belegbar ist. Es werden für jede Funktionsmodulschnittstelle (1, 2) ein Wertebereich enthaltend zuweisbare Recheneinheitsschnittstellen und ein Wertebereich enthaltend zuweisbare Recheneinheitsressourcen gebildet, eine Verknüpfung einer Auswahl der gebildeten Wertebereiche hergestellt, die Verknüpfung auf inhaltliche Konsistenz geprüft und für jede Funktionsmodulschnittstelle eine Belegung mit Recheneinheitsschnittstellen und Recheneinheitsressourcen als Wert einer Variablen bestimmt, wenn die gebildete Verknüpfung konsistent ist.

Description

Beschreibung
Titel
Verfahren zum Bestimmen eines Anschlussschemas einer Recheneinheit an eine Menge von Funktionsmodulen
Die vorliegende Erfindung betrifft ein Verfahren zum Bestimmen eines Anschlussschemas einer Recheneinheit an eine Menge von Funktionsmodulen sowie ein Computer und ein Computerprogramm zu dessen Durchführung, und ein Verfahren zum Anschließen einer Recheneinheit an eine Menge von Funktionsmodulen.
Hintergrund der Erfindung
Zur Bereitstellung von beispielsweise sog. "Embedded Systems" (eingebettete Systeme) können Mikrocontroller als ein Beispiel für eine Recheneinheit mit erwünschten Funktionsmodulen, z.B. ADC, DAC, Ethernet usw., verbunden werden. Dazu muss jeder Schnittstelle (Interface) des Funktionsmoduls ein Pin und eine oder mehrere passende Ressourcen des Mikrocontrollers zugewiesen werden. Gewöhnlich kann dabei jedoch nicht jede Funktionsmodulschnittstelle an jeden Pin angeschlossen werden, da jeder Pin eines Mikrocontrollers nur mit spezifischen internen Ressourcen verknüpft ist. Für jede Schnittstelle, Gruppen von oder die Gesamtheit aller Schnittstellen gelten bestimmte Bedingungen ("constraints"), die erfüllt werden müssen. Daher ist die Bestimmung eines Anschlussschemas eines Mikrocontrollers und entsprechender Funktionsmodule ein komplexes Problem. Dies wird gewöhnlich manuell und individuell durchgeführt, was jedoch einen erheblichen Kosten- und Zeitfaktor darstellen kann, da ein Anschlussschema teilweise für mehrere hundert Pins eines Mikrocontrollers erstellt werden muss. Mit der fortschreitenden Komplexität von Hard- und Software gelangt die manuelle Belegung jedoch an ihre Grenzen. In der Veröffentlichung "A Constraint Satisfaction Algorithm for Microcontroller Selection and Pin Assignment", Berlier, J. A., & McCollum, J. M., Proceedings of the IEEE SoutheastCon, 348-351 (2010), wird für dieses Problem eine numerische Lösung vorgeschlagen, die auf einem Bedingungserfüllungsproblem- Algorithmus (englisch: constraint satisfaction problem, CSP) beruht. Dabei wird eine rekursive Sortierung der Belegung vorgeschlagen, bei der sämtliche Bedingungen nacheinander in einer festen Reihenfolge abgehandelt werden, wobei das Abhandeln einer Bedingung darin besteht, zunächst zu überprüfen, ob die bisherige Sortierung der Belegung diese Bedingung erfüllt. Falls ja, wird die nächste Bedingung behandelt, und falls nein, wird eine zufällige Sortierung gewählt, die diese Bedingung erfüllt, und es werden erneut die in der Reihenfolge vorhergehenden Bedingungen überprüft. Es zeigt sich jedoch, dass dieser Algorithmus bei einem realistischen Mikrocontroller mit mehreren hundert Pins, mehreren Tausend Ressourcen und Hunderten von Bedingungen mit komplexen Abhängigkeiten nicht brauchbar ist, so dass hier weiterhin eine zeitaufwendige und kostenintensive manuelle Erstellung von Anschlussschemata notwendig ist.
Ein Constraint-Satisfaction-Problem (CSP; deutsch: Bedingungserfüllungsproblem) ist eine Aufgabenstellung mit dem Ziel, einen Zustand (d. h. Belegungen von Variablen) zu finden, der alle aufgestellten Bedingungen (Constraints) erfüllt. Ein CSP besteht aus einer Menge von Variablen, ihren Wertebereichen und den Bedingungen, die Verknüpfungen zwischen den Variablen herstellen und dadurch festlegen, welche Kombinationen von Werten der Variablen zulässig sind. Ein CSP wird gelöst, indem eine Belegung der Variablen gefunden wird, die allen Bedingungen genügt. Die grundlegende Problematik von CSP-Algorithmen wird in der Veröffentlichung "Network-based Heuristics for Constraint Satisfaction Problems", Dechter & Pearl, J., Artificial Intelligence 34, 1-38 (1987), beschrieben.
Offenbarung der Erfindung
Erfindungsgemäß werden ein Verfahren zum Bestimmen eines Anschlussschemas einer Recheneinheit, wie z.B. eines Mikrocontrollers, Mikroprozessors, Steuergeräts usw., an eine Menge von Funktionsmodulen sowie ein Computer und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Auch ein Verfahren zum Anschließen einer Recheneinheit an eine Menge von Funktionsmodulen ist Gegenstand der Erfindung. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
Verschiedene Funktionsmodule wie anwendungsspezifische integrierte Schaltkreise (engl.: application-specific integrated circuit, ASIC), Endstufen oder Leistungshalbleiter, Kommunikationsschnittstellen oder Sensoren sind außerhalb von Recheneinheiten wie z.B. Mikrocontrollern angeordnet und benötigen bestimmte Recheneinheitsressourcen (wie Funktionalitäten oder Ressourcen von einem Mikrocontroller), die insbesondere durch Verbindungen von Funktionsmodulschnittstellen mit Recheneinheitsschnittstellen wie Mikrocontroller-Pins bereitgestellt werden. Es sei jedoch betont, dass es auch Funktionsmodulschnittstellen gibt, die zwar Recheneinheitsressourcen, aber keine alleinigen Mikrocontroller- Pins benötigen, z.B. weil sie über einen Bus, wie z.B. MSC (Micro Second Channel) bedient werden.
Die Recheneinheit weist also Recheneinheitsschnittstellen und Recheneinheitsressourcen auf, mit denen die Funktionsmodulschnittstellen je nach Bedarf belegt werden müssen.
Die Erfindung schlägt ein computer-implementiertes Bestimmen der Schnittstellenbelegungen für jede Funktionsmodulschnittstelle mittels der Durchführung eines besonderen Constraint-Satisfaction-Problem-Algorithmus vor. Dabei wird für jede Funktionsmodulschnittstelle eine Zuweisung von Recheneinheitsschnittstellen und Recheneinheitsressourcen zu der Funktionsmodulschnittstelle als Wert (Belegung) einer Variablen bestimmt. Mit anderen Worten stellen die Funktionsmodulschnittstellen die Variablen und die Recheneinheitsressourcen und Recheneinheitsschnittstellen deren Wertebereiche im CSP dar.
Die Erfindung bedient sich dazu der Maßnahme, für die Funktionsmodulschnittstellen Wertebereiche sowohl für die Recheneinheitsschnittstellen als auch für die Recheneinheitsressourcen zu bilden und eine Verknüpfung einer Auswahl (oder vorzugsweise aller) dieser Wertebereiche auf inhaltliche Konsistenz zu prüfen. Insbesondere wird damit also nicht nur berücksichtigt, ob für jede Variable ein geeigneter Wertebereich existiert, sondern auch, ob dies ebenso für mehrere oder insbesondere alle Variablen gilt. Beispielsweise scheinen einzelne Wertebereiche, die für drei Variablen jeweils aus den zwei gleichen Elementen bestehen, in Ordnung. Insgesamt sind sie jedoch inkonsistent, da ein Element zu wenig ist. Solche Inkonsistenzen können im Rahmen der Erfindung jedoch entdeckt werden.
Die Erfindung umfasst vorzugsweise auch ein Verkleinern der gebildeten Wertebereiche durch Anwenden der Menge von Bedingungen, um idealerweise am Ende anhand der Wertebereiche einfach auf die Lösung des Problems zu kommen. Insbesondere werden dabei Werte, die eine Bedingung nicht erfüllen, aus dem Wertebereich entfernt. Weiter vorzugsweise werden alle Funktionsmodulschnittstellen, deren Belegung auf wenigstens eine weitere Funktionsmodulschnittstelle Einfluss hat, als Träger und die beeinflussten Funktionsmodulschnittstellen als Abhängige ermittelt, und für jeden Träger wird abhängigenweise der gebildete Wertebereiche durch Anwenden der Menge von Bedingungen verkleinert. Durch dieses doppelt-iterative Vorgehen (träger- und abhängigenweise) kann eine effektive Verkleinerung der Wertebereiche erreicht werden. Dabei kann eine Abhängige auch eine andere Abhängige durch deren gemeinsamen Träger beeinflussen.
Besonders vorteilhaft wird dieses Verkleinern der gebildeten Wertebereiche so lange immer wieder wiederholt (d.h. wieder für alle Träger durchlaufen), bis sich die Wertebereiche bzw. deren Mächtigkeit nicht mehr ändern. Damit können sehr kleine Wertebereiche erzielt werden.
Vorzugsweise enthält die Verknüpfung eine Vielzahl Elemente ay, wobei ein erster Wert des Elements ay eine mögliche Belegung einer Funktionsmodulschnittstelle i mit einer Recheneinheitsschnittstelle bzw. einer Recheneinheitsressource j beschreibt und ein zweiter Wert des Elements a eine unmögliche Belegung der Funktionsmodulschnittstelle i mit der Recheneinheitsschnittstelle bzw. der Re- cheneinheitsressource j beschreibt. Auf eine solche Verknüpfung kann die Konsistenzprüfung besonders einfach angewandt werden, wie nachfolgend noch erläutert wird. Eine solche Verknüpfung ist insbesondere als Matrix mit Zeilen i und Spalten j darstellbar.
Das Prüfen der Verknüpfung auf inhaltliche Konsistenz umfasst vorzugsweise ein Reduzieren der Verknüpfung nach Maßgabe einer Reduzierungsvorschrift, um eine reduzierte Verknüpfung zu erhalten, und ein Prüfen der reduzierten Verknüpfung auf inhaltliche Konsistenz. Beim Reduzieren werden insbesondere konsistente Verknüpfungsteile erkannt und aus der Verknüpfung entfernt bzw. dort so verändert, dass die Überprüfung vereinfacht wird.
Die Reduzierungsvorschrift umfasst vorteilhafterweise, wenn es für eine bestimmte Funktionsmodulschnittstelle nur ein Element mit dem ersten Wert gibt, ein Setzen auf den zweiten Wert aller Elemente der Verknüpfung, die eine mögliche Belegung mit derselben Recheneinheitsschnittstelle bzw. derselben Recheneinheitsressource beschreiben wie das Element mit dem ersten Wert, außer dem Element mit dem ersten Wert selbst. Bei Darstellung in Matrixform werden dabei Zeilen gesucht, die nur ein Element mit dem ersten Wert haben, und alle anderen Zeilen werden in dieser Spalte auf den zweiten Wert gesetzt.
Die Reduzierungsvorschrift umfasst vorteilhafterweise ein Entfernen aus der Verknüpfung aller Elemente, die eine mögliche oder unmögliche Belegung derselben Funktionsmodulschnittstelle beschreiben (also einer Zeile in Matrixform), wenn alle Recheneinheitsschnittstellen bzw. Recheneinheitsressourcen, die dieser Funktionsmodulschnittstelle zuweisbar sind, nur dieser Funktionsmodulschnittstelle zuweisbar sind (wenn also in Matrixform die Spalten, bei denen in dieser Zeile der ersten Wert steht, in keiner anderen Zeile den ersten Wert haben); und ein Entfernen aus der Verknüpfung aller Elemente, die eine mögliche oder unmögliche Belegung mit diesen Recheneinheitsschnittstellen bzw. Recheneinheitsressourcen beschreiben (also in Matrixform auch dieser Spalten).
Die Reduzierungsvorschrift umfasst vorteilhafterweise, bei Darstellung in Matrixform, ein Bilden von Unterverknüpfungen (Submatrizen), die jeweils alle Zeilen mit derselben Anzahl von ersten Werten aufweisen, und ein Entfernen aus der Verknüpfung aller identischen Zeilen, wenn die Anzahl von identischen Zeilen gleich der Anzahl von ersten Werten in einer solchen Zeile ist.
Durch diese Reduzierungsvorschriften können sehr einfach konsistente Teile aus der Verknüpfung entfernt werden, um so die Überprüfung des Restes zu vereinfachen.
Eine erfindungsgemäße Recheneinheit ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
Die Erfindung ist anhand von Ausführungsbeispielen in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen beschrieben.
Ohne Beschränkung der Allgemeinheit wird die Erfindung dabei anhand eines Mikrocontrollers als Recheneinheit mit Pins als Recheneinheitsschnittstellen erläutert. Ein Mikrocontroller, insbesondere ein Mikrocontroller für ein Fahrzeug, stellt eine Menge von Pins und eine Menge von Ressourcen bereit. Die Ressourcen können dabei verschiedene Funktionalitäten umfassen, die insbesondere jeweils mindestens über einen Pin zugänglich sind. Dies können sogenannte "peripherals" sein, also Schnittstellenanschlüsse wie beispielsweise zu einem Controller Area Network (CAN), zu einem Local Internet Network (LIN), zu einem Serial Peripheral Interface (SPI), zu einem Analog-Digital-Wandler (ADC); zu einem Digital-Analog-Wandler (DAC), zu einem USB- Anschluss, oder einem PC- Anschluss, zu Pulsbreitenmodulations-Ausgängen (PWM-Ausgänge), zu einem Takteingangsmodul ("Timer Input Module" (TIM)), zu einem Taktausgangsmodul ("Timer Output Funktionsmodule" (TOM)). Darunter können auch Ressourcen sein, die nicht direkt über einen Pin zugänglich sind, sondern nur indirekt, z.B. MCS ("multi channel sequencer"), die über ATOMs und TIMs zugänglich sind; oder Ressourcen, die nur intern verwendbar sind.
Kurze Beschreibung der Zeichnungen
Figur 1 zeigt schematisch eine Pinverteilung und Ressourcenverteilung eines Mikrocontrollers, für den eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchgeführt werden kann;
Figur 2a zeigt schematisch ein Funktionsmodul mit einer Schnittstelle, die an einen Pin des Mikrocontrollers angeschlossen werden kann, wofür eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchgeführt werden kann;
Figur 2b zeigt schematisch ein anderes Funktionsmodul mit Schnittstellen, die an einen jeweils Pin des Mikrocontrollers angeschlossen werden können, wofür eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchgeführt werden kann;
Figur 3 zeigt schematisch eine Verknüpfung von Pins eines Mikrocontrollers mit Ressourcen eines Mikrocontrollers, für die eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchgeführt werden kann;
Figur 4 zeigt schematisch eine Verknüpfung von Pins eines Mikrocontrollers mit Ressourcen eines Mikrocontrollers und Verknüpfungen zwischen Ressourcen des Mikrocontrollers. Figur 5 zeigt ein übergreifendes Schema einer bevorzugten Ausführungsform der Erfindung.
Figur 6 zeigt ein Flussdiagramm zu einer bevorzugten Ausführungsform einer Initialisierung eines Belegungsverfahrens;
Figur 7 zeigt ein Flussdiagramm zu einer bevorzugten Ausführungsform einer Durchführung des Belegungsverfahrens;
Figur 8 zeigt ein detaillierteres Flussdiagramm zu den Konsistenzprüfungsschritten aus Figur 6 und 7.
Figur 9 zeigt auf zwei Seiten die Wirkung der Schritte aus Figur 8 auf eine als Matrix dargestellte Verknüpfung von Wertebereichen.
Ausführungsformen der Erfindung
Figur 1 zeigt schematisch einen Mikrocontroller mit einer Anzahl Pins in Form von Port-Pins (Foot-Print) für ein sogenanntes BGA-Package und einer Anzahl Ressourcen, auf den zur Bestimmung eines Anschlussschemas eine Ausführungsform eines erfindungsgemäßen Verfahrens anwendbar ist.
In der Zeichnung sind mit jeweils einem Großbuchstaben zwischen A und T und einer Zahl zwischen 1 und 20 pC-Pins bzw. Pins des Mikrocontrollers bezeichnet und als quadratische Kästchen dargestellt. Weiterhin sind Ressourcen des Mikrocontrollers als rechteckige Kästchen dargestellt und mit ai , a2, an, bi , b2, bn, Ci, C2, di , d2, dn bezeichnet. Bei den Ressourcen des Mikrocontrollers handelt sich um mikrocontrollerinterne Funktionalitäten, die über die Pins nach außen zur Verfügung gestellt werden, wie z.B. ADC, DAC, CAN, LIN, SPI, TIM, TOM uvm.
In der Regel ist jeder Pin ist mit pinspezifischen Ressourcen verknüpft. Durch Linien ist rein beispielhaft angedeutet, dass der Pin D1 mit den Ressourcen ai und a2 verknüpft ist, dass der Pin D6 mit der Ressource ai verknüpft ist, dass der Pin B8 mit der Ressource ai verknüpft ist und dass der Pin E9 mit den Ressourcen ai , bi und Ci verknüpft ist. Der Übersichtlichkeit halber können mögliche Verknüpfungen hier nur andeutungsweise dargestellt werden. Daneben existieren auch Pins ohne Ressourcen, wie z.B. zur Energieversorgung oder einfache GPIO.
Auch Ressourcen können untereinander verknüpft sein. So ist rein beispielhaft durch Linien zwischen b2 und di sowie zwischen C2 und d2 angedeutet, dass diese Ressourcen untereinander verknüpft sind. Beispielsweise sind ADC-Module mit Taktgebermodulen verknüpft, um eine Analog-Digital-Wandlung zeitabhängig durchführen zu können. Dies bedeutet insbesondere, dass das Zuweisen bestimmter Ressourcen zu Pins gleichzeitig auch die damit verknüpften Ressourcen belegt. Es handelt sich dabei um sog. mikrocontrollerinterne Bedingungen.
Figur 2a zeigt schematisch ein externes Funktionsmodul mit mehreren Schnittstellen, die an Pins des Mikrocontrollers angeschlossen werden können bzw. müssen, wofür eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchgeführt werden kann.
Das Funktionsmodul ist mit 100 beschriftet und weist die Schnittstelle 1 auf. Eine Schnittstelle (auch Interface) ist eine Signalleitung eines Funktionsmoduls, die bestimmte pC-Ressourcen benötigt und dementsprechend an einen pC-Pin mit den richtigen pinspezifischen pC-Ressourcen angeschlossen werden muss. Bei dem Funktionsmodul kann es sich beispielsweise um eine Auswerteschaltung für einen Drehzahlgeber handeln, die an Schnittstelle 1 mit einem Gebereingang verbunden werden soll. Symbolisiert ist dies durch ein Modul M1 mit Schnittstelle M1_I1. Mit dieser Schnittstelle M1_I1 ist somit die Bedingung "Gebereingang" verbunden.
Die Pins und Ressourcen eines Mikrocontrollers, wie beispielsweise in Figur 1 dargestellt, müssen Schnittstellen von Funktionsmodulen zugewiesen werden. Die Schnittstellenbelegungen belegen jede Schnittstelle eines Funktionsmoduls mit einer Ressource und ggf. einem Pin, der die von der Schnittstelle benötigten Ressourcen aufweist. Es sei jedoch betont, dass es auch Schnittstellen gibt, die zwar Ressourcen, aber keine eigenen Mikrocontroller-Pins benötigen, z.B. weil sie über einen Bus bedient werden, wie in Figur 2b dargestellt.
Figur 2b zeigt schematisch ein externes Funktionsmodul 110, das beispielsweise als ASIC mit vier Halbleiterendstufen ausgebildet ist. Jede Halbleiterendstufe hat einen Ausgang OUT1 , ... , OUT4, insbesondere sog. "Power Stage Outputs", z.B. Low-Side-Endstufen. Das Funktionsmodul 110 ist über MSC mit einem Mikrocontroller zu verbinden und benötigt dazu beispielhaft vier Schnittstellen 120 (CLOCK, DATAIN, DATAOUT, MSC-ENABLE). Jeder Endstufe sind eine bestimmte Bit-Adresse und über die MSC-Schnittstellen auch GTM-Ressourcen zuzuweisen. Diese GTM-Ressourcen sind nicht direkt mit den pC-Pins verbunden, sondern werden controllerintern verknüpft.
Auch Sensoren stellen typische Funktionsmodule dar. Ein Klopfsensor, der in einem Zylinder eines Verbrennungsmotors angeordnet und verwendet wird, um ungewöhnliche Pulsationen zu erfassen, die von der Brennstoffexplosion verursacht wird, gibt beispielsweise als Messsignal ein differentielles Signal an zwei Schnittstellen aus, die mit einem differentiellen ADC (DS-ADC) verbunden werden müssen. Weiterhin werden dazu mikrocontrollerintern ein Taktgebereingang (TIM, Timer Input Module) für die Taktung der Signalerfassung und ein Taktgeberausgang (TOM, Timer Output Module, z.B. ATOM, ARU-connected Timer Output Module; ARU: Advanced Router Unit, mikrocontrollerinterne Routingeinheit) für das Auslösen bzw. Triggern der Signalerfassung benötigt. Hieraus ergeben sich mikrocontrollerinterne Bedingungen, da beispielsweise nicht jeder DS- ADC mit jedem TIM verbunden ist. Zur Entlastung einer CPU des Mikrocontrollers kann ein sog. "Multi-Channel-Sequencer" (MCS) aus dem "Generic Timer Module" (GTM) eingesetzt werden. Dabei handelt es sich um ein softwareprogrammierbares Modul, das Aufgaben der CPU des Mikrocontrollers übernehmen kann, insbesondere wenn es um sog. Echtzeitprozesse geht.
Die Auswertung eines Drucksensors, der beispielsweise zur Messung eines Kraftstoffdrucks dient, benötigt als Mikrocontroller-Ressourcen beispielsweise einen SAR-ADC (Successive-approximation-register (SAR) analog-to-digital converters (ADCs)) und einen ATOM oder TOM. Hieraus ergeben sich ebenfalls mik- rocontrollerinterne Bedingungen, die die Verbindung zwischen Timer und ADC betreffen.
Die Auswertung eines Lambda-Sensors, der beispielsweise zur Messung einer Sauerstoffmenge im Abgas dient, benötigt als Mikrocontroller-Ressourcen beispielsweise SPI, was auch über herkömmliche I/O-Pins, insbesondere TIM und TOM emuliert werden kann, beispielsweise ein TIM und drei ATOM. Hieraus ergeben sich als mikrocontrollerinterne Bedingungen, dass alle TIM und ATOM aus einem gemeinsamen GTM-Cluster kommen müssen.
Funktionsmodule mit komplexen Bedingungen sind beispielsweise integrierte Schaltungen (IC), wie z.B. sog. ASIC (anwendungsspezifische integrierte Schaltung). Solche ASIC können z.B. bei Brennkraftmaschinen zum Ansteuern der einzelnen Injektoren verwendet werden. Es kann beispielsweise für jeden Injektor eine Schnittstelle START existieren, die mit einem Ausgang des Mikrocontrollers verbunden werden müssen, der aber gleichzeitig auch als Eingang konfiguriert wird, um das tatsächlich anliegende Ausgangssignal zu überwachen. Dazu werden als Ressourcen je Injektor ATOM, MCS und TIM, MCS benötigt. Weiterhin kann für jeden Injektor eine Schnittstelle STATE existieren, die mit einem Ausgang des Mikrocontrollers verbunden werden müssen. Dazu werden als Ressourcen je Injektor ATOM, MCS benötigt. Weiterhin kann für die gesamte Bank eine Schnittstelle DI_BUSY1 existieren, die mit einem Eingänge des Mikrocontrollers verbunden werden muss, um ein Feedbacksignal rückzuführen. Dazu werden als Ressourcen TIM, MCS benötigt. Schließlich können auch Schnittstellen DI_OA1 und DI_OA2 für ein differentielles Überwachungssignal an einen DS- ADC vorgesehen sein, der wiederum prozessorintern TIM, ATOM und MCS benötigt.
Figur 3 zeigt ein Beispiel, wie Pins eines Mikrocontrollers mit verschiedenen Ressourcen verknüpft sind. Die Ressource TOM1 hat die Kanäle "ch:0-8" und der Kanal "ch:0" ist mit den Pins P21, P56 und P234 verbunden. Die Ressource TOM2 hat die Kanäle "ch:9-15" und der Kanal ch:15 ist ebenfalls mit Pin P234 und daneben auch mit den Pins P56 und P234 verbunden. Figur 4 zeigt ebenfalls ein Beispiel, wie Pins eines Mikrocontrollers mit verschiedenen Ressourcen verknüpft sind. Die Ressourcen sind dabei jedoch ebenfalls weiterhin untereinander verknüpft. Die Ressource ADCO ist u.a. mit den Ressourcen TOM1(ch:0-8) und TOM1(ch:9-15) verknüpft, außerdem u.a. als ADC0(ch:0) mit Pin P20 und als ADC0(ch:1) mit Pin P21. Die Ressource ADC1 ist u.a. mit den Ressourcen TOM2(ch:0-8) und TOM2(ch:9-15) verknüpft. Die Ressource ADC2 ist u.a. mit den Ressourcen TOM 1(ch:0-8) und TOM1(ch:9-15) verknüpft, außerdem u.a. als ADC2(ch:6) mit Pin P22 und als ADC2(ch:7) mit Pin P23.
All dies dient nur zur Veranschaulichung der zugrundeliegenden Bedingungen und es versteht sich, dass in der Praxis zahlreiche unterschiedliche Verbindungen und Bedingungen existieren.
Zum Bestimmen eines Anschlussschemas eines Mikrocontrollers an eine Menge von Funktionsmodulen müssen zweckmäßigerweise alle relevanten bzw. interessierenden Schnittstellen (der Funktionsmodule) mit jeweils passenden Ressourcen über Pins verbunden werden. Somit ergibt sich ein Belegungsproblem bzw. Bedingungserfüllungsproblem (CSP), das für realistische Anwendungsfälle bisher nur manuell gelöst werden konnte. Anhand eines Übersichtsschemas 500 in Figur 5 wird nun eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens erläutert, mit der dieses Problem zuverlässig computer-implementiert gelöst werden kann. Auf dieselbe Weise lösbar sind Probleme bei der Belegung von Ports als Recheneinheitsschnittstellen und Ressourcen für Plattform- Steuergeräte als Recheneinheiten, wobei dasselbe PSB-Layout für verschiedene Hardware-Bestückungsvarianten geeignet sein soll. Dabei sollen gemeinsame Funktionsmodule die gleiche Ressourcenzuweisung erhalten. Ebenso eignet sich die Erfindung vorteilhaft für die Ermittlung einer Belegung unterschiedlicher Mik- rocontroller-Typen für denselben Fall, um z.B. auf Produkte unterschiedlicher Zulieferer zurückgreifen zu können.
Die Belegung beginnt mit einem Schritt 501, in welchem für jede Schnittstelle soweit benötigt ein Wertebereich enthaltend zuweisbare Pins A1-T20 des Mikrocontrollers und ein Wertebereich enthaltend zuweisbare Ressourcen ai , a2, an, bi, b2, bn, Ci,C2, di, d2, dn des Mikrocontrollers gebildet wird. Die Wertebereiche werden auf Grundlage der bekannten Bedingungen soweit möglich eingeschränkt, d.h. unmögliche Werte werden gelöscht, und die Wertebereiche werden schnittstellenübergreifend auf inhaltliche Konsistenz geprüft (vgl. auch Figuren 8 und 9). Die tatsächlich zuweisbaren Ressourcen ergeben sich dabei unmittelbar aus den Bedingungen (d.h. welche Ressourcen benötigt die Schnittstelle) und die zuweisbaren Pins ergeben sich beispielsweise durch Multiplikation der Schnittstellen/Ressourcen-Matrix mit einer Ressourcen/Pin-Matrix (d.h. welche Ressource ist überhaupt an welchen Pins verfügbar).
In einem Schritt 502 wird die erste bzw. die nächste zu belegende Schnittstelle ausgewählt. Dies kann insbesondere nach Maßgabe einer Auswahlvorschrift geschehen. In die Auswahlvorschrift können insbesondere ein oder mehrere der folgenden Kriterien eingehen: Wie mächtig sind ihre Wertebereiche; handelt es sich um einen Träger; wenn es sich um einen Träger handelt, wie viele Abhängige hat er; handelt es sich um eine Abhängige.
In einem Schritt 503 wird eine erste Lösung (im Folgenden auch Kind oder "child" bezeichnet) für die aktuelle Schnittstelle ausgewählt. Bei der Auswahl dieser Lösungen können insbesondere Priorisierungsstrategien berücksichtigt werden, gemäß denen die Kinder in eine bestimmte Reihenfolge gebracht wurden. Beispielsweise kann eine layoutfreundliche Belegung zu einer höheren Priorität führen.
In einem Schritt 504 wird überprüft, ob bei Wahl des Kindes als Lösung die Wertebereiche der noch nicht zugewiesenen Schnittstellen konsistent sind. Insbesondere wird dabei berücksichtigt, dass bestimmte Pins und Ressourcen nur ein einziges Mal zugewiesen werden können, und geprüft, ob noch genügend Pins und Ressourcen für alle anderen Schnittstellen übrig sind. Sind die Wertebereiche nicht konsistent, wird zu Schritt 503 zurückgekehrt und das nächste Kind ausgewählt. Sind die Wertebereiche jedoch konsistent, wird in Schritt 505 das Kind als Teillösung für die momentane Schnittstelle angenommen. Sind dann noch zu belegende Schnittstellen übrig, wird wieder zu Schritt 501 verzweigt und die Wertebereiche für die noch zu belegenden Schnittstellen werden anhand der soeben erfolgten Belegung reduziert. Dabei erfolgt auch wieder die schnittstellenübergreifende Prüfung der Wertebereiche auf inhaltliche Konsistenz (vgl. auch Figuren 8 und 9).
Sind alle Schnittstellen belegt, endet das Verfahren. Vorzugsweise wird dann gemäß einem weiteren Aspekt der Erfindung auch die Recheneinheit gemäß der ermittelten Lösung an die Menge von Funktionsmodulen angeschlossen.
Die Figuren 6 bis 8 zeigen unterschiedliche Stadien bei der Durchführung einer Ausführungsform der Erfindung. Figur 6 zeigt dabei einen Initialisierungsteil, der sich im Wesentlichen mit der Festlegung der Wertebereiche für die Variablen befasst. Dieser entspricht einer möglichen Implementierung des Schritts 501 aus Figur 5.
Während der Belegung werden alle vorhandenen Bedingungen in unterschiedlichen Gruppen und zu unterschiedlichen Zeitpunkten berücksichtigt. Insbesondere wird dabei zwischen schnittstellenspezifischen Bedingungen (z.B. welche Ressource und ggf. Pin werden benötigt), mikrocontrollerinternen Bedingungen (z.B. mit welchen Pins ist die Ressource verbunden und welche weiteren Ressourcen werden von ihr benötigt), direkten Bedingungen (z.B. welche anderen Schnittstellen sind betroffen) und wechselseitigen Bedingung unterschieden. Unter wechselseitigen Bedingungen werden solche verstanden, bei denen die Belegung einer bestimmten Schnittstelle den Wertebereich anderer Schnittstellen einschränkt. Z.B. wenn einem Pin P1 ein SENT-Signal zugewiesen ist und dann die Pins P2, P3, P7 nicht mehr mit Treiberstärke STRONG konfiguriert werden (d.h. für manche Schnittstellen stehen diese drei Pins nicht mehr zur Verfügung; der Wertebereich für manche Schnittstellen hat sich geändert); oder wenn umgekehrt dem Pin P2 eine Schnittstelle mit Treiberstärke STRONG zugewiesen ist, kann man Pin P1 nicht mehr einer SENT-Schnittstelle zuweisen.
Die Bedingungen können dabei unterschieden werden in unäre Bedingungen (Bedingungen, die den Wert bzw. Wertebereich einer einzelnen Variablen kontrollieren), binäre Bedingungen (Verknüpfungen zwischen zwei Variablen) und Bedingungen höherer Ordnung (Verknüpfungen, die drei oder mehrere Variablen umfassen).
S1 ist ein Auswahlschritt, der angibt, dass schnittstellenweise vorgegangen wird. Das heißt, dass die folgenden Schritte des Verfahrens nacheinander für jede Schnittstelle jedes Funktionsmoduls durchgeführt werden.
In einem Schritt S2 wird der Wertebereich für die Schnittstelle (Variable) grundlegend bestimmt. Jeder schnittstellenindividuelle Wertebereich umfasst dabei zunächst alle für diese Schnittstelle möglichen Ressourcen und - wenn benötigt - Pins des Mikrocontrollers. Hier werden z.B. für eine CANTX-Schnittstelle alle CANTX-Ressourcen als Wertebereich bestimmt (aber keine unmöglichen Ressourcen wie z.B. GTM-Ressourcen oder CANRX-Ressourcen).
In einem zweiten Schritt S3+S4 wird für die ausgewählte Schnittstelle anhand von einem ersten Teil von Bedingungen (constraints), bei dem jede Bedingung nur diese Schnittstelle und keine weitere Schnittstelle betrifft, also insbesondere unäre Bedingung, der Wertebereich soweit eingeschränkt, dass alle Bedingungen des ersten Teils erfüllt sind. Der erste Teil von Bedingungen umfasst dabei insbesondere schnittstellenspezifische Bedingungen und mikrocontrollerinterne Bedingungen. Insbesondere wird dazu zunächst der erste Teil an Bedingungen bestimmt, S3, und dann werden alle Pins und Ressourcen aus dem jeweiligen Wertebereich entfernt, die den ersten Teil der Bedingungen nicht erfüllen, S4. Benötigt eine Schnittstelle beispielsweise digitale Pins (I/O) und dazu ein TOM und ein TIM, werden in Schritt S2 alle digitale Pins, alle TOMs und alle TIMs in den jeweiligen Wertebereich aufgenommen. In Schritt S3 werden nur die Pins im Pin-Wertebereich behalten, die gleichzeitig TIMs und TOMs zur Verfügung haben. Im TIM-Wertebereich und TOM-Wertebereich werden nur diejenigen TIMs bzw. TOMs behalten, die in diesen verfügbaren Pins zu finden sind. Als mikrocontrollerinterne Bedingung kann z.B. berücksichtigt werden, dass die TIMs und TOMs aus gleichem GTM-Cluster sein müssen. Sind alle Schnittstellen durchlaufen, werden beginnend mit Schritt S5 die Bedingungen höherer Ordnung berücksichtigt, um die Wertebereiche weiter zu reduzieren.
In Schritt S5 werden alle Schnittstellen ermittelt, deren Belegung auf wenigstens eine weitere Schnittstelle Einfluss hat, also insbesondere Schnittstellen mit binären und höheren Bedingungen. Z.B. ist die o.g. Schnittstelle START1 eine solche Schnittstelle, deren Belegung auch auf alle Schnittstellen START2, ... , STATE1, ... usw. Einfluss hat, weil alle benötigten Ressourcen (TOM, TIM, MOS, ATOM) aus demselben GTM im Mikrocontroller stammen müssen, mit einer ganz bestimmte Sequenz der Kanäle.
Eine Schnittstelle, deren Belegung auf wenigstens eine weitere Schnittstelle Einfluss hat, wird als Träger (z.B. START1) definiert; die beeinflussten Schnittstellen (z.B. START2 usw.) als Abhängige.
Schritt S6 ist ein Auswahlschritt, der angibt, dass trägerweise vorgegangen wird, d.h. dass die folgenden Schritte des Verfahrens nacheinander für jeden Träger durchgeführt werden. Dies kann anhand einer Reihenfolge erfolgen, die zu einer möglichst schnellen Reduzierung von Wertebereichen führt. Insbesondere basiert eine solche Reihenfolge auf der Anzahl der T räger, von denen der zu untersuchende Träger selbst abhängig ist, in aufsteigender Reihenfolge. Hat beispielsweise ein Trägerl als Abhängige Träger2, Abhängige2 und Abhängiges; und Träger2 als Abhängige Abhängige2 und Abhängiges, wird zweckmäßigerweise zuerst Trägerl und erst danach Träger2 bearbeitet.
Schritt S7 ist ein weiterer Auswahlschritt, der angibt, dass weiterhin abhängigenweise vorgegangen wird, d.h. dass die folgenden Schritte des Verfahrens für den in Schritt S6 ausgewählten Träger nacheinander für jeden seiner Abhängigen durchgeführt werden. Dies kann anhand einer Reihenfolge erfolgen, die zu einer möglichst schnellen Reduzierung von Wertebereichen führt. Insbesondere basiert eine solche Reihenfolge auf der Anzahl der T räger, von denen die zu untersuchende Abhängige selbst abhängig ist, in aufsteigender Reihenfolge. Dabei findet im anschließenden Block S8-S11 erneut eine Einschränkung des Wertebe- reichs sowohl des Trägers als auch der Abhängigen statt. Es sei darauf hingewiesen, dass eine Schnittstelle auch Abhängige mehrerer Träger sein kann und dann mehrmals in Schritt S7 behandelt wird. Ein Beispiel hierfür sind analo- ge/digitale Schnittstelle, die eigentlich zwei Schnittstellen repräsentieren, eine digitale und eine analoge. Solche Situationen treten insbesondere dann auf, wenn ein Layout für eine ganze Plattform oder mehrere Hardware-Varianten entworfen wird. Ebenso kann ein Träger selbst auch Abhängige eines anderen Trägers sein, so dass eine solche Schnittstelle einmal bei S6 und einmal bei S7 behandelt wird.
Der Block S8-S11 setzt sich zusammen aus dem Bestimmen von Bedingungen, S8 und S10, und dem Entfernen von Werten aus dem Wertebereich, die die Bedingung nicht erfüllen, S9 und S11 . Im Einzelnen werden in Schritt S8 für den Abhängigen die direkten Bedingungen, d.h. solche zwischen Träger und Abhängige, bestimmt, und in Schritt S10 werden für den Abhängigen die schnittstellenspezifischen Bedingungen und mikrocontrollerinternen Bedingungen bestimmt.
Ist der Träger beispielsweise TOMO_(Kanal = any), hat dieser zunächst einen Wertebereich TOM0_0, TOMO_1 , ... , TOMO_8. Ist eine Abhängige TOMO_(Kanal = Kanal_Träger + 2), hat diese zunächst ebenfalls einen Wertebereich TOM0_0, TOMO_1 , ... , TOMO_8. Allerdings ergibt sich aus der direkten Abhängigkeit, dass für die Abhängige TOMO_1 und TOMO_2, und dass für den Träger TOMO_7 und TOMO_8 ausscheiden, der jeweilige Wertebereich also entsprechend eingeschränkt werden kann.
Sind alle Träger mit ihren Abhängigen auf diese Weise abgearbeitet, wird in Schritt S12 festgestellt, ob sich für (irgendwelche) Träger der Wertebereich verändert hat. Existieren solche Träger (wie z.B. im obigen Beispiel), wird in Schritt S13 zurück zu S6 verzweigt und der Block erneut für jeden Träger und dessen Abhängige durchlaufen.
Wenn sich der Wertebereich der Träger nicht mehr verändert, wird mit den Schritten S14 und S15 fortgefahren, in denen die aufgefundenen Wertebereiche evaluiert bzw. geprüft werden. In Schritt S14 wird überprüft, ob die Werteberei- ehe, die die Pins enthalten, insgesamt konsistent sind, also ob z.B. für alle Schnittstellen genügend Pins zur Verfügung stehen. Hat man beispielsweise für die drei Schnittstellen Inti , Int2 und Int3 jeweils die Wertebereiche Pin1 , Pin2 erhalten, d.h.
Inti : Pin-Wertebereich = Pin1 ; Pin2
Int2: Pin-Wertebereich = Pin1 ; Pin2
Int3: Pin-Wertebereich = Pin1 ; Pin2 hat jede Schnittstelle alleine zwar genügend Pins zur Verfügung. In Schritt S14 würde aber erkannt, dass insgesamt ein Pin zu wenig zur Verfügung steht, d.h. einer Schnittstelle kein Pin zugewiesen werden kann. Der Anwender kann darüber informiert werden und dann entscheiden, welche Schnittstelle von der Belegung ausgenommen werden soll, oder das Verfahren abbrechen und ggf. die Bedingungen so verändern, dass eine Belegung möglich wird.
Schritt S15 tut dasselbe für die Ressourcen, d.h. es wird überprüft, ob die Wertebereiche, die die Ressourcen enthalten, konsistent sind. Beispielsweise wird überprüft, ob es genug ATOMs für alle Schnittstellen, die ATOMs benötigen, gibt.
Ein Beispiel für eine Implementierung dieser Schritte gemäß einer bevorzugten Ausführungsform der Erfindung durch Einsatz einer Matrixform wird für den Schritt S14 später anhand der Figuren 8 und 9 beschrieben.
Nachdem die Schritte aus Figur 6 durchgeführt worden sind, kann eine Belegung der Schnittstellen durchgeführt werden, was beispielhaft für eine erste Variable in Figur 7 gezeigt ist.
Im Folgenden bezeichnet ein Knoten das Bedingungserfüllungsproblem (CSP) der momentanen Schnittstellenbelegung mit allen abgeschlossenen Teilbelegungen, einer ausgewählten Schnittstelle, die als nächstes belegt werden soll, Restschnittstellen, die noch nicht belegt sind, und allen momentanen Bedingungen.
Im Allgemeinen hat jede Schnittstelle keine, eine oder mehrere mögliche Teillösungen. Jede bedingungskonsistente Teillösung der Schnittstelle definiert ein Kind einer Schnittstelle. Solche Kinder können in einfacher Ausgestaltung kombinatorisch aus den vorhandenen Wertebereichen und deren Verknüpfungen entnommen werden, insbesondere aus der Schnittstellen/Pin-Zuordnung und der Schnittstellen/Ressourcen-Zuordnung, d.h. jedes Kind besteht aus einer zulässigen Ressourcen/Pin-Kombination. Welches der Kinder als Lösung für die ausgewählte Schnittstelle verwendet wird, hängt von ihrer Priorität und der Erfüllung der Konsistenz der Wertebereiche ab.
Vor jedem Durchlauf der Figur 7 wird die nächste zu belegende Schnittstelle nach Maßgabe einer Auswahlvorschrift ausgewählt (vgl. Schritt 502, Figur 5). Insbesondere können die zu belegenden Schnittstellen dabei anhand der Mächtigkeit ihrer Wertebereiche aufsteigend sortiert werden, die mit dem kleinsten Wertebereich zuerst.
In einem ersten Schritt S16 werden alle Kinder (Lösungen für diese Variable) bestimmt. Jedes CSP-Problem, also hier auch jeder Knoten, hat nämlich entweder keine Lösung, genau eine Lösung oder mehrere Lösungen.
In einem zweiten Schritt S17 wird eine Priorisierungsstrategie auf die Kinder angewandt und die Kinder werden demgemäß in eine Reihenfolge gebracht. Benötigt beispielsweise eine Schnittstelle ein "Timer Output Modul", können dafür TOMs und ATOMs verwendet werden. Dabei kann beispielsweise der Einsatz von TOMs eine höhere Priorität besitzen als ATOMs. In der Folge werden die Teillösungen (Kinder) mit TOM vor den Teillösungen mit ATOM einsortiert. Ein anderes Beispiel betrifft eine layoutfreundliche Belegung. Beispielsweise sollen die Schnittstellen CANTX und CANRX desselben CAN-Anschlusses benachbarten Pins zugewiesen werden. Dann werden zuerst die Teillösungen einsortiert, bei denen die Pins benachbart sind.
In Schritt S18 wird das Kind mit der höchsten Priorität aus den möglichen Kindern ausgewählt (vgl. Schritt 503, Figur 5) und für dieses Kind werden die nachfolgenden Schritte bis S28 durchgeführt.
In Schritt S19 werden alle sich aus wechselseitigen Bedingungen (siehe oben) ergebenden Wertebereichseinschränkungen ausgeführt, d.h. alle sich aus dem in S18 ausgewählten Kind (=konkrete Belegung einer bestimmten Schnittstelle) er- gebenden Wertebereichseinschränkungen anderer Schnittstellen werden ausgeführt.
In Schritt S20 werden sämtliche Schnittstellen bestimmt, die noch nicht zugewiesen sind und die mit der aktuell zu belegenden Schnittstelle über Bedingungen verknüpft sind.
Schritt S21 beschreibt einen Auswahlschritt, bei dem jede dieser in Schritt S20 bestimmten Schnittstellen nacheinander ausgewählt wird, wobei die nachfolgenden Schritte bis S23 für jede ausgewählte Schnittstelle durchgeführt werden.
In Schritt S22 wird für die ausgewählte (der noch nicht zugewiesenen) Schnittstelle auf Grundlage deren sämtlicher Bedingungen (schnittstellenspezifische Bedingungen, mikrocontrollerinterne Bedingungen und direkten Bedingungen) unter Berücksichtigung aller bis dahin zugewiesenen Schnittstellen der Wertebereich weiter eingeschränkt bzw. neu bestimmt. Insbesondere stehen die den bereits erledigten Schnittstellen zugewiesenen Ressourcen und Pins nun nicht mehr zur Verfügung.
In Schritt S22 wird der erhaltene Wertebereiche auf Konsistenz überprüft (vgl. Schritt 504, Figur 5), insbesondere mit allen Wertebereichen der anderen in Schritt S20 bestimmten Schnittstellen verglichen. Wenn z.B. die momentan ausgewählte Schnittstelle 1 nur noch die einzige Ressource ATOM2_3 im Wertebereich hat und genau dieselbe Ressource auch für eine andere Schnittstelle als einzige mögliche Ressource verblieben ist, ist die Konsistenz nicht mehr gegeben.
Wenn für eine Schnittstelle die Konsistenz nicht gegeben ist und die momentan zu belegende Schnittstelle (d.h. die Schnittstelle, an der Figur 6 durchgeführt wird) noch andere Kinder hat (Schritt S24), wird zu Schritt S18 zurückgekehrt und das in der Prioritätsreihenfolge nächste Kind ausgewählt. Mit dem nächsten Kind werden die Schritte ab S19 wiederholt. Wenn die momentan zu belegende Schnittstelle keine anderen Kinder hat, bedeutet dies, dass es keine Lösung gibt und es wird zu Schritt S29 verzweigt. Wenn in Schritt S23 die Konsistenz gegeben ist, wird zu Schritt S21 zurückgekehrt und die nächste in Schritt S20 bestimmte Schnittstelle ausgewählt. Wenn für alle beeinflussten Schnittstellen die Konsistenz in S23 gegeben ist, wird Schritt S25 fortgefahren.
In den Schritten S25 und S26 wird nun eine Wertebereichsprüfung aller Wertebereiche wie in den Schritten S14 und S15 in Figur 5 durchgeführt. Hierzu sei auch noch einmal auf die Figuren 8 und 9 verwiesen.
In Schritt S27 wird überprüft, ob bei den Schritten S25 und S26 Inkonsistenzen entdeckt wurden. Wenn die Konsistenz bestätigt wird, wird das Verfahren mit Schritt S30 fortgesetzt. Wenn die Konsistenz nicht bestätigt wird, wird in Schritt S28 noch einmal überprüft, ob es das letzte Kind des Knotens ist. Falls ja, bedeutet dies, dass es keine Lösung gibt und es wird zu Schritt S29 verzweigt. Andernfalls werden die Schritte S18 bis S27 mit dem nächsten Kind in der Prioritätsreihenfolge fortgesetzt.
In Schritt S30 wird das aktuelle Kind als Lösung angenommen (vgl. Schritt 505, Figur 5), d.h. der momentan zu belegenden Schnittstelle (d.h. die Schnittstelle, an der Figur 6 durchgeführt wird) sind soweit nötig Pin und Ressourcen zugewiesen.
Anschließend wird die nächste zu belegende Schnittstelle - insbesondere wieder nach Maßgabe der o.g. Auswahlvorschrift ausgewählt. Insbesondere kann dies auch wieder eine Neusortierung beinhalten. Dann wird wieder mit S16 begonnen.
In Schritt S29 wird festgestellt, dass keine vollständige Lösung existiert, und dem Nutzer wird eine Information über die möglichen Teillösungen mitgeteilt. Der Nutzer kann dann insbesondere entscheiden, dass der aktuell zu belegenden Schnittstelle kein(e) Pin/Ressourcen zugewiesen werden. Dies wird in der Regel dazu führen, dass nicht alle Schnittstellen belegt werden können. Figur 8 beschreibt die Wertebereichskonsistenzüberprüfung gemäß den Schritten S14/S15 aus Figur 5 bzw. S25/S26 aus Figur 7 in einem Flussdiagramm unter Bezugnahme auf die in Figur 9 auf zwei Seiten dargestellten Matrizen näher. Dazu werden am Beispiel der Schnittstellen/Pin-Zuordnung eine Verknüpfung der Wertebereiche als Matrix mit Elementen ay, dargestellt mit den Schnittstellen als Zeilen i und den Pins als Spalten j. Für jeden Pin, der sich im Wertebereich einer Schnittstelle befindet, wird die Zelle (beispielsweise) auf den Wert "1" als ersten Wert gesetzt, aij=1 , sonst auf "0" als zweiten Wert, ajj=O. Wie schon oben erwähnt, ergibt sich eine solche Schnittstellen/Pin-Zuordnung insbesondere durch (boolesche) Matrixmultiplikation der Schnittstellen/Ressourcen- Zuordnung mit der Ressourcen/Pin-Zuordnung.
Die Konsistenzprüfung einer solchen Matrix ist bei herkömmlichen Mikrocontrollern aufgrund der Vielzahl von Schnittstellen, Pins und Ressourcen höchst anspruchsvoll, wird jedoch im Rahmen der Erfindung bevorzugt auf nachfolgend beschriebene Weise computerimplementiert und effektiv durchgeführt. Dabei werden im Wesentlichen immer wieder Reduktionsschritte angewandt, um den Inhalt der Matrix nach und nach zu vereinfachen und/oder den Umfang der Matrix nach und nach zu reduzieren, bis verbleibende Inkonsistenzen erkennbar werden.
In einem ersten Reduktionsschritt S31 werden eindeutige Lösungen eliminiert. Befindet sich in einer Zeile nur an einer Stelle eine "1" heißt das, dass diese Schnittstelle nur mit diesem Pin verbunden werden kann und dementsprechend dieser Pin für andere Schnittstellen nicht mehr zur Verfügung steht. Dementsprechend wird in allen anderen Zeilen dieser Spaltenwert auf "0" gesetzt. Dies bedeutet eine Reduzierung dieser anderen Wertebereiche.
Mit anderen Worten werden alle Elemente a^nj auf den zweiten Wert gesetzt, wenn es für i=n nur ein Element aj=n,j=m mit dem ersten Wert gibt. In Figur 9 wird beispielsweise zunächst die vierte Zeile (i=4) als Zeile mit nur einer "1" identifiziert, aj=4,j=7=1 . Anschließend wird die siebte Spalte (j=7) in allen anderen Zeilen, a^4,j=7, auf "0" gesetzt. Nun kann die fünfte Zeile (i=5) neu als Zeile mit nur einer "1" identifiziert werden, ai=5j=s=1 , und dementsprechend die fünfte Spalte (j=5) in allen anderen Zeilen, aj«j=5, auf "0" gesetzt werden. Dies wird so oft wiederholt, bis keine neue Zeile mit nur einer "1" identifiziert werden kann.
Schritt S32 ist ein Entscheidungsschritt, bei dem überprüft wird, ob die erhaltene Matrix konsistent bzw. zulässig ist, d.h. insbesondere, ob in jeder Zeile noch mindestens eine "1" enthalten ist. Falls ja, wird mit Schritt S33 fortgefahren. Andernfalls wird das Verfahren mit Schritt S45 beendet.
In Schritt S33 werden alle unabhängigen Schnittstellen aus der Matrix entfernt. Unabhängig bedeutet, dass sie keinen Überlappung im Wertebereich mit anderen Schnittstellen haben, d.h. es werden alle Zeilen, die nur "1" in Spalten haben, in denen keine anderen Zeilen eine "1" haben, und die zugehörigen (dann nur noch aus "0" bestehenden) Spalten gestrichen.
Mit anderen Worten werden aus der Matrix alle Elemente aj=n j, entfernt, wenn es für alle Elemente aj=n,j=m mit dem ersten Wert keine Elemente a^n,j=m mit dem ersten Wert gibt, und es werden alle Elemente ajj=m aus der Matrix entfernt. In Figur 9 wird beispielsweise zunächst die fünfte Zeile (i=5) als Zeile mit "1" nur in Spalten (j=6), in denen keine anderen "1" stehen, identifiziert, ai=sj=6=1 ■ Die fünfte Zeile aj=5j und die sechste Spalte ajj=6 werden dann aus der Matrix entfernt. Anschließend wird die dann siebte Zeile als Zeile mit "1" nur in Spalten (j=8, 9), in denen keine anderen "1" stehen, identifiziert, aj=7j=8=1 und aj=7j=9=1 ■ Die siebte Zeile aj=7j und die achte und neunte Spalte ajj=8, ajj=9, werden dann aus der Matrix entfernt.
Schritt S34 ist ein Entscheidungsschritt, in dem die Konsistenz der Matrix überprüft wird. Durch die vorherige Reduktion sind Inkonsistenzen nun nämlich einfacher zu erkennen. Falls die Matrix konsistent ist, wird mit Schritt S35 fortgefahren. Andernfalls wird das Verfahren mit Schritt S45 beendet.
In Schritt S35 wird die Matrix in Sub-Matrizen als Unterverknüpfungen unterteilt. Jede Sub-Matrix enthält nur die Schnittstellen mit derselben Anzahl von möglichen Pins, d.h. mit gleich mächtigem Wertebereich. Die Pins selbst können dabei unterschiedlich sein. Da alle Schnittstellen mit nur einem Pin bereits entfernt wurden, umfasst die erste Sub-Matrix alle Schnittstellen mit zwei "1" in der Zeile.
Schritt S36 beschreibt einen Auswahlschritt, bei dem jede Sub-Matrix ausgewählt wird, wobei die nachfolgenden Schritte für jede ausgewählte Sub-Matrix durchgeführt werden. In Figur 9 ist beispielsweise die Sub-Matrix mit drei Pins ausgewählt.
In Schritt S37 werden für die ausgewählte Matrix alle identischen Zeilen, d.h. die Schnittstellen mit identischem Wertebereich bestimmt.
Wenn die Anzahl der benötigten Pins (Mächtigkeit des Wertebereichs) für diese Schnittstellen mit identischem Wertebereich gleich der Anzahl dieser Schnittstellen ist, ist dieser Block eindeutig belegbar und diese Schnittstellen werden aus der aktuellen Sub-Matrix entfernt. Die hierfür zugewiesenen Pins sind somit "verbraucht" und werden in allen anderen Matrizen auf "0" gesetzt. .
In Schritt S38 wird die verbliebene Sub-Matrix zu einer neuen Matrix hinzugefügt, d.h. diese neue Matrix wächst bei jedem Sub-Matrix-Durchlauf S36 bis S42 an. Sobald alle Submatrizen aus der alten Matrix analysiert sind, ist die neue Matrix vollständig.
Schritt S39 ist ein Entscheidungsschritt, in dem die Konsistenz der aktuellen Sub- Matrix überprüft wird. Falls die Sub-Matrix konsistent ist, wird mit Schritt S40 fortgefahren. Andernfalls wird das Verfahren mit Schritt S45 beendet.
In Schritt S40 wird die aktuelle Sub-Matrix einer noch genaueren, schrittweisen Konsistenzprüfung unterzogen. Dabei wird insbesondere überprüft, ob es genügend Pins für die Schnittstellen in dieser Sub-Matrix gibt. Es werden alle Zeilen der Sub-Matrix nacheinander überprüft, indem iterativ zunächst nur auf die ersten beiden Zeilen, dann auf die ersten drei Zeilen, dann auf die ersten vier Zeilen usw. Schritt S33 angewandt wird. Inkonsistenzen lassen sich dadurch besonders einfach erkennen. Schritt S41 ist ein Entscheidungsschritt, der zu S40 gehört. Falls die Überprüfung in S40 keine Inkonsistenzen ergab, wird mit Schritt S42 fortgefahren. Andernfalls wird das Verfahren mit Schritt S45 beendet.
Schritt S42 ist ein Entscheidungsschritt, in dem festgestellt wird, ob es sich um die letzte Submatrix, d.h. z.B. die mit den meisten "1" je Zeile, handelt. Falls ja, wird mit Schritt S43 fortgefahren. Andernfalls wird zurück zu Schritt S36 verzweigt.
In Schritt S43 werden alle Zeilen der neuen Matrix nacheinander überprüft (wie in schritt S40), indem iterativ zunächst nur auf die ersten beiden Zeilen, dann auf die ersten drei Zeilen, dann auf die ersten vier Zeilen usw. Schritt S33 angewandt wird. Bei dieser Prüfung werden somit alle Wertebereichsänderungen berücksichtigt, die sich durch alle Sub-Matrix-Bearbeitungen ergeben haben.
Schritt S44 ist ein Entscheidungsschritt, in dem die Konsistenz der Matrix überprüft wird. Falls die Matrix konsistent ist, wird ein positives Ergebnis rückgemeldet. Andernfalls wird das Verfahren mit Schritt S45 beendet.
In Schritt S45 wird ein negatives Ergebnis rückgemeldet und insbesondere auch die Ursache angegeben.
Das Verfahren gemäß Figur 8 wird in den Schritten S15 und S35 auf entsprechende Weise insbesondere für jeden Ressourcentyp, d.h. z.B. ATOM, TOM, CANRX, CANTX, SLSO usw. durchgeführt. Bei einer Darstellung der Verknüpfung der Wertebereiche der Schnittstellen/Ressourcen-Zuordnung als Matrix mit Elementen ay ergeben sich beispielsweise von den Schnittstellen benötigte Ressourcen als Zeilen i (z.B. 1. ATOM Schnittstelle 1, 2. ATOM Schnittstelle 1 , 1. ATOM Schnittstelle 2, 2. ATOM Schnittstelle 2, 3. ATOM Schnittstelle 2, usw.) und verfügbare Ressourcen (ATOMO_1, ATOMO_2, ATOMO_3, ...) als Spalten j. Für jede Ressource, die sich im Wertebereich einer Schnittstelle befindet, wird die Zelle (beispielsweise) auf den Wert "1" als ersten Wert gesetzt, aij=1 , sonst auf "0" als zweiten Wert, ajj=O. An dieser Stelle können auch spezielle Schnittstellen-Anforderungen berücksichtigt werden, z.B. wenn die Ressourcen eines pC-Sub-Moduls für einer Schnittstelle oder bestimmten Gruppe von Schnittstellen zugeordnet werden soll. Wenn z.B. zwei Schnittstellen (11 ; I2) jeweils SLSO-Ressourcen benötigen, die aus der gleichen "pC SPU-Peripheral" kommen, und eine dritte Schnittstelle (I3) auch eine SLSO-Ressource benötigt, können zwei "Gruppen" (1. Gruppe = 11 , I2;
2. Gruppe = I3) gebildet werdem, denen SLSO-Ressourcen aus unterschiedlichen SPI-Peripherals zugewiesen werden sollen.
Insgesamt sind also zahlreiche Matrizen zu überprüfen (Pins, Ressourcen). Vorzugsweise werden dabei Wertebereichseinschränkungen auch gegenseitig berücksichtigt. Wenn z.B. bei der Analyse der Pin-Matrix Änderungen des Pin- Wertebereichs einer Schnittstelle festgestellt werden, sollten alle Matrizen, in welchen diese Schnittstelle auch betrachtet wird, ebenfalls neu berechnet werden.

Claims

- 27 -
Ansprüche
1 . Verfahren zum Bestimmen eines Anschlussschemas einer Recheneinheit an eine Menge von Funktionsmodulen (100), wobei die Recheneinheit eine Menge von Recheneinheitsschnittstellen (A1-T20) und eine Menge von Recheneinheitsressourcen (ai , a2, an, bi , b2, bn, Ci, C2, di, d2, dn) aufweist, wobei jede Recheneinheitsschnittstelle (A1-T20) mit einer recheneinheitsschnittstellenspezifischen Untermenge der Menge von Recheneinheitsressourcen (ai , a2, an, bi , b2, bn, Ci, C2, di , d2, dn) verknüpft ist, wobei jedes Funktionsmodul (100) Funktionsmodulschnittstellen (1 , 2) aufweist, die jeweils eine oder mehrere Recheneinheitsressourcen (ai , a2, an, bi, b2, bn, Ci, C2, di, d2, dn) benötigen, wobei für jede Funktionsmodulschnittstelle (1 , 2) eine Menge von Bedingungen dafür gilt, mit welchen Recheneinheitsschnittstellen (A1-T20) und welchen Recheneinheitsressourcen (ai, a2, an, bi, b2, bn, Ci, C2, di, d2, dn) diese Funktionsmodulschnittstelle (1 , 2) belegbar ist, wobei das Verfahren folgende Schritte umfasst:
Bilden für jede Funktionsmodulschnittstelle (1 , 2) eines Wertebereichs enthaltend zuweisbare Recheneinheitsschnittstellen (A1-T20) und eines Wertebereichs enthaltend zuweisbare Recheneinheitsressourcen (ai , a2, an, bi, b2, bn, ci, c2, di, d2, dn) ,
Herstellen einer Verknüpfung einer Auswahl der gebildeten Wertebereiche,
Prüfen der Verknüpfung auf inhaltliche Konsistenz, und
Bestimmen, für jede Funktionsmodulschnittstelle (1 , 2), einer Belegung der Funktionsmodulschnittstelle (1 , 2) mit Recheneinheitsschnittstellen (A1- T20) und Recheneinheitsressourcen (ai, a2, an, bi, b2, bn, Ci, C2, di, d2, dn) als Wert einer Variablen, wenn die gebildete Verknüpfung konsistent ist. Verfahren nach Anspruch 1, wobei die Verknüpfung eine Vielzahl Elemente ay enthält, wobei ein erster Wert des Elements a eine mögliche Belegung einer Funktionsmodulschnittstelle i mit einer Recheneinheitsschnittstelle bzw. einer Recheneinheitsressource j beschreibt und ein zweiter Wert des Elements a eine unmögliche Belegung der Funktionsmodulschnittstelle i mit der Recheneinheitsschnittstelle bzw. der Recheneinheitsressource j beschreibt. Verfahren nach Anspruch 2, wobei die die Verknüpfung als eine Matrix mit den Elementen a darstellbar ist. Verfahren nach einem der vorstehenden Ansprüche, wobei das Prüfen der Verknüpfung auf inhaltliche Konsistenz umfasst:
Reduzieren der Verknüpfung nach Maßgabe einer Reduzierungsvorschrift, um eine reduzierte Verknüpfung zu erhalten, und
Prüfen der reduzierten Verknüpfung auf inhaltliche Konsistenz. Verfahren nach Anspruch 4, soweit von Anspruch 3 abhängig, wobei die Reduzierungsvorschrift ein Setzen von Matrixelementen auf den zweiten Wert und/oder ein Entfernen von Zeilen und/oder Spalten aus der Matrix umfasst. Verfahren nach Anspruch 4 oder 5, soweit auf Anspruch 3 rückbezogen, wobei die Reduzierungsvorschrift ein Bilden von Unterverknüpfungen, die jeweils alle Zeilen mit derselben Anzahl von ersten Werten aufweisen, und ein Entfernen aus der Verknüpfung aller identischen Zeilen, wenn die Anzahl von identischen Zeilen gleich der Anzahl von ersten Werten in einer solchen Zeile ist, umfasst. Verfahren nach einem der Ansprüche 4 bis 6, soweit von Anspruch 2 oder 3 abhängig, wobei die Reduzierungsvorschrift wenigstens einen der Schritte umfasst: wenn es für eine bestimmte Funktionsmodulschnittstelle nur ein Element mit dem ersten Wert gibt, Setzen auf den zweiten Wert aller Elemente der Verknüpfung, die eine mögliche Belegung mit derselben Recheneinheits- Schnittstelle bzw. derselben Recheneinheitsressource beschreiben wie das Element mit dem ersten Wert, außer dem Element mit dem ersten Wert selbst;
Entfernen aus der Verknüpfung aller Elemente, die eine mögliche oder unmögliche Belegung derselben Funktionsmodulschnittstelle beschreiben, wenn alle Recheneinheitsschnittstellen bzw. Recheneinheitsressourcen, die dieser Funktionsmodulschnittstelle zuweisbar sind, nur dieser Funktionsmodulschnittstelle zuweisbar sind; und Entfernen aus der Verknüpfung aller Elemente, die eine mögliche oder unmögliche Belegung mit dieser Recheneinheitsschnittstellen bzw. Recheneinheitsressourcen beschreiben. Verfahren nach einem der vorstehenden Ansprüche, wobei das Herstellen einer Verknüpfung einer Auswahl der gebildeten Wertebereiche umfasst:
Herstellen einer Verknüpfung aller Wertebereiche enthaltend zuweisbare Recheneinheitsschnittstellen (A1-T20) und/oder Herstellen einer Verknüpfung aller Wertebereiche enthaltend zuweisbare Recheneinheitsressourcen (ai, a2, an, bi, b2, bn, ci, c2, di, d2, dn). Verfahren nach einem der vorstehenden Ansprüche, das ein Verkleinern der gebildeten Wertebereiche durch Anwenden der Menge von Bedingungen umfasst. Verfahren nach Anspruch 9, wobei die Menge von Bedingungen funktionsmodulschnittstellenspezifische Bedingungen und/oder recheneinheitsinterne Bedingungen und/oder direkte Bedingungen und/oder wechselseitige Bedingung umfasst. Verfahren nach Anspruch 9 oder 10, wobei das Verkleinern der gebildeten Wertebereiche durch Anwenden der Menge von Bedingungen umfasst:
Ermitteln aller Funktionsmodulschnittstellen, deren Belegung auf wenigstens eine weitere Funktionsmodulschnittstelle Einfluss hat, als Träger und der beeinflussten Funktionsmodulschnittstellen als Abhänge; für jeden Träger, abhängigenweises Verkleinern der gebildeten Wertebereiche durch Anwenden der Menge von Bedingungen. 12. Verfahren nach Anspruch 11 , das so oft wiederholt wird, bis sich kein Wertebereich mehr ändert.
13. Verfahren nach einem der vorstehenden Ansprüche, wobei das Bestimmen, für jede Funktionsmodulchnittstelle (1 , 2), einer Belegung der Funktionsmodulschnittstelle (1 , 2) mit Recheneinheitsschnittstellen (A1-T20) und Recheneinheitsressourcen (ai , a2, an, bi , b2, bn, Ci, C2, di , d2, dn) als Wert einer Variablen, umfasst:
Auswahlen jeweils einer der Funktionsmodulschnittstellen nach Maßgabe einer Auswahlvorschrift und Bestimmen der Belegung der ausgewählten Funktionsmodulschnittstelle (1 , 2) mit Recheneinheitsschnittstellen (A1-T20) und Recheneinheitsressourcen (ai , a2, an, bi , b2, bn, Ci, C2, di , d2, dn) als Wert einer Variablen.
14. Verfahren nach Anspruch 13, wobei in die Auswahlvorschrift die Mächtigkeit des Wertebereichs der Recheneinheitsschnittstellen und/oder der Recheneinheitsressourcen der Funktionsmodulschnittstelle eingeht.
15. Verfahren zum Anschließen einer Recheneinheit an eine Menge von Funktionsmodulen (100), wobei die Recheneinheit nach Maßgabe eines gemäß einem Verfahren nach einem der vorstehenden Ansprüche bestimmten Anschlussschemas an die Menge von Funktionsmodulen (100) angeschlossen wird.
16. Computer, der dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 14 durchzuführen.
17. Computerprogramm, das einen Computer dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 14 durchzuführen, wenn es auf dem Computer ausgeführt wird.
18. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 17.
PCT/EP2021/084328 2020-12-16 2021-12-06 Verfahren zum bestimmen eines anschlussschemas einer recheneinheit an eine menge von funktionsmodulen WO2022128556A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020216034.1 2020-12-16
DE102020216034.1A DE102020216034A1 (de) 2020-12-16 2020-12-16 Verfahren zum Bestimmen eines Anschlussschemas einer Recheneinheit an eine Menge von Funktionsmodulen

Publications (1)

Publication Number Publication Date
WO2022128556A1 true WO2022128556A1 (de) 2022-06-23

Family

ID=79021766

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/084328 WO2022128556A1 (de) 2020-12-16 2021-12-06 Verfahren zum bestimmen eines anschlussschemas einer recheneinheit an eine menge von funktionsmodulen

Country Status (2)

Country Link
DE (1) DE102020216034A1 (de)
WO (1) WO2022128556A1 (de)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870337B2 (en) 2013-02-28 2018-01-16 E3 Embedded Systems, Llc Method and apparatus for the processor independent embedded platform

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JACOB A BERLIER ET AL: "A constraint satisfaction algorithm for microcontroller selection and pin assignment", IEEE SOUTHEASTCON 2010 (SOUTHEASTCON), PROCEEDINGS OF THE, IEEE, PISCATAWAY, NJ, USA, 18 March 2010 (2010-03-18), pages 348 - 351, XP031662013, ISBN: 978-1-4244-5854-7 *
MUELLER STEFANIE ET AL: "Turning coders into makers : the promise of embedded design generation", PROCEEDINGS OF THE 1ST ANNUAL ACM SYMPOSIUM ON COMPUTATIONAL FABRICATION, 12 June 2017 (2017-06-12), New York, NY, USA, pages 1 - 10, XP055902818, ISBN: 978-1-4503-4999-4, Retrieved from the Internet <URL:https://dl.acm.org/doi/pdf/10.1145/3083157.3083159> [retrieved on 20220318], DOI: 10.1145/3083157.3083159 *

Also Published As

Publication number Publication date
DE102020216034A1 (de) 2022-06-23

Similar Documents

Publication Publication Date Title
DE69532307T2 (de) Ausdrucks-Propagierung für hierarchisches Netzlisten
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
WO2003021366A1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
WO2019121206A1 (de) Verfahren zur realisierung eines neuronalen netzes
DE2509731A1 (de) Universelles schaltnetz zur verknuepfung binaerer schaltvariabler
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE102011107646A1 (de) Verfahren und System zur dynamischen Verteilung von Programmfunktionen in verteilten Steuerungssystemen
WO2022128556A1 (de) Verfahren zum bestimmen eines anschlussschemas einer recheneinheit an eine menge von funktionsmodulen
DE102007045509B4 (de) Fahrzeug-Steuereinheit mit einem Versorgungspannungsüberwachten Mikrocontroller sowie zugehöriges Verfahren
DE102012016610B4 (de) Echtzeit-Schaltungssimulation
EP1068580B1 (de) Verfahren zum vergleich elektrischer schaltungen
DE102020210795A1 (de) Künstliches neuronales Netz
WO2020193481A1 (de) Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes
DE1296427B (de) Datenbearbeitungssystem
DE3609925C2 (de)
DE102017118995B4 (de) Verfahren zur Herstellung einer Komponente eines Verbrennungsmotors und Simulationssystem zur beschleunigten Simulation des Verhaltens einer Komponente eines Verbrennungsmotors
DE19710463C2 (de) Verfahren zur automatischen Differentiation auf einem Rechner insbesondere zur Simulation elektronischer Schaltungen
EP0303065B1 (de) Verfahren und Schaltungsanordnung für Halbleiterbausteine mit in hochintegrierter Schaltkreistechnik zusammengefassten logischen Verknüpfungsschaltungen
DE102018111603A1 (de) Verfahren und Vorrichtung zum Konfigurieren eines roboter-gestützten Bearbeitungssystems
EP3828790A1 (de) Verfahren zur herstellung eines, aus einer produktmenge aufgrund eines auswahlkriteriums ausgewählten produkts, sowie produktionssystem hierfür
DE102014208779A1 (de) Verfahren zum Erstellen einer Steuerschaltung für einen integrierten Steuerbaustein in einem Kraftfahrzeug sowie Steuerschaltung für einen derartigen Steuerbaustein
AT16972U1 (de)
DE2700299A1 (de) Rechenbaustein
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren

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: 21830640

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21830640

Country of ref document: EP

Kind code of ref document: A1