US 11,989,568 B2
Method to execute a mode-transition in a multi-mode computer system
Ramon Serna Oliver, Vienna (AT); Paraskevas Karachatzis, Vienna (AT); and Silviu Craciunas, Vienna (AT)
Assigned to TTTech Auto AG, Vienna (AT)
Filed by TTTech Auto AG, Vienna (AT)
Filed on Sep. 9, 2022, as Appl. No. 17/930,811.
Claims priority of application No. 21196682 (EP), filed on Sep. 14, 2021.
Prior Publication US 2023/0089528 A1, Mar. 23, 2023
Int. Cl. G06F 9/445 (2018.01); G06F 9/48 (2006.01); G06F 9/54 (2006.01)
CPC G06F 9/44505 (2013.01) [G06F 9/4887 (2013.01); G06F 9/546 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A method to execute a mode-transition in a multi-mode computer system comprising a multi-mode automotive computer system from a current mode to a future mode of a set of defined modes during run-time of the computer system, the method comprising:
running said computer system in a current mode, and wherein
said computer system comprises a set of two or more processing cores, and wherein
said computer system comprises two or more hosts, wherein each of said hosts comprises one or more of said set of processing cores,
and wherein
each processing core in said set of processing cores is configured to run one or more software components of a set of defined software components, and wherein
a set of two or more modes is provided,
wherein
each mode of said set of modes comprises
a unique mode identifier, and
a set of references to a subset of software components from the set of defined software components, wherein when a mode is active, all software components of the subset of software components of said mode are running in one or more processing cores of the set of processing cores of the computer system,
and wherein
only one mode from the defined set of modes can be active in said computer system at a time,
and wherein
the mode-transition, that is a transition from the current mode to a future defined mode, is executed at runtime, during operation, of the computer system, wherein a mode-transition is determined by a transition definition, wherein for each allowed mode-transition a transition definition is provided, wherein all transition definitions form a set of transition definitions, and wherein a transition definition between two defined modes comprises
a reference to the initial mode
a reference to the future mode
a list of specific actions to be executed during the mode-transition, and
one or more points in time, relative to the runtime of the software components in the old mode, when the mode-transition can be initiated, wherein
said list of specific actions comprises at least one of:
de-initialize a software component of the set of software components in the current mode, and
un-register resources, like memory, hardware devices, or software services, not anymore required in the future, new, mode, and
initialize a software component of the set of software components in the new mode,
register resources, like memory, hardware devices, or software services, required by software components in the new mode, and
(re)configure the runtime system of one or multiple processing cores to run the set of software components in the new mode, and
reconfigure software services like error handlers, monitoring systems, watchdogs, and middleware, to the new set of software components in the new mode,
and wherein said set of transition definitions and said set of modes are available to all processing cores in said set of processing cores
wherein
(1) a first function is provided, which first function is running on a host of the hosts of the computer system, wherein said first function
(a) receives a request to execute a transition from a current mode to a defined future mode, the new mode, and
(b) after receiving said request selects a transition definition from said set of transition definitions for said mode-transition, said transition definition defining the mode-transition from the actual active mode to the future mode, and wherein
said first function computes, based on said transition definition, a point in time in the future, the activation point in time, at which activation point in time said new mode shall become active, and wherein said computation is based on
one of said points in time in the transition definition, relative to the runtime of the software components in the old mode, when the mode-transition can be initiated, or
a globally defined relative point in time for the initiation of the transition, or a point in time at the end of a predefined interval, or
the next possible point in time after the reception of said request, or
a point in time according to a defined static assignment of transition points in time, or
a point in time received alongside said request to execute a transition,
(2) a second function is running on a processing core of the hosts in the computer system,
and wherein the first function transmits a m0-message to said second function, wherein
said m0-message comprises
a reference to the new mode, and
the computed activation point in time,
(3) third functions are provided, wherein a third function is running on a processing core in each of the hosts of the computer system,
and wherein the second function, after receiving the m0-message, propagates the information of said m0-message via m1-messages to third functions or to each of said third functions, wherein each m1-message is a message comprising
the received reference to the new mode, and
the activation point in time in the future of the new mode,
and wherein
the third functions receive an m1-message requesting a mode-transition in the processing cores of its related hosts, wherein
(4) fourth functions are provided, wherein on each processing core of the computer system a fourth function is running, and wherein
the third functions, after receiving the m1-message, distribute the information of said m1-message to fourth functions running on a processing core comprised in the host related to said third functions via m2-message(s) wherein each m2-message is a message including
the received reference to the new mode
as well as the activation point time for the new mode,
and wherein
the fourth functions extract, after receiving an m2-message, the reference to the new mode and the activation point in time from the received m2-messages and compute the necessary changes in the configuration of the processing core in which said fourth function is running, so that the software components, which have to run on the processing core according to the new mode are activated, and wherein
said computation of changes in the configuration is based on
the current runtime state of the processing core, and
the characteristics of the runtime system of the processing core, and
the new and old modes,
and wherein said computed changes in the configuration comprise
the execution of a list of specific actions according to said transition definition, and
the time-budget for each of said defined specific action, and
and wherein
said fourth functions execute at the activation point in time said changes in the configuration, so that the new mode is activated.