DE102017103732A1 - Hardware monitoring device, runtime monitoring device and corresponding method - Google Patents

Hardware monitoring device, runtime monitoring device and corresponding method Download PDF

Info

Publication number
DE102017103732A1
DE102017103732A1 DE102017103732.2A DE102017103732A DE102017103732A1 DE 102017103732 A1 DE102017103732 A1 DE 102017103732A1 DE 102017103732 A DE102017103732 A DE 102017103732A DE 102017103732 A1 DE102017103732 A1 DE 102017103732A1
Authority
DE
Germany
Prior art keywords
request
monitoring device
signal
runtime
hardware
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102017103732.2A
Other languages
German (de)
Inventor
Udo Hafner
Dinh Quoc Thang Nguyen
Christian Reidl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies Austria AG
Original Assignee
Infineon Technologies Austria AG
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
Priority claimed from US15/423,100 external-priority patent/US10394640B2/en
Application filed by Infineon Technologies Austria AG filed Critical Infineon Technologies Austria AG
Publication of DE102017103732A1 publication Critical patent/DE102017103732A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine Hardwareüberwachungsvorrichtung kann Informationen empfangen, die eine Anforderung für ein System identifizieren. Die Anforderung kann mit dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung assoziiert sein. Die Hardwareüberwachungsvorrichtung kann die eine oder die mehreren Hardwarekomponenten programmieren, so dass das System basierend auf der Anforderung analysiert wird. Die Hardwareüberwachungsvorrichtung kann ein Signal vom System während des Laufzeitbetriebs des Systems in der vorgesehenen Betriebsumgebung empfangen. Die Hardwareüberwachungsvorrichtung kann das Signal während des Laufzeitbetriebs des Systems basierend auf der Anforderung analysieren. Die Hardwareüberwachungsvorrichtung kann während des Laufzeitbetriebs des Systems basierend auf dem Analysieren des Signals bestimmen, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde. Die Hardwareüberwachungsvorrichtung kann Informationen ausgeben, die angeben, dass die Anforderung verletzt wurde.A hardware monitoring device may receive information identifying a request for a system. The request may be associated with operation of the system during runtime operation of the system in a designated operating environment. The hardware monitoring device may program the one or more hardware components to analyze the system based on the request. The hardware monitoring device may receive a signal from the system during runtime operation of the system in the intended operating environment. The hardware monitoring device may analyze the signal during runtime operation of the system based on the request. The hardware monitoring device may determine during runtime operation of the system based on analyzing the signal that the request was violated during runtime operation of the system. The hardware monitoring device may output information indicating that the request has been violated.

Description

HINTERGRUNDBACKGROUND

Die vorliegende Anmeldung betrifft Hardwareüberwachungsvorrichtungen, Laufzeitüberwachungsvorrichtungen und entsprechende Verfahren.The present application relates to hardware monitoring devices, runtime monitoring devices and related methods.

Temporale Logik oder ein regulärer Zeitausdruck (engl. "time regular expression") können sich auf ein System von Regeln und Symbolik zum Repräsentieren und Schlussfolgern über zeitlich eingeschränkte/qualifizierte Aussagen ("propositions") beziehen. Temporale Logik oder ein regulärer Zeitausdruck können in formaler Verifikation und zum Angeben von Anforderungen von Hardware- und/oder Softwaresystemen verwendet werden. Es ist eine Aufgabe, entsprechende Möglichkeiten bereitzustellen, welche effizientes Überwachen, Simulieren und/oder Analysieren von Systemen ermöglichen.Temporal logic or a regular time expression may refer to a system of rules and symbolism for representing and inferring about time-limited / qualified statements ("propositions"). Temporal logic or a regular time expression may be used in formal verification and to indicate requirements of hardware and / or software systems. It is an object to provide appropriate facilities that enable efficient monitoring, simulation and / or analysis of systems.

KURZDARSTELLUNGSUMMARY

Es werden eine Hardwareüberwachungsvorrichtung nach Anspruch 1, eine Laufzeitüberwachungsvorrichtung nach Anspruch 8 sowie ein Verfahren nach Anspruch 15 bereitgestellt. Die Unteransprüche definieren weitere Ausführungsformen.A hardware monitoring device according to claim 1, a runtime monitoring device according to claim 8 and a method according to claim 15 are provided. The subclaims define further embodiments.

Bei manchen Implementierungen kann eine Hardwareüberwachungsvorrichtung eine oder mehrere Hardwarekomponenten beinhalten. Die eine oder die mehreren Hardwarekomponenten können Informationen empfangen, die eine Anforderung (engl. "requirement", z.B. eine Anforderung oder ein Erfordernis gemäß einer Spezifikation und/oder ein erforderliches und/oder gewünschtes Verhalten) für ein System identifizieren. Die Anforderung kann mit dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung assoziiert (zugeordnet) sein. Die eine oder die mehreren Hardwarekomponenten kann bzw. können die eine oder die mehreren Hardwarekomponenten programmieren, so dass das System basierend auf der Anforderung analysiert wird. Die eine oder die mehreren Hardwarekomponenten kann bzw. können ein Signal vom System während des Laufzeitbetriebs des Systems in der vorgesehenen Betriebsumgebung empfangen. Die eine oder die mehreren Hardwarekomponenten kann bzw. können das Signal während des Laufzeitbetriebs des Systems basierend auf der Anforderung analysieren. Die eine oder die mehreren Hardwarekomponenten kann bzw. können während des Laufzeitbetriebs des Systems basierend auf dem Analysieren des Signals bestimmen, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde. Die eine oder die mehreren Hardwarekomponenten kann bzw. können Informationen ausgeben, die angeben, dass die Anforderung verletzt wurde.In some implementations, a hardware monitoring device may include one or more hardware components. The one or more hardware components may receive information identifying a requirement for a system, such as a requirement or requirement according to a specification and / or a required and / or desired behavior. The request may be associated with the operation of the system during run-time operation of the system in a designated operating environment. The one or more hardware components may program the one or more hardware components such that the system is analyzed based on the request. The one or more hardware components may receive a signal from the system during runtime operation of the system in the intended operating environment. The one or more hardware components may analyze the signal during runtime operation of the system based on the request. The one or more hardware components may determine during runtime operation of the system based on analyzing the signal that the request was violated during runtime operation of the system. The one or more hardware components may output information indicating that the request has been violated.

Bei manchen Implementierungen kann eine Laufzeitüberwachungsvorrichtung einen Speicher und einen oder mehrere Prozessoren beinhalten. Die Prozessoren können insbesondere programmiert sein, z.B. durch einen in dem Speicher oder einem anderen Speicher abgelegten Programmcode, die nachfolgende Funktion auszuführen. Der eine oder die mehreren Prozessoren kann bzw. können Informationen empfangen, die eine zeitbasierte Zwischenrepräsentation identifizieren, die eine Anforderung für ein System ausdrückt. Die Anforderung kann mit dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung assoziiert sein. Der eine oder die mehreren Prozessoren kann bzw. können die Anforderung im Speicher als Code, der die Anforderung repräsentiert, speichern. Der eine oder die mehreren Prozessoren kann bzw. können ein Signal vom System während des Laufzeitbetriebs des Systems empfangen. Der eine oder die mehreren Prozessoren kann bzw. können das Signal während des Laufzeitbetriebs des Systems unter Verwendung der gespeicherten Anforderung analysieren. Der eine oder die mehreren Prozessoren kann bzw. können während des Laufzeitbetriebs des Systems basierend auf dem Analysieren des Signals bestimmen, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde. Der eine oder die mehreren Prozessoren kann bzw. können Informationen ausgeben, die angeben, dass die Anforderung verletzt wurde. In some implementations, a runtime monitoring device may include a memory and one or more processors. In particular, the processors may be programmed, e.g. by a program code stored in the memory or other memory to perform the following function. The one or more processors may receive information that identifies a time-based intermediate representation that expresses a request for a system. The request may be associated with operation of the system during runtime operation of the system in a designated operating environment. The one or more processors may store the request in memory as code representing the request. The one or more processors may receive a signal from the system during runtime operation of the system. The one or more processors may analyze the signal during runtime operation of the system using the stored request. The one or more processors may determine during runtime operation of the system based on analyzing the signal that the request was violated during runtime operation of the system. The one or more processors may output information indicating that the request has been violated.

Bei manchen Implementierungen kann ein Verfahren Empfangen von Informationen, die eine Anforderung für ein System identifizieren, durch eine Hardwareüberwachungsvorrichtung beinhalten. Die Anforderung kann mit dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung assoziiert sein. Die Anforderung kann von temporaler Logik oder einem regulären Zeitausdruck zu Code, der auf der Hardwareüberwachungsvorrichtung implementiert wird, übersetzt werden. Das Verfahren kann Überwachen, durch die Hardwareüberwachungsvorrichtung, eines Signals vom System während des Laufzeitbetriebs des Systems beinhalten. Das Verfahren kann Analysieren, durch die Hardwareüberwachungsvorrichtung, des Signals unter Verwendung der Anforderung während des Laufzeitbetriebs des Systems beinhalten. Das Verfahren kann Bestimmen, basierend auf dem Analysieren des Signals, durch die Hardwareüberwachungsvorrichtung und während des Laufzeitbetriebs, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde, beinhalten. Das Verfahren kann Ausgeben, durch die Hardwareüberwachungsvorrichtung, von Informationen, die angeben, dass die Anforderung verletzt wurde, beinhalten. In some implementations, a method may include receiving information identifying a request for a system by a hardware monitoring device. The request may be associated with operation of the system during runtime operation of the system in a designated operating environment. The request may be translated from temporal logic or a regular time expression to code implemented on the hardware monitoring device. The method may include monitoring, by the hardware monitoring device, a signal from the system during runtime operation of the system. The method may include analyzing, by the hardware monitoring device, the signal using the request during runtime operation of the system. The method may include determining, based on analyzing the signal by the hardware monitoring device and during runtime operation, that the request was violated during runtime operation of the system. The method may include outputting, by the hardware monitoring device, information indicating that the request has been violated.

KURZE BESCHREIBUNG DER ZEICHNUNGEN BRIEF DESCRIPTION OF THE DRAWINGS

1 ist ein Diagramm einer Übersicht einer vorliegend beschriebenen beispielhaften Implementierung; 1 FIG. 12 is a diagram of an overview of an example implementation described herein; FIG.

2 ist ein Diagramm einer beispielhaften Umgebung, in der vorliegend beschriebene Systeme und/oder Verfahren implementiert sein können; 2 FIG. 10 is a diagram of an exemplary environment in which systems and / or methods described herein may be implemented; FIG.

3 ist ein Diagramm von beispielhaften Komponenten einer in 2 dargestellten Laufzeitüberwachungsvorrichtung; 3 is a diagram of exemplary components of an in 2 illustrated transit time monitoring device;

4 ist ein Diagramm von beispielhaften Komponenten einer oder mehrerer Einrichtungen von 2; 4 FIG. 12 is a diagram of example components of one or more devices of FIG 2 ;

5 ist ein Flussdiagramm eines beispielhaften Prozesses zum Implementieren einer Anforderungen-Laufzeitüberwachungsvorrichtung; und 5 FIG. 10 is a flowchart of an example process for implementing a request runtime monitor; FIG. and

6 ist ein Diagramm einer beispielhaften Implementierung bezüglich des in 5 dargestellten beispielhaften Prozesses. 6 FIG. 12 is a diagram of an exemplary implementation with respect to FIG 5 illustrated exemplary process.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Die folgende ausführliche Beschreibung von beispielhaften Implementierungen bezieht sich auf die begleitenden Zeichnungen. Die gleichen Bezugsnummern können in unterschiedlichen Zeichnungen die gleichen oder ähnliche Elemente identifizieren.The following detailed description of exemplary implementations refers to the accompanying drawings. The same reference numbers may identify the same or similar elements in different drawings.

Eine Feststellung und/oder Detektion einer Erfüllung oder Verletzung einer Anforderung eines Systems kann über eine Simulation und/oder Labormessungen an einer oder mehreren Konstruktionsstufen ausgeführt werden, wie etwa eine Konstruktionsstufe, die mit einem Kategorie-2-Lieferanten, einem Kategorie-1-Lieferanten und/oder einem Originalhersteller (OEM) assoziiert ist. Wenn ein Simulationsansatz verwendet wird, kann ein Modell des Systems idealisiert und/oder hoch detailliert sein, was sich auf die Leistung der Simulation auswirken kann und in einen Fehler, der mit dem Überwachen der Anforderung assoziiert ist, resultieren kann. Ähnliche Fehler können auftreten, wenn ein Labormessungsansatz verwendet wird. Sobald des Weiteren erachtet wird, dass eine Anforderung verletzt ist, kann eine Kausalitätsanalyse (z.B. eine Ursachenanalyse), die mit dem Identifizieren eines Grundes für die Verletzung assoziiert ist, erhebliche Ressourcen (z.B. Zeit, Aufwand, Verarbeitungsressourcen, Speicherressourcen, Netzwerkressourcen usw.) benötigen. Diese Ansätze können des Weiteren geringe Wiederverwendbarkeit aufweisen und eine unterschiedliche Simulation und/oder eine unterschiedliche Labormessungseinrichtung muss möglicherweise für jedes unterschiedliche System erzeugt werden. Vorliegend beschriebene Implementierungen können eine Laufzeitüberwachungsvorrichtung (manchmal als eine Hardwareüberwachungsvorrichtung bezeichnet) bereitstellen, die in der Lage ist, festzustellen und/oder zu detektieren, ob eine Anforderung eines Systems während der Laufzeit des Systems erfüllt oder verletzt ist. Die Laufzeitüberwachungsvorrichtung kann eine automatische Prüfung und/oder Validierung des Systems ermöglichen und kann eine frühe Integration und/oder Validierung des Systems (z.B. an einem Kategorie-1-Lieferanten, einem OEM usw.) unterstützen. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung eine Kausalitätsanalysekomponente beinhalten, die in der Lage ist, einen Grund für eine Verletzung der Anforderung zu identifizieren und eine Protokolldatei, die mit einer oder mehreren Verletzungen der Anforderung assoziiert ist, zu erzeugen. A determination and / or detection of compliance or violation of a requirement of a system may be performed via simulation and / or laboratory measurements at one or more design stages, such as a design stage associated with a category 2 supplier, a category 1 supplier and / or an original manufacturer (OEM). If a simulation approach is used, a model of the system may be idealized and / or highly detailed, which may impact the performance of the simulation and result in an error associated with monitoring the request. Similar errors can occur when a laboratory measurement approach is used. Further, once a request is deemed violated, a causality analysis (eg, root cause analysis) associated with identifying a cause for the violation may require significant resources (eg, time, effort, processing resources, storage resources, network resources, etc.) , These approaches may also have low reusability, and a different simulation and / or a different laboratory measurement device may need to be generated for each different system. Presently described implementations may provide a runtime monitoring device (sometimes referred to as a hardware monitor) that is capable of detecting and / or detecting whether a request of a system is satisfied or violated during the runtime of the system. The runtime monitoring device may enable automatic testing and / or validation of the system and may support early integration and / or validation of the system (e.g., at a category 1 supplier, an OEM, etc.). In some implementations, the run-time monitoring device may include a causality analysis component capable of identifying a cause for violation of the request and generating a log file associated with one or more violations of the request.

In manchen Fällen kann eine Anforderung eines Systems unter Verwendung natürlicher Sprache geschrieben werden. Um die Anforderung zur Verwendung durch die Laufzeitüberwachungsvorrichtung zu erstellen, kann die Anforderung in natürlicher Sprache unter Verwendung einer zeitbasierten Zwischenrepräsentation, wie etwa eines regulären Ausdrucks (z.B. eines regulären Zeitausdrucks), einer oder mehrerer Arten temporaler Logik (TL) (z.B. metrischer TL (MTL), linearer TL (LTL), Signal-TL (STL) usw.) und/oder dergleichen formalisiert werden. Eine zeitbasierte Zwischenrepräsentation kann eine Syntax zum zeitlichen Repräsentieren einer Anforderung verwenden. Da die Anforderung basierend auf bestimmter und/oder rigoroser Semantik, die mit der TL-Art assoziiert ist, formalisiert wird, können Ambiguitäten der Anforderung verringert und/oder entfernt werden. Die formalisierte Anforderung kann dann synthetisiert und in der Laufzeitüberwachungsvorrichtung implementiert werden. Die Laufzeitüberwachungsvorrichtung kann eine Hardwareplattform mit einer oder mehreren Zieleinrichtungen (z.B. einem feldprogrammierbaren Gate-Array (FPGA)) beinhalten, die Fähigkeiten des Überwachens eines Laufzeitsignals und des Evaluierens der Richtigkeit des Laufzeitsignals gegenüber der synthetisierten Anforderung bereitstellt bzw. bereitstellen. In some cases, a request for a system may be written using natural language. To establish the request for use by the runtime monitoring device, the natural language request may be performed using a time-based intermediate representation, such as a regular expression (eg, a regular time expression), one or more types of temporal logic (TL) (eg, metric TL (MTL ), linear TL (LTL), signal TL (STL), etc.) and / or the like. A time-based intermediate representation may use a syntax for timing a request. Since the request is formalized based on specific and / or rigorous semantics associated with the TL type, ambiguities of the request may be reduced and / or removed. The formalized request can then be synthesized and implemented in the runtime monitoring device. The runtime monitoring device may include a hardware platform having one or more target devices (e.g., a field programmable gate array (FPGA)) that provide capabilities of monitoring a runtime signal and evaluating the accuracy of the runtime signal against the synthesized request.

Auf diese Weise kann das System genauer und während der Laufzeit überwacht werden.In this way, the system can be monitored more accurately and at runtime.

1 ist ein Diagramm einer Übersicht einer vorliegend beschriebenen beispielhaften Implementierung 100. Wie in 1 und durch die Bezugsnummer 110 dargestellt, kann eine Laufzeitüberwachungsvorrichtung Laufzeitanforderungen empfangen, die mit einem Laufzeitsystem (vorliegend manchmal als ein System bezeichnet) assoziiert sind. Die Laufzeitanforderungen können von einer Programmiereinrichtung empfangen werden, die zum Programmieren einer oder mehrerer Komponenten der Laufzeitüberwachungsvorrichtung verwendet wird. Bei manchen Implementierungen können die Anforderungen unter Verwendung natürlicher Sprache ausgedrückt werden und können von der natürlichen Sprache in eine zeitbasierte Zwischenrepräsentation (z.B. basierend auf einer Benutzereingabe und/oder einer Verarbeitung in natürlicher Sprache), wie etwa temporale Logik oder einen regulären Zeitausdruck, übersetzt werden. Die zeitbasierte Zwischenrepräsentation kann zu Hardwarecode übersetzt werden, der in der Laufzeitüberwachungsvorrichtung (z.B. unter Verwendung eines oder mehrerer FPGAs und/oder anderer Arten von Prozessoren) implementiert werden kann. Bei manchen Implementierungen kann eine derartige Übersetzung zu Hardwarecode unter Verwendung der Programmiereinrichtung durchgeführt werden und der Hardwarecode kann zur Laufzeitüberwachungsvorrichtung bereitgestellt werden. Zusätzlich oder alternativ dazu kann eine derartige Übersetzung durch die Laufzeitüberwachungsvorrichtung durchgeführt werden. 1 FIG. 12 is a diagram of an overview of an exemplary implementation described herein 100 , As in 1 and by the reference number 110 As shown, a run-time monitor may receive run-time requests associated with a run-time system (sometimes referred to herein as a system). The runtime requests may be received by a programmer for programming one or more Components of the runtime monitoring device is used. In some implementations, the requirements may be expressed using natural language and may be translated from the natural language into a time-based intermediate representation (eg, based on user input and / or natural language processing), such as temporal logic or a regular time expression. The time-based intermediate representation may be translated to hardware code that may be implemented in the runtime monitoring device (eg, using one or more FPGAs and / or other types of processors). In some implementations, such a translation to hardware code may be performed using the programmer, and the hardware code may be provided to the run-time monitor. Additionally or alternatively, such a translation may be performed by the runtime monitoring device.

Wie durch die Bezugsnummer 120 dargestellt ist, kann die Laufzeitüberwachungsvorrichtung ein oder mehrere Laufzeitsignale vom Laufzeitsystem empfangen. Das Laufzeitsignal bzw. die Laufzeitsignale kann bzw. können empfangen werden, während das Laufzeitsystem in Betrieb ist (z.B. in einer Zielumgebung, wie etwa einem Fahrzeug), und kann bzw. können analoge Signale, digitale Signale, physikalische Signale, Daten, die basierend auf physikalischen Signalen bestimmt werden, und/oder dergleichen beinhalten. Wie durch die Bezugsnummer 130 dargestellt ist, kann die Laufzeitüberwachungsvorrichtung das Eingangssignal bzw. die Eingangssignale unter Verwendung der einen oder der mehreren Laufzeitanforderungen analysieren. Eine derartige Analyse kann während der Laufzeit des Laufzeitsystems in einer Betriebsumgebung (z.B. im Gegensatz zu während der Konstruktionszeit des Laufzeitsystems) durchgeführt werden. Zusätzlich oder alternativ dazu kann die Laufzeitüberwachungsvorrichtung eine Kausalitätsanalyse durchführen, um eine Ursache einer Anforderungsverletzung zu bestimmen. Auf diese Weise können Anforderungsverletzungen, die während der Laufzeit des Laufzeitsystems auftreten, detektiert, gemeldet und/oder gelöst werden.As by the reference number 120 1, the runtime monitoring device may receive one or more runtime signals from the runtime system. The runtime signal (s) may be received while the runtime system is operating (eg, in a target environment such as a vehicle) and may include analog signals, digital signals, physical signals, data based on physical signals are determined, and / or the like. As by the reference number 130 1, the runtime monitoring device may analyze the input signal (s) using the one or more runtime requests. Such an analysis may be performed during runtime of the runtime system in an operating environment (eg, as opposed to during the design time of the runtime system). Additionally or alternatively, the runtime monitoring device may perform a causality analysis to determine a cause of a request violation. In this way, request violations that occur during the runtime of the runtime system can be detected, reported and / or resolved.

Wie durch die Bezugsnummer 140 dargestellt ist, kann die Laufzeitüberwachungsvorrichtung eine Angabe der einen oder der mehreren Laufzeitverletzungen und/oder der einen oder der mehreren Ursachen der einen oder der mehreren Laufzeitverletzungen ausgeben. Bei manchen Implementierungen kann bzw. können die eine oder die mehreren Angaben an eine Benutzereinrichtung bereitgestellt werden, die die Angaben über eine Benutzerschnittstelle ausgeben kann. Zusätzlich oder alternativ dazu kann bzw. können die eine oder die mehreren Angaben an externe Geräte (z.B. Laborgeräte), an eine andere Komponente im Laufzeitsystem, das evaluiert wird, an eine andere Komponente der Laufzeitüberwachungsvorrichtung (z.B. an ein Warnlicht an der Laufzeitüberwachungsvorrichtung) und/oder dergleichen bereitgestellt werden. Eine erste Verletzung kann zum Beispiel angeben, dass ein Signal X1 nicht innerhalb eines durch eine Anforderung angegebenen Schwellenbereichs arbeitet, und eine erste Ursache kann angeben, dass das Signal X1 unter dem Bereich liegt. Zusätzlich oder alternativ dazu kann eine zweite Verletzung angeben, dass ein Signal X3 nicht innerhalb einer Schwellenzeitdauer eines Signals X2 ausgelöst wird, und eine zweite Ursache kann angeben, dass das Signal X3 nach der Schwellenzeitdauer ausgelöst wird. Zusätzlich oder alternativ dazu kann die Laufzeitüberwachungsvorrichtung Maßnahmen zum Steuern des Laufzeitsystems ergreifen, um der Verletzung entgegenzuwirken, wodurch die Systemleistung verbessert wird und Systemfehler minimiert werden.As by the reference number 140 1, the runtime monitoring device may output an indication of the one or more runtime violations and / or the one or more causes of the one or more runtime violations. In some implementations, the one or more indications may be provided to a user device that may output the information via a user interface. Additionally or alternatively, the one or more indications may be sent to external devices (eg, lab devices), to another component in the runtime system that is being evaluated, to another component of the runtime monitoring device (eg, to a warning light on the runtime monitoring device), and / or or the like. For example, a first violation may indicate that a signal X1 is not operating within a threshold range specified by a request, and a first cause may indicate that the signal X1 is below the range. Additionally or alternatively, a second violation may indicate that a signal X3 is not triggered within a threshold period of a signal X2, and a second cause may indicate that the signal X3 is triggered after the threshold time period. Additionally or alternatively, the runtime monitoring device may take measures to control the runtime system to counteract the violation, thereby improving system performance and minimizing system errors.

Durch das Überwachen des Laufzeitsystems während der Laufzeit ist die Laufzeitüberwachungsvorrichtung in der Lage, Anforderungsverletzungen, die während der Laufzeit des Systems auftreten, zu detektieren und/oder zu melden. Da die Anforderungen von natürlicher Sprache zu Hardwarecode (oder einem anderen Code, der in der Lage ist, durch die Laufzeitüberwachungsvorrichtung ausgeführt zu werden) übersetzt werden, ist die Laufzeitüberwachungsvorrichtung möglicherweise in der Lage, eine Anforderungsanalyse schnell durchzuführen, so dass Verletzungen in Echtzeit oder nahezu in Echtzeit gemeldet werden können. Dies ist besonders bei sicherheitskritischen Systemen, wie etwa Fahrzeugsystemen, Gesundheitssystemen usw. hilfreich, bei denen potenziell lebensbedrohende Verletzungen rechtzeitig gemeldet und/oder korrigiert werden können.By monitoring the runtime system during runtime, the runtime monitoring device is able to detect and / or report request violations that occur during runtime of the system. Because the requirements are translated from natural language to hardware code (or other code capable of being executed by the runtime monitoring device), the runtime monitoring device may be able to perform a request analysis quickly such that in real time or near violations can be reported in real time. This is especially useful in safety-critical systems such as vehicle systems, health systems, etc., where potentially life-threatening injuries can be reported and / or corrected in a timely manner.

Wie oben angegeben, ist 1 als ein Beispiel bereitgestellt. Andere Beispiele sind möglich und können sich von dem, was bezüglich 1 beschrieben wurde, unterscheiden.As indicated above 1 as an example. Other examples are possible and may differ from what 1 has been described.

2 ist ein Diagramm einer beispielhaften Umgebung 200, in der vorliegend beschriebene Systeme und/oder Verfahren implementiert sein können. Wie in 2 dargestellt, kann die Umgebung 200 ein Laufzeitsystem 210, eine Laufzeitüberwachungsvorrichtung 220, eine Programmiereinrichtung 230, eine Benutzereinrichtung 240, externe Geräte 250 und/oder ein Netzwerk 260 beinhalten. Die Einrichtungen der Umgebung 200 können über verdrahtete Verbindungen, drahtlose Verbindungen oder eine Kombination von verdrahteten und drahtlosen Verbindungen miteinander verbunden sein. 2 is a diagram of an exemplary environment 200 in which systems and / or methods described herein can be implemented. As in 2 represented, the environment can 200 a runtime system 210 , a runtime monitoring device 220 , a programmer 230 , a user device 240 , external devices 250 and / or a network 260 include. The facilities of the area 200 can be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.

Das Laufzeitsystem 210 kann eine oder mehrere Hardwarekomponenten, ein oder mehrere Softwaremodule und/oder eine oder mehrere Schnittstellen zwischen Komponenten (z.B. zwischen zwei oder mehr Hardwarekomponenten, zwei oder mehr Softwaremodulen oder einer Kombination von Hardwarekomponenten und Softwaremodulen) beinhalten. Als ein Beispiel kann eine Komponente des Laufzeitsystems 210 einen oder mehrere Sensoren, elektronische Steuereinheiten, Sendeempfänger, Prozessoren (z.B. FPGAs, anwendungsspezifische integrierte Schaltungen (ASICs), Mikrocontroller, digitale Signalprozessoren (DSPs), Mikroprozessoren usw.), integrierte Schaltungen, Aktoren und/oder dergleichen beinhalten. Zusätzlich oder alternativ dazu kann eine Schnittstelle des Laufzeitsystems 210 eine CAN-Schnittstelle (Controller Area Network), eine LIN-Schnittstelle (Local Interconnected Network), eine FlexRay-Schnittstelle, eine I2C-Schnittstelle (Inter-Integrated Circuit), eine SENT-Schnittstelle (Single Edge Nibble Transmission), eine SPC-Schnittstelle (Statistical Process Control), eine 1-Draht-Schnittstelle, eine PWM-Schnittstelle (Pulse-Width Modulation), eine SICI (Serial Inspection and Configuration Interface), eine MOST-Schnittstelle (Media Oriented System Transport) oder eine andere Art von Kommunikationsschnittstelle beinhalten. Die Komponenten und/oder Schnittstellen des Laufzeitsystems 210 können während einer Laufzeit fungieren, um Eingangssignale zu empfangen und/oder Ausgangssignale bereitzustellen. The runtime system 210 can be one or more hardware components, one or more Software modules and / or one or more interfaces between components (eg between two or more hardware components, two or more software modules or a combination of hardware components and software modules). As an example, a component of the runtime system 210 include one or more sensors, electronic control units, transceivers, processors (eg, FPGAs, application specific integrated circuits (ASICs), microcontrollers, digital signal processors (DSPs), microprocessors, etc.), integrated circuits, actuators, and / or the like. Additionally or alternatively, an interface of the runtime system 210 a CAN interface (Controller Area Network), a LIN interface (Local Interconnected Network), a FlexRay interface, an I2C interface (Inter-Integrated Circuit), a SENT interface (Single Edge Nibble Transmission), an SPC Statistical Process Control, a 1-wire interface, a Pulse-Width Modulation (PWM) interface, a Serial Inspection and Configuration Interface (SICI), a Media Oriented System Transport (MOST) interface, or some other type of Include communication interface. The components and / or interfaces of the runtime system 210 may function during a runtime to receive input signals and / or provide output signals.

Das Laufzeitsystem 210 kann zum Beispiel ein Automobilsystem, ein Halbleitersystem, ein elektronisches System, ein Gesundheitssystem, ein Avioniksystem, ein Fahrzeugsystem, ein Eisenbahnsystem und/oder dergleichen beinhalten. Die Sicherheit kann bei derartigen Systemen kritisch sein und die Laufzeitüberwachungsvorrichtung 220 kann derartige Systeme überwachen, um Fehler in Echtzeit oder nahezu in Echtzeit (d.h. wenn der Fehler auftritt) zu detektieren.The runtime system 210 For example, it may include an automotive system, a semiconductor system, an electronic system, a healthcare system, an avionics system, a vehicle system, a railroad system, and / or the like. Safety may be critical in such systems and the runtime monitoring device 220 It may monitor such systems to detect faults in real time or near real time (ie, when the fault occurs).

Die Laufzeitüberwachungsvorrichtung 220 beinhaltet eine oder mehrere Komponenten zum Überwachen des Laufzeitsystems 210 und/oder zum Detektieren von Anforderungsverletzungen während eines Laufzeitbetriebs des Laufzeitsystems 210. Beispielsweise kann die Laufzeitüberwachungsvorrichtung 220 eine Anforderungen-Laufzeitüberwachungskomponente und/oder eine Kausalitätsanalysekomponente beinhalten, wie im Folgenden in Verbindung mit 3 beschrieben ist. Die Signale des Laufzeitsystems 210 können durch die Laufzeitüberwachungsvorrichtung 220 während eines Laufzeitbetriebs des Laufzeitsystems 210 in einer vorgesehenen Betriebsumgebung des Laufzeitsystems 210 (z.B. während des Betriebs eines Sensors eines Fahrzeugs, wenn das Fahrzeug durch einen Fahrer betrieben wird) überwacht werden. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 ein unabhängiges Laufzeitsystem 210 überwachen, das eine einzelne Hardwarekomponente beinhaltet. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 ein verteiltes Laufzeitsystem 210 überwachen, das mehrere Hardwarekomponenten beinhaltet. The runtime monitoring device 220 includes one or more components for monitoring the runtime system 210 and / or for detecting request violations during a runtime operation of the runtime system 210 , For example, the runtime monitoring device 220 include a requirements runtime monitoring component and / or a causality analysis component, as described below in connection with 3 is described. The signals of the runtime system 210 can by the runtime monitoring device 220 during runtime operation of the runtime system 210 in a designated operating environment of the runtime system 210 (eg, during operation of a sensor of a vehicle when the vehicle is operated by a driver). In some implementations, the runtime monitoring device may 220 an independent runtime system 210 monitor, which includes a single hardware component. In some implementations, the runtime monitoring device may 220 a distributed runtime system 210 monitor, which contains several hardware components.

Bei manchen Implementierungen können das Laufzeitsystem 210 und die Laufzeitüberwachungsvorrichtung 220 in derselben Hardware integriert sein, so dass eine Verarbeitungsgeschwindigkeit des Überwachens des Laufzeitsystems 210 erhöht wird. Zusätzlich oder alternativ dazu können mehrere Laufzeitüberwachungsvorrichtungen 220 niedriger Stufe unterschiedliche Komponenten des Laufzeitsystems 210 überwachen. Bei manchen Implementierungen kann bzw. können eine oder mehrere Laufzeitüberwachungsvorrichtungen 220 hoher Stufe die Laufzeitüberwachungsvorrichtungen 220 niedriger Stufe überwachen, um mehrere Eingaben für eine Analyse zu erfassen. Dies kann als verteiltes Überwachen bezeichnet werden. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 in einem FPGA und einer oder mehreren analogen Frontend-Schaltungen (z.B. einem oder mehreren Analog-Digital-Umsetzern (ADUs)) implementiert sein, die in der Lage sind, ein oder mehrere Laufzeitsignale vom Laufzeitsystem 210 abzutasten und/oder zu puffern. Zusätzlich oder alternativ dazu kann die Laufzeitüberwachungsvorrichtung 220 in einem eingebetteten System implementiert sein, das einen oder mehrere Prozessoren (z.B. einen oder mehrere Mikrocontroller, ASICs, Mikroprozessoren und/oder dergleichen) und/oder eine oder mehrere Peripherieeinrichtungen beinhaltet. In some implementations, the runtime system may be 210 and the runtime monitoring device 220 be integrated in the same hardware, so that a processing speed of monitoring the runtime system 210 is increased. Additionally or alternatively, multiple runtime monitoring devices may be provided 220 low level different components of the runtime system 210 monitor. In some implementations, one or more runtime monitoring devices may or may not 220 high-level runtime monitors 220 Monitor low level to capture multiple inputs for analysis. This can be referred to as distributed monitoring. In some implementations, the runtime monitoring device may 220 in one FPGA and one or more analog front-end circuits (eg, one or more analog-to-digital converters (ADCs)) capable of having one or more run-time signals from the run-time system 210 to sample and / or to buffer. Additionally or alternatively, the runtime monitoring device 220 be implemented in an embedded system that includes one or more processors (eg, one or more microcontrollers, ASICs, microprocessors, and / or the like) and / or one or more peripheral devices.

Die Programmiereinrichtung 230 beinhaltet eine oder mehrere Recheneinrichtungen, die in der Lage ist bzw. sind, Anforderungsinformationen und/oder Anforderungscode an die Laufzeitüberwachungsvorrichtung 220 bereitzustellen. Beispielsweise kann die Programmiereinrichtung 230 einen Laptop-Computer, einen Desktop-Computer, einen Server, einen Tablet-Computer, ein Mobiltelefon und/oder dergleichen beinhalten. Bei manchen Implementierungen können die Anforderungen in natürlicher Sprache unter Verwendung der Programmiereinrichtung 230 zu einer zeitbasierten Zwischenrepräsentation (z.B. temporaler Logik, einem regulären Zeitausdruck usw.) übersetzt werden. Zusätzlich oder alternativ dazu kann die zeitbasierte Zwischenrepräsentation unter Verwendung der Programmiereinrichtung 230 zu Code übersetzt werden. Die Programmiereinrichtung 230 kann den Code an die Laufzeitüberwachungsvorrichtung 220 bereitstellen, um eine oder mehrere Komponenten (z.B. einen oder mehrere Prozessoren) der Laufzeitüberwachungsvorrichtung 220 mit dem Code zum Analysieren der Anforderungen zu programmieren. Auf diese Weise kann die Laufzeitüberwachungsvorrichtung 220 in der Lage sein, unterschiedliche Arten von Laufzeitsystemen 210 zu überwachen, und kann programmiert werden, eine bestimmte Art von Laufzeitsystem 210 unter Verwendung des Codes zu bedienen, wodurch die Kosten durch die Entwicklung einer einzelnen programmierbaren Laufzeitüberwachungsvorrichtung anstelle spezifischer Laufzeitüberwachungsvorrichtungen zum Bedienen spezifischer Arten von Laufzeitsystem verringert werden. Zusätzlich oder alternativ dazu kann die Programmiereinrichtung 230 die Anforderungen in natürlicher Sprache und/oder die zeitbasierte Zwischenrepräsentation an die Laufzeitüberwachungsvorrichtung 220 bereitstellen und die Laufzeitüberwachungsvorrichtung 220 kann diese Informationen zu Code übersetzen.The programmer 230 includes one or more computing devices capable of requesting information and / or request code to the runtime monitoring device 220 provide. For example, the programmer 230 a laptop computer, a desktop computer, a server, a tablet computer, a mobile phone and / or the like. In some implementations, the natural language requirements may be using the programmer 230 to a time-based intermediate representation (eg, temporal logic, a regular time expression, etc.). Additionally or alternatively, the time-based intermediate representation may be using the programmer 230 to be translated to code. The programmer 230 can send the code to the runtime monitor 220 provide one or more components (eg, one or more processors) of the runtime monitoring device 220 with the code to parse the requirements. In this way, the runtime monitoring device 220 to be able to use different types of Runtime systems 210 to monitor, and can be programmed, a specific type of runtime system 210 using the code, thereby reducing the cost by developing a single programmable runtime monitor rather than specific runtime monitors for operating specific types of runtime system. Additionally or alternatively, the programmer 230 the natural language requirements and / or the time based intermediate representation to the runtime monitoring device 220 provide and the runtime monitoring device 220 can translate this information to code.

Die Benutzereinrichtung 240 beinhaltet eine oder mehrere Recheneinrichtungen, die in der Lage ist bzw. sind, mit der Laufzeitüberwachungsvorrichtung 220 zu kommunizieren. Beispielsweise kann die Benutzereinrichtung 240 einen Laptop-Computer, einen Desktop-Computer, einen Server, einen Tablet- Computer, ein Mobiltelefon und/oder dergleichen beinhalten. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 eine Ausgabe von Analysierungsanforderungen des Laufzeitsystems 210 während der Laufzeit an die Benutzereinrichtung 240 bereitstellen. Beispielsweise kann die Laufzeitüberwachungsvorrichtung 220 eine Angabe einer oder mehrerer verletzten Anforderungen und/oder einer Ursache einer oder mehrerer Verletzungen bereitstellen. Die Benutzereinrichtung 240 kann eine oder mehrere derartige Angaben zur Anzeige (z.B. über eine Benutzerschnittstelle) oder einer anderen Art von Ausgabekomponente bereitstellen.The user device 240 includes one or more computing devices capable of having the runtime monitoring device 220 to communicate. For example, the user device 240 a laptop computer, a desktop computer, a server, a tablet computer, a mobile phone and / or the like. In some implementations, the runtime monitoring device may 220 an output of analysis requirements of the runtime system 210 during runtime to the user device 240 provide. For example, the runtime monitoring device 220 provide an indication of one or more injured requirements and / or a cause of one or more injuries. The user device 240 may provide one or more such indications for display (eg via a user interface) or other type of output component.

Die externen Geräte 250 beinhalten eine oder mehrere Einrichtungen, die in der Lage ist bzw. sind, mit dem Laufzeitsystem 210 basierend auf Informationen, die von der Laufzeitüberwachungsvorrichtung 220 empfangen werden, zu kommunizieren. Die externen Geräte 250 können zum Beispiel Überwachungsgeräte, die in der Lage sind, das Laufzeitsystem 210 zu überwachen (z.B. ein Oszilloskop und/oder dergleichen), Steuergeräte, die in der Lage sind, das Laufzeitsystem 210 zu steuern (z.B. ein Spannungsversorger, ein Signalgenerator usw.), und/oder dergleichen beinhalten. The external devices 250 include one or more facilities that are capable with the runtime system 210 based on information provided by the runtime monitoring device 220 be received, communicate. The external devices 250 For example, monitoring devices that are capable of the runtime system 210 to monitor (eg, an oscilloscope and / or the like), controllers that are capable of the runtime system 210 to control (eg, a voltage supplier, a signal generator, etc.), and / or the like.

Das Netzwerk 260 beinhaltet ein oder mehrere verdrahtete und/oder drahtlose Netzwerke. Das Netzwerk 260 kann zum Beispiel ein LAN (Local Area Network), ein zellulares Netzwerk, ein PLMN (Public Land Mobile Network), ein drahtloses LAN (z.B. ein WiFi-Netz), ein WAN (Wide Area Network), ein MAN (Metropolitan Area Network), ein Telefonnetz (z.B. das PSTN (Public Switched Telephone Network)), ein privates Netz, ein Ad-hoc-Netz, ein Intranet, das Internet, ein Netzwerk auf faseroptischer Basis, ein Cloud-Computing-Netz und/oder eine Kombination dieser oder anderer Arten von Netzwerken beinhalten.The network 260 includes one or more wired and / or wireless networks. The network 260 For example, a LAN (Local Area Network), a cellular network, a PLMN (Public Land Mobile Network), a wireless LAN (eg, a WiFi network), a WAN (Wide Area Network), a MAN (Metropolitan Area Network) , a telephone network (eg the PSTN (Public Switched Telephone Network)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic based network, a cloud computing network and / or a combination thereof or other types of networks.

Die Anzahl und die Anordnung von den in 2 dargestellten Einrichtungen und Netzwerken sind als ein Beispiel bereitgestellt. In der Praxis kann es zusätzliche Einrichtungen und/oder Netzwerke, weniger Einrichtungen und/oder Netzwerke, unterschiedliche Einrichtungen und/oder Netzwerke oder unterschiedlich angeordnete Einrichtungen und/oder Netzwerke als die in 2 dargestellten geben. Ferner können zwei oder mehr Einrichtungen, die in 2 dargestellt sind, in einer einzelnen Einrichtung implementiert werden oder eine einzelne in 2 dargestellte Einrichtung kann als mehrere verteilte Einrichtungen implementiert werden. Zusätzlich oder alternativ dazu kann ein Satz von Einrichtungen (z.B. eine oder mehrere Einrichtungen) der Umgebung 200 eine oder mehrere Funktionen durchführen, die so beschrieben sind, dass sie durch einen anderen Satz von Einrichtungen der Umgebung 200 durchgeführt werden.The number and arrangement of the in 2 illustrated devices and networks are provided as an example. In practice, there may be additional facilities and / or networks, fewer facilities and / or networks, different facilities and / or networks or differently arranged facilities and / or networks than those in 2 presented. Furthermore, two or more facilities that are in 2 are implemented in a single device or a single in 2 illustrated device may be implemented as a plurality of distributed devices. Additionally or alternatively, a set of devices (eg, one or more devices) of the environment 200 perform one or more functions that are described as passing through another set of facilities in the environment 200 be performed.

3 ist ein Diagramm von beispielhaften Komponenten der Laufzeitüberwachungsvorrichtung 220. Wie in 3 dargestellt, kann die Laufzeitüberwachungsvorrichtung 220 eine Signalabtastungs- und -pufferkomponente 310, eine Anforderungen-Laufzeitüberwachungskomponente 320, einen Fehlerereignislogger 330, eine Kausalitätsanalysekomponente 340, eine Benutzerschnittstellenkomponente 350, eine Parameter-/Konfigurationskomponente 360 und/oder eine Infrastrukturkomponente 370 beinhalten. Bei manchen Implementierungen sind die Signalabtastungs- und -pufferkomponente 310, die Anforderungen-Laufzeitüberwachungskomponente 320, der Fehlerereignislogger 330, die Kausalitätsanalysekomponente 340, die Benutzerschnittstellenkomponente 350, die Parameter-/Konfigurationskomponente 360 und die Infrastrukturkomponente 370 in Hardware (z.B. einem Prozessor, wie etwa einem FPGA, einem ASIC, einem Mikrocontroller usw.), Firmware oder einer Kombination von Hardware und Software implementiert. 3 FIG. 10 is a diagram of exemplary components of the runtime monitoring device. FIG 220 , As in 3 shown, the runtime monitoring device 220 a signal sample and buffer component 310 , a requirements runtime monitoring component 320 , an error event logger 330 , a causality analysis component 340 , a user interface component 350 , a parameter / configuration component 360 and / or an infrastructure component 370 include. In some implementations, the signal sample and buffer component is 310 , the requirements runtime monitoring component 320 , the error event logger 330 , the causality analysis component 340 , the user interface component 350 , the parameter / configuration component 360 and the infrastructure component 370 in hardware (eg, a processor such as an FPGA, an ASIC, a microcontroller, etc.), firmware, or a combination of hardware and software.

Die Signalabtastungs- und -pufferkomponente 310 kann ein oder mehrere Laufzeitsignale (als X1, X2, X3, ..., Xi dargestellt) vom Laufzeitsystem 210 empfangen und kann die Signale zur Verarbeitung durch die Anforderungen-Laufzeitüberwachungskomponente 320 abtasten und/oder puffern. Die Anforderungen-Laufzeitüberwachungskomponente 320 kann die Signale unter Verwendung von Code analysieren, der von einer oder mehreren Anforderungen erzeugt wird, wie vorliegend an anderer Stelle beschrieben ist. Bei manchen Implementierungen kann die Verarbeitungsgeschwindigkeit der Anforderungen-Laufzeitüberwachungskomponente 320 schneller (z.B. zweimal so schnell, dreimal so schnell usw.) als die Rate sein, mit der die Signale durch die Signalabtastungs- und -pufferkomponente 310 abgetastet werden, wodurch eine Echtzeitanalyse der Signale während der Laufzeit ermöglicht wird.The signal sample and buffer component 310 One or more runtime signals (represented as X1, X2, X3, ..., Xi) can be issued by the runtime system 210 receive and receive the signals for processing by the requirements runtime monitoring component 320 scan and / or buffer. The requirements runtime monitoring component 320 may analyze the signals using code generated from one or more requests, as described elsewhere herein. In some implementations, the processing speed of the request runtime monitoring component 320 faster (eg, twice as fast, three times faster, etc.) than the rate at which the signals pass through the Signal sample and buffer component 310 be sampled, allowing a real-time analysis of the signals during runtime.

Wenn die Anforderungen-Laufzeitüberwachungskomponente 320 eine Verletzung einer Anforderung detektiert, kann die Anforderungen-Laufzeitüberwachungskomponente 320 Informationen, die die Verletzung identifizieren, zum Fehlerereignislogger 330 bereitstellen. Der Fehlerereignislogger 330 kann Protokollinformationen speichern, die Laufzeitanforderungsverletzungen identifizieren. Zusätzlich oder alternativ dazu kann der Fehlerereignislogger 330 Informationen bezüglich eines Zustands des Laufzeitsystems 210 protokollieren, bevor der Fehler auftritt (z.B. eine Schwellenzeitdauer, bevor der Fehler auftritt), wenn der Fehler auftritt und/oder nachdem der Fehler auftritt (z.B. eine Schwellenzeitdauer, nachdem der Fehler auftritt). Der Fehlerereignislogger 300 kann derartige Protokollinformationen zur Kausalitätsanalysekomponente 340 bereitstellen, die diese Protokollinformationen zum Identifizieren einer Ursache der Verletzung verwenden kann.If the requirements runtime monitoring component 320 detects a violation of a request, the request runtime monitor component 320 Information identifying the violation is sent to the error event logger 330 provide. The error event logger 330 can store log information that identifies runtime request violations. Additionally or alternatively, the error event logger may 330 Information regarding a state of the runtime system 210 log before the error occurs (eg, a threshold time period before the error occurs), when the error occurs, and / or after the error occurs (eg, a threshold time after the error occurs). The error event logger 300 can such log information for causality analysis component 340 which can use this log information to identify a cause of the violation.

Bei manchen Implementierungen kann bzw. können die Anforderungen-Laufzeitüberwachungskomponente 320 und/oder der Fehlerereignislogger 330 Informationen, die mit der Verletzung assoziiert sind, an die Kausalitätsanalysekomponente 340 bereitstellen. Die Kausalitätsanalysekomponente 340 kann die Informationen analysieren, um eine Ursache der Verletzung zu bestimmen, und kann Informationen, die die Ursache identifizieren, an die Benutzerschnittstellenkomponente 350 bereitstellen. Zusätzlich oder alternativ dazu kann bzw. können die Anforderungen-Laufzeitüberwachungskomponente 320 und/oder der Fehlerereignislogger 330 Informationen, die mit der Verletzung assoziiert sind, an die Benutzerschnittstellenkomponente 350 bereitstellen. Die Benutzerschnittstellenkomponente 350 kann derartige Informationen zur Anzeige (z.B. über eine Anzeigekomponente der Laufzeitüberwachungsvorrichtung 220, falls zutreffend) und/oder an eine Benutzereinrichtung 240 zur Anzeige über eine Benutzerschnittstelle der Benutzereinrichtung 240 bereitstellen. Zusätzlich oder alternativ dazu kann bzw. können die Anforderungen-Laufzeitüberwachungskomponente 320, der Fehlerereignislogger 330 und/oder die Kausalitätsanalysekomponente 340 Informationen, die mit einer Anforderungsverletzung assoziiert sind, an die externen Geräte 250 bereitstellen und die externen Geräte 250 können das Laufzeitsystem 210 auf der Basis derartiger Informationen überwachen und/oder steuern.In some implementations, the requirements runtime monitoring component may or may not 320 and / or the error event logger 330 Information associated with the injury to the causality analysis component 340 provide. The causality analysis component 340 can parse the information to determine a cause of the violation and can provide information identifying the cause to the UI component 350 provide. Additionally or alternatively, the requirements runtime monitoring component may or may not 320 and / or the error event logger 330 Information associated with the violation to the user interface component 350 provide. The user interface component 350 may display such information (eg via a display component of the runtime monitoring device 220 if applicable) and / or to a user device 240 for display via a user interface of the user device 240 provide. Additionally or alternatively, the requirements runtime monitoring component may or may not 320 , the error event logger 330 and / or the causality analysis component 340 Information associated with a request violation to the external devices 250 deploy and the external devices 250 can the runtime system 210 monitor and / or control based on such information.

Die Parameter-/Konfigurationskomponente 360 kann Konfigurationsinformationen zum Konfigurieren (z.B. anfängliches Konfigurieren oder erneutes Konfigurieren) einer oder mehrerer Komponenten der Laufzeitüberwachungsvorrichtung 220 (z.B. von der Benutzereinrichtung 240 und/oder der Programmiereinrichtung 230) empfangen. Die Parameter-/Konfigurationskomponente 360 kann zum Beispiel eine Anforderung in Form natürlicher Sprache, einer zeitbasierten Zwischenrepräsentation (z.B. temporaler Logik, eines regulären Zeitausdrucks usw.) und/oder Code empfangen und/oder verarbeiten und kann die Anforderungen-Laufzeitüberwachungskomponente 320 basierend auf der Anforderung konfigurieren. Zusätzlich oder alternativ dazu kann die Parameter-/Konfigurationskomponente 360 die Signalabtastungs- und -pufferkomponente 310 (z.B. kann sie eine Abtastrate, eine Puffergröße usw. konfigurieren), den Fehlerereignislogger 330 (z.B. mit einer Schwellenzeitdauer zum Bestimmen eines Zustands des Laufzeitsystems 210 vor, während und/oder nach einem Fehler) und/oder die Kausalitätsanalysekomponente 340 (z.B. eine Art und Weise, mit der eine Ursache einer Verletzung bestimmt wird) konfigurieren.The parameter / configuration component 360 may include configuration information for configuring (eg, initially configuring or reconfiguring) one or more components of the runtime monitoring device 220 (eg from the user device 240 and / or the programmer 230 ) received. The parameter / configuration component 360 For example, it may receive and / or process a request in the form of natural language, a time-based intermediate representation (eg, temporal logic, regular time expression, etc.) and / or code, and may include the requirements runtime monitoring component 320 configure based on the request. Additionally or alternatively, the parameter / configuration component 360 the signal sample and buffer component 310 (eg, it can configure a sample rate, buffer size, etc.), the error event logger 330 (eg, with a threshold time to determine a state of the runtime system 210 before, during, and / or after an error) and / or the causality analysis component 340 (for example, a way to determine a cause of an injury).

Die Infrastrukturkomponente 370 beinhaltet eine oder mehrere Komponenten, die andere Komponenten der Laufzeitüberwachungsvorrichtung 220, wie etwa Verarbeitungskomponenten, Speicherkomponenten, Taktgeberkomponenten, Energieversorgungskomponenten und/oder dergleichen unterstützt bzw. unterstützen.The infrastructure component 370 includes one or more components that comprise other components of the runtime monitoring device 220 , such as processing components, memory components, clock components, power supply components, and / or the like.

Die Anzahl und die Anordnung von den in 3 dargestellten Komponenten sind als ein Beispiel bereitgestellt. In der Praxis kann die Laufzeitüberwachungsvorrichtung 220 zusätzliche Komponenten, weniger Komponenten, unterschiedliche Komponenten oder unterschiedlich angeordnete Komponenten als die in 3 dargestellten beinhalten. Zusätzlich oder alternativ dazu kann ein Satz von Komponenten (z.B. eine oder mehrere Komponenten) der Laufzeitüberwachungsvorrichtung 220 eine oder mehrere Funktionen durchführen, die so beschrieben sind, dass sie durch einen anderen Satz von Komponenten der Laufzeitüberwachungsvorrichtung 220 durchgeführt werden.The number and arrangement of the in 3 The illustrated components are provided as an example. In practice, the runtime monitoring device 220 additional components, fewer components, different components or components arranged differently than those in 3 included. Additionally or alternatively, a set of components (eg, one or more components) of the runtime monitoring device 220 perform one or more functions described as being performed by another set of components of the runtime monitoring device 220 be performed.

4 ist ein Diagramm von beispielhaften Komponenten einer Einrichtung 400. Die Einrichtung 400 kann dem Laufzeitsystem 210, der Laufzeitüberwachungsvorrichtung 220 (z.B. einer oder mehreren Komponenten der Laufzeitüberwachungsvorrichtung 220, wie oben in Verbindung mit 3 beschrieben), der Programmiereinrichtung 230, der Benutzereinrichtung 240 und/oder den externen Geräten 250 entsprechen. Bei manchen Implementierungen kann bzw. können das Laufzeitsystem 210, die Laufzeitüberwachungsvorrichtung 220 (z.B. eine oder mehrere Komponenten der Laufzeitüberwachungsvorrichtung 220, wie oben in Verbindung mit 3 beschrieben), die Programmiereinrichtung 230, die Benutzereinrichtung 240 und/oder die externen Geräte 250 eine oder mehrere Einrichtungen 400 und/oder eine oder mehrere Komponenten der Einrichtung 400 beinhalten. Wie in 4 dargestellt, kann die Einrichtung 400 einen Bus 410, einen Prozessor 420, einen Speicher 430, eine Speicherungskomponente 440, eine Eingabekomponente 450, eine Ausgabekomponente 460 und eine Kommunikationsschnittstelle 470 beinhalten. 4 FIG. 12 is a diagram of example components of a device. FIG 400 , The device 400 can the runtime system 210 , the runtime monitoring device 220 (Eg one or more components of the runtime monitoring device 220 as above in connection with 3 described), the programmer 230 , the user device 240 and / or the external devices 250 correspond. In some implementations, the runtime system may or may not 210 , the runtime monitoring device 220 (Eg, one or more components of the runtime monitoring device 220 as above in connection with 3 described), the programmer 230 , the user device 240 and / or the external devices 250 one or more facilities 400 and / or one or multiple components of the device 400 include. As in 4 shown, the device can 400 a bus 410 , a processor 420 , a store 430 , a storage component 440 , an input component 450 , an output component 460 and a communication interface 470 include.

Der Bus 410 beinhaltet eine Komponente, die eine Kommunikation zwischen den Komponenten der Einrichtung 400 gestattet. Der Prozessor 420 wird in Hardware, Firmware oder einer Kombination von Hardware und Software implementiert. Der Prozessor 420 ist eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), eine beschleunigte Verarbeitungseinheit (APU), ein Mikroprozessor, ein Mikrocontroller, ein digitaler Signalprozessor (DSP), ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder eine andere Art von Verarbeitungskomponente. Bei manchen Implementierungen beinhaltet der Prozessor 420 einen oder mehrere Prozessoren, der bzw. die in der Lage ist bzw. sind, zum Durchführen einer Funktion programmiert zu werden. Der Speicher 430 beinhaltet einen Direktzugriffsspeicher (RAM), einen Nurlesespeicher (ROM) und/oder eine andere Art einer dynamischen oder statischen Speicherungseinrichtung (z.B. einen Flash-Speicher, einen Magnetspeicher und/oder einen optischen Speicher), die Informationen und/oder Anweisungen zur Verwendung durch den Prozessor 420 speichert.The bus 410 includes a component that facilitates communication between the components of the device 400 allowed. The processor 420 is implemented in hardware, firmware or a combination of hardware and software. The processor 420 is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC) or another type of processing component. In some implementations, the processor includes 420 one or more processors that are capable of being programmed to perform a function. The memory 430 includes random access memory (RAM), read only memory (ROM), and / or another type of dynamic or static storage device (eg, flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions for use by the computer processor 420 stores.

Die Speicherungskomponente 440 speichert Informationen und/oder Software bezüglich des Betriebs und der Verwendung der Einrichtung 400. Die Speicherungskomponente 440 kann zum Beispiel eine Festplatte (z.B. eine Magnetplatte, eine optische Platte, eine magnetisch-optische Platte und/oder eine Halbleiterplatte), eine CD, eine DVD, eine Diskette, eine Kassette, ein magnetisches Band und/oder eine andere Art von nichtflüchtigem computerlesbarem Medium zusammen mit einem entsprechenden Laufwerk beinhalten.The storage component 440 stores information and / or software regarding the operation and use of the facility 400 , The storage component 440 For example, a hard disk (eg, a magnetic disk, an optical disk, a magneto-optical disk, and / or a semiconductor disk), a CD, a DVD, a floppy disk, a cartridge, a magnetic tape, and / or other type of non-transitory computer-readable Medium together with a corresponding drive.

Die Eingabekomponente 450 beinhaltet eine Komponente, die der Einrichtung 400 gestattet, Informationen, wie etwa über eine Benutzereingabe (z.B. eine Touchscreen-Anzeige, eine Tastatur, ein Tastenfeld, eine Maus, eine Taste, einen Schalter und/oder ein Mikrofon), zu empfangen. Zusätzlich oder alternativ dazu kann die Eingabekomponente 450 einen Sensor zum Erfassen von Informationen (z.B. eine GPS-Komponente (Global Positioning System), einen Beschleunigungsmesser, ein Gyroskop und/oder einen Aktor) beinhalten. Die Ausgabekomponente 460 beinhaltet eine Komponente, die Ausgabeinformationen von der Einrichtung 400 bereitstellt (z.B. eine Anzeige, einen Lautsprecher und/oder eine oder mehrere Leuchtdioden (LEDs)).The input component 450 includes a component that the device 400 allows to receive information such as user input (eg, a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and / or a microphone). Additionally or alternatively, the input component 450 a sensor for acquiring information (eg a GPS component (Global Positioning System), an accelerometer, a gyroscope and / or an actuator). The output component 460 includes a component, the output information from the device 400 provides (eg a display, a speaker and / or one or more light-emitting diodes (LEDs)).

Die Kommunikationsschnittstelle 470 beinhaltet eine sendeempfängerartige Komponente (z.B. einen Sendeempfänger und/oder einen getrennten Empfänger und Sender), die ermöglicht, dass die Einrichtung 400 mit anderen Einrichtungen, wie etwa über eine verdrahtete Verbindung, eine drahtlose Verbindung oder eine Kombination von verdrahteten und drahtlosen Verbindungen, kommuniziert. Die Kommunikationsschnittstelle 470 kann der Einrichtung 400 gestatten, Informationen von einer anderen Einrichtung zu empfangen und/oder Informationen an eine andere Einrichtung bereitzustellen. Die Kommunikationsschnittstelle 470 kann zum Beispiel eine Ethernet-Schnittstelle, eine optische Schnittstelle, eine Koaxialschnittstelle, eine Infrarotschnittstelle, eine Hochfrequenz(HF)-Schnittstelle, eine USB-Schnittstelle (Universal Serial Bus), eine WiFi-Schnittstelle, eine Zellularnetz-Schnittstelle oder dergleichen beinhalten.The communication interface 470 includes a transceiver-like component (eg, a transceiver and / or a separate receiver and transmitter) that allows the device 400 communicates with other devices such as a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface 470 can the facility 400 allow to receive information from another device and / or to provide information to another device. The communication interface 470 For example, it may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a Universal Serial Bus (USB) interface, a WiFi interface, a cellular network interface, or the like.

Die Einrichtung 400 kann einen oder mehrere vorliegend beschriebene Prozesse durchführen. Die Einrichtung 400 kann diese Prozesse als Reaktion darauf durchführen, dass der Prozessor 420 Softwareanweisungen ausführt, die durch ein nichtflüchtiges computerlesbares Medium, wie etwa den Speicher 430 und/oder die Speicherungskomponente 440, gespeichert werden. Ein computerlesbares Medium ist vorliegend als eine nichtflüchtige Speichereinrichtung definiert. Eine Speichereinrichtung beinhaltet Speicherplatz in einer einzelnen physischen Speicherungseinrichtung oder Speicherplatz, der über mehrere physische Speicherungseinrichtungen aufgeteilt ist. The device 400 can perform one or more processes described herein. The device 400 can perform these processes in response to the processor 420 Execute software instructions provided by a non-transitory computer-readable medium, such as the memory 430 and / or the storage component 440 , get saved. A computer readable medium is defined herein as a nonvolatile storage device. A storage device includes storage space in a single physical storage device or storage space that is shared across multiple physical storage devices.

Die Softwareanweisungen können von einem anderen computerlesbaren Medium oder von einer anderen Einrichtung über die Kommunikationsschnittstelle 470 in den Speicher 430 und/oder die Speicherungskomponente 440 gelesen werden. Wenn die Softwareanweisungen, die im Speicher 430 und/oder der Speicherungskomponente 440 gespeichert sind, ausgeführt werden, können diese bewirken, dass der Prozessor 420 einen oder mehrere vorliegend beschriebene Prozesse durchführt. Zusätzlich oder alternativ dazu können die festverdrahteten Schaltkreise anstelle von oder in Kombination mit den Softwareanweisungen verwendet werden, um einen oder mehrere vorliegend beschriebene Prozesse durchzuführen. Somit sind die vorliegend beschriebenen Implementierungen nicht auf irgendeine spezifische Kombination von Hardwareschaltkreisen und Software eingeschränkt.The software instructions may be from another computer-readable medium or from another device via the communication interface 470 in the store 430 and / or the storage component 440 to be read. If the software instructions that are in memory 430 and / or the storage component 440 are stored, these can cause the processor 420 performs one or more processes described herein. Additionally or alternatively, the hardwired circuitry may be used in place of or in combination with the software instructions to perform one or more processes described herein. Thus, the implementations described herein are not limited to any specific combination of hardware circuitry and software.

Die Anzahl und die Anordnung von den in 4 dargestellten Komponenten sind als ein Beispiel bereitgestellt. In der Praxis kann die Einrichtung 400 zusätzliche Komponenten, weniger Komponenten, unterschiedliche Komponenten oder unterschiedlich angeordnete Komponenten als die in 4 dargestellten beinhalten. Zusätzlich oder alternativ dazu kann ein Satz von Komponenten (z.B. eine oder mehrere Komponenten) der Einrichtung 400 eine oder mehrere Funktionen durchführen, die so beschrieben sind, dass sie durch einen anderen Satz von Komponenten der Einrichtung 400 durchgeführt werden.The number and arrangement of the in 4 The illustrated components are provided as an example. In practice, the device can 400 additional components, fewer components, different components or components arranged differently than those in 4 included. Additionally or alternatively, a set of components (eg, one or more components) of the device 400 perform one or more functions that are described as being performed by another set of components of the device 400 be performed.

5 ist ein Flussdiagramm eines beispielhaften Prozesses 500 zum Implementieren einer Anforderungen-Laufzeitüberwachungsvorrichtung. Bei manchen Implementierungen kann bzw. können ein oder mehrere Prozessblöcke von 5 durch die Laufzeitüberwachungsvorrichtung 220 durchgeführt werden. Bei manchen Implementierungen kann bzw. können ein oder mehrere Prozessblöcke von 5 durch eine andere Einrichtung oder eine Gruppe von Einrichtungen durchgeführt werden, die von der Laufzeitüberwachungsvorrichtung 220 getrennt sind oder diese einschließen, wie etwa das Laufzeitsystem 210, die Programmiereinrichtung 230, die Benutzereinrichtung 240 und/oder die externen Geräte 250. 5 is a flowchart of an example process 500 to implement a request runtime monitor. In some implementations, one or more process blocks of 5 by the runtime monitoring device 220 be performed. In some implementations, one or more process blocks of 5 be performed by another device or a group of devices that the runtime monitoring device 220 are separate or include, such as the runtime system 210 , the programmer 230 , the user device 240 and / or the external devices 250 ,

Wie in 5 dargestellt, kann der Prozess 500 Empfangen von Informationen beinhalten, die eine oder mehrere Anforderungen für ein System, die während eines Laufzeitbetriebs des Systems überwacht werden sollen, identifizieren (Block 510). Das Laufzeitsystem 210 kann zum Beispiel mit einer oder mehreren Anforderungen bezüglich des Betriebs des Laufzeitsystems 210 während eines Laufzeitbetriebs in einer vorgesehenen Umgebung des Laufzeitsystems 210 assoziiert sein. Eine Anforderung kann sich zum Beispiel auf eine oder mehrere Hardwarekomponenten des Laufzeitsystems 210, ein oder mehrere Softwaremodule des Laufzeitsystems 210 und/oder eine oder mehrere Schnittstellen des Laufzeitsystems 210 beziehen. As in 5 represented, the process can 500 Include receiving information that identifies one or more requests for a system to be monitored during run-time operation of the system (Block 510 ). The runtime system 210 For example, with one or more requirements regarding the operation of the runtime system 210 during runtime operation in a designated environment of the runtime system 210 be associated. For example, a request may relate to one or more hardware components of the runtime system 210 , one or more software modules of the runtime system 210 and / or one or more interfaces of the runtime system 210 Respectively.

Bei manchen Implementierungen kann eine Anforderung unter Verwendung natürlicher Sprache (z.B. in die Programmiereinrichtung 230 und/oder die Laufzeitüberwachungsvorrichtung 220) eingegeben werden und kann zu einer Syntax einer zeitbasierten Zwischenrepräsentation (z.B. einer Syntax temporaler Logik, einem regulären Zeitausdruck usw.) übersetzt werden. Bei manchen Implementierungen kann die zeitbasierte Zwischenrepräsentation durch einen Benutzer eingegeben werden. Zusätzlich oder alternativ dazu kann die zeitbasierte Zwischenrepräsentation von Anforderungen in natürlicher Sprache unter Verwendung von Verarbeitung in natürlicher Sprache abgeleitet werden. Die zeitbasierte Zwischenrepräsentation kann zu Code übersetzt werden, wie etwa HDL-Code (Hardware Description Language), RTL-Code (Register Transfer Level), VHSIC-VHDL-Code (Very High Speed Integrated Circuit – Hardware Description Language), Verilog-Code, C-Code, C++-Code, SystemC-Code und/oder dergleichen.In some implementations, a request may be made using natural language (eg, the programmer 230 and / or the transit time monitoring device 220 ) and can be translated into a syntax of a time-based intermediate representation (eg, a syntax of temporal logic, a regular time expression, etc.). In some implementations, the time-based intermediate representation may be entered by a user. Additionally or alternatively, the time-based intermediate representation of natural language requirements may be derived using natural language processing. The time-based intermediate representation may be translated into code, such as Hardware Description Language (HDL) code, Register Transfer Level (RTL) code, Very High Speed Integrated Circuit (VHSIC) VHDL code, Verilog code, C code, C ++ code, SystemC code and / or the like.

Eine zeitbasierte Zwischenrepräsentation (z.B. temporale Logik, ein regulärer Zeitausdruck usw.) kann einen zukünftigen Operator, der mit einem zukünftigen Ereignis assoziiert ist, und einen früheren Operator, der mit einem früheren Ereignis assoziiert ist, beinhalten. Bei manchen Implementierungen kann die Formel in eine Formel, die nur frühere Operatoren enthält, umgewandelt werden, wenn eine zeitbasierte Zwischenrepräsentation (z.B. temporale Logikformel, ein regulärer Zeitausdruck usw.) einen oder mehrere zukünftige Operatoren beinhaltet. Eine derartige Umwandlung kann der Laufzeitüberwachungsvorrichtung 220 gestatten, Anforderungen zu analysieren (die Laufzeitüberwachungsvorrichtung 220 ist z.B. möglicherweise nicht in der Lage, ein endloses zukünftiges Ereignis vorherzusagen, da Hardware normalerweise eingeschränkte Berechnungs- und Speicherressourcen aufweist).A time-based intermediate representation (eg, temporal logic, a regular time expression, etc.) may include a future operator associated with a future event and a previous operator associated with a previous event. In some implementations, the formula may be converted to a formula containing only previous operators if a time-based intermediate representation (eg, a temporal logic formula, a regular time expression, etc.) includes one or more future operators. Such a conversion may be the runtime monitoring device 220 allow to analyze requirements (the runtime monitoring device 220 For example, it may not be able to predict an endless future event because hardware usually has limited computation and memory resources.)

Bei manchen Implementierungen kann eine Anforderung eine Anforderung für einen Betriebsbereich eines Signals beinhalten (das Signal X1 soll z.B. innerhalb einer Parameterschwelle arbeiten). Zusätzlich oder alternativ dazu kann eine Anforderung eine abhängigkeitsbasierte Anforderung beinhalten (wenn z.B. X2 ausgelöst wird, soll X3 innerhalb der nächsten Y Taktzyklen ausgelöst werden). Zusätzlich oder alternativ dazu kann eine Anforderung eine zeitbasierte Anforderung beinhalten (falls z.B. eine Anfrage auftritt, muss eine Bestätigung nicht früher als die nächsten X Taktzyklen und nicht später als Y Taktzyklen detektiert werden).In some implementations, a request may include a request for an operating range of a signal (for example, signal X1 should operate within a parameter threshold). Additionally or alternatively, a request may include a dependency-based request (eg, when X2 is triggered, X3 is to be triggered within the next Y clock cycles). Additionally or alternatively, a request may include a time-based request (for example, if a request occurs, an acknowledgment need not be detected earlier than the next X clock cycles and not later than Y clock cycles).

Bei manchen Implementierungen kann eine Anforderung eine Anforderung für eine elektrische Schnittstelle beinhalten, wie etwa eine Anforderung, dass eine Spannungsabfallzeit innerhalb eines Schwellenzeitraums liegt (z.B. soll die Abfallzeit von V1 zu V2 t1 Mikrosekunden betragen), eine Anforderung, dass eine Spanungsanstiegszeit innerhalb eines Schwellenzeitraums liegt (z.B. soll die Anstiegszeit von V2 zu V1 t2 Mikrosekunden betragen), eine Anforderung für eine Signalstabilisierungszeit (z.B. soll die Signalstabilisierungszeit unter der niedrigen Schwelle V1 oder über der hohen Schwelle V2 minimal t3 Mikrosekunden betragen) und/oder dergleichen.In some implementations, a request may include a request for an electrical interface, such as a request that a voltage fall time be within a threshold period (eg, the fall time from V1 to V2 is t1 microseconds), a request that a voltage rise time be within a threshold period (eg, the rise time from V2 to V1 should be t2 microseconds), a signal stabilization time request (eg, the signal stabilization time below the low threshold V1 or above the high threshold V2 should be at least t3 microseconds) and / or the like.

Zusätzlich oder alternativ dazu kann eine Anforderung eine Anforderung für eine Übertragungseigenschaft eines Synchronisationsimpulses beinhalten, wie etwa eine Anforderung für eine Zeitdauer eines Synchronisationsimpulses (z.B. soll der Synchronisationsimpuls eine nominale Periode von X Taktzyklen aufweisen), eine Anforderung für eine Art und Weise, mit der Taktschritte eines Synchronisationsimpulses getrieben werden sollen (z.B. sollen X Taktzyklen des Synchronisationsimpulses niedrig getrieben werden, alle verbleibenden Taktzyklen des Kalibrations-/Synchronisationsimpulses sollen hoch getrieben werden usw.) und/oder dergleichen.Additionally or alternatively, a request may include a request for a transmission property of a synchronization pulse, such as a request for a duration of a sync pulse (eg, the sync pulse should have a nominal period of X clock cycles), a request for a manner with the clock steps a synchronization pulse to be driven (for example, X clock cycles of the synchronization pulse to be driven low, all remaining clock cycles of Calibration / synchronization pulses should be driven high, etc.) and / or the like.

Zusätzlich oder alternativ dazu kann eine Anforderung eine Anforderung für eine Übertragungseigenschaft eines Nibble-Impulses (ein Nibble kann sich z.B. auf eine Nachricht mit einer bestimmten Menge an Bits, wie etwa vier Bit, beziehen) beinhalten, wie etwa eine Anforderung für eine Art und Weise, mit der Taktzyklen eines Nibble-Impulses getrieben werden sollen (z.B. sollen X Taktzyklen des Nibble-Impulses niedrig getrieben werden, alle verbleibenden Taktzyklen des Nibble-Impulses sollen hoch getrieben werden usw.), eine Anforderung für eine Dauer einer Impulsperiode (z.B. soll die minimale Impulsperiode des Nibble-Impulses X Taktzyklen betragen, die maximale Impulsperiode des Nibble-Impulses soll Y Taktzyklen betragen usw.) und/oder dergleichen.Additionally or alternatively, a request may include a request for a transmit property of a nibble pulse (eg, a nibble may refer to a message with a certain amount of bits, such as four bits), such as a request for one way to drive the clock cycles of a nibble pulse (eg, X clock cycles of the nibble pulse should be driven low, all remaining clock cycles of the nibble pulse should be driven high, etc.), a request for a duration of one pulse period (eg minimum pulse period of the nibble pulse X clock cycles, the maximum pulse period of the nibble pulse should be Y clock cycles, etc.) and / or the like.

Bei manchen Implementierungen kann bzw. können eine oder mehrere Hardwarekomponenten der Laufzeitüberwachungsvorrichtung 220 programmiert sein, das Laufzeitsystem 210 basierend auf einer Anforderung zu analysieren (z.B. durch Implementieren von Code auf der Laufzeitüberwachungsvorrichtung 220). Auf diese Weise kann eine allgemeine Laufzeitüberwachungsvorrichtung 220, die in der Lage ist, eine Vielzahl von Laufzeitsystemen 210 zu überwachen, programmiert sein, eine spezifische Art von Laufzeitsystem 210 zu überwachen, wodurch die Kosten durch die Entwicklung einer einzelnen programmierbaren Laufzeitüberwachungsvorrichtung anstelle spezifischer Laufzeitüberwachungsvorrichtungen zum Bedienen spezifischer Arten von Laufzeitsystemen verringert werden. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 das Laufzeitsystem 210 und/oder eine Art des Laufzeitsystems 210 (z.B. ein Automobilsystem, ein Gesundheitssystem, ein Avioniksystem, ein Sicherheitssystem usw.) identifizieren und kann die Laufzeitüberwachungsvorrichtung 220 basierend auf dem Laufzeitsystem 210 und/oder der Art des Laufzeitsystems 210 programmieren. Die gleiche Anforderung kann zum Beispiel unterschiedlich implementiert werden, um unterschiedliche Laufzeitsysteme 210 (z.B. unter Verwendung unterschiedlichen Codes) zu analysieren. In diesem Fall kann die Laufzeitüberwachungsvorrichtung 220 den Code, der für die Anforderung implementiert werden soll, basierend auf dem Laufzeitsystem 210 und/oder der Art des Laufzeitsystems 210 bestimmen und kann den bestimmten Code implementieren.In some implementations, one or more hardware components of the runtime monitoring device may 220 be programmed, the runtime system 210 based on a request to analyze (eg by implementing code on the runtime monitoring device 220 ). In this way, a general runtime monitoring device 220 that is capable of a variety of runtime systems 210 to be monitored, programmed, a specific type of runtime system 210 thereby reducing the cost by developing a single programmable runtime monitoring device instead of specific runtime monitoring devices to service specific types of runtime systems. In some implementations, the runtime monitoring device may 220 the runtime system 210 and / or a type of runtime system 210 (eg, an automobile system, health care system, avionics system, security system, etc.) and may identify the runtime monitoring device 220 based on the runtime system 210 and / or the type of runtime system 210 program. For example, the same request may be implemented differently to different runtime systems 210 (eg using different code) to analyze. In this case, the runtime monitoring device 220 the code to be implemented for the request based on the runtime system 210 and / or the type of runtime system 210 determine and can implement the particular code.

Wie ferner in 5 dargestellt ist, kann der Prozess 500 Empfangen eines oder mehrerer Signale vom System während des Laufzeitbetriebs des Systems (Block 520), Analysieren des einen oder der mehreren Signale während des Laufzeitbetriebs des Systems unter Verwendung der einen oder der mehreren Anforderungen (Block 530) und Bestimmen während des Laufzeitbetriebs des Systems, ob eine Anforderung verletzt worden ist (Block 540), beinhalten. Die Laufzeitüberwachungsvorrichtung 220 kann zum Beispiel ein oder mehrere Signale vom Laufzeitsystem 210 während eines Laufzeitbetriebs des Laufzeitsystems 210 empfangen und das eine oder die mehreren Signale gemäß der einen oder der mehreren Anforderungen analysieren. Ein Signal kann zum Beispiel ein analoges Signal (z.B. eine Spannung, ein elektrisches Signal, ein optisches Signal usw.), ein digitales Signal, eine Datenausgabe und/oder dergleichen beinhalten. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 Dutzende, Hunderte, Tausende, Millionen oder mehr Signale während einer Zeitdauer empfangen und kann in der Lage sein, derartige große Signalmengen zu verarbeiten.As further in 5 is shown, the process can 500 Receive one or more signals from the system during runtime operation of the system (block 520 ), Analyzing the one or more signals during runtime operation of the system using the one or more requests (block 530 ) and determining during runtime operation of the system whether a request has been violated (block 540 ). The runtime monitoring device 220 can, for example, one or more signals from the runtime system 210 during runtime operation of the runtime system 210 receive and analyze the one or more signals according to the one or more requests. For example, a signal may include an analog signal (eg, a voltage, an electrical signal, an optical signal, etc.), a digital signal, a data output, and / or the like. In some implementations, the runtime monitoring device may 220 Receive tens, hundreds, thousands, millions or more of signals over a period of time and may be able to process such large amounts of signals.

Die Laufzeitüberwachungsvorrichtung 220 kann den Code, der aus den Anforderungen übersetzt wird, verwenden, um das eine bzw. die mehreren Signale zu analysieren und zu bestimmen, ob eine Anforderung verletzt wird. Die Laufzeitüberwachungsvorrichtung 220 kann zum Beispiel das eine bzw. die mehreren Signale mit einem oder mehreren Schwellenwerten, die basierend auf der einen bzw. den mehreren Anforderungen bestimmt werden, vergleichen, kann Differenzen zwischen Signalen mit einem oder mehreren Schwellenwerten, die basierend auf der einen oder den mehreren Anforderungen bestimmt werden, vergleichen, kann Perioden zwischen Signale mit einem oder mehreren Schwellenwerten, die basierend auf der einen oder den mehreren Anforderungen bestimmt werden, vergleichen und/oder dergleichen. Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 eine Verarbeitungsgeschwindigkeit aufweisen, die schneller als die Rate ist, mit der Signale vom Laufzeitsystem 210 empfangen und/oder abgetastet werden, so dass die Laufzeitüberwachungsvorrichtung 220 das eine oder die mehreren Signale in Echtzeit analysieren kann, um zu bestimmen, ob eine Anforderung während der Laufzeit des Laufzeitsystems 210 verletzt wird.The runtime monitoring device 220 may use the code translated from the requests to analyze the one or more signals and determine whether a request is violated. The runtime monitoring device 220 For example, comparing the one or more signals to one or more thresholds determined based on the one or more requests may include differences between signals having one or more thresholds based on the one or more requests can be determined, compared, and / or the like may compare periods between signals having one or more thresholds determined based on the one or more requests. In some implementations, the runtime monitoring device may 220 have a processing speed faster than the rate with the signals from the runtime system 210 received and / or scanned, so that the runtime monitoring device 220 can analyze the one or more signals in real time to determine if a request is during runtime of the runtime system 210 get hurt.

Wie ferner in 5 dargestellt ist, kann der Prozess 500 Zurückkehren zu Block 520, um weiterhin Signale zu empfangen und zu analysieren, beinhalten, falls eine Anforderung während des Laufzeitbetriebs des Systems nicht verletzt worden ist (Block 540 – NEIN). Die Laufzeitüberwachungsvorrichtung 220 kann zum Beispiel weiterhin Signale vom Laufzeitsystem 210 empfangen und analysieren, bis eine Verletzung detektiert wird.As further in 5 is shown, the process can 500 Return to block 520 in order to continue to receive and analyze signals, if a request has not been violated during run-time operation of the system (block 540 - NO). The runtime monitoring device 220 For example, it can still receive signals from the runtime system 210 receive and analyze until an injury is detected.

Wie ferner in 5 dargestellt ist, kann der Prozess 500 Bestimmen einer Ursache einer oder mehrerer Verletzungen (Block 550) und Ausgeben von Protokollinformationen und/oder eines Signals, die bzw. das eine oder mehrere verletzte Anforderungen und/oder die Ursache der einen oder der mehreren Verletzungen angibt bzw. angeben (Block 560), beinhalten, falls eine Anforderung während des Laufzeitbetriebs des Systems verletzt worden ist (Block 540 – JA). Falls die Laufzeitüberwachungsvorrichtung 220 zum Beispiel bestimmt, dass eine Anforderung verletzt worden ist, dann kann die Laufzeitüberwachungsvorrichtung 220 eine Ursache der Verletzung bestimmen. Die Ursache kann einen Grund angeben, warum die Anforderung verletzt wurde. Falls eine Anforderung zum Beispiel angibt, dass eine Bestätigung nicht früher als die nächsten 5 Taktzyklen und nicht später als 20 Taktzyklen detektiert werden muss, kann die Ursache angeben, ob die Bestätigung zu früh (z.B. vor 5 Taktzyklen), zu spät (z.B. nach 20 Taktzyklen) oder gar nicht detektiert wurde.As further in 5 is shown, the process can 500 Determine a cause of one or more injuries (Block 550 ) and outputting protocol information and / or a signal, indicating one or more injured requests and / or the cause of the one or more violations (Block 560 ), if a request has been violated during runtime operation of the system (block 540 - YES). If the runtime monitoring device 220 For example, if it determines that a request has been violated, then the runtime monitoring device may 220 determine a cause of the injury. The cause may indicate a reason why the request was violated. For example, if a request indicates that an acknowledgment need not be detected earlier than the next 5 clock cycles and not later than 20 clock cycles, the cause may indicate whether the acknowledgment is too early (eg, before 5 clock cycles), too late (eg, after 20 Clock cycles) or not detected at all.

Bei manchen Implementierungen kann die Laufzeitüberwachungsvorrichtung 220 Protokollinformationen an eine Benutzereinrichtung zur Anzeige ausgeben. Die Protokollinformationen können eine Angabe der Anforderung, die verletzt wurde, eine Angabe einer Ursache der Verletzung, eine Angabe, wann die Anforderung verletzt wurde, eine Angabe eines Zustands des Laufzeitsystems 210 vor, während und/oder nach der Verletzung und/oder dergleichen beinhalten. Auf diese Weise kann ein Bediener Korrekturmaßnahmen während der Laufzeit des Laufzeitsystems 210 ergreifen.In some implementations, the runtime monitoring device may 220 Output log information to a user device for display. The protocol information may include an indication of the request that was violated, an indication of a cause of the violation, an indication of when the request was violated, an indication of a state of the runtime system 210 before, during and / or after the injury and / or the like. In this way, an operator can take corrective action during the runtime of the runtime system 210 take.

Zusätzlich oder alternativ dazu kann die Laufzeitüberwachungsvorrichtung 220 eine Anweisung zu den externen Geräten 250 basierend auf der Anforderungsverletzung und/oder der Ursache der Anforderungsverletzung ausgeben. Die externen Geräte 250 können eine zusätzliche Überwachung des Laufzeitsystems 210 basierend auf der Anweisung durchführen. Zusätzlich oder alternativ dazu können die externen Geräte 250 ein oder mehrere Steuersignale zum Steuern des Laufzeitsystems 210 basierend auf der Anweisung (z.B. zum Modifizieren einer Spannung usw.) ausgeben.Additionally or alternatively, the runtime monitoring device 220 an instruction to the external devices 250 based on the request violation and / or the cause of the request violation. The external devices 250 can provide additional monitoring of the runtime system 210 based on the statement. Additionally or alternatively, the external devices 250 one or more control signals for controlling the runtime system 210 output based on the instruction (eg, to modify a voltage, etc.).

Zusätzlich oder alternativ dazu kann die Laufzeitüberwachungsvorrichtung 220 eine Anweisung zum Steuern des Laufzeitsystems 210 (z.B. zum Entgegenwirken der Verletzung) basierend auf der Verletzung und/oder der Ursache ausgeben. Bei manchen Implementierungen kann die Anweisung basierend auf einem Maschinenlernalgorithmus bestimmt werden, der historische Betriebseigenschaften des Laufzeitsystems 210, historische Anweisungen, die dem Laufzeitsystem 210 zur Verfügung gestellt wurden, historische und/oder ähnliche Verletzungen, historische und/oder ähnliche Ursachen usw. analysiert. Derartige Informationen und ein derartiges Maschinenlernen können zum Bestimmen einer Anweisung, die der Verletzung wahrscheinlich entgegenwirkt, verwendet werden. Auf diese Weise kann die Laufzeitüberwachungsvorrichtung 220 einer Anforderungsverletzung während der Laufzeit, die auf dem Laufzeitsystem 210 auftritt, entgegenwirken.Additionally or alternatively, the runtime monitoring device 220 an instruction to control the runtime system 210 (eg to counteract the injury) based on the injury and / or cause. In some implementations, the instruction may be determined based on a machine learning algorithm, the historical operating characteristics of the runtime system 210 , historical instructions, the runtime system 210 historical and / or similar injuries, historical and / or similar causes etc. were analyzed. Such information and machine learning may be used to determine an instruction that is likely to counteract the injury. In this way, the runtime monitoring device 220 a request violation during runtime on the runtime system 210 occurs, counteract.

Obwohl 5 beispielhafte Blöcke des Prozesses 500 darstellt, kann der Prozess 500 bei manchen Implementierungen zusätzliche Blöcke, weniger Blöcke, unterschiedliche Blöcke oder unterschiedlich angeordnete Blöcke als die in 5 abgebildeten beinhalten. Zusätzlich oder alternativ dazu können zwei oder mehr der Blöcke des Prozesses 500 parallel durchgeführt werden.Even though 5 exemplary blocks of the process 500 represents, the process can 500 In some implementations, additional blocks, fewer blocks, different blocks, or differently arranged blocks than those in 5 included. Additionally or alternatively, two or more of the blocks of the process may be 500 be carried out in parallel.

6 ist ein Diagramm einer beispielhaften Implementierung 600 bezüglich des in 6 dargestellten beispielhaften Prozesses 600. 6 stellt ein beispielhaftes verteiltes Überwachungskonzept zum Überwachen von Hardwarekomponenten und Softwaremodulen zur System- und Funktionsüberwachung dar. 6 is a diagram of an example implementation 600 regarding the in 6 illustrated exemplary process 600 , 6 illustrates an exemplary distributed monitoring concept for monitoring hardware components and software modules for system and function monitoring.

Wie in 6 dargestellt, kann ein elektronisches System 610 (z.B. das Laufzeitsystem 210) eine oder mehrere Komponenten beinhalten, wie etwa einen Sensor, einen Mikrocontroller, ein erstes Peripheriegerät, ein zweites Peripheriegerät und einen Aktor. Zwei oder mehr dieser Komponenten können durch Schnittstellen verbunden sein. Wie durch die Bezugsnummer 620 dargestellt ist, können mehrere Laufzeitüberwachungsvorrichtungen bei einer Schicht niedriger Stufe zum Überwachen der Komponenten und/oder der Schnittstellen verwendet werden, wie etwa eine Laufzeitüberwachungsvorrichtung zum Überwachen des Sensors, eine Laufzeitüberwachungsvorrichtung zum Überwachen des Mikrocontrollers, eine Laufzeitüberwachungsvorrichtung zum Überwachen der Peripheriegeräte, eine Laufzeitüberwachungsvorrichtung zum Überwachen des Aktors und eine Laufzeitüberwachungsvorrichtung zum Überwachen der Schnittstellen. Wie durch die Bezugsnummer 630 dargestellt ist, kann eine andere Laufzeitüberwachungsvorrichtung bei einer Schicht hoher Stufe zum Überwachen von Ausgaben mehrerer Laufzeitüberwachungsvorrichtungen bei einer Schicht niedriger Stufe verwendet werden. Auf diese Weise können viele Arten von Laufzeitanforderungen überwacht werden, wodurch die Systemleistung und die Sicherheit verbessert werden.As in 6 represented, can be an electronic system 610 (eg the runtime system 210 ) include one or more components, such as a sensor, a microcontroller, a first peripheral device, a second peripheral device, and an actuator. Two or more of these components may be connected by interfaces. As by the reference number 620 For example, a plurality of runtime monitoring devices may be used at a low level layer to monitor the components and / or interfaces, such as a runtime monitor to monitor the sensor, a runtime monitor to monitor the microcontroller, a runtime monitor to monitor the peripherals, a runtime monitor to monitor of the actuator and a runtime monitoring device for monitoring the interfaces. As by the reference number 630 2, another runtime monitor may be used in a high-level layer to monitor outputs of multiple run-time monitors at a low-level layer. In this way, many types of runtime requests can be monitored, improving system performance and security.

Wie oben angegeben, ist 6 als ein Beispiel bereitgestellt. Andere Beispiele sind möglich und können sich von dem, was bezüglich 6 beschrieben wurde, unterscheiden.As indicated above 6 as an example. Other examples are possible and may differ from what 6 has been described.

Vorliegend beschriebene Implementierungen gestatten eine genaue Überwachung eines Laufzeitsystems, wodurch die Systemleistung, der Funktionsbetrieb und die Sicherheit verbessert werden.Implementations described herein allow for accurate monitoring of a runtime system, thereby improving system performance, operation, and security.

Die vorangegangene Offenbarung stellt eine Veranschaulichung und Beschreibung bereit, es ist jedoch nicht beabsichtigt, dass diese vollständig sind oder die Implementierungen auf die präzise offenbarte Form einschränken. Modifikationen und Veränderungen sind angesichts der obigen Offenbarung möglich oder können aus der Praxis der Implementierungen erlangt werden.The foregoing disclosure provides an illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and changes are possible in light of the above disclosure or may be obtained from the practice of implementations.

Wie vorliegend verwendet ist beabsichtigt, dass der Begriff Komponente allgemein als Hardware, Firmware oder eine Kombination von Hardware und Software ausgelegt wird.As used herein, the term component is generally intended to be construed as hardware, firmware, or a combination of hardware and software.

Manche Implementierungen werden vorliegend in Verbindung mit Schwellen beschrieben. Wie vorliegend verwendet kann sich Erfüllen einer Schwelle auf einen Wert beziehen, der größer als die Schwelle, mehr als die Schwelle, höher als die Schwelle, größer als oder gleich der Schwelle, kleiner als die Schwelle, weniger als die Schwelle, geringer als die Schwelle, kleiner als oder gleich der Schwelle, gleich der Schwelle usw. ist. Some implementations are described herein in connection with thresholds. As used herein, meeting a threshold may refer to a value that is greater than the threshold, greater than the threshold, greater than the threshold, greater than or equal to the threshold, less than the threshold, less than the threshold, and less than the threshold , less than or equal to the threshold, equal to the threshold, and so on.

Es versteht sich, dass vorliegend beschriebene Systeme und/oder Verfahren in unterschiedlichen Formen von Hardware, Firmware oder einer Kombination von Hardware und Software implementiert werden können. Die tatsächliche spezialisierte Steuerhardware oder der tatsächliche spezialisierte Softwarecode, die bzw. der zum Implementierten dieser Systeme und/oder Verfahren verwendet wird, schränkt die Implementierungen nicht ein. Somit wurde der Betrieb und das Verhalten der Systeme und/oder Verfahren vorliegend ohne Bezug auf spezifischen Softwarecode beschrieben – es versteht sich, dass Software und Hardware so ausgelegt werden können, dass sie die Systeme und/oder Verfahren basierend auf der vorliegenden Beschreibung implementieren.It will be understood that presently described systems and / or methods may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or actual specialized software code used to implement these systems and / or methods does not limit the implementations. Thus, the operation and behavior of the systems and / or methods herein have been described without reference to specific software code - it should be understood that software and hardware may be construed to implement the systems and / or methods based on the present description.

Obwohl bestimmte Kombinationen von Merkmalen in den Ansprüchen vorgetragen und/oder in der Beschreibung offenbart werden, ist nicht beabsichtigt, dass diese Kombinationen die Offenbarung möglicher Implementierungen einschränken. Tatsächlich können viele dieser Merkmale auf Weisen kombiniert werden, die nicht spezifisch in den Ansprüchen vorgetragen und/oder in der Beschreibung offenbart werden. Obwohl jeder im Folgenden aufgeführte abhängige Anspruch direkt nur von einem Anspruch abhängen kann, beinhaltet die Offenbarung möglicher Implementierungen jeden abhängigen Anspruch in Kombination mit jedem anderen Anspruch im Anspruchssatz.Although certain combinations of features are recited in the claims and / or disclosed in the description, it is not intended that these combinations limit the disclosure of possible implementations. In fact, many of these features may be combined in ways that are not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim below may directly depend only on one claim, the disclosure of possible implementations includes each dependent claim in combination with each other claim in the claim set.

Kein vorliegend verwendetes Element, keine vorliegend verwendete Handlung oder Anweisung sollte als kritisch oder notwendig ausgelegt werden, es sei denn, dies ist ausdrücklich derartig beschrieben. Es ist außerdem vorgesehen, dass die Artikel „ein“ und „eine“, wie vorliegend verwendet, ein oder mehrere Elemente beinhalten und austauschbar mit „ein oder mehrere“ bzw. „eine oder mehrere“ bzw. „einen oder mehrere“ verwendet werden können. Des Weiteren ist vorgesehen, dass der Begriff „Satz“, wie vorliegend verwendet, ein oder mehrere Elemente (z.B. zusammengehörige Elemente, zusammenhanglose Elemente, eine Kombination von zusammengehörigen und zusammenhanglosen Elementen usw.) beinhaltet und austauschbar mit „ein oder mehrere“ bzw. „eine oder mehrere“ bzw. „einen oder mehrere“ verwendet werden kann. Wenn nur ein Element beabsichtigt ist, wird der Begriff „Eins“ oder ähnliches verwendet. Außerdem ist vorgesehen, dass die Begriffe „hat“, „haben“, „habend“ oder dergleichen, wie vorliegend verwendet, offene Begriffe sind. Des Weiteren ist beabsichtigt, dass der Ausdruck „basierend auf“ „zumindest teilweise basierend auf“ bedeutet, es sei denn, es wird ausdrücklich anderes angegeben.No element used herein, any act or instruction used herein should be construed as critical or necessary unless expressly so described. It is also contemplated that the articles "a" and "an" as used herein may include one or more elements and may be used interchangeably with "one or more" or "one or more" , Furthermore, it is intended that the term "sentence" as used herein includes one or more elements (eg, related elements, disjoint elements, a combination of related and disjointed elements, etc.) and interchangeably with "one or more" or " one or more "or" one or more "can be used. If only one element is intended, the term "one" or the like is used. It is also contemplated that the terms "having," "having," "having," or the like, as used herein, are open-ended terms. Furthermore, it is intended that the term "based on" "be at least partially based on" unless expressly stated otherwise.

Claims (20)

Hardwareüberwachungsvorrichtung, umfassend: eine oder mehrere Hardwarekomponenten, die ausgestaltet sind zum: Empfangen von Informationen, die eine Anforderung für ein System identifizieren, wobei die Anforderung dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung zugeordnet ist; Programmieren der einen oder der mehreren Hardwarekomponenten, so dass das System basierend auf der Anforderung analysiert wird; Empfangen eines Signals von dem System während des Laufzeitbetriebs des Systems in der vorgesehenen Betriebsumgebung; Analysieren des Signals während des Laufzeitbetriebs des Systems basierend auf der Anforderung; Bestimmen, während des Laufzeitbetriebs des Systems basierend auf dem Analysieren des Signals, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde; und Ausgeben von Informationen, die angeben, dass die Anforderung verletzt wurde. A hardware monitoring device, comprising: One or more hardware components designed to: Receiving information that identifies a request for a system wherein the request is associated with the operation of the system during runtime operation of the system in a designated operating environment; Programming the one or more hardware components to analyze the system based on the request; Receiving a signal from the system during runtime operation of the system in the intended operating environment; Analyzing the signal during runtime operation of the system based on the request; Determining, during runtime operation of the system based on analyzing the signal, that the request was violated during runtime operation of the system; and Output information indicating that the request has been violated. Hardwareüberwachungsvorrichtung nach Anspruch 1, wobei die eine oder die mehreren Hardwarekomponenten ferner ausgestaltet sind zum: Identifizieren einer Ursache dafür, dass die Anforderung verletzt wird; und Ausgeben von Informationen, die die Ursache identifizieren. The hardware monitoring device of claim 1, wherein the one or more hardware components are further configured to: Identifying a cause that the request is violated; and Issuing information that identifies the cause. Hardwareüberwachungsvorrichtung nach Anspruch 2, wobei die eine oder die mehreren Hardwarekomponenten Folgendes umfassen: eine Anforderungen-Laufzeitüberwachungskomponente zum Überwachen des Signals und Bestimmen, dass die Anforderung verletzt wurde; und eine Kausalitätsanalysekomponente zum Identifizieren der Ursache. The hardware monitoring device of claim 2, wherein the one or more hardware components include: a request runtime monitor component for monitoring the signal and determining that the request has been violated; and a causality analysis component for identifying the cause. Hardwareüberwachungsvorrichtung nach einem der Ansprüche 1–3, wobei die Anforderung einer Hardwarekomponente des Systems, einem Softwaremodul des Systems oder einer mit zwei oder mehr Komponenten des Systems verknüpften Kommunikationsschnittstelle zugeordnet ist. The hardware monitoring device of claim 1, wherein the request is associated with a hardware component of the system, a software module of the system, or a communication interface associated with two or more components of the system. Hardwareüberwachungsvorrichtung nach einem der Ansprüche 1–4, wobei die Anforderung als Hardwarecode in der Hardwareüberwachungsvorrichtung implementiert ist, wobei der Hardwarecode aus einer temporalen Logiksyntax oder einem regulären Ausdruck übersetzt worden ist. The hardware monitoring device of any of claims 1-4, wherein the request is implemented as a hardware code in the hardware monitoring device, wherein the hardware code has been translated from a temporal logic or regular expression. Hardwareüberwachungsvorrichtung nach Anspruch 5, wobei die temporale Logiksyntax oder der reguläre Ausdruck aus einer Anforderung in natürlicher Sprache übersetzt worden ist.The hardware monitoring device of claim 5, wherein the temporal logic or regular expression has been translated from a natural language request. Hardwareüberwachungsvorrichtung nach Anspruch 1, wobei das System einen Sensor, eine elektronische Steuereinheit und einen Aktor beinhaltet.The hardware monitoring device of claim 1, wherein the system includes a sensor, an electronic control unit, and an actuator. Laufzeitüberwachungsvorrichtung, umfassend: einen Speicher und einen oder mehrere Prozessoren, welche eingerichtet sind zum: Empfangen von Informationen, die eine zeitbasierte Zwischenrepräsentation identifizieren, die eine Anforderung für ein System ausdrückt, wobei die Anforderung dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung zugeordnet ist; Speichern der Anforderung im Speicher als ein Code, der die Anforderung repräsentiert; Empfangen eines Signals vom System während des Laufzeitbetriebs des Systems; Analysieren des Signals während des Laufzeitbetriebs des Systems unter Verwendung der gespeicherten Anforderung; Bestimmen, während des Laufzeitbetriebs des Systems basierend auf dem Analysieren des Signals, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde; und Ausgeben von Informationen, die angeben, dass die Anforderung verletzt wurde. A runtime monitoring device, comprising: a memory and one or more processors, which are set up for: Receiving information that identifies a time-based intermediate representation that expresses a request for a system, wherein the request is associated with the operation of the system during runtime operation of the system in a designated operating environment; Storing the request in memory as a code representing the request; Receiving a signal from the system during runtime operation of the system; Analyzing the signal during runtime operation of the system using the stored request; Determining, during runtime operation of the system based on analyzing the signal, that the request was violated during runtime operation of the system; and Output information indicating that the request has been violated. Laufzeitüberwachungsvorrichtung nach Anspruch 8, wobei das Signal ein analoges Signal ist.A runtime monitoring device according to claim 8, wherein the signal is an analog signal. Laufzeitüberwachungsvorrichtung nach Anspruch 8 oder 9, wobei sich die Anforderung auf eine elektrische Schnittstelle des Systems bezieht.A runtime monitoring device according to claim 8 or 9, wherein the request relates to an electrical interface of the system. Laufzeitüberwachungsvorrichtung nach einem der Ansprüche 8–10, wobei sich die Anforderung auf eine Übertragungseigenschaft des Systems bezieht.A runtime monitoring device according to any one of claims 8-10, wherein the request relates to a transmission characteristic of the system. Laufzeitüberwachungsvorrichtung nach einem der Ansprüche 8–11, wobei die zeitbasierte Zwischenrepräsentation temporale Logik oder ein regulärer Ausdruck ist. A runtime monitoring device according to any one of claims 8-11, wherein the time-based intermediate representation is temporal logic or a regular expression. Laufzeitüberwachungsvorrichtung nach einem der Ansprüche 8–12, wobei die zeitbasierte Zwischenrepräsentation von einer Anforderung in natürlicher Sprache übersetzt ist. A runtime monitoring device according to any of claims 8-12, wherein the time based intermediate representation is translated from a natural language request. Laufzeitüberwachungsvorrichtung nach einem der Ansprüche 8–13, wobei der eine oder die mehreren Prozessoren zum Analysieren des Systems unter Verwendung der Anforderung basierend auf dem System oder einer Art des Systems entsprechend einer Identifizierung des Systems oder der Art des Systems programmiert sind.A runtime monitoring device according to any one of claims 8-13, wherein the one or more processors are programmed to analyze the system using the request based on the system or type of system corresponding to an identification of the system or type of system. Verfahren, umfassend: Empfangen, durch eine Hardwareüberwachungsvorrichtung, von Informationen, die eine Anforderung für ein System identifizieren, wobei die Anforderung dem Betrieb des Systems während eines Laufzeitbetriebs des Systems in einer vorgesehenen Betriebsumgebung zugeordnet ist, wobei die Anforderung von temporaler Logik oder einem regulären Ausdruck zu Code, der auf der Hardwareüberwachungsvorrichtung implementiert ist, übersetzt wird; Überwachen, durch die Hardwareüberwachungsvorrichtung, eines Signals von dem System während des Laufzeitbetriebs des Systems; Analysieren, durch die Hardwareüberwachungsvorrichtung, des Signals unter Verwendung der Anforderung während des Laufzeitbetriebs des Systems; Bestimmen, basierend auf dem Analysieren des Signals, durch die Hardwareüberwachungsvorrichtung und während des Laufzeitbetriebs, dass die Anforderung während des Laufzeitbetriebs des Systems verletzt wurde; und Ausgeben, durch die Hardwareüberwachungsvorrichtung, von Informationen, die angeben, dass die Anforderung verletzt wurde. Method, comprising: Receiving, by a hardware monitoring device, information identifying a request for a system wherein the request is associated with operation of the system during runtime operation of the system in a designated operating environment, wherein the request is translated from temporal logic or a regular expression to code implemented on the hardware monitoring device; Monitoring, by the hardware monitoring device, a signal from the system during runtime operation of the system; Analyzing, by the hardware monitoring device, the signal using the request during runtime operation of the system; Determining, based on analyzing the signal by the hardware monitoring device and during runtime operation, that the request has been violated during runtime operation of the system; and Issuing, by the hardware monitoring device, information indicating that the request has been violated. Verfahren nach Anspruch 15, ferner umfassend: Bestimmen eines Grundes, dass die Anforderung verletzt wurde; und Ausgeben von Informationen, die den Grund identifizieren.The method of claim 15, further comprising: Determining a reason that the request has been violated; and Output information that identifies the reason. Verfahren nach Anspruch 15 oder 16, ferner umfassend: Bereitstellen eines Steuersignals an das System zum Entgegenwirken der Anforderung, die verletzt wurde.The method of claim 15 or 16, further comprising: Providing a control signal to the system to counter the request that has been violated. Verfahren nach einem der Ansprüche 15–17, wobei das Signal ein erstes Signal ist, das einer Hardwarekomponente des Systems zugeordnet ist; und wobei das Verfahren ferner Folgendes umfasst: Überwachen eines zweiten Signals, das einem Softwaremodul des Systems zugeordnet ist; und wobei das Bestimmen, dass die Anforderung verletzt wurde, Folgendes umfasst: Bestimmen, basierend auf dem ersten Signal und dem zweiten Signal, dass die Anforderung verletzt wurde. The method of any of claims 15-17, wherein the signal is a first signal associated with a hardware component of the system; and wherein the method further comprises: monitoring a second signal associated with a software module of the system; and wherein determining that the request has been violated comprises: determining, based on the first signal and the second signal, that the request has been violated. Verfahren nach Anspruch 18, ferner umfassend: Überwachen eines dritten Signals, das einer Schnittstelle des Systems zugeordnet ist; und wobei das Bestimmen, dass die Anforderung verletzt wurde, Folgendes umfasst: Bestimmen, basierend auf dem ersten Signal, dem zweiten Signal und dem dritten Signal, dass die Anforderung verletzt wurde. The method of claim 18, further comprising: Monitoring a third signal associated with an interface of the system; and wherein determining that the request has been violated includes: Determining, based on the first signal, the second signal and the third signal, that the request has been violated. Verfahren nach einem der Ansprüche 15–17, wobei das Signal ein erstes Signal ist, das einer ersten Komponente des Systems zugeordnet ist; und wobei das Verfahren ferner Folgendes umfasst: Überwachen eines zweiten Signals, das einer zweiten Komponente des Systems zugeordnet ist; und wobei das Bestimmen, dass die Anforderung verletzt wurde, Folgendes umfasst: Bestimmen, basierend auf dem ersten Signal und dem zweiten Signal, dass die Anforderung verletzt wurde.The method of any of claims 15-17, wherein the signal is a first signal associated with a first component of the system; and the method further comprising: Monitoring a second signal associated with a second component of the system; and wherein determining that the request has been violated includes: Determining, based on the first signal and the second signal, that the request has been violated.
DE102017103732.2A 2016-02-25 2017-02-23 Hardware monitoring device, runtime monitoring device and corresponding method Pending DE102017103732A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662299748P 2016-02-25 2016-02-25
US62/299,748 2016-02-25
US15/423,100 US10394640B2 (en) 2016-02-25 2017-02-02 Requirement runtime monitor using temporal logic or a regular expression
US15/423,100 2017-02-02

Publications (1)

Publication Number Publication Date
DE102017103732A1 true DE102017103732A1 (en) 2017-08-31

Family

ID=59580077

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017103732.2A Pending DE102017103732A1 (en) 2016-02-25 2017-02-23 Hardware monitoring device, runtime monitoring device and corresponding method

Country Status (1)

Country Link
DE (1) DE102017103732A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111480150A (en) * 2017-11-02 2020-07-31 芯力能简易股份公司 Software environment for control engine debugging, testing, calibration and tuning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111480150A (en) * 2017-11-02 2020-07-31 芯力能简易股份公司 Software environment for control engine debugging, testing, calibration and tuning

Similar Documents

Publication Publication Date Title
DE102019112734A1 (en) Improved analog functional reliability with anomaly detection
US10572331B2 (en) Method and apparatus for a computer-based generation of component fault trees
US9702703B2 (en) System and method for monitoring driving behavior of a driver
EP2987039B1 (en) Method and device for co-simulating two subsystems
CN105912413B (en) Method and device for evaluating the availability of a system, in particular a safety-critical system
DE102016124585A1 (en) Methods and Apparatus for Using Analytical / Statistical Modeling for Continuous Process Verification (CPV)
DE102019214759B4 (en) Providing compensation parameters for integrated sensor circuits
DE10236900B4 (en) Method of performing a bit error rate test and bit error rate test system
DE102016223712A1 (en) ECU MASSAGE INSULATION FOR A DELAY SYSTEM
DE102014111962A1 (en) Calibrating an electronic control unit of a vehicle
DE102017103732A1 (en) Hardware monitoring device, runtime monitoring device and corresponding method
US10877471B2 (en) Method and apparatus for generating a fault tree for a failure mode of a complex system
US10394640B2 (en) Requirement runtime monitor using temporal logic or a regular expression
CN110546616A (en) probability metric for random hardware faults
CN115314528A (en) Bridge structure health monitoring system, method and platform
DE102020126233A1 (en) Sensor measurement synchronicity
DE102017214610B4 (en) Method for checking at least one vehicle function and testing device
DE102019216684B4 (en) Method for timing analysis of application software for an embedded system, device for data processing, computer program and computer-readable data carrier
US10394688B2 (en) Method for detecting computer module testability problems
DE112018001810T5 (en) Arithmetic unit, log recording method, log recording system
DE112019006851T5 (en) SLAVE EQUIPMENT, TIME SYNCHRONIZATION PROGRAM, EMBEDDED SYSTEM AND TIME SYNCHRONIZATION METHOD
US20230282033A1 (en) System and method for validating diagnostic trouble codes generated by onboard diagnostics systems of vehicles
DE102008031829B4 (en) Device for functional testing of a target system
CN117852237A (en) Hardware-in-loop test method, test system, electronic equipment and storage medium
CN117311314A (en) Intelligent network-connected automobile potential safety hazard monitoring method, system and cloud server

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence