WO2017220305A1 - Verfahren zum synchronisierten betrieb von mehrkernprozessoren - Google Patents

Verfahren zum synchronisierten betrieb von mehrkernprozessoren Download PDF

Info

Publication number
WO2017220305A1
WO2017220305A1 PCT/EP2017/063260 EP2017063260W WO2017220305A1 WO 2017220305 A1 WO2017220305 A1 WO 2017220305A1 EP 2017063260 W EP2017063260 W EP 2017063260W WO 2017220305 A1 WO2017220305 A1 WO 2017220305A1
Authority
WO
WIPO (PCT)
Prior art keywords
core
processor
processor core
mci
main processor
Prior art date
Application number
PCT/EP2017/063260
Other languages
English (en)
French (fr)
Inventor
Uwe Eckelmann-Wendt
Original Assignee
Siemens Aktiengesellschaft
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 Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to US16/311,970 priority Critical patent/US11301308B2/en
Priority to EP17733365.5A priority patent/EP3449366A1/de
Priority to CN201780038482.1A priority patent/CN109313581B/zh
Publication of WO2017220305A1 publication Critical patent/WO2017220305A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level

Definitions

  • the invention relates to a method for the synchronized operation of a plurality of multi-core processors. Further, the invention relates to a multi-core processor system configured to perform the method of synchronized operation of a plurality of multi-core processors.
  • Voterbaustein be compared.
  • each producing separate outputs (three Kanae ⁇ le) can then be a deviation of an output to be detected and excluded in a result of this special processor or the corresponding channel.
  • two processors are excluded and separated from the periphery, since it is not possible to decide which of the two generates the correct outputs.
  • Interrupts refer to interruptions of a running program, for example, to execute programs or tasks with higher priority. For this purpose, the running program is interrupted at a certain point and continued after processing of the interrupt at this point again.
  • interrupts are fed in such a way that for each processor of the interrupt in exactly interrupts the same machine command of the executed program. Furthermore, the inputs are so distributed over the Prozes ⁇ sensors that the various processors always get exactly identical input data.
  • the runtime differences of the channels or processors must be compensated by latencies of the faster processor for the slower processor.
  • the synchronization is triggered as a side effect of I / O commands or after a certain number of memory accesses.
  • the object is, therefore, to develop a method which enables a hardware-synchronous operation using multi-core processors, in which the computing power of the additional processor cores does not remain unused.
  • the inventive method for the synchronized operation of a plurality of multi-core processors basically comprises the following steps: a) providing a first multi-core processor and a second multi-core processor each comprising a main processor core and at least one Ne- benskeletonn, which serves for the processing of utility programs.
  • a) providing a first multi-core processor and a second multi-core processor each comprising a main processor core and at least one Ne- benskeletonn, which serves for the processing of utility programs.
  • the Synchronisie ⁇ ren of the first multi-core processor with the second multi-core processor is such that only the respective main processor core of the first multi-core processor with the main processor core of second multi-core processor synchronized.
  • the at least one secondary processor core is controlled by the respective main processor core in each multi-core processor.
  • step d) the Nutzprogramme be processed by the at least one slave processor core and generates outputs that are provided to the respective Hauptpro ⁇ zessorkern of the same multi-core processor is available.
  • step e) the synchronous output of outputs of the plurality of multi-core processors is realized by the respective main processor core.
  • the method has the advantage that the synchronization is done only by the main processor core of each multi-core processor and the one or more sub-processor cores do not interfere with this synchronization.
  • the respective main processor cores thus act as synchronization masters.
  • the subprocessor cores serve only as slave computation, d. H. the pending utility programs are passed to the subprocessor cores, processed, and then the outputs are returned to the respective main processor core
  • input / output takes place only via the respective main processor cores.
  • the Maupro ⁇ zessorkerne only be made controllable by the main processor cores. Only the main processor cores "communicate" with the periphery.
  • the communication between the Hauptprozes ⁇ sorkern and the at least one slave processor core takes place by messages by means of a shared memory
  • the slave processors cores can be operated as virtual processor cores, which can be provided on these cores, an operating system that allows communication between processor cores by means of message exchange.
  • the transfer of messages can be done, for example, by means of locking Protocol on ge ⁇ my same memory areas (shared memory areas) to avoid access conflicts.
  • the main processor core has set up the memory allocation here.
  • the main processor core preferably deliver to the at least ei ⁇ NEN respective secondary processor core of the corresponding multi-core processor, a Uhrzeitinkrement.
  • the time increment is to be understood as a clock updated at regular time intervals or time intervals.
  • the slave processor cores per main processor core thus have the same time increment synchronously available. This can be done for example every 20ms.
  • the slave processors cores the processing of pending, computational tasks or programs are granted at regular intervals.
  • These can be distributed from the main processor core to the slave processor cores to be ⁇ agreed manner, whereby this distribution takes place in each ⁇ the multi-core processor in the same way. Preference is implemented in the utility programs or operating systems such ⁇ recastender system call.
  • such a system call may be a synchronization stimulus.
  • a first processing phase is preferably carried out by the system call in the jewei ⁇ then at least one secondary processor core, in which the receiving and transmitting of messages between the at least one slave processor core and the respective main processor core is performed, and is thereby interrupted, a second processing phase in which the Nutzprogramme are processed in the at least one secondary processor core.
  • the first processing phase thus takes place in the interruption of the second processing phase.
  • the actual Abar ⁇ processing of the programs will take place, in which also the respective Be ⁇ operating system of slave processor cores running.
  • the second Bear ⁇ beitungsphase gets thus of the respective first processing stage with nothing.
  • the receiving and sending of messages between the at least one slave processor core and the respective main processor core are preferably performed at a synchronous time.
  • the output can be present at the same time in each main processor core and processed further without producing undesired deviations.
  • the synchronous timing can be achieved by actively War ⁇ th a Uhrzeitinkrement. This can be done game, every 100 ms or every 200 ms at ⁇ .
  • the first processing phase can produce a delay of Reakti ⁇ on a Uhrzeitinkrement in the at least one Volunteerpro ⁇ zessorkern based on the counted within a time between two Uhrzeitinkremente system calls.
  • runtime differences are advantageously compensated and the secondary processor cores run correspondingly more concurrently.
  • kill ⁇ operates in the slave processors whose outputs are synchronously transferred after a delay time, which is greater than the duration of the Nutzprogramme to the main processor cores.
  • the delay ⁇ time should be selected accordingly so that the calculation to ⁇ nenden issues present in the delay time, that a synchronous handover to the main processor core ⁇ Lich mög.
  • the runtimes of the utility programs may be known in advance. The expiration of the delay ⁇ time is actively waiting.
  • At least one processor core of the at least one slave processor core can be designed as a hyperthreading core.
  • the method can also be applied to hyper thread-enabled Prozes ⁇ sors therefore, provide the virtual processor cores available.
  • a multi-core processor system comprising a plurality of multi-core processors, each comprising a main processor core and at least one slave processor core serving for executing useful programs, characterized in that the multi-core processor system is designed such that the method for synchronized operation of a plurality of multi-core processors according to one of above to execute described embodiments.
  • a computer program which allows a data processing device, after being loaded into a storage means of the data processing device, to perform a method for the synchronized operation of a plurality of multi-core processors according to one of the embodiments described above.
  • a computer readable storage medium in which a program is stored which enables a ve ⁇ rarbeitungs worn after it has been loaded into storage means of the data processing device to perform a method for synchronized operation of a plurality of multi-core processors of any of embodiments above described.
  • Figure 1 is a schematic representation of an inventive ⁇ SEN multi-core processor system
  • Figure 2 is a schematic representation of the inventive method for synchronized operation of a plurality of multi-core processors.
  • FIG. 1 shows a schematic representation of a multi-core processor system (10) according to the invention purely by way of example. Based on this representation, the method according to the invention for the synchronized operation of a plurality of multi-core processors (MCI, MC2) will also be described, which is summarized schematically in FIG. It should be ⁇ noted that in Figure 1 are particularly relevant only for the invention technical characteristics are displayed and these features are not exhaustive and other technical features that are known in the art may be included such. B. further memory structures, corresponding bus systems, timers, schedulers, peripheral units etc ..
  • the multi-core processor system (10) comprises by way of example a first multi-core processor (MCI) and a second multi-core processor (MC2).
  • MCI multi-core processor
  • MC2 multi-core processor
  • any number of processors Mehrkernpro ⁇ (MCI, MC2) may be provided, but at least two, which corresponds therefore to a plurality of multi-core processors (MCI, MC2).
  • Particularly preferred are three Mehrkern perspectiveso ⁇ ren, since a deviation in the outputs or a failure of a multi-core processor can be compensated for safety.
  • Each multi-core processor comprises exactly one main processor core (AI, A2), here by way of example the main processor core (AI) in the first multi-core processor (MCI) and the main processor core (A2) in the second multi-core processor (MC2) are installed.
  • the first Multi-core processor MCI
  • the second multi-core processor MC2
  • the second multi-core processor MC2
  • the invention is not limited to two sub-processor cores (Bl, B2, B3, B4), but only one sub-processor core or more than two sub-processor cores per main processor core may be provided.
  • Utilization programs include applications, application software, computation programs, tasks and any form of programs that can be processed by processor cores.
  • the utility programs that are processed by the respective multi-core processors (MCI, MC2) are identical in this case, ie they consist of the same sequence of machine instructions.
  • the main processor cores (AI, A2) of the various multi-core processors (MCI, MC2) are synchronized with one another, which is represented schematically in FIG. 1 by a synchronization unit (SE).
  • SE synchronization unit
  • Such synchronization between the main processor cores (Al, A2) for example, by synchronizing views, ie special Clicks of the Pro ⁇ programs or certain accesses such as Spei ⁇ cherzugriffe by the hardware.
  • the outputs of the main processor cores (Al, A2) are preferably such ⁇ syn chronized that their outputs made within ys and for example, a trailing Voterbaustein (V) during output can be compared.
  • the slave processor cores (Bl, B2, B3, B4) are not included in this Syn ⁇ chronization, but run essentially self-sufficient to himself. Thus, only the respective main processor cores (AI, A2) of the various multi-core processors (MCI, MC2) synchronize with one another.
  • the Volunteerrete-cores (Bl, B2, B3, B4) serve to abar ⁇ the Nutzprogramme and are controlled by the respective main processor core (AI, A2).
  • the control ie the distribution of the programs, subprograms or tasks to the respective secondary Processor cores (Bl, B2, B3, B4) is similar in each Mehrkernpro ⁇ processor (MCI, MC2), ie, in other words runs in each multi-core processor (MCI, MC2) from the same procedure.
  • outputs are generated, which are the respective main processor core (AI, A2) of the same multi-core processor (MCI, MC2) are provided. Subsequently, synchronous output of outputs of the plurality of multi-core processors (MCI, MC2) is effected by the respective main processor core (AI, A2).
  • the main processor core (AI, A2) thus acts as a synchronization master, while the sub-processor cores (Bl, B2, B3, B4) act as slave computation.
  • the additional secondary processor cores (Bl, B2, B3, B4) do not disturb this synchronization since they do not participate in the synchronization.
  • the computing power of the sub-processor cores (Bl, B2, B3, B4) can be used from ⁇ without it comes to synchronization interference, because this task is only exerted by the respec ⁇ gene main processor core (AI, A2). Due to the functional distribution of the utility programs over several processor cores and the corresponding concurrency (parallel processing), a linear increase of the computing power can take place according to the number of processor cores.
  • Input / output takes place via an input / output unit (El, E2), whereby only respective main processor cores have corresponding input / output units (El, E2). Input / output are also included in the synchronization of the main processor cores (AI, A2).
  • the respective subprocessor cores (Bl, B2, B3, B4) do not have input / output units. This also means that the secondary processor cores (Bl, B2, B3, B4) are decoupled from interrupts of the input / output units (El, E2).
  • the communication between the main processor core (AI, A2) and the at least one slave processor core (B1, B2, B3, B4) is realized by messages using a shared memory (M1, M2).
  • the sub-processor cores (Bl, B2, B3, B4) can be operated as virtual processor cores by virtue of virtualization support.
  • An operating system can then be provided on these processor cores, which enables communication between processor cores by means of message exchange with the respective main processor core (AI, A2).
  • the transfer of the messages can take place via the shared memory areas (M1, M2) (shared memory areas) by means of locking protocols in order to avoid access conflicts to the shared memory (M1, M2).
  • the main processor core (AI, A2) has set up the memory allocation here.
  • the main processor core (AI) of the first multi-core processor (MCI) passes on its time increment (II) to the two slave processor cores (Bl, B2).
  • the main processor core (A2) of the second multi-core processor (MC2) likewise passes on its time increment (12) to the associated two secondary processor cores (B3, B4).
  • the time increments (II, 12) for example, every 20 ms and are synchronous zueinan ⁇ the.
  • the time increments (II, 12) can be used to provide compiler programs or intermediate processing tasks that are sorted according to priorities or other criteria in a queue, for example. This corresponds to a preemptive multitasking system with priority-driven methodology.
  • the processing of the clock time increments is described in more detail in the following sections.
  • system calls are functions of the operating system.
  • the system calls can be, for example Synchronisati ⁇ onsanstShe that are not used for synchronization.
  • this first processing phase of the cyclic process is performed in the respective sub-processor cores (Bl, B2, B3, B4).
  • the incoming messages and outgoing messages are guided by waiting lists and transmitted at certain synchronous times between slave processors cores (Bl, B2, B3, B4) and main processor cores (AI, A2) by accessing the common memory area (M1, M2). This can be done, for example, every 100 ms or every 200 ms at synchronous times.
  • the synchronous time by actively waiting for a Uhrzeitinkrement (II, 12) scored the ⁇ .
  • the first processing phase it is also checked whether a corresponding time increment (II, 12) is pending or it is actively waiting for the next time increment (II, 12) for coarse synchronization of the slave processors cores (Bl, B2, B3, B4) small differences in runtime make it easier for a task change to take place, for example.
  • the first processing phase updates a possibly existing time counter, e.g. B. a ms time counter, which is primarily responsible for the determination of time differences, and jumps back to the call point.
  • the processing of the utility programs is part of the second processing phase, the actual computing phase of Maupro ⁇ zessorkerne (Bl, B2, B3, B4).
  • the operating system of the sub-processor cores also runs.
  • the second processing phase ie the pure processing phase se, is independent of the first processing phase, ie it gets nothing from the processes of the first processing phase.
  • the first processing phase also records the number of
  • Main processor cores do not have to occur after each time increment (II, 12), but can also be done at coarsened time intervals, for example all
  • cycles are only at or above the increased time interval, for example at 100 ms, 200 ms or even 500 ms.
  • the invention also includes that the secondary processor cores (B1, B2, B3, B4) can also be designed as hyperthreading cores.
  • the process is therefore fundamentally ⁇ additionally executed well on hyperthreading-enabled processors.
  • B4 Bl, B2, B3 can at Nutzprogrammen with, for example, well-known ter maturity that the slave processors are processed, where neither an operating system for multitasking nor a Uhrzeitinkrement (12 II) required ⁇ to, a delay time which is greater than the runtime of the utility programs, can be implemented, after which the calculated outputs are transferred synchronously to the main processor cores (AI, A2).
  • the delay time is to be chosen entspre ⁇ accordingly so that to be calculated expenditure NEN upon expiration of the delay time in the different Maureaorker- (Bl, B2, B3, B4) are present, so that a synchronous over- were despite possible propagation time differences to the respective main processor core (AI, A2) becomes possible.
  • the expiry of the delay time is actively maintained.
  • the method is basically also operable with only a multi-core processor and therefore included by the invention, for. B. development and test runs simplified to un ⁇ support. Then correspondingly eliminates the synchronization with other channels, as they are not available.
  • the subprocessor cores Bl, B2, B3, B4
  • the subprocessor cores B1, B2 , B3, B4 are continuously formed over the memory used a hash value and transferred to the adjustment to the associated main processor core (AI, A2).
  • the respective main processor core (AI, A2) does not need to receive any project-specific applications or utility programs, since the computing power for the specific
  • FIG. 2 schematically summarizes the method according to the invention for the synchronized operation of a plurality of multi-core processors.
  • a first step (S1) provision is made of a plurality of multi-core processors (MCI, MC2), each comprising a main processor core (AI, A2), at least one slave processor core (B1, B2, B3, B4), which serves to process useful programs .
  • a second step (S2) is carried out to synchronize the first multi-core processor (MCI) to the second multi-core processor (MC2), such that only the respective main processor core (AI) of the first multi-core processor (MCI) to the main processor ⁇ core (A2) of the second multi-core processor (MC2) synchronized.
  • a third step (S3) the at least one slave processor core (Bl, B2, B3, B4) is controlled by the respective main processor core (AI, A2) in each multi-core processor (MCI, MC2).
  • the control of the at least one secondary processor core (Bl, B2, B3, B4) takes place in each multi-core ⁇ processor (MCI, MC2) in the same way.
  • the outputs of the plurality of outputs are output synchronously
  • Multi-core processors MCI, MC2 through the respective main processor core (AI, A2).
  • a method for synchronized operation of a plurality of multi-core processors (MCI, MC2) in which synchronized outputs are generated, whereby the computing capacities of the multi-core processors (MCI, MC2) are utilized to execute programs in parallel.
  • the task areas between the different processor cores are hierarchized within a multi-core processor (MCI, MC2), one main processor core (AI, A2) acting as synchronization master and the secondary processor cores (B1, B2, B3, B4) being assigned to slave processors.
  • Calculating cowmen are graded, which do not interfere with the synchronization of the Hauptsprozes ⁇ sorkerne (AI, A2).
  • MCI MCI, MC2 multi-core processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

Es wird ein Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren (MC1, MC2) vorgeschlagen, wobei ein erster (MC1) und ein zweiter Mehrkernprozessor (MC2) jeweils umfassend einen Hauptprozessorkern (A1, A2) und mindestens einen Nebenprozessorkern (B1, B2, B3, B4) bereitgestellt wird, der zur Abarbeitung von Nutzprogrammen dient. Nur die Hauptprozessorkerne (A1, A2) der verschiedenen Mehrkernprozessoren (MC1, MC2) synchronisieren miteinander. Der mindestens eine Nebenprozessorkern (B1, B2, B3, B4) wird durch den jeweiligen Hauptprozessorkern (A1, A2) in jedem Mehrkernprozessor (MC1, MC2) gesteuert. Die Nutzprogramme werden durch den mindestens einen Nebenprozessorkern (B1, B2, B3, B4) bearbeitet und Ausgaben erzeugt, die dem jeweiligen Hauptprozessorkern (A1, A2) des gleichen Mehrkernprozessors (MC1, MC2) zur Verfügung gestellt werden. Ausgaben der Mehrzahl von Mehrkernprozessoren (MC1, MC2) werden dann durch den jeweiligen Hauptprozessorkern (A1, A2) synchron ausgegeben.

Description

Beschreibung
Verfahren zum synchronisierten Betrieb von Mehrkernprozessoren
Die Erfindung betrifft ein Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren. Ferner betrifft die Erfindung ein Mehrkernprozessorsystem, das derart ausgebildet ist, das Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren durchzuführen.
Für sicherheitstechnische Anwendungen werden typischerweise Verfahren verwendet, bei dem mehrere Prozessoren (mehrere CPUs) mittels Hardwareunterstützung so synchron ihre Program- me abarbeiten, dass ihre generierten Ausgaben quasi zeitgleich sind (innerhalb von ys) . Jeder dieser Ausgabepfade, über den eine Ausgabe erfolgt, wird im Folgenden auch als Ka¬ nal bezeichnet. Es können diese Ausgaben während der Ausgabe hardwaretechnisch miteinander durch zum Beispiel einen
Voterbaustein verglichen werden. Bei beispielsweise drei Prozessoren, die jeweils separate Ausgaben erzeugen (drei Kanä¬ le) kann dann eine Abweichung von einer Ausgabe erkannt werden und in Folge dieser spezielle Prozessor bzw. der entsprechende Kanal ausgegrenzt werden. Bei beispielsweise zwei Pro- zessoren werden bei Abweichungen untereinander beide Prozessoren ausgegrenzt und von der Peripherie getrennt, da nicht entschieden werden kann, welcher von beiden die richtigen Ausgaben erzeugt. Interrupts bezeichnen Unterbrechungen eines laufenden Programms um beispielsweise Programme bzw. Tasks mit höherer Priorität abzuarbeiten. Dazu wird das laufende Programm an einer bestimmten Stelle unterbrochen und nach Abarbeitung des Interrupts an dieser Stelle wieder fortgeführt. Bei hardware- synchronisierten Systemen bzw. miteinander synchronisierten Prozessoren, die also beispielsweise zeitlich mit einer Prä¬ zision von <lys abgestimmt sind, werden Interrupts derart eingespeist, dass bei jedem Prozessor der Interrupt auf genau dem gleichen Maschinenbefehl des ausgeführten Programms unterbricht. Ferner werden die Eingaben derart auf die Prozes¬ soren verteilt, dass die verschiedenen Prozessoren immer exakt identische Eingabedaten erhalten.
Damit die Ausgaben der Prozessoren zeitlich so nahe beieinanderliegen, müssen die Laufzeitdifferenzen der Kanäle bzw. der Prozessoren (hervorgerufen durch leicht unterschiedliche Quarze und gelegentlich durch eine unterschiedliche Anzahl von Zyklen für einen Maschinencode) durch Wartezeiten des schnelleren Prozessors auf den langsameren Prozessor ausgeglichen werden. Dazu kann man beispielsweise den kompletten Programmcode so instrumentieren, dass sehr häufig ein Synchronisationsaufruf generiert wird, der eine Synchronisation per Hardware auslöst. In anderen Ausführungen wird die Synchronisation als Nebeneffekt von Ein-/Ausgabe-Befehlen oder nach einer bestimmten Anzahl von Speicherzugriffen ausgelöst. Da mittlerweile bei modernen Prozessoren kein Zugriff auf die internen Busse des Prozessors existiert, hilft jedoch meist die Software der Hardwaresynchronisationseinheit durch häufi¬ ges Aufrufen einer kurzen Funktion, die der Hardware den Synchronisationsanstoß gibt. Nur zu Synchronisationszeitpunk¬ ten ist es möglich, ein Interrupt einzuspeisen. Das regelmäßige Uhreninterrupt (z. B. alle 20ms) wie andere Interrupts werden also auf allen Prozessoren dann verarbeitet, wenn wieder gerade ein Synchronisationsaufruf (besonderer Aufruf zur Synchronisation) seitens des ausgeführten Programmes erfolgt bzw. erfolgt ist. Problematisch ist jedoch, dass diese Verfahren nicht ohne weiteres geeignet sind für den Betrieb von Mehrkernprozesso¬ ren statt Einkernprozessoren, d. h. für Prozessoren mit mehr als einem Prozessorkern oder auch hyperthreadingfähige Pro¬ zessoren, die also einen zweiten virtuellen Prozessorkern zur Verfügung stellen. Bisher hat man diese zusätzlichen Prozessorkerne im synchronisierten Betrieb totgelegt, d. h. im syn¬ chronisierten Betrieb nicht verwendet. Eine Schwierigkeit besteht nämlich darin, dass die Prozessor¬ kerne zeitlich vollkommen unabhängig voneinander agieren. Die Synchronisierlogik der Hardware kann dabei nicht unterschei¬ den, welcher der Prozessorkerne synchronisiert. Die Synchro- nisationsausgaben der verschiedenen Prozessorkerne eines Prozessors behindern sich somit gegenseitig. Beispielsweise kann ein toter Prozessorkern, bzw. ein Prozessorkern mit nicht mehr laufendem Programm bzw. Software, nicht erkannt werden, da der noch arbeitende Prozessorkern weitersynchronisiert.
Daher wurde bisher in hardwaresynchronen Systemen nur je ein Prozessorkern pro Kanal ausgenutzt. Sollten also mehrere Pro¬ zessorkerne oder auch weitere Hyperthreading-Kerne zur Verfü¬ gung stehen, so wurden diese Rechenkapazitäten nicht genutzt, sondern abgeschaltet falls vorhanden. Hardwaresynchrone Sys¬ teme sind also bisher reine Einzelprozessorkern-Systeme pro Kanal. Nachteilig werden dadurch Mehrkernprozessoren oder Prozessoren mit Hyperthreadingfähigkeit nur zu entsprechenden Bruchteilen ausgelastet. Um mehr nebenläufige Rechenkraft zu generieren, müssen bisher also demnach mehrere hardwaresynchrone Systeme parallel betrieben werden, was entsprechend höheren Hardwareaufwand bedeutet.
Die Aufgabe besteht daher darin, ein Verfahren zu entwickeln, das einen hardwaresynchronen Betrieb unter der Benutzung von Mehrkernprozessoren ermöglicht, bei dem die Rechenleistung der zusätzlichen Prozessorkerne nicht ungenutzt bleibt.
Das erfindungsgemäße Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren umfasst grundsätzlich folgende Schritte: a) Bereitstellen eines ersten Mehrkernprozessors und eines zweiten Mehrkernprozessors jeweils umfassend einen Hauptprozessorkern und mindestens einen Ne- benprozessorkern, der zur Abarbeitung von Nutzprogrammen dient. In einem nächsten Schritt b) erfolgt das Synchronisie¬ ren des ersten Mehrkernprozessors mit dem zweiten Mehrkernprozessor derart, dass nur der jeweilige Hauptprozessorkern des ersten Mehrkernprozessors mit dem Hauptprozessorkern des zweiten Mehrkernprozessors synchronisiert. In einem weiteren Schritt c) erfolgt das Steuern des mindestens einen Nebenpro- zessorkerns durch den jeweiligen Hauptprozessorkern in jedem Mehrkernprozessor. In einem weiteren Schritt d) werden die Nutzprogramme durch den mindestens einen Nebenprozessorkern bearbeitet und Ausgaben erzeugt, die dem jeweiligen Hauptpro¬ zessorkern des gleichen Mehrkernprozessors zur Verfügung gestellt werden. In einem letzten Schritt e) wird das synchrone Ausgeben von Ausgaben der Mehrzahl von Mehrkernprozessoren durch den jeweiligen Hauptprozessorkern realisiert.
Das Verfahren hat den Vorteil, dass die Synchronisation lediglich durch den Hauptprozessorkern eines jeden Mehrkernprozessors erfolgt und der oder die weiteren Nebenprozessorkerne diese Synchronisation nicht stören. Die jeweiligen Hauptprozessorkerne agieren somit als Synchronisationsmaster. Die Nebenprozessorkerne dienen dabei lediglich als Slave- Rechenknechte, d. h. es werden die anstehenden Nutzprogramme an die Nebenprozessorkerne übergeben, abgearbeitet und dann die Ausgaben dem jeweiligen Hauptprozessorkern wieder zur
Verfügung gestellt. Als Nutzprogramme kommen hierbei Applika¬ tionen, Anwendungssoftware, Rechenprogramme, Tasks sowie jede Form von Programmen in Frage, die von Prozessorkernen bearbeitet werden können. Durch die Übergabe der Ausgaben an die Hauptprozessorkerne werden die Ausgaben in die Synchronisati¬ on der Hauptprozessorkerne gehoben. Die Nebenprozessorkerne synchronisieren somit nicht selbst sondern laufen weitestgehend autark. Somit kann vorteilhaft die Rechenleistung der Nebenprozessorkerne ausgenutzt werden, ohne dass es dabei zu Synchronisationsstörungen kommt, da diese Aufgabe lediglich von dem jeweiligen Hauptprozessorkern ausgeübt wird. Durch diese funktionale Aufteilung der Nutzprogramme auf mehrere Prozessorkerne und die entsprechenden Nebenläufigkeiten kann eine lineare Steigerung der Rechenleistung gemäß der Anzahl der Prozessorkerne erfolgen. Das erlaubt es, auf parallele
Zusatzrechner zu verzichten und somit günstigere und kompaktere Bauformen zu ermöglichen. Vorteilhafterweise erfolgt Ein-/Ausgabe lediglich über die jeweiligen Hauptprozessorkerne. Dadurch werden die Nebenpro¬ zessorkerne lediglich über die Hauptprozessorkerne steuerbar gemacht. Nur die Hauptprozessorkerne „kommunizieren" somit mit der Peripherie.
Bevorzugt findet die Kommunikation zwischen dem Hauptprozes¬ sorkern und dem mindestens einen Nebenprozessorkern durch Nachrichten mittels eines gemeinsam genutzten Speichers
(Shared Memory) statt. Hierzu können beispielsweise mittels Virtualisierungsunterstützungen die Nebenprozessorkerne als virtuelle Prozessorkerne betrieben werden, wobei auf diesen Kernen ein Betriebssystem bereit gestellt werden kann, das eine Kommunikation zwischen Prozessorkernen mittels Nachrich- tenaustausch ermöglicht. Der Transfer der Nachrichten kann dabei beispielsweise mittels Verriegelungsprotokoll über ge¬ meinsame Speicherbereiche (Shared Memory Bereiche) erfolgen, um Zugriffskonflikte zu vermeiden. Der Hauptprozessorkern hat hierbei die Speicheraufteilung eingerichtet.
Der Hauptprozessorkern übergibt bevorzugt dem mindestens ei¬ nen jeweiligen Nebenprozessorkern des entsprechenden Mehrkernprozessors ein Uhrzeitinkrement . Das Uhrzeitinkrement ist dabei als eine in regelmäßigen Zeitschritten bzw. Zeitinter- vallen aktualisierte Uhr zu verstehen. Die Nebenprozessorkerne je Hauptprozessorkern haben somit synchron das gleiche Uhrzeitinkrement zur Verfügung. Dieses kann beispielsweise alle 20ms erfolgen. Somit werden den Nebenprozessorkernen die Abarbeitung von anstehenden, rechenwilligen Tasks bzw. Programmen in regelmäßigen Abständen eingeräumt. Diese können vom Hauptprozessorkern auf die Nebenprozessorkerne auf be¬ stimmte Weise verteilt werden, wobei diese Verteilung in je¬ dem Mehrkernprozessor in gleicher Weise geschieht. Bevorzugt ist in die Nutzprogramme bzw. Betriebssysteme wie¬ derkehrender Systemaufruf implementiert. Ein solcher Systemaufruf kann beispielsweise ein Synchronisationsanstoß sein. Dabei wird vorzugsweise durch den Systemaufruf in dem jewei¬ ligen mindestens einen Nebenprozessorkern eine erste Bearbeitungsphase ausgeführt, in der das Empfangen und Senden von Nachrichten zwischen dem mindestens einen Nebenprozessorkern und dem jeweiligen Hauptprozessorkern durchgeführt wird und dabei eine zweite Bearbeitungsphase unterbrochen wird, in der die Nutzprogramme in dem mindestens einem Nebenprozessorkern abgearbeitet werden. Die erste Bearbeitungsphase findet somit in der Unterbrechung der zweiten Bearbeitungsphase statt. In dieser zweiten Bearbeitungsphase findet die eigentliche Abar¬ beitung der Programme statt, in der auch das jeweilige Be¬ triebssystem der Nebenprozessorkerne läuft. Die zweite Bear¬ beitungsphase bekommt somit von der jeweiligen ersten Bearbeitungsphase nichts mit.
In der ersten Bearbeitungsphase werden das Empfangen und Senden von Nachrichten zwischen dem mindestens einen Nebenprozessorkern und dem jeweiligen Hauptprozessorkern bevorzugt zu einem synchronen Zeitpunkt ausgeführt. Dadurch kann in jedem Hauptprozessorkern die Ausgabe zur identischen Zeit anliegen und weiterverarbeitet werden ohne unerwünschte Abweichungen zu erzeugen. Der synchrone Zeitpunkt kann durch aktives War¬ ten auf ein Uhrzeitinkrement erzielt werden. Dies kann bei¬ spielsweise alle 100 ms oder alle 200 ms erfolgen.
Die erste Bearbeitungsphase kann eine Verzögerung der Reakti¬ on auf ein Uhrzeitinkrement in dem mindestens einen Nebenpro¬ zessorkern auf Basis der innerhalb einer Zeit zwischen zwei Uhrzeitinkremente gezählten Systemaufrufe erzeugen. Dadurch werden Laufzeitunterschiede vorteilhaft ausgeglichen und die Nebenprozessorkerne laufen entsprechend gleichläufiger.
Bevorzugt werden Nutzprogramme in den Nebenprozessoren abge¬ arbeitet, deren Ausgaben nach einer Verzögerungszeit, die größer als die Laufzeit der Nutzprogramme ist, synchron an die Hauptprozessorkerne übergeben werden. Die Verzögerungs¬ zeit ist dabei entsprechend so zu wählen, dass die zu berech¬ nenden Ausgaben bei Ablauf der Verzögerungszeit vorliegen, so dass eine synchrone Übergabe an den Hauptprozessorkern mög¬ lich wird. Zum Beispiel können die Laufzeiten der Nutzprogramme vorher bekannt sein. Auf den Ablauf der Verzögerungs¬ zeit wird aktiv gewartet.
Mindestens ein Prozessorkern des mindestens einen Nebenpro- zessorkerns kann als Hyperthreading-Kern ausgebildet sein. Das Verfahren kann somit auch auf hyperthread-fähige Prozes¬ soren angewendet werden, die virtuelle Prozessorkerne zur Verfügung stellen.
Ferner wird ein Mehrkernprozessorsystem umfassend eine Mehrzahl von Mehrkernprozessoren jeweils umfassend einen Hauptprozessorkern sowie mindestens einen Nebenprozessorkern offenbart, der zur Abarbeitung von Nutzprogrammen dient, dadurch gekennzeichnet, dass das Mehrkernprozessorsystem derart ausgebildet ist, das Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren nach einem der oberhalb beschriebenen Ausführungen auszuführen.
Ferner wird ein Computerprogramm offenbart, das es einer Datenverarbeitungseinrichtung ermöglicht, nachdem es in ein Speichermittel der Datenverarbeitungseinrichtung geladen worden ist, ein Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren nach einem der oberhalb beschriebenen Ausführungen durchzuführen.
Ferner wird ein Computerlesbares Speichermedium offenbart, auf dem ein Programm gespeichert ist, das es einer Datenve¬ rarbeitungseinrichtung ermöglicht, nachdem es in Speichermittel der Datenverarbeitungseinrichtung geladen worden ist, ein Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren gemäß einem der oberhalb beschriebenen Ausführungen durchzuführen.
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusam- menhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Zeichnungen näher erläutert werden. Es zeigen: Figur 1 eine schematische Darstellung eines erfindungsgemä¬ ßen Mehrkernprozessorsystems,
Figur 2 eine schematische Darstellung des erfindungsgemäßen Verfahrens zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren.
In der Figur 1 ist eine schematische Darstellung eines erfindungsgemäßen Mehrkernprozessorsystems (10) rein beispielhaft beschrieben. Anhand dieser Darstellung wird ebenfalls das er- findungsgemäße Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) beschrieben, das in Figur 2 schematisch zusammengefasst wird. Es sei ange¬ merkt, dass in der Figur 1 die lediglich für die Erfindung besonders relevanten technischen Merkmale angezeigt werden und diese Merkmale nicht abschließend sind, sondern weitere technische Merkmale, die dem Fachmann bekannt sind, enthalten sein können wie z. B. weitere Speicherstrukturen, entsprechende Bussysteme, Timer, Scheduler, Peripherieeinheiten etc ..
Das Mehrkernprozessorsystem (10) umfasst beispielhaft einen ersten Mehrkernprozessor (MCI) sowie einen zweiten Mehrkernprozessor (MC2) . Es können jedoch beliebig viele Mehrkernpro¬ zessoren (MCI, MC2) vorgesehen sein, jedoch mindestens zwei, was also einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) entspricht. Besonders bevorzugt sind drei Mehrkernprozesso¬ ren, da eine Abweichungen in den Ausgaben oder ein Ausfall eines Mehrkernprozessors sicherheitstechnisch kompensiert werden kann. Jeder Mehrkernprozessor (MCI, MC2) umfasst genau einen Hauptprozessorkern (AI, A2), wobei hier beispielhaft der Hauptprozessorkern (AI) in dem ersten Mehrkernprozessor (MCI) und der Hauptprozessorkern (A2) in dem zweiten Mehrkernprozessor (MC2) verbaut sind. Ferner stehen dem ersten Mehrkernprozessor (MCI) beispielhaft zwei Nebenprozessorkerne (Bl, B2) zur Abarbeitung von Nutzprogrammen zur Verfügung. Ferner stehen dem zweiten Mehrkernprozessor (MC2) ebenfalls zwei Nebenprozessorkerne (B3, B4) zur Abarbeitung von Nutz- Programmen zur Verfügung. Die Erfindung ist jedoch nicht auf zwei Nebenprozessorkerne (Bl, B2, B3, B4) beschränkt, sondern es kann auch nur ein Nebenprozessorkern oder mehr als zwei Nebenprozessorkerne je Hauptprozessorkern zur Verfügung gestellt werden. Als Nutzprogramme kommen hierbei Applikatio- nen, Anwendungssoftware, Rechenprogramme, Tasks und jede Form von Programmen in Frage, die von Prozessorkernen bearbeitet werden können. Die Nutzprogramme, die von den jeweiligen Mehrkernprozessoren (MCI, MC2) bearbeitet werden, sind dabei identisch, d. h. sie bestehen aus der gleichen Folge von Ma- schinenbefehlen .
Die Hauptprozessorkerne (AI, A2) der verschiedenen Mehrkernprozessoren (MCI, MC2) sind miteinander synchronisiert, was in der Figur 1 schematisch durch eine Synchronisationseinheit (SE) dargestellt wird. Eine solche Synchronisation zwischen den Hauptprozessorkernen (AI, A2) kann beispielsweise durch Synchronisationsaufrufe, d. h. besondere Aufrufe in den Pro¬ grammen oder durch bestimmte Zugriffe wie zum Beispiel Spei¬ cherzugriffe durch die Hardware erfolgen. Die Ausgaben der Hauptprozessorkerne (AI, A2) sind vorzugsweise derart syn¬ chronisiert, dass deren Ausgaben innerhalb von ys erfolgen und beispielsweise von einem nachgestellten Voterbaustein (V) während der Ausgabe verglichen werden können. Die Nebenprozessorkerne (Bl, B2, B3, B4) sind in dieser Syn¬ chronisation nicht einbezogen, sondern laufen im Wesentlichen autark vor sich hin. Es synchronisieren somit nur die jeweiligen Hauptprozessorkerne (AI, A2) der verschiedenen Mehrkernprozessoren (MCI, MC2) untereinander. Die Nebenprozessor- kerne (Bl, B2, B3, B4) dienen dazu, die Nutzprogramme abzuar¬ beiten und werden vom jeweiligen Hauptprozessorkern (AI, A2) angesteuert. Die Steuerung, d. h. auch die Verteilung der Programme, Teilprogramme oder Tasks auf die jeweiligen Neben- prozessorkerne (Bl, B2, B3, B4) erfolgt in jedem Mehrkernpro¬ zessor (MCI, MC2) gleichartig, d. h. in anderen Worten läuft in jedem Mehrkernprozessor (MCI, MC2) die gleiche Prozedur ab .
Bei der Bearbeitung der Nutzprogramme durch den mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) werden Ausgaben erzeugt, die dem jeweiligen Hauptprozessorkern (AI, A2) des gleichen Mehrkernprozessors (MCI, MC2) zur Verfügung gestellt werden. Folgend wird ein Synchrones Ausgeben von Ausgaben der Mehrzahl von Mehrkernprozessoren (MCI, MC2) durch den jeweiligen Hauptprozessorkern (AI, A2) bewirkt.
Somit fungiert der Hauptprozessorkern (AI, A2) demnach als Synchronisationsmaster, während die Nebenprozessorkerne (Bl, B2, B3, B4) als Slave-Rechenknechte agieren. Es ergibt sich der Vorteil, dass die weiteren Nebenprozessorkerne (Bl, B2, B3, B4) diese Synchronisation nicht stören, da sie an der Synchronisation nicht teilnehmen. Somit kann vorteilhaft die Rechenleistung der Nebenprozessorkerne (Bl, B2, B3, B4) aus¬ genutzt werden, ohne dass es dabei zu Synchronisationsstörungen kommt, denn diese Aufgabe wird lediglich von dem jeweili¬ gen Hauptprozessorkern (AI, A2) ausgeübt. Durch die funktionale Aufteilung der Nutzprogramme auf mehrere Prozessorkerne und die entsprechenden Nebenläufigkeiten (Paralleles Bearbeiten) kann eine lineare Steigerung der Rechenleistung gemäß der Anzahl der Prozessorkerne erfolgen.
Ein-/Ausgabe erfolgt über eine Ein-/Ausgabeeinheit (El, E2), wobei nur jeweilige Hauptprozessorkerne über entsprechende Ein-/Ausgabeeinheiten (El, E2) verfügen. Ein-/Ausgabe sind ebenfalls in die Synchronisation der Hauptprozessorkerne (AI, A2) einbezogen. Die jeweiligen Nebenprozessorkerne (Bl, B2, B3, B4) verfügen nicht über Ein-/Ausgabeeinheiten . Dazu ge- hört ferner, dass die Nebenprozessorkerne (Bl, B2, B3, B4) von Interrupten der Ein-/Ausgabeeinheiten (El, E2) entkoppelt sind . Die Kommunikation zwischen dem Hauptprozessorkern (AI, A2) und dem mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) wird durch Nachrichten mittels eines gemeinsam genutzten Speichers (Ml, M2) realisiert. Hierzu können die Nebenprozes- sorkerne (Bl, B2, B3, B4) als virtuelle Prozessorkerne durch Virtualisierungsunterstützungen betrieben werden. Auf diesen Prozessorkernen kann dann ein Betriebssystem bereitgestellt werden, das eine Kommunikation zwischen Prozessorkernen mittels Nachrichtenaustausch mit dem jeweiligen Hauptprozessor- kern (AI, A2) ermöglicht. Der Transfer der Nachrichten kann über die gemeinsamen Speicherbereiche (Ml, M2) (Shared Memory Bereiche) mittels Verriegelungsprotokollen erfolgen zur Vermeidung von Zugriffskonflikten auf den gemeinsamen Speicher (Ml, M2) . Der Hauptprozessorkern (AI, A2) hat hierbei die Speicheraufteilung eingerichtet.
Der Hauptprozessorkern (AI) des ersten Mehrkernprozessors (MCI) reicht seinen Uhrzeitinkrement (II) an die zwei Neben- prozessorkerne (Bl, B2) weiter. Ebenfalls reicht der Haupt- prozessorkern (A2) des zweiten Mehrkernprozessors (MC2) sein Uhrzeitinkrement (12) an die zugehörigen zwei Nebenprozessor- kerne (B3, B4) weiter. Die Uhrzeitinkremente (II, 12) können beispielsweise alle 20 ms erfolgen und sind synchron zueinan¬ der. Über die Uhrzeitinkremente (II, 12) können grundsätzlich rechenwillige Programme oder Tasks zur Zwischenbearbeitung bereitgestellt werden, die beispielsweise nach Prioritäten oder anderen Kriterien in einer Warteschlange sortiert werden. Dies entspricht einem präemptiven Multitaskingsystem mit prioritätsgesteuerter Methodik. Die Verarbeitung der Uhren- zeitinkremente wird in den folgenden Abschnitten näher beschrieben .
In die Nutzprogramme werden besondere Aufrufe, sogenannte Systemaufrufe, eingepflegt. Diese Systemaufrufe sind Funktio- nen des Betriebssystems. Bei Uhrenzeitinkrementen von bei¬ spielsweise 20 ms können diese Systemaufrufe beispielhaft je¬ de ms erfolgen, sinnvollerweise also stets deutlich unterhalb von 20 ms und damit häufig in Bezug auf die Uhrenzeitinkre- mente . Die Systemaufrufe können beispielsweise Synchronisati¬ onsanstöße sein, die jedoch nicht zur Synchronisation verwendet werden. Wenn ein solcher Systemaufruf erfolgt, wird im jeweiligen Nebenprozessorkern (Bl, B2, B3, B4) eine erste Be- arbeitungsphase gestartet.
In dieser ersten Bearbeitungsphase wird der zyklische Ablauf in dem jeweiligen Nebenprozessorkernen (Bl, B2, B3, B4) geführt. Dabei werden die eingehenden Nachrichten und ausgehen- den Nachrichten durch Wartelisten geführt und zu bestimmten synchronen Zeitpunkten zwischen Nebenprozessorkernen (Bl, B2, B3, B4) und Hauptprozessorkernen (AI, A2) durch Zugriff auf den gemeinsamen Speicherbereich (Ml, M2) übermittelt. Dies kann zum Beispiel alle 100 ms oder alle 200 ms zu synchronen Zeitpunkten erfolgen. Der synchrone Zeitpunkt kann durch aktives Warten auf ein Uhrzeitinkrement (II, 12) erzielt wer¬ den. In der ersten Bearbeitungsphase wird auch geprüft, ob ein entsprechendes Uhrzeitinkrement (II, 12) anhängig ist bzw. es wird auf das nächste Uhrzeitinkrement (II, 12) aktiv gewartet zur groben Synchronisation der Nebenprozessorkerne (Bl, B2, B3, B4), um geringe Laufzeitunterschiede auszuglei¬ chen, so dass dann z.B. ein Taskwechsel stattfinden kann. Programme, die nach Timerablauf rechenwillig werden, verdrängen dabei Programme mit niedrigerer Priorität und wenn alle Programme abgearbeitet sind, wird in die Idle-Task gemündet, die erst beim nächsten Uhrzeitinkrement (z. B. alle 20ms) verlassen wird, es wird also ein präemptives Multitasking propagiert. Ist kein Uhrzeitinkrement (II, 12) anhängig, dann aktualisiert die erste Bearbeitungsphase einen möglicherweise vorhandenen Zeitzähler, z. B. einen ms-Zeitzähler, der vornehmlich für die Feststellung von Zeitdifferenzen zuständig ist, und springt zum Aufrufpunkt zurück.
Die Bearbeitung der Nutzprogramme ist dabei Teil der zweiten Bearbeitungsphase, die eigentliche Rechenphase der Nebenpro¬ zessorkerne (Bl, B2, B3, B4) . In dieser zweiten Bearbeitungs¬ phase läuft auch das Betriebssystem der Nebenprozessorkerne. Die zweite Bearbeitungsphase, also die reine Abarbeitungspha- se, ist unabhängig von der ersten Bearbeitungsphase, d. h. sie bekommt von den Abläufen der ersten Bearbeitungsphase nichts mit. Die erste Bearbeitungsphase erfasst ferner die Anzahl der
Systemaufrufe, die zwischen zwei Uhrzeitinkrementen (II, 12), also beispielsweise alle 20 ms, stattgefunden haben. Diese Systemaufrufe in den Nebenprozessorkernen (Bl, B2, B3, B4) werden typischerweise auf Zeiten von ms erfolgen. Auf Basis der Anzahl der erfassten Systemaufrufe wird dann eine Verzö¬ gerung der Reaktion auf den erfassten Uhreninterrupt (II, 12) ausgeführt. Diese Verzögerung soll eine Gleichläufigkeit der Bearbeitung durch die jeweiligen Nebenprozessorkerne (Bl, B2, B3, B4) bewirken, wodurch leichte Abweichungen durch Lauf- Zeitunterschiede ausgeglichen werden. Diese Abweichung wird durch einfaches Abzählen der Systemaufrufe durch die erste Bearbeitungsphase erfasst und durch eine geeignete Verzöge¬ rung ausgeglichen. Die Synchronisationsmöglichkeiten der Nebenprozessorkerne (Bl, B2, B3, B4) der verschiedenen Mehr- kernprozessoren (MCI, MC2) liegen demnach im Bereich der gewählten Uhrzeitinkrementintervalle bzw.
Uhreninkrementintervalle, also beispielsweise bei 20ms. Die¬ ses Zeitfenster ist demnach weiter gefasst als das Zeitfens¬ ter für die Synchronisation der entsprechenden Hauptprozes- sorkerne (AI, A2) untereinander, die typischerweise im Be¬ reich von ys liegen soll. Es handelt sich daher um eine gröbere Synchronisation als die der Hauptprozessorkerne (AI, A2). Alternativ kann eine grobe Synchronisation erfolgen durch Ausnutzung eines Taktes, beispielsweise alle 20 ms, in- dem man z.B. alle 200 ms durch aktives Warten grobsynchronisiert, wie für die Übermittelung der Eingaben und Ausgaben zwischen Nebenprozessorkern (Bl, B2, B3, B4) und Hauptprozessorkern (AI, A2) beschrieben. Es sei dabei allgemein angemerkt, dass die in den Nebenprozessorkernen (Bl, B2, B3, B4) in der zweiten Bearbeitungsphase, also der Arbeitsphase, ab¬ laufenden Prozesse typischerweise lediglich im Bereich von Promille voneinander abweichen. Der Austausch der angesammelten Nachrichten, der in der ersten Bearbeitungsphase erfolgt, zwischen den Nebenprozessor- kernen (Bl, B2, B3, B4) mit ihren jeweilig zugeordneten
Hauptprozessorkernen (AI, A2) muss nicht nach jedem Uhrzeit- inkrement (II, 12) erfolgen, sondern kann auch in vergröberten Zeitintervallen erfolgen, also beispielsweise alle
100 ms, da für viele Applikationen, die einen Zeitbegriff verarbeiten wie beispielsweise zur Steuerung oder zur Verfolgung von Bewegungen, Zyklen erst ab oder oberhalb des vergrö- berten Zeitintervalls liegen, also beispielsweise bei 100 ms, 200 ms oder gar 500 ms.
Von der Erfindung ist miteingeschlossen, dass der oder die Nebenprozessorkerne (Bl, B2, B3, B4) auch als Hyperthreading- Kerne ausgebildet sein können. Das Verfahren ist also grund¬ sätzlich ebenso auf hyperthreading-fähigen Prozessoren ausführbar .
Alternativ kann bei Nutzprogrammen mit beispielsweise bekann- ter Laufzeit, die in den Nebenprozessoren (Bl, B2, B3, B4) abgearbeitet werden, bei denen weder ein Betriebssystem für Multitasking noch ein Uhrzeitinkrement (II, 12) benötigt wer¬ den, eine Verzögerungszeit, die größer als die Laufzeit der Nutzprogramme ist, implementiert sein, nach deren Ablauf die errechneten Ausgaben synchron an die Hauptprozessorkerne (AI, A2) übergeben werden. Die Verzögerungszeit ist dabei entspre¬ chend so zu wählen, dass zu berechnenden Ausgaben bei Ablauf der Verzögerungszeit in den verschiedenen Nebenprozessorker- nen (Bl, B2, B3, B4) vorliegen, so dass eine synchrone Über- gäbe trotz möglicher Laufzeitunterschiede an den jeweiligen Hauptprozessorkern (AI, A2) möglich wird. Auf den Ablauf der Verzögerungs zeit wird aktiv gewartet.
Das Verfahren ist grundsätzlich auch mit nur einem Mehrkern- prozessor betreibbar und daher von der Erfindung eingeschlossen, um z. B. Entwicklungs- und Testläufe vereinfacht zu un¬ terstützen. Dann entfällt entsprechend die Synchronisation mit weiteren Kanälen, da diese nicht vorhanden sind. Um sicherzustellen, dass im Speicherbereich der Nebenprozes- sorkerne (Bl, B2, B3, B4) sich kein schlummernder Fehler etabliert, der in einem anderen Kanal sich unerkannt gleich- artig manifestieren kann, kann vorteilhaft auch in den Neben- prozessorkernen (Bl, B2, B3, B4) stetig über den verwendeten Speicher ein Hashwert gebildet und zum Abgleich an den zugehörigen Hauptprozessorkern (AI, A2) übertragen werden. Auf dem jeweiligen Hauptprozessorkern (AI, A2) und den jeweiligen Nebenprozessorkernen (Bl, B2, B3, B4) können die gleichen oder auch unterschiedliche Betriebssysteme laufen, wobei diese stets voneinander separiert sind. Dadurch ergibt sich die Möglichkeit, die Nutzprogramme für die Nebenprozessorker- ne (Bl, B2) als eigene, zusätzliche Images zu laden. Dies re¬ duziert die Komplexität bei Updates und Wartungen.
Grundsätzlich braucht der jeweilige Hauptprozessorkern (AI, A2) keine projektspezifischen Applikationen bzw. Nutzprogram- me zu erhalten, da die Rechenleistung für die spezifischen
Nutzprogramme alleine durch die Nebenprozessorkerne (Bl, B2, B3, B4) bewirkt wird. Somit kann sich der jeweilige Hauptpro¬ zessorkern (AI, A2) alleine um die Kommunikationslast küm¬ mern, was potentiell die Anzahl der möglichen handhabbaren Kanäle für die auf dem Hauptprozessorkern (AI, A2) laufenden Sicherheitsprotokolle erhöhen könnte. Es ist aber auch von der Erfindung eingeschlossen, dass durchaus auch auf den jeweiligen Hauptprozessorkernen (AI, A2) je nach Auslastung Programme bearbeitet werden können.
Um eine Diagnosesoftware weiterhin konfliktfrei mit einer Di¬ agnoseschnittstelle betreiben zu können, ist es zudem vor¬ teilhaft, dass die Diagnoseschnittstellen-Zugriffe der Neben¬ prozessorkerne (Bl, B2, B3, B4) über den Hauptprozessorkern (AI, A2) geroutet werden oder die Hardware ermöglicht geson¬ derte Zugänge per FPGA (field programmable gate array) . Somit hätte jeder Prozessorkern seine Diagnoseschnittstelle, obwohl nur ein physischer Diagnoseschnittstellenzugang existiert. In Figur 2 wird das erfindungsgemäße Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren schematisch zusammengefasst . In einem ersten Schritt (Sl) er- folgt das Bereitstellen einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) jeweils umfassend einen Hauptprozessorkern (AI, A2), mindestens einen Nebenprozessorkern (Bl, B2, B3, B4), der zur Abarbeitung von Nutzprogrammen dient. In einem zweiten Schritt (S2) erfolgt das Synchronisieren des ersten Mehrkernprozessors (MCI) mit dem zweiten Mehrkernprozessors (MC2) derart, dass nur der jeweilige Hauptprozessorkern (AI) des ersten Mehrkernprozessors (MCI) mit dem Hauptprozessor¬ kern (A2) des zweiten Mehrkernprozessors (MC2) synchronisiert. In einem dritten Schritt (S3) erfolgt das Steuern des mindestens einen Nebenprozessorkerns (Bl, B2, B3, B4) durch den jeweiligen Hauptprozessorkern (AI, A2) in jedem Mehrkernprozessor (MCI, MC2) . Die Steuerung des mindestens einen Nebenprozessorkerns (Bl, B2, B3, B4) erfolgt in jedem Mehrkern¬ prozessor (MCI, MC2) in gleicher Weise. In einem weiteren Schritt (S4) wird das Bearbeiten der Nutzprogramme durch den mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) und Erzeugen von Ausgaben, die dem jeweiligen Hauptprozessorkern (AI, A2) des gleichen Mehrkernprozessors (MCI, MC2) zur Ver¬ fügung gestellt werden. In einem weiteren Schritt (S5) er- folgt das synchrone Ausgeben von Ausgaben der Mehrzahl von
Mehrkernprozessoren (MCI, MC2) durch den jeweiligen Hauptprozessorkern (AI, A2) .
Zusammengefasst wird ein Verfahren zum synchronisierten Be- trieb von einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) vorgeschlagen, bei dem synchronisierte Ausgaben erzeugt werden, wobei die Rechenkapazitäten der Mehrkernprozessoren (MCI, MC2) zum parallelen Ausführen von Programmen ausgelastet wird. Dabei werden die Aufgabenbereiche zwischen den ver- schiedenen Prozessorkernen innerhalb eines Mehrkernprozessors (MCI, MC2) hierarchisiert , wobei ein Hauptprozessorkern (AI, A2) als Synchronisationsmaster agiert und der oder die Neben- prozessorkerne (Bl, B2, B3, B4) zu Slave-Rechenknechten de- gradiert werden, die mit der Synchronisation des Hauptprozes¬ sorkerne (AI, A2) nicht interferieren.
Als Vorteil ergeben sich eine effizientere Nutzung der Re- chenkapazitäten sowie damit verknüpft eine Einsparung an
Hardwareaufwand. Zudem können nun auch Mehrkernprozessoren in sicherheitsrelevanten Systemen unter Ausnutzung ihrer erhöhten Rechenleistung genutzt werden. Obwohl die Erfindung im Detail durch bevorzugte Ausführungs¬ beispiele näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.
Bezugs zeichenliste
MCI, MC2 Mehrkernprozessor
AI, A2 Hauptprozessorkern
Bl, B2, B3, B4 Nebenprozessorkern
II, 12 Uhrzeitinkrement
El, E2 Ein- /Ausgabeeinheit
SE Synchronisierungseinheit
Ml, M2 gemeinsamer Speicher
V Voterbaustein
Sl, S2, S3, S4, S5 Schritt

Claims

Patentansprüche
1. Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) mit den folgenden Schritten :
a) Bereitstellen eines ersten Mehrkernprozessors (MCI) und eines zweiten Mehrkernprozessors (MC2) jeweils um¬ fassend :
- einen Hauptprozessorkern (AI, A2),
- mindestens einen Nebenprozessorkern (Bl, B2, B3, B4), der zur Abarbeitung von Nutzprogrammen dient ;
b) Synchronisieren des ersten Mehrkernprozessors (MCI) mit dem zweiten Mehrkernprozessors (MC2) derart, dass nur der jeweilige Hauptprozessorkern (AI) des ersten Mehrkernprozessors (MCI) mit dem Hauptprozessorkern (A2) des zweiten Mehrkernprozessors (MC2) synchronisiert ;
c) Steuern des mindestens einen Nebenprozessorkerns (Bl, B2, B3, B4) durch den jeweiligen Hauptprozessorkern (AI, A2) in jedem Mehrkernprozessor (MCI, MC2);
d) Bearbeiten der Nutzprogramme durch den mindestens ei¬ nen Nebenprozessorkern (Bl, B2, B3, B4) und Erzeugen von Ausgaben, die dem jeweiligen Hauptprozessorkern (AI, A2) des gleichen Mehrkernprozessors (MCI, MC2) zur Verfügung gestellt werden;
e) Synchrones Ausgeben von Ausgaben der Mehrzahl von
Mehrkernprozessoren (MCI, MC2) durch den jeweiligen Hauptprozessorkern (AI, A2).
2. Verfahren nach Anspruch 1, wobei Ein-/Ausgabe lediglich über die jeweiligen Hauptprozessorkerne (AI, A2) erfolgt.
3. Verfahren nach einem der vorherigen Ansprüche, wobei die Kommunikation zwischen dem Hauptprozessorkern (AI, A2) und dem mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) durch Nachrichten mittels eines gemeinsam genutzten Speichers (Ml, M2) erfolgt.
4. Verfahren nach einem der vorigen Ansprüche, wobei der Hauptprozessorkern (AI, A2) dem mindestens einen jeweiligen Nebenprozessorkern (Bl, B2, B3, B4) des entsprechenden Mehr- kernprozessors (MCI, MC2) Uhrzeitinkremente (II, 12) über¬ gibt .
5. Verfahren nach einem der vorherigen Ansprüche, wobei in die Nutzprogramme bzw. Betriebssysteme ein wiederkehrender Systemaufruf implementiert ist.
6. Verfahren nach Anspruch 5, wobei der Systemaufruf in dem jeweiligen mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) eine erste Bearbeitungsphase ausführt, in der das Empfan- gen und Senden von Nachrichten zwischen dem mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) und dem jeweiligen Hauptprozessorkern (AI, A2) durchgeführt wird und dabei eine zwei¬ te Bearbeitungsphase unterbrochen wird, in der die Nutzpro¬ gramme in dem mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) abgearbeitet werden.
7. Verfahren nach Anspruch 6, wobei die erste Bearbeitungs¬ phase das Empfangen und Senden von Nachrichten zwischen dem mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) und dem jeweiligen Hauptprozessorkern (AI, A2) zu einem synchronen Zeitpunkt ausführt.
8. Verfahren nach einem der vorherigen Ansprüche 6 oder 7, wobei die erste Bearbeitungsphase eine Verzögerung der Reak- tion auf einen Uhrzeitinkrement (II, 12) in dem mindestens einen Nebenprozessorkern (Bl, B2, B3, B4) je Hauptprozessorkern (AI, A2) auf Basis der zwischen zwei Uhrzeitinkrementen (II, 12) gezählten Systemaufrufe erzeugt.
9. Verfahren nach einem der vorherigen Ansprüche 1 und 2, wobei Nutzprogramme in den Nebenprozessoren (Bl, B2, B3, B4) abgearbeitet werden, deren Ausgaben nach einer Verzögerungs- zeit, die größer als die Laufzeit der Nutzprogramme ist, syn¬ chron an die Hauptprozessorkerne (AI, A2) übergeben werden.
10. Verfahren nach einem der vorherigen Ansprüche, wobei mindestens ein Nebenprozessorkern (Bl, B2, B3, B4) als Hyper- threading-Kern ausgebildet wird.
11. Mehrkernprozessorsystem (10) umfassend eine Mehrzahl von Mehrkernprozessoren (MCI, MC2) jeweils umfassend:
- einen Hauptprozessorkern (AI, A2),
- mindestens einen Nebenprozessorkern (Bl, B2, B3, B4), der zur Abarbeitung von Nutzprogrammen dient;
dadurch gekennzeichnet, dass
das Mehrkernprozessorsystem (10) derart ausgebildet ist, das Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) nach einem der vorherigen Ansprüche auszuführen.
12. Computerprogramm, das es einer Datenverarbeitungseinrichtung ermöglicht, nachdem es in ein Speichermittel der Daten¬ verarbeitungseinrichtung geladen worden ist, ein Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) gemäß einem der Ansprüche 1-10 durchzuführen .
13. Computerlesbares Speichermedium, auf dem ein Programm gespeichert ist, das es einer Datenverarbeitungseinrichtung ermöglicht, nachdem es in Speichermittel der Datenverarbei¬ tungseinrichtung geladen worden ist, ein Verfahren zum synchronisierten Betrieb von einer Mehrzahl von Mehrkernprozessoren (MCI, MC2) gemäß einem der Ansprüche 1-10 durchzuführen .
PCT/EP2017/063260 2016-06-23 2017-06-01 Verfahren zum synchronisierten betrieb von mehrkernprozessoren WO2017220305A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/311,970 US11301308B2 (en) 2016-06-23 2017-06-01 Method for synchronized operation of multicore processors
EP17733365.5A EP3449366A1 (de) 2016-06-23 2017-06-01 Verfahren zum synchronisierten betrieb von mehrkernprozessoren
CN201780038482.1A CN109313581B (zh) 2016-06-23 2017-06-01 用于多核处理器的同步操作的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016211286.4 2016-06-23
DE102016211286.4A DE102016211286A1 (de) 2016-06-23 2016-06-23 Verfahren zum synchronisierten Betrieb von Mehrkernprozessoren

Publications (1)

Publication Number Publication Date
WO2017220305A1 true WO2017220305A1 (de) 2017-12-28

Family

ID=59227694

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/063260 WO2017220305A1 (de) 2016-06-23 2017-06-01 Verfahren zum synchronisierten betrieb von mehrkernprozessoren

Country Status (5)

Country Link
US (1) US11301308B2 (de)
EP (1) EP3449366A1 (de)
CN (1) CN109313581B (de)
DE (1) DE102016211286A1 (de)
WO (1) WO2017220305A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016205119A1 (de) * 2016-03-29 2017-10-05 Siemens Aktiengesellschaft System zur Steuerung von Stellwerken im Bahnverkehr
CN111274068B (zh) * 2020-01-19 2022-07-12 合肥工大高科信息科技股份有限公司 一种热备计算机联锁系统的通信机双cpu数据同步方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
US20030061395A1 (en) * 1998-06-29 2003-03-27 Brent A. Kingsbury Message passing using shared memory of a computer
US20060245264A1 (en) * 2005-04-19 2006-11-02 Barr Andrew H Computing with both lock-step and free-step processor modes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645959B2 (en) 2005-03-30 2014-02-04 Intel Corporaiton Method and apparatus for communication between two or more processing elements
US7818744B2 (en) * 2005-12-30 2010-10-19 Intel Corporation Apparatus and method for redundant software thread computation
CN101354693B (zh) 2008-09-11 2010-06-09 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
JP5463076B2 (ja) * 2009-05-28 2014-04-09 パナソニック株式会社 マルチスレッドプロセッサ
WO2011101707A1 (en) * 2010-02-16 2011-08-25 Freescale Semiconductor, Inc. Data processing method, data processor and apparatus including a data processor
CN102446155A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 同步装置及方法
JP5596793B2 (ja) * 2010-10-25 2014-09-24 株式会社日立製作所 計算機システム
US8423343B2 (en) * 2011-01-24 2013-04-16 National Tsing Hua University High-parallelism synchronization approach for multi-core instruction-set simulation
JP5099251B1 (ja) * 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
US9417935B2 (en) * 2012-05-01 2016-08-16 Microsoft Technology Licensing, Llc Many-core process scheduling to maximize cache usage
US9329865B2 (en) * 2013-06-11 2016-05-03 Intel Corporation Context control and parameter passing within microcode based instruction routines
CN104331388B (zh) * 2013-08-28 2018-09-11 威盛电子股份有限公司 微处理器及在微处理器的处理核间同步的方法
US10067813B2 (en) * 2014-11-21 2018-09-04 Samsung Electronics Co., Ltd. Method of analyzing a fault of an electronic system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
US20030061395A1 (en) * 1998-06-29 2003-03-27 Brent A. Kingsbury Message passing using shared memory of a computer
US20060245264A1 (en) * 2005-04-19 2006-11-02 Barr Andrew H Computing with both lock-step and free-step processor modes

Also Published As

Publication number Publication date
CN109313581B (zh) 2022-06-24
US20200310887A1 (en) 2020-10-01
DE102016211286A1 (de) 2017-12-28
EP3449366A1 (de) 2019-03-06
US11301308B2 (en) 2022-04-12
CN109313581A (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
DE60301702T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben
EP2657797B1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE102013214756B4 (de) Verfahren zum verwalten einer task-ausführung in einem mehrkernprozessor
EP3538960B1 (de) Ablaufsteuerung von programmmodulen
EP2506098B1 (de) Anordnung und Verfahren für den Betrieb einer industriellen Automatisierungsanordnung mit einer Mehrzahl programmierbarer Automatisierungskomponenten und einer Mehrzahl Automatisierungsprogramme
EP2667269B1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE19744071B4 (de) Eine programmierbare Logiksteuervorrichtung verwendendes Steuerungssystem
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
EP0543821B1 (de) Einrichtung zur funktionsüberwachung externer synchronisations-baugruppen in einem mehrrechnersystem
WO2014205467A1 (de) Verfahren und vorrichtung zur zeitrichtigen datenübergabe an die zyklischen tasks in einem verteilten echtzeitsystem
EP3449366A1 (de) Verfahren zum synchronisierten betrieb von mehrkernprozessoren
EP0898744A1 (de) Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes
CH675781A5 (de)
EP3176696A1 (de) Verfahren zur realisierung und zum ausführen einer umfangreichen echtzeitcomputeranwendung
EP0104490A2 (de) Verfahren und Vorrichtung zur Synchronisation von Datenverarbeitungsanlagen
WO2011063869A1 (de) Verfahren zum ermöglichen einer sequentiellen, nicht blockierenden abarbeitung von anweisungen in nebenläufigen tasks in einer steuereinrichtung
EP2982063B1 (de) Automatisierungseinrichtung und verfahren zur reduzierung von jittern
EP0476175A1 (de) Einrichtung zum Betrieb eines Mehrprozessorsystems, insbesondere einer numerischen Steuerung
DE102009025572A1 (de) Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen
EP2615511A1 (de) Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
EP2685377A1 (de) Verfahren und Anordnung zur Synchronisierung von zwei auf einer Hardware-Plattform ablaufenden Prozessen
EP1426862B1 (de) Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems
EP0991995B1 (de) Unterbrechungsverfahren in einem computersystem mit unterbrechungssteuerung
DE102016121542A1 (de) Ablaufsteuerung von Programmmodulen

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017733365

Country of ref document: EP

Effective date: 20181129

NENP Non-entry into the national phase

Ref country code: DE