Pipelining for cyclic control systems
AssigneeSiemens Aktiengesellschaft
InventorsArquimedes Martinez Canedo, Livio Dalloro, Hartmut Ludwig
Life of this patent
Estimating the term…
Abstract
A method of managing a control system includes: executing a first iteration of a program in a first processor core of a multi-core computer system during a first period (S1501), executing a second iteration of the program in a second processor core of the multi-core system during a second period that overlaps the first period (S1502); and using outputs of the iterations to control the control system (S1503).
Claims28
A method of managing a control system, the method comprising:
- executing a first iteration of a program in a first processing core of a multi-core computer system during a first period, wherein the program reads an input to the control system and an output from a prior iteration of the program from a shared memory to generate a new output;
- executing a second iteration of the program in a second processing core of the multi-core system during a second period that overlaps the first period;
- and
- using outputs of the iterations to control the control system,
- wherein read and write operations to the shared memory by the program are atomic.
A method of managing a control system, the method comprising:
- starting a first iteration of a program in a first processing core of a multi-core computer system, wherein the program reads an input to the control system and an output from a prior iteration of the program from a memory to generate a new output;
- generating, by the program of the first iteration, an event upon encountering a marker instruction indicating that a next iteration of the program has permission to proceed;
- starting execution of a second iteration of the program in a second processing core of the multi-core system in response to receipt of the event;
- and
- using outputs of the iterations to control the control system.
A method of managing a control system, the method comprising:
- executing a first iteration of a program in a first processing core of a multi-core computer system during a first period, wherein the program reads an input to the control system and an output from a prior iteration of the program from a memory to generate a new output;
- executing a second iteration of the program in a second processing core of the multi-core system during a second period that overlaps the first period;
- determining whether a data dependency violation among the iterations has occurred;
- and
- using the output of the first iteration to control the control system if the violation has occurred.
A method of managing a control system, the method comprising:
- executing a first iteration of a first part of a program in a first processing core of a multi-core computer system during a first period, wherein the first part reads an input to the control system and an output from a prior iteration of the first part from a shared memory to generate a new first output;
- executing a first iteration of a second part of the program in a second processing core of the multi-core system during a second period that overlaps the first period, wherein the second part reads the input and an output from a prior iteration of the second part from the shared memory to generate a new second output;
- and
- using the first and second new outputs to control the control system,
- wherein read and write operations to the shared memory by the first and second program parts are atomic.
A method of managing a control system, the method comprising:
- starting a first iteration of a first part of a program in a first processing core of a multi-core computer system, wherein the first part reads an input to the control system and an output from a prior iteration of the first part from a memory to generate a new first output;
- generating, by the first part, an event upon encountering a marker instruction indicating that a first iteration of a second part of the program has permission to proceed;
- starting execution of the first iteration of the second part in a second processing core of the multi-core system in response to receipt of the event, wherein the second part reads an input to the control system and an output from a prior iteration of the second part from the memory to generate a new second output;
- and
- using the first and second new outputs to control the control system.
A method of managing a control system, the method comprising:
- executing a first iteration of a first part of a program in a first processing core of a multi-core computer system during a first period, wherein the first part reads an input to the control system and an output from a prior iteration of the first part from a memory to generate a new first output;
- executing a first iteration of a second part of the program in a second processing core of the multi-core system during a second period that overlaps the first period, wherein the second part reads an input to the control system and an output from a prior iteration of the second part from the memory to generate a new second output;
- determining whether a data dependency violation among the program parts has occurred;
- and
- using only the first new output to control the control system if the violation has occurred.
Dependencies are inferred from the claim text.