

Die Erfindung betrifft ein Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug, insbesondere in Form eines Flugsteuerungs- und/oder Fahrwerksteuerungssystems.The invention relates to a method for operating a control component for an aircraft, in particular in the form of a flight control and / or suspension control system.
In der Avionik-Domäne müssen höchst-sicherheitskritische Applikationen, insbesondere für Flugsteuerungs- oder Fahrwerksteuerungssysteme, traditionell auf separaten Geräten installiert sein, wobei regelmäßig auf die sogenannte „federated-Architectur” zurückgegriffen wird. Diese Vorgehensweise ist auch dann üblich, wenn die Applikationen gar keinen Sicherheitsanspruch an eine physikalische Trennung für Redundanz und Dissimilarität haben. Der Rückgriff auf separate Geräte ist daneben auch durch die begrenzte Rechenleistung konventioneller Einzelkernprozessoren bedingt. Eine Architektur mit separaten Geräten kann auch dann notwendig sein, wenn für spezifische Funktionen und Applikationen individuelle Prozessortypen zur Anwendung kommen, beispielsweise zur Steuerung von Aktuatoren, Motoren, etc..In the avionics domain, highly safety-critical applications, in particular for flight control or suspension control systems, must traditionally be installed on separate devices, whereby the so-called "federated architecture" is used on a regular basis. This procedure is also common if the applications have no security claim to a physical separation for redundancy and dissimilarity. The use of separate devices is also due to the limited computing power of conventional single-core processors. An architecture with separate devices may also be necessary if specific processor types are used for specific functions and applications, for example for controlling actuators, motors, etc.
Als Alternative zu der „federated-Architectur” gilt die „centralised-Architectur”, in der alle möglichen Applikationen in einem zentralen Rechner oder einem Cluster von physikalisch getrennten Rechnern (Multiprozessor-Board) gruppiert werden, wenn keine Sicherheitsanforderungen eine derartige Gruppierung verbieten. Diese Architektur wird traditionell nicht für vitale Systemfunktionen mit höchstsicherheitskritischen Anforderungen verwendet, sondern stattdessen für Applikationen mit niedrigeren Sicherheitsansprüchen, wie Visualisierung, Radar, etc., bzw. für Applikationen mit noch geringerer Kritikalität. Als bekannte Realisierung einer zentralisierten Systemplattform mit dedizierter Erweiterung für höhere Sicherheit kann die IMA-Architektur genannt werden.As an alternative to the "federated architecture", the "centralized architecture" applies, in which all possible applications are grouped in a central computer or a cluster of physically separate computers (multiprocessor board), if no security requirements prohibit such a grouping. Traditionally, this architecture is not used for vital system functions with high-security critical requirements, but instead for applications with lower security requirements, such as visualization, radar, etc., or for applications with even lower criticality. As a known realization of a centralized system platform with dedicated extension for higher security, the IMA architecture can be mentioned.
Beide Architekturtypen greifen derzeit auf Einzelkernprozessoren zurück. Für die „federated-Architectur” liegt der Fokus auf Mikrocontroller mit hoher Sicherheit und weniger auf die Performanz angelegt. Die hohe Sicherheit wird mit Hardware-Mechanismen und -Architektur zur Integritätsgewährleistung und Integritätskontrolle, wie auch mit niedriger Transistor-Integration (Transistor-Strukturgröße > 90 nm) beim Herstellungsprozess sichergestellt. Bei hohen Performanz-Anforderungen werden die Funktionalitäten auf mehrere Einzelkernprozessoren verteilt oder sehr spezialisierte Mikrocontroller verwendet, die auch genügend Sicherheit anbieten können (DSP-Prozessoren, Controller mit integrierten dedizierten Co-Prozessoren, etc.).Both types of architecture currently use single-core processors. For the federated architecture, the focus is on microcontrollers with greater security and less performance. The high security is ensured with hardware mechanisms and architecture for integrity assurance and integrity control, as well as with low transistor integration (transistor feature size> 90 nm) in the manufacturing process. In the case of high performance requirements, the functionalities are distributed to several single-core processors or very specialized microcontrollers are used, which can also provide sufficient security (DSP processors, controllers with integrated dedicated co-processors, etc.).
Bei der „centralised Architectur” liegt der Hauptfokus auf die Performanz, kombiniert mit einer vernünftigen aber nicht maximalen Sicherheit: die Performanz ist stark mit der hohen Taktfrequenz verbunden, die nur mit kleiner Transistor-Strukturgröße (< 60 nm) oder mit aktiver Hitzeableitung zu erreichen ist, was in beiden Fällen die Sicherheit des Systems negativ beeinflusst. Außerdem wird auf einige Hardware-Integritätsmechanismen zugunsten von Performance-Mechanismen (Cache, komplexe Branchprediction, Pipelines, etc.) verzichtet, was das Phänomen noch verschlimmert. Um es zu kompensieren und um genügend Sicherheit zu erreichen werden mehrere High-Performanz Rechner kombiniert (Redundanz).In centralized architecture, the main focus is on performance, combined with reasonable but not maximal security: the performance is strongly associated with the high clock frequency, which can only be achieved with small transistor structure size (<60 nm) or with active heat dissipation is, which in both cases adversely affects the security of the system. In addition, some hardware integrity mechanisms are sacrificed in favor of performance mechanisms (cache, complex branchprediction, pipelines, etc.), aggravating the phenomenon. In order to compensate and to achieve sufficient security, several high-performance computers are combined (redundancy).
Für beide Architekturen wird jedoch immer mehr Integration von neuen, komplexeren oder sicherheitsrelevanten Funktionen gefordert. In derselben Zeit sind jedoch die Anforderungen an die Energieersparnis, Gewicht und Raum deutlich stärker angestiegen. Da in naher Zukunft kein großer Fortschritt bei der Entwicklung von Einzelkernprozessoren zu erwarten ist, wird der Performanz-Anstieg der Einzelkernprozessoren den zunehmenden Anforderungen in Zukunft nicht gerecht werden.For both architectures, however, more and more integration of new, more complex or security-relevant functions is required. At the same time, however, the requirements for energy savings, weight and space have increased significantly more. Since no major progress in the development of single-core processors is to be expected in the near future, the performance increase of the single-core processors will not meet the increasing requirements in the future.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein optimiertes Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug aufzuzeigen, das den wachsenden Ansprüchen auch in Zukunft gerecht werden kann.The object of the present invention is to provide an optimized method for operating a control component for an aircraft, which can meet the growing demands in the future.
Gelöst wird diese Aufgabe durch ein Verfahren gemäß den Merkmalen des Anspruchs 1. Vorteilhafte Ausgestaltungen des Verfahrens sind Gegenstand der sich an den Hauptanspruch anschließenden abhängigen Ansprüche.This object is achieved by a method according to the features of
Erfindungsgemäß wird gemäß Anspruch 1 ein Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug vorgeschlagen, dass erstmalig auf einen Mehrkernprozessor zur parallelen Ausführung sicherheitskritischer Avionik-Applikationen zurückgreift. Als mögliche Steuerungskomponente für ein Luftfahrzeug gilt vorzugsweise ein Flugsteuerungs- oder Fahrwerksteuerungssystem.According to the invention, a method for operating a control component for an aircraft is proposed according to
Das erfindungsgemäße Verfahren greift auf einen Mehrkernprozessor zurück, dessen Architektur wenigstens einen System-Bus und wenigstens einen davon getrennten I/O-Peripherie-Bus umfasst. Die strikte physikalische Trennung der beiden Bus-Komponenten ist erforderlich, um Bearbeitungsverzögerungen der auszuführenden Applikationen aufgrund paralleler Buszugriffe zu I/O-Peripherien zu vermeiden. Ferner werden erfindungsgemäß wenigstens ein oder mehr Prozessorkerne des Mehrkernprozessors als sogenannte Applikations-Prozessorkerne eingesetzt, auf denen unterschiedliche Avionik-Applikationen parallel ausführbar sind. Wenigstens ein weiterer Prozessorkern wird als sogenannter dedizierter I/O-Prozessorkern verwendet, der die Administration des oder der I/O-Peripherie-Busse übernimmt und den Zugriff des wenigstens einen Applikation bzw. Applikations-Prozessorkerns auf den oder die I/O-Peripherie-Bus verwaltet. Zudem kann der I/O-Prozessorkern die Überwachung des korrekten Ablaufs der Plattform in einer sogenannten zentralen „Health Monitoring”-Funktion übernehmen.The method according to the invention makes use of a multi-core processor whose architecture comprises at least one system bus and at least one I / O peripheral bus which is separate from it. The strict physical separation of the two bus components is required to avoid processing delays of the applications to be executed due to parallel bus access to I / O peripherals. Furthermore, according to the invention, at least one or more processor cores of the multi-core processor are used as so-called application processor cores on which different avionics applications can be executed in parallel. At least one other processor core is used as a so-called dedicated I / O processor core that supports the Administration of the I / O-periphery buses and handles the access of the at least one application or application processor core on the or the I / O peripheral bus. In addition, the I / O processor core can monitor the correct operation of the platform in a so-called central "Health Monitoring" function.
Das erfindungsgemäße Prinzip basiert auf einer Trennung zwischen den IO-Aktivitäten und der Ausführung der Applikationen. Dies ermöglicht eine korrekte Synchronisation der IO-Aktivitäten, d. h. gleichzeitige Zugriffsversuche der Applikationen auf die gemeinsame IO-Peripherie lassen sich zuverlässig vermeiden. Die strikte Trennung ermöglicht insbesondere eine deterministische zeitgesteuerte Bedienung der Applikationsanfragen an die IO-Ressourcen. Diese Betriebsweise wird dadurch vereinfacht, dass nur ein einzelner Prozessorkern, nämlich der dedizierte I/O-Prozessorkern auf die IO-Ressourcen zugreift. Folglich lässt sich die resultierende Busbelastung hinreichend genau vorausplanen und kontrollieren, wodurch die Vorsehbarkeit der IO-Zugriffe sichergestellt ist.The principle according to the invention is based on a separation between the IO activities and the execution of the applications. This allows correct synchronization of IO activities, i. H. Simultaneous access attempts of the applications to the common IO periphery can be reliably avoided. The strict separation enables, in particular, a deterministic time-controlled operation of the application requests to the IO resources. This mode of operation is simplified in that only a single processor core, namely the dedicated I / O processor core, accesses the IO resources. Consequently, the resulting bus load can be planned and controlled with sufficient accuracy, which ensures the predictability of the IO accesses.
Ein Softwareframework mit dedizierter Architektur und Mechanismen ermöglicht die deterministische und segregierte Ausführung von Applikationen parallel auf wenigstens zwei oder mehreren Applikations-Prozessorkernen, und verwaltet und synchronisiert die Zugriffe der Applikationen auf den Peripherie-Bus mittels eines dedizierten Prozessorkerns, der entsprechend für diese Rolle als dedizierter I/O-Prozessorkern konfiguriert ist.A software framework with dedicated architecture and mechanisms enables the deterministic and segregated execution of applications in parallel on at least two or more application processor cores, and manages and synchronizes the applications' accesses to the peripheral bus via a dedicated processor core, which is accordingly more dedicated to that role I / O processor core is configured.
Besonders bevorzugt ist es, wenn das erfindungsgemäße Verfahren eine Segregation der ausgeführten Applikationen vorsieht, insbesondere auf Grundlage einer Kombination von Software- und Hardware-Funktion implementiert ist. Eine Segregation ist erforderlich, um die applikationsübergreifende Ausbreitung von Fehlern aus Software oder Hardware zu verhindern. Insbesondere sieht die Segregation eine Raum- und/oder Zeitpartitionierung zwischen den ausgeführten Applikationen vor. Bei gemeinsamen Hardware-Ressourcen wird eine gegenseitige Beeinflussung mittels dedizierter Software-Architektur, Software-Mechanismen und Software-Funktionen basierend auf vorhandenen Hardware-Mechanismen verhindert.It is particularly preferred if the method according to the invention provides segregation of the executed applications, in particular based on a combination of software and hardware function. Segregation is required to prevent cross-application propagation of software or hardware errors. In particular, the segregation provides a space and / or time partitioning between the running applications. With shared hardware resources, mutual interference is prevented by means of a dedicated software architecture, software mechanisms and software functions based on existing hardware mechanisms.
Gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird jede Applikation in nur einer Partition ausgeführt, wobei jede Partition auf nur einem Applikations-Prozessorkern ausgeführt wird. Eine Partition besteht aus reservierten Speicherteilen und aus reservierten CPU-Ausführungsfenstern. Diese Beschränkung ermöglicht eine überschaubare Aufteilung der bereitstehenden Ressourcen der Prozessorarchitektur, wodurch eine bessere Vorhersehbarkeit bei der Ausführung der Applikationen im Vergleich zu konventionellen Lösungen, bei denen die Applikationen auf mehrere Partitionen und mehreren Prozessorkernen verteilt ausgeführt werden, geschaffen wird.According to a preferred embodiment of the method according to the invention, each application is executed in only one partition, each partition being executed on only one application processor core. A partition consists of reserved memory parts and reserved CPU execution windows. This limitation allows a manageable sharing of the processor architecture resources available, providing better predictability in the execution of the applications as compared to conventional solutions where the applications run on multiple partitions and multiple processor cores.
Es besteht die Möglichkeit, dass ein oder mehrere auf der Mehrkernprozessor-Architektur ausgeführte Applikationen auf gemeinsame Ressourcen der Architektur zurückgreifen. Derartige Ressourcen unterteilen sich beispielsweise in funktionale und nicht-funktionale gemeinsame Ressourcen. Als funktionale gemeinsame Ressourcen gelten Hardware-Dienstleistungsfunktionen, beispielsweise CRC-Module, Safety-Module, Verschlüsselungsmodule, als auch BIT-Module. Für die Verwaltung der internen funktionalen gemeinsamen Ressourcen ist es zweckmäßig, dass pro Ressource bzw. eine Gruppierung von Ressourcen vorzugsweise wenigstens eine Proxy-Applikation implementiert wird, die innerhalb einer Partition eines Applikations-Prozessorkerns ausgeführt wird. Diese Proxy-Applikation dient der Verwaltung wenigstens einer gemeinsamen funktionalen Ressource, sodass alle weiteren Applikationen nur über diese Proxy-Applikation auf die wenigstens eine gemeinsame Ressource Zugriff erhalten. Die Proxy-Applikation ist vorzugsweise mit Exklusivrechten für den Zugriff auf die gemeinsame Ressource ausgestattet und kann mittels Schedulingverfahren Zugriffe der weiteren Applikationen verwalten.There is a chance that one or more applications running on the multi-core processor architecture will rely on shared resources of the architecture. Such resources are subdivided, for example, into functional and non-functional common resources. Functional shared resources include hardware service functions such as CRC modules, safety modules, encryption modules, and BIT modules. For the management of the internal functional common resources, it is expedient that preferably at least one proxy application is executed per resource or a grouping of resources, which is executed within a partition of an application processor core. This proxy application is used to manage at least one common functional resource so that all further applications only have access to the at least one shared resource via this proxy application. The proxy application is preferably equipped with exclusive rights for accessing the common resource and can manage accesses of the further applications by means of scheduling methods.
Auf Grundlage wenigstens einer Proxy-Applikation lassen sich ein oder mehrere interne funktionale gemeinsame Ressourcen zwischen Applikationen deterministisch geteilt verwalten. Für die Verwirklichung eines deterministischen Zugriffs auf interne gemeinsame Ressourcen ist es beispielsweise notwendig, dass spezielle Zugriffmechanismen durch die Prozessor-Architektur angeboten werden. Geeignete Mechanismen sind beispielsweise Bus-Arbitrationsmechanismen, Segregationsmechanismen, wie zum Beispiel eine Memory-Management-Unit (MMU) oder eine Memory-Protection-Unit (MPU), Semaphoren-Module, etc..Based on at least one proxy application, one or more internal functional shared resources between applications can be managed deterministically. For example, to achieve deterministic access to internal shared resources, it is necessary for special access mechanisms to be offered by the processor architecture. Suitable mechanisms are, for example, bus arbitration mechanisms, segregation mechanisms, such as a memory management unit (MMU) or a memory protection unit (MPU), semaphore modules, etc.
Für die nicht-funktionalen Ressourcen, wie den System-Bus, das Shared-Memory, ein FLASH-Speicher, etc. werden vorzugsweise native Mechanismen des Mehrkernprozessors verwendet, kombiniert mit einem Schedulingdienst des Kernels. Für die Ressourcen, die räumlich trennbar sind, wie z. B. das Shared-Memory, werden Teile davon an die Applikationen bzw. Partitionen zugeordnet und dank Segregationsmechanismen wie MMU/MPU gesichert. Für die Ressourcen, die nicht räumlich trennbar sind (System-Bus, DMA, etc.), werden Applikationszugriffe in Form von Zeitfenstern mit Daten- und Zugriffbudget auf jede Ressource und unter Berücksichtigung der Ressourcen-Bandbreite organisiert, um den zeitlichen Verwendungsplan dieser Ressourcen zu erstellen.For the non-functional resources, such as the system bus, the shared memory, a FLASH memory, etc., native mechanisms of the multi-core processor are preferably used, combined with a kernel scheduling service. For the resources that are spatially separable, such as As the shared memory, parts thereof are assigned to the applications or partitions and secured thanks to segregation mechanisms such as MMU / MPU. For the resources that are not spatially separable (system bus, DMA, etc.), application accesses are organized in the form of time windows with data and access budgets on each resource and taking into account the resource bandwidth, to the time schedule of these resources.
Für ein räumliches Partitioning ist es zweckmäßig, wenn jeder Applikations-Prozessorkern einen eigenen RAM-Speicher umfasst, der den gehosteten Applikationen des Prozessorkerns partitioniert zugewiesen ist. Weiterhin ist es bevorzugt, wenn jeder Applikations-Prozessorkern einen eigenen Schutzmechanismus umfasst, um einen gesicherten Zugriff und eine entsprechende gesicherte Zuweisung seines RAM-Speichers an einzelne Applikationen zu ermöglichen. Durch diesen Schutzmechanismus ist der RAM-Speicher von den verbleibenden Applikations-Prozessorkernen ungreifbar. Als geeignete Schutzmechanismen erweisen sich MMU/MPU. Dank der verwendeten Prozessorarchitektur können zudem Speicherzugriffe der ausgeführten Applikationen ohne Verwendung des System-Buses realisiert werden. Dies garantiert eine saubere räumliche Trennung zwischen den einzelnen Applikations-Prozessorkernen und verstärkt zudem die Fähigkeit zur Implementierung einer deterministischen Betriebsroutine der resultierenden Steuerungskomponente. Der implementierte Raum-Schutz-Mechanismus in Form der MMU/MPU dient der räumlichen Trennung zwischen den Applikationen innerhalb desselben Prozessorkerns.For spatial partitioning, it is expedient if each application processor core has its own RAM allocated in partitioned form to the hosted applications of the processor core. Furthermore, it is preferred if each application processor core includes its own protection mechanism in order to enable secure access and a corresponding secure allocation of its RAM memory to individual applications. This protection mechanism makes the RAM memory intangible with the remaining application processor cores. Suitable protection mechanisms are MMU / MPU. Thanks to the processor architecture used, memory accesses of the executed applications can also be realized without using the system bus. This guarantees a clean spatial separation between the individual application processor cores and also strengthens the ability to implement a deterministic operating routine of the resulting control component. The implemented space protection mechanism in the form of the MMU / MPU is used for the spatial separation between the applications within the same processor core.
Für ein zeitliches Partitioning im Zuge der Segregation ist es erforderlich, dass jeder Prozessorkern, insbesondere jeder Applikations-Prozessorkern, wenigstens einen eigenen Interrupt-Controller mit Timer-Funktion und/oder wenigstens eine davon getrennte Watchdog-Funktion umfasst. Dadurch kann ein Zeit-Interrupt unabhängig von den verbleibenden Applikations-Prozessorkernen generiert werden. Dies ermöglicht eine zeitliche Kontrolle für die Ausführung der von dem jeweiligen Applikations-Prozessorkern verwalteten Applikationen bzw. Diensten. Zudem erlaubt die von der Timer-Funktion unabhängige Watchdog-Funktion eine zuverlässige Verhinderung einer prozessorkernübergreifenden Fehlerfortpflanzung, falls ein Zeitüberlauf oder eine Dekonfiguration des Interrupt-Controllers aufgrund äußerer Störeinflüsse auftritt.For temporal partitioning in the course of segregation, it is necessary for each processor core, in particular each application processor core, to comprise at least one own interrupt controller with timer function and / or at least one separate watchdog function. This allows a time interrupt to be generated independently of the remaining application processor cores. This allows time control for the execution of the applications or services managed by the respective application processor core. In addition, the watchdog function, which is independent of the timer function, allows a reliable prevention of processor-propagating error propagation if a timeout or a deconfiguration of the interrupt controller occurs due to external disturbances.
Gemäß einer weiteren vorteilhaften Ausgestaltung ist wenigstens ein Prozessor-Kern des Mehrkernprozessors als Safety-Prozessorkern implementiert. Ein entsprechender Safety-Prozessorkern umfasst wenigstens zwei redundant arbeitende Prozessorkerne, auf denen derselbe Programmcode, insbesondere dieselbe Applikation und/oder die I/O-Verwaltung und/oder die „Health-Monitoring”-Funktion, ausgeführt wird. Die Rechenergebnisse der redundanten Prozessorkerne werden kontinuierlich überprüft bzw. miteinander verglichen, um bei Abweichungen ein Fehlverhalten eines Prozessorkerns des Safety-Prozessorkerns zuverlässig zu erkennen. Idealerweise wird wenigstens einer der redundanten Prozessorkerne um mindestens einen Arbeitszyklus zeitlich versetzt betrieben, insbesondere um einen Arbeitszyklus verzögert betrieben, sodass kurzzeitige äußere Störeinflüsse, beispielsweise durch Strahlung, nicht zu einem identischen Fehlerbild bei den redundanten Prozessorkernen führen.According to a further advantageous embodiment, at least one processor core of the multi-core processor is implemented as a safety processor core. A corresponding safety processor core comprises at least two redundantly operating processor cores on which the same program code, in particular the same application and / or the I / O management and / or the "health monitoring" function, is executed. The computational results of the redundant processor cores are continuously checked or compared with one another in order to reliably detect a malfunction of a processor core of the safety processor core in the event of deviations. Ideally, at least one of the redundant processor cores is operated offset in time by at least one operating cycle, in particular by a delay operated operating cycle, so that short-term external interference, for example by radiation, do not lead to an identical error pattern in the redundant processor cores.
Der Safety-Prozessorkern dient zur Ausführung hoch-kritischer Anwendungen. Idealerweise dient der wenigsten eine Safety-Prozessorkern zur Ausführung ein oder mehrere Überwachungsfunktionen der gesamten Steuerungskomponente bzw. des Mehrkernprozessors selbst. In diesem Zusammenhang ist neben dem Monitoring auch die Ausführung ein oder mehrerer Recovery- oder Failsafefunktionen denkbar. Genauso können grundlegende Systemfunktionen der Steuerungskomponente mit höchster Sicherheitsstufe auf einem derartigen Safety-Prozessorkern ausgeführt werden.The safety processor core is used to execute highly critical applications. Ideally, at least one safety processor core is used to execute one or more monitoring functions of the entire control component or of the multi-core processor itself. In this context, the execution of one or more recovery or failsafe functions is conceivable in addition to the monitoring. In the same way, basic system functions of the control component with the highest security level can be executed on such a safety processor core.
Idealerweise wird auf jedem Applikations-Prozessorkern und/oder auf dem dedizierten I/O-Prozessorkern eine eigene Betriebssoftware ausgeführt. Die Betriebssoftware umfasst vorzugsweise einen Kernel, einen Inter-Partition-Kommunikations-Schicht zur Übernahme des logischen Routings der Signale auf Partitionsebene und einen Inter-Prozessorkern-Kommunikations-Schicht zur Übernahme des physikalischen Routings der Daten zwischen unterschiedlichen Prozessorkernen, wobei vorzugsweise die Routings nach definiertem Zeitplan mit Zeitfenster für jede Partition durchgeführt werden.Ideally, each application processor core and / or the dedicated I / O processor core runs its own operating software. The operating software preferably comprises a kernel, an inter-partition communication layer for taking over the logical routing of the signals at the partition level and an inter-processor core communication layer for taking over the physical routing of the data between different processor cores, wherein preferably the routings are defined Schedule with time window for each partition to be performed.
Die Inter-Partition- und/oder Inter-Prozessorkern-Kommunikation erfolgt bevorzugt mittels eines gemeinsamen Speichers, auf den die Applikationen unterschiedlicher Prozessorkerne Zugriff haben. Auf dem wenigstens einen dedizierten I/O-Prozessorkern wird wenigstens eine Pseudo-Partition mit I/O-Warteschlangen installiert, wobei diese vorzugsweise innerhalb der Inter-Partition-Kommunikations-Schicht des dedizierten I/O-Prozessorkerns ausgeführt wird. Die Pseudo-Partition dient dazu, eingehende Zugriffe der Applikationen, d. h. der Applikations-Prozessorkerne, zu verwalten und deren Integrität sicher zu stellen. Die Pseudo-Partition dient auch dazu, die aus den I/O-Peripherien empfangenen Daten an die korrekte Applikation (aus den Applikationskernen) in entsprechende Mail-Boxen (via gemeinsamen Speicher) nach Konfigurationsplan zu übertragen.The inter-partition and / or inter-processor core communication preferably takes place by means of a shared memory to which the applications of different processor cores have access. At least one pseudo-partition with I / O queues is installed on the at least one dedicated I / O processor core, which is preferably executed within the inter-partition communication layer of the dedicated I / O processor core. The pseudo-partition serves to detect incoming accesses of the applications, i. H. the application processor cores to manage and ensure their integrity. The pseudo-partition also serves to transfer the data received from the I / O peripherals to the correct application (from the application cores) in corresponding mail boxes (via shared memory) according to the configuration plan.
In einer bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens erfolgt die Konfiguration der Steuerungskomponente, insbesondere die Konfiguration der Partitionen und Pseudo-Partitionen bezüglich Scheduling, I/O-Verwendung (Rechte, Datenmenge, zeitliche Aspekte) und Inter-Partition Kommunikation mittels einer projektspezifischen Konfigurationsdatei, die auf die Plattform mit den Projekt-SW-Applikationen hochgeladen wird. Bei der Konfiguration des Systems werden die I/O-Zugriffsanfragen der Applikation in Übereinstimmung mit der Kapazität der I/O-Ressourcen, der Busse, des verwendeten Speichers und der Performanz des dedizierten I/O-Prozessorkerns dimensioniert, so dass diese Ressourcen im Arbeitsbetrieb nie überlastet werden können.In a preferred embodiment of the method according to the invention, the configuration of the control component, in particular the configuration of partitions and pseudo-partitions with respect to scheduling, I / O use (rights, amount of data, temporal aspects) and inter-partition communication by means of a project-specific configuration file on the platform with the project SW Applications is uploaded. When configuring the system, the application's I / O access requests are sized in accordance with the capacity of the I / O resources, the buses, the memory used, and the performance of the dedicated I / O processor core, so that these resources are in working mode never be overloaded.
Weiterhin wird eine definierte Software-Schnittstelle zwischen den ausgeführten Applikationen und der Betriebssoftware der einzelnen Applikations-Prozessorkerne vorgesehen. Als Schnittstelle empfiehlt sich insbesondere der bekannte
Als Beispiel für Flugsteuerungssysteme können die Steuerungen von Aktuatoren für verschiedenen Flächen (hoher Kritikalitätslevel), Monitore für gewisse Systemfunktionen (höchster Kritikalitätslevel) und Maintenance-Applikationen (niedriger Kritikalitätslevel) auf eine nach dem Erfindungsverfahren konzipierte Durchführungsplattform zusammen gruppiert werden.As an example of flight control systems, actuators for different areas (high criticality level), monitors for certain system functions (highest level of criticality) and maintenance applications (low level of criticality) may be grouped together on an execution platform designed according to the invention method.
Neben dem erfindungsgemäßen Verfahren betrifft die vorliegende Erfindung eine Steuerungskomponente für ein Luftfahrzeug insbesondere in Form einer Flug- und/oder Fahrwerkssteuerung eines Luftfahrzeuges, mit wenigstens einem Mehr-Kernprozessor und einer Softwarearchitektur zur Durchführung des erfindungsgemäßen Verfahrens. Offensichtlich zeichnet sich die Steuerungskomponente durch dieselben Vorteile und Eigenschaften wie das erfindungsgemäße Verfahren aus, weshalb an dieser Stelle auf eine wiederholende Beschreibung verzichtet wird.In addition to the inventive method, the present invention relates to a control component for an aircraft, in particular in the form of an aircraft and / or chassis control of an aircraft, with at least one multi-core processor and a software architecture for performing the method according to the invention. Obviously, the control component is characterized by the same advantages and properties as the method according to the invention, which is why a repetitive description is omitted here.
Es wird darauf hingewiesen, dass sich das erfindungsgemäße Verfahren bzw. die Steuerungskomponente nicht nur in der Avionik, sondern generell bei sämtlichen Anwendungsfällen mit sicherheitskritischen Anforderungen einsetzen lässt, so auch insbesondere in der Bahntechnik.It should be noted that the method according to the invention or the control component can be used not only in avionics, but generally in all applications with safety-critical requirements, so also in particular in railway technology.
Weiter Vorteile und Eigenschaften der Erfindung sollen im Folgenden anhand eines in den Figurendarstellungen gezeigten Ausführungsbeispiels näher erläutert werden. Es zeigen:Further advantages and features of the invention will be explained in more detail below with reference to an embodiment shown in the figure representations. Show it:
Die vorliegende Erfindung beschäftigt sich mit der Möglichkeit, mehrere sicherheitskritischen Software-Applikationen auf einer Steuerungskomponente für ein Luftfahrzeug mit einem einzelnen Mehrkernprozessor zu gruppieren und auszuführen. Die aktuell leistungsfähigsten Mehrkernprozessoren werden meistens für nichtsicherheitskritische Domänen wie Telekommunikation oder Consumer Elektronik (PC, Entertainment) entwickelt und bieten deshalb nicht alle notwendigen Eigenschaften für sicherheitskritische Domänen betreffend Determinismus, Segregation und Sicherheit. Ihre Architektur ist meistens für durchschnittliche Performanz und nicht für deterministische Leistung konzipiert und noch weniger für die Ausführung sicherheitskritischer Applikationen. Außerdem liegt die Transistor-Strukturgröße dieser Prozessoren im Bereich kleiner als 45 nm, was sehr empfindlich für Strahlungen bei Flugzeugen und Automobilen ist.The present invention is concerned with the ability to group and execute multiple safety-critical software applications on a control component for an aircraft with a single multi-core processor. The currently most powerful multi-core processors are mostly developed for non-safety-critical domains such as telecommunications or consumer electronics (PC, entertainment) and therefore do not offer all the necessary features for safety-critical domains regarding determinism, segregation and security. Their architecture is mostly designed for average performance rather than deterministic performance, much less for running safety-critical applications. In addition, the transistor feature size of these processors is less than 45 nm, which is very sensitive to aircraft and automobile radiation.
Dank der Modularität und Konfigurationsflexibilität der Erfindung, insbesondere mittels des
Die Lösung besteht aus einer spezifischen Verwendung eines gewissen Mehrkernprozessor-Typs mittels einer dedizierten Software-Architektur. Die Software-Architektur ist so konzipiert, dass die Aspekte Determinismus, Segregation und Safety für solche Mehrkernprozessoren optimiert sind.
Die Konfiguration der Plattform ist vom Projekt-Software-Architekt konzipiert und in wenigstens einer Konfigurationsdatei
Die Software-Applikationen
Die Plattform
Ferner umfasst die Architektur einen physikalisch getrennten Bus
Das erfindungsgemäße Prinzip basiert demnach auf eine Trennung zwischen den I/O-Aktivitäten und der Ausführung der Applikationen
Die Plattform
Diese Konfiguration präzisiert die Arbeit der Kernel
Das Softwarekonzept ist der Darstellung der
Jeder Applikations-Kern
Bei der Konfiguration des Systems werden die I/O-Zugriff-Anfragen der Applikationen
Das Pendant existiert beim IO-Kern
Im Folgenden soll nochmals im Detail auf die erfindungsgemäßen Prinzipien der Plattform
Determinismus (Überblick)Determinism (overview)
Die Plattform
Vorhersehbare interne Kommunikation (löst die Wiederholungen)Predictable internal communication (solves the repetitions)
Dank der gewählten Mehrkernprozessorkern-Architektur ist die Belastung jedes Buses
Die Plattform
Zugriffe auf die I/O-PeripherienAccesses to the I / O peripherals
Der Determinismus der Zugriffe auf die I/O-Peripherien
Dieser dedizierte I/O-Prozessorkern
Der Zeitplan für das Senden oder Empfangen jedes Signals der Applikationen
Zugriffe auf die internen gemeinsamen RessourcenAccess to internal shared resources
Die Vorhersehbarkeit der Zugriffe auf die internen gemeinsamen Ressourcen wird dank der Kombinierung der Mehrkernprozessor-Architektur und des Plattform-Designs unterstützt.The predictability of access to internal shared resources is supported by the combination of multi-core processor architecture and platform design.
Funktionale gemeinsame RessourcenFunctional shared resources
Die internen funktionalen gemeinsame Ressourcen des Prozessor, wie z. B. CRC-Module, Safety-Module, BIT-Modulen, etc., werden via einzelne, dedizierte (Plattform-)Applikationen
Durch die unten genannten Segregationsmechanismen des Prozessors besitzt jede dieser Plattform-Applikationen
Um diese Vorgehensweise zu ermöglichen, muss der Mehrkernprozessor gewisse Mechanismen zur Verfügung stellen. Der gewählte Mehrkernprozessor-Architektur-Typ bietet spezifische Mechanismen an, die zur Sicherstellung des Determinismus beim Zugriff auf interne gemeinsame Ressourcen wirken. Beispielhaft werden Bus-Arbitration Mechanismen, Segregation-Mechanismen wie z. B. MMU/MPU, Semaphoren-Module, etc. genannt. Während der Konfigurationsphase werden diese Mechanismen in Übereinstimmung mit den Bedürfnissen der Applikationen
Nicht-funktionale gemeinsame RessourcenNon-functional shared resources
Für die nicht-funktionalen Ressourcen, wie dem System-Bus
Für die Ressourcen, die nicht räumlich trennbar sind (System-Bus
Segregationsegregation
Unter Segregation versteht man Raum- und Zeit-Partitionierung zwischen den ausgeführten Applikationen
Der Komponenten-execution-Code, die I/Os und der Datenspeicher der Komponenten sind bei der Spezifikation der Partitionierung
Räumliche PartitionierungSpatial partitioning
Für die räumliche Partitionierung nutzt die Plattform
Zeitliche PartitionierungTime partitioning
Für die zeitliche Partitionierung nutzt die Plattform
Alle diese verschiedenen angesetzten Segregationskonzepte ermöglichen es der mehrkernbasierten Plattform die Partitionierungsanforderungen aus den Avionik-Standards zu erfüllen.All of these different segregation concepts allow the multicore-based platform to meet the partitioning requirements of avionics standards.
Sicherheitsaspekte:Safety aspects:
Die Sicherheitskonzepte der Mehrkern-Plattform
Die unterschiedlichen Fähigkeiten der Mehrkern-Controller-Modelle werden gezielt verwendet. Auf den Safety-Prozessorkernen
Als besondere Sicherheitsfähigkeit bietet die Plattform
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte Nicht-PatentliteraturCited non-patent literature
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE102014019531.7ADE102014019531A1 (en) | 2014-12-23 | 2014-12-23 | Method for operating an aircraft control component and control component | 
| PCT/EP2015/002542WO2016102055A2 (en) | 2014-12-23 | 2015-12-16 | Method for operating a control component for an aircraft and control component | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE102014019531.7ADE102014019531A1 (en) | 2014-12-23 | 2014-12-23 | Method for operating an aircraft control component and control component | 
| Publication Number | Publication Date | 
|---|---|
| DE102014019531A1true DE102014019531A1 (en) | 2016-06-23 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| DE102014019531.7APendingDE102014019531A1 (en) | 2014-12-23 | 2014-12-23 | Method for operating an aircraft control component and control component | 
| Country | Link | 
|---|---|
| DE (1) | DE102014019531A1 (en) | 
| WO (1) | WO2016102055A2 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| CN110597754A (en)* | 2019-08-02 | 2019-12-20 | 北京多思安全芯片科技有限公司 | Master-slave type safety processor | 
| EP3660605A1 (en)* | 2018-11-29 | 2020-06-03 | Hamilton Sundstrand Corporation | Aircraft controller including multiple core processor with wireless transmission prognostic/diagnostic data capability | 
| EP3660604A1 (en)* | 2018-11-30 | 2020-06-03 | Hamilton Sundstrand Corporation | Multiple core motor controller processor with embedded prognostic/diagnostic capabilities | 
| DE102020213371A1 (en) | 2020-10-22 | 2022-04-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Device and method for controlling a technical system | 
| CN114489584A (en)* | 2021-12-31 | 2022-05-13 | 中国航空工业集团公司西安飞机设计研究所 | Electromechanical core processor software architecture based on ARINC653 standard | 
| DE102021209627A1 (en) | 2021-09-01 | 2023-03-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | System and method for running functionally identical applications | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| FR3071334B1 (en)* | 2017-09-19 | 2019-08-30 | Psa Automobiles Sa | METHOD FOR ENSURING DATA STABILITY OF A MULTICOAL PROCESSOR OF A MOTOR VEHICLE | 
| CN110781055B (en)* | 2019-10-15 | 2023-03-10 | 中国航空无线电电子研究所 | Service component running state monitoring method of embedded partition real-time operating system | 
| CN112241352B (en)* | 2020-11-03 | 2023-10-20 | 中国航空工业集团公司西安航空计算技术研究所 | Monitoring system of gridding fault-tolerant computer platform | 
| CN115509986B (en)* | 2022-09-28 | 2024-05-07 | 美的集团(上海)有限公司 | Inter-core communication method, electronic device, and storage medium | 
| CN115903580A (en)* | 2022-10-26 | 2023-04-04 | 中国航空工业集团公司西安航空计算技术研究所 | A Civil Aircraft Airborne Data Monitoring Method Based on Control Rate Accelerator | 
| US12321773B1 (en) | 2023-12-22 | 2025-06-03 | Parry Labs, Llc | System and method for a safety critical operating environment container architecture | 
| US12147542B1 (en) | 2024-01-25 | 2024-11-19 | Parry Labs, Llc | Field-deployable hardware apparatus | 
| US12062112B1 (en) | 2024-01-25 | 2024-08-13 | Parry Labs, Llc | Apparatus for heterogenous processing | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| WO2011159209A1 (en)* | 2010-06-17 | 2011-12-22 | Saab Ab | Distributed avionics | 
| Title | 
|---|
| ARINC653 | 
| ARINC-653 | 
| ARINC653 API | 
| ARINC653 Avionik-Standards | 
| ARINC653 Standard | 
| ARINC653 SW-Interface | 
| CARRASCOSA, E. [et al.]: XtratuM hypervisor redesign for LEON4 multicore processor. ACM SIGBED Review, Juni 2014, 11. Jg., Nr. 2, S. 27-31* | 
| CILKU, Bekim; FROMEL, Bernhard; PUSCHNER, Peter: A dual-layer bus arbiter for mixed-criticality systems with hypervisors. In: Industrial Informatics (INDIN), 2014 12th IEEE International Conference on. IEEE, Juli 2014. S. 147-151* | 
| D0178B/C | 
| D0178B/C Standard | 
| HAN, Sanghyun; JIN, Hyun-Wook: Full virtualization based ARINC 653 partitioning. In: Digital Avionics Systems Conference (DASC), 2011 IEEE/AIAA 30th. IEEE, 2011. S. 7E1-1 - 7E1-11* | 
| KOTTKE, Thomas; STEININGER, Andreas: A reconfigurable generic dual-core architecture. In: Dependable Systems and Networks, 2006. DSN 2006. International Conference on. IEEE, 2006. S. 45-54* | 
| REINHARDT, Dominik; MORGAN, Gary: An embedded hypervisor for safety-relevant automotive E/E-systems. In: Industrial Embedded Systems (SIES), 2014 9th IEEE International Symposium on. IEEE, 18-20 Juni 2014. S. 189-198* | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| EP3660605A1 (en)* | 2018-11-29 | 2020-06-03 | Hamilton Sundstrand Corporation | Aircraft controller including multiple core processor with wireless transmission prognostic/diagnostic data capability | 
| US11254441B2 (en) | 2018-11-29 | 2022-02-22 | Hamilton Sundstrand Corporation | Aircraft controller including multiple core processor with wireless transmission prognostic/diagnostic data capability | 
| EP3660604A1 (en)* | 2018-11-30 | 2020-06-03 | Hamilton Sundstrand Corporation | Multiple core motor controller processor with embedded prognostic/diagnostic capabilities | 
| US11097857B2 (en) | 2018-11-30 | 2021-08-24 | Hamilton Sundstrand Corporation | Multiple core motor controller processor with embedded prognostic/diagnostic capabilities | 
| CN110597754A (en)* | 2019-08-02 | 2019-12-20 | 北京多思安全芯片科技有限公司 | Master-slave type safety processor | 
| DE102020213371A1 (en) | 2020-10-22 | 2022-04-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Device and method for controlling a technical system | 
| DE102021209627A1 (en) | 2021-09-01 | 2023-03-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | System and method for running functionally identical applications | 
| CN114489584A (en)* | 2021-12-31 | 2022-05-13 | 中国航空工业集团公司西安飞机设计研究所 | Electromechanical core processor software architecture based on ARINC653 standard | 
| Publication number | Publication date | 
|---|---|
| WO2016102055A3 (en) | 2016-09-22 | 
| WO2016102055A2 (en) | 2016-06-30 | 
| Publication | Publication Date | Title | 
|---|---|---|
| DE102014019531A1 (en) | Method for operating an aircraft control component and control component | |
| DE102010054337B4 (en) | Mechanisms to prevent inefficient core hopping and provide hardware-assisted low-level selection | |
| DE69233655T2 (en) | Microprocessor architecture with the possibility to support several different processors | |
| DE102014002181B4 (en) | Chip and method of operating a chip | |
| DE112011105298B4 (en) | Reduce energy consumption from uncore circuits of a processor | |
| DE102014003704B4 (en) | Platform agnostic power management | |
| DE102008062692B4 (en) | Embedded microcontroller system and method for configuring an embedded microcontroller system with controlled switching mode | |
| DE602004012563T2 (en) | Multi-threaded DMA | |
| DE3606211A1 (en) | MULTIPROCESSOR COMPUTER SYSTEM | |
| DE102015108689A1 (en) | Security node in interconnect data buses | |
| DE102015102135B4 (en) | System on a chip, digital signal processor system, method with interruptible exclusive memory | |
| DE102016122375A1 (en) | Dynamic containerized system memory protection for low power MCUs | |
| DE112012005700T5 (en) | External auxiliary execution unit interface to off-chip auxiliary execution unit | |
| DE112013003733T5 (en) | Adaptive packet redirection to achieve reasonable, cost-effective, and / or energy-efficient network service quality on chip devices | |
| DE102013200503A1 (en) | Virtualization support for saving and restoring states of a jump prediction logic | |
| DE69219848T2 (en) | Method for handling data transfers in a computer system with a two-bus system | |
| DE102021130092A1 (en) | SYSTEM FOR PARALLEL PROCESSING OF APPLICATION ALGORITHMS FOR MIDDLEWARE NODES USING THREADS | |
| DE102018005759A1 (en) | CONNECTING ACCELERATOR RESOURCES USING EINESSWITCHES | |
| EP3291094A1 (en) | Processor system and method for monitoring processors | |
| DE102016203808A1 (en) | Reduce virtual machine preemption in a virtualized environment | |
| EP3186710B1 (en) | Microcontroller system and method for safety-critical motor vehicle systems and the use thereof | |
| DE102020214951A1 (en) | Method for dynamically allocating memory bandwidth | |
| DE112013000599T5 (en) | Configure compute nodes in a parallel computer using remote direct memory access | |
| DE102018214014A1 (en) | Delayed increment for high frequency counter | |
| DE102017124078A1 (en) | ORDINAL MODIFICATION OF THE SERVICE | 
| Date | Code | Title | Description | 
|---|---|---|---|
| R163 | Identified publications notified | ||
| R012 | Request for examination validly filed |