DE102015108689A1 - Sicherheitsknoten in Zwischenverbindungsdatenbussen - Google Patents

Sicherheitsknoten in Zwischenverbindungsdatenbussen Download PDF

Info

Publication number
DE102015108689A1
DE102015108689A1 DE102015108689.1A DE102015108689A DE102015108689A1 DE 102015108689 A1 DE102015108689 A1 DE 102015108689A1 DE 102015108689 A DE102015108689 A DE 102015108689A DE 102015108689 A1 DE102015108689 A1 DE 102015108689A1
Authority
DE
Germany
Prior art keywords
timeout
security node
slave
master
transaction
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.)
Granted
Application number
DE102015108689.1A
Other languages
English (en)
Other versions
DE102015108689B4 (de
Inventor
Richard F. Grafton
John A. Hayden
Matthew Puzey
James Frank Galeotos
Gordon Cheung
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.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE102015108689A1 publication Critical patent/DE102015108689A1/de
Application granted granted Critical
Publication of DE102015108689B4 publication Critical patent/DE102015108689B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • 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
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/0745Error 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 an input/output transactions management context
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)

Abstract

In sicherheitskritischen Computersystemen ist die Fehlertoleranz eine wichtige Designanforderung. Datenbusse für chipinterne Zwischenverbindung in diesen prozessorbasierten Systemen sind einem Risiko ausgesetzt, das aus Fehlern in der Zwischenverbindung selbst oder in irgendeinem der angeschlossenen Peripheriegeräte herrührt. Um eine ausreichende Fehlertoleranz bereitzustellen, wird ein Sicherheitsknoten zwischen einem vorgeschalteten Masterabschnitt und einem nachgeschalteten Slaveabschnitt einer chipinternen Bushierarchie oder eines chipinternen Busnetzwerks eingefügt. Der Sicherheitsknoten liefert einen programmierbaren Zeitabschaltungsmonitor zum Detektieren einer Zeitabschaltungsbedingung für eine Transaktion. Falls eine Zeitabschaltung aufgetreten ist, überträgt der Sicherheitsknoten eine Dummy-Antwort zurück zum Master, übernimmt die Rolle eines Masters und wartet darauf, dass die Slaveeinrichtung antwortet. Weiterhin weist der Sicherheitsknoten etwaige nachfolgende Anforderungen durch einen beliebigen der Master auf dem vorgeschalteten Abschnitt zurück durch Übertragen einer Dummy-Antwort auf jene nachfolgenden Anforderungen, wodurch diese Master eine Blockierung oder einen Stillstand vermeiden können.

Description

  • ERFINDUNGSGEBIET DER OFFENBARUNG
  • Die vorliegende Offenbarung betrifft allgemein Zwischenverbindungsdatenbusse und insbesondere einen Sicherheitsknoten für diese Zwischenverbindungsdatenbusse.
  • ALLGEMEINER STAND DER TECHNIK
  • Während der vergangenen paar Jahrzehnte verlassen sich immer mehr Systeme auf eine Elektronik, um sicherheitskritische Funktionen wie etwa eine Steuerung bereitzustellen. Diese Elektronik wird in einer Vielzahl von sicherheitskritischen Systemen wie etwa Energiesystemen, Raumfahrtsystemen und Kraftfahrzeugsystemen verwendet. Elektronik wird seit vielen Jahren in Flugzeugen verwendet, um das Flugzeug zu steuern und sicherzustellen, dass verschiedene Komponenten funktionsfähig sind. Außerdem wird Elektronik in vielen modernen Straßenfahrzeugen für übliche Merkmale wie etwa Fahrgeschwindigkeitsregler, ABS-Bremsanlagen, Airbags verwendet und sogar mehr Elektronik wird heutzutage in Hybrid- und Elektrofahrzeugen auf den Straßen verwendet.
  • ÜBERBLICK
  • Bei sicherheitskritischen Computersystemen ist die Fehlertoleranz eine wichtige Designanforderung. Datenbusse für eine chipinterne Zwischenverbindung in diesen prozessorbasierten Systemen sind einem Risiko ausgesetzt, das von Fehlern in der Zwischenverbindung selbst oder in irgendeiner der angeschlossenen Peripheriegeräte herrührt. Um eine ausreichende Fehlertoleranz bereitzustellen, wird ein Sicherheitsknoten zwischen einem vorgeschalteten Master-Abschnitt und einem nachgeschalteten Slave-Abschnitt einer chipinternen Bushierarchie oder eines chipinternen Busnetzwerks eingefügt.
  • Der Sicherheitsknoten stellt einen (programmierbaren) Zeitabschaltungsmonitor bereit, um eine Zeitabschaltungsbedingung für eine Transaktion zu detektieren. Falls die Zeitabschaltung eingetreten ist, überträgt der Sicherheitsknoten eine im Voraus bestimmte Dummy-Antwort zurück zum Master oder löst sie aus, was den Master des vorgeschalteten Abschnitts befreit, um eine Blockierung zu vermeiden und nachfolgende Transaktionen durchzuführen. Der Sicherheitsknoten übernimmt dann die Rolle eines Masters des nachgeschalteten Abschnitts und wartet drauf, dass die Slave-Einrichtung antwortet. Weiterhin weist der Sicherheitsknoten etwaige nachfolgende Aufforderungen durch einen beliebigen der Master an dem vorgeschalteten Abschnitt zurück durch Übertragen oder Auslösen einer sofortigen Dummy-Antwort auf jene nachfolgenden Aufforderungen, wodurch diese Master eine Blockierung oder einen Stillstand vermeiden können.
  • Bei der im Voraus bestimmten Antwort kann es sich um (a) eine In-Band-Antwortsignalisierung innerhalb des Busprotokolls und/oder (b) eine Seiten-Band-Antwort außerhalb des Busprotokolls wie etwa einen Interrupt handeln. Die Antwort innerhalb des Protokolls kann eine legale Slave-Antwort beinhalten, die es dem Master gestattet, die aktuelle Transaktion legal innerhalb des Master-Protokolls fertigzustellen und kann eine der Folgenden sein: eine Fehlerantwort, die anzeigt, dass die Transaktion erfolglos war, eine Teilfertigstellungsantwort, die anzeigt, dass die Transaktion teilweise fertiggestellt wurde und in einen vollständigen Teil und einen unvollständigen Teil aufgeteilt wurde, oder eine Normalfertigstellungsantwort. Falls eine Normalfertigstellungs-In-Band-Antwort ausgegeben wird, kann die In-Band-Antwort von einer Seiten-Band-Antwort (Fehler-Interrupt) begleitet werden, so dass der Master über die Zeitabschaltung benachrichtigt wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • 1 ist ein vereinfachtes Schemadiagramm, das ein beispielhaftes prozessorbasiertes System mit einem Sicherheitsknoten gemäß einigen Ausführungsformen der Offenbarung darstellt;
  • 2 ist ein vereinfachtes Schemadiagramm, das ein beispielhaftes prozessorbasiertes System mit zwei Sicherheitsknoten gemäß einigen Ausführungsformen der Offenbarung darstellt;
  • 3 ist ein vereinfachtes Schemadiagramm, das eine beispielhafte Zwischenverbindungsbushierarchie oder ein beispielhaftes Zwischenverbindungsbusnetzwerk mit einem Sicherheitsknoten gemäß einigen Ausführungsformen der Offenbarung zeigt;
  • 4 ist ein vereinfachtes Schemadiagramm, das eine weitere beispielhafte Zwischenverbindungsbushierarchie oder ein weiteres beispielhaftes Zwischenverbindungsbusnetzwerk mit mehreren Sicherheitsknoten gemäß einigen Ausführungsformen der Offenbarung zeigt;
  • 5 ist ein vereinfachtes Flussdiagramm, das eine Prozedur zum Überwachen und Überleben einer Zeitabschaltung auf einem Zwischenverbindungsdatenbus durch einen Sicherheitsknoten gemäß einigen Ausführungsformen der Offenbarung darstellt;
  • 6 ist ein Diagramm, das ein beispielhaftes Steuerregister eines Sicherheitsknotens gemäß einigen Ausführungsformen der Offenbarung darstellt;
  • 7 ist ein Diagramm, das ein beispielhaftes Statusregister eines Sicherheitsknotens gemäß einigen Ausführungsformen der Offenbarung darstellt, und
  • 8 ist ein Diagramm, das ein beispielhaftes Zeitabschaltungszählerregister eines Sicherheitsknotens, gemäß einigen Ausführungsformen der Offenbarung zeigt.
  • BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN DER OFFENBARUNG
  • Verständnis von Fehlertoleranz
  • Komponenten und Programme in einem Computersystem sind zwar die meiste Zeit zuverlässig und funktionsfähig, fallen jedoch unvermeidlicherweise früher oder später aus. Ausfälle können durch Hardwareprobleme oder Softwarefehler verursacht werden. Die Fehlertoleranz ist die Eigenschaft, die es einem Computersystem ermöglicht, im Fall eines oder mehrerer Fehler im System weiter ordnungsgemäß zu arbeiten. Ohne Fehlertoleranz können die Fehler einen totalen Zusammenbruch verursachen, was bei sicherheitskritischen Systemen zu verheerenden Konsequenzen führen kann. Deshalb versuchen Designer und Architekten von Computersystemen, Computersysteme zu konstruieren, die im Fall eines oder mehrerer Fehler mit reduzierter Kapazität weiter arbeiten können und/oder anstandslos degradieren können, so dass eine Wiederherstellungsaktion durchgeführt werden kann.
  • Viele dieser sicherheitskritischen Computersysteme kombinieren Prozessoren und Peripheriegeräte, um sicherheitskritische Funktionen wie etwa Leistungs- und Motorsteuerung bereitzustellen. Um Regeln und Anleitungen für verschiedene Industriezweige darüber bereitzustellen, wie Sicherheitsgeräte und -systeme ausgelegt werden sollen, haben internationale Normierungsgremien Normen entwickelt wie etwa IEC 61508 mit dem Titel "Funktionale Sicherheit sicherheitsbezogener elektrischer/elektronischer/programmierbarer elektronischer Systeme" und ISO 26262 mit dem Titel "Straßenfahrzeuge – funktionale Sicherheit". Diese Normen definieren Risiken und normative Verhaltensweisen von Elektronikanforderungen von sicherheitskritischen Systemen in einer Vielzahl von Anwendungen, in denen eine Elektronik eine sicherheitskritische Rolle spielt. Weil diese Elektronik für die Sicherheit von Menschen und der Umgebung wichtig ist und Elektronik zwangsweise Fehler besitzt, ist die Fehlertoleranz eine besonders wichtige Designanforderung, die von diesen Normen behandelt wird. Aus diesem Grund liefern diese internationalen Normen Normen und Anleitungen, die diktieren, wie sich das sicherheitskritische System verhalten sollte, wenn in dem System ein oder mehrere Fehler auftreten, oder wie das System im Fall eines oder mehrerer Fehler innerhalb des Systems ordnungsgemäß weiter arbeiten sollte.
  • Wenngleich Systemdesigner und -architekten danach streben, Fehlertoleranz-Designanforderungen zu erfüllen, ist es auch für die Designer und Architekten wichtig, Lösungen bereitzustellen, deren Implementierung nicht prohibitiv teuer ist.
  • Fehler in Zwischenverbindungsdatenbussen
  • In sicherheitskritischen Systemen sind Datenbusse nach Industrienorm und proprietäre Datenbusse für eine chipinterne Zwischenverbindung in prozessorbasierten Systemen einem Risiko ausgesetzt, das von Fehlern in der Zwischenverbindung selbst oder in einem beliebigen der angeschlossenen Peripheriegeräte herrührt. Zu Gefahren, mit denen sich sicherheitskritische Systeme beschäftigen müssen, zählen: Kurzschlüsse und Unterbrechungen in Zwischenverbindungen, Ausfälle bei Hardwareperipherie-Slaves, Blockierungen, Aushungern oder Sättigung von Verkehr auf Bussegmenten, Programmier- oder Protokollfehler auf höheren Kommunikationsschichten. Diese Gefahren würden zu einem Zeitabschaltungsfehler führen, d. h. einem Mangel an erwarteter Antwort, oder einer verzögerten erwarteten Antwort.
  • Diese Busse nach Industrienorm und proprietären Busse beinhalten Busse, die der Spezifikation der offenen Norm für chipinterne Zwischenverbindungen Advanced Microcontroller Bus Architecture (AMBA) für die Verbindung und das Management von Funktionsblöcken in einem System-on-Chip (SoC) folgen. Typischerweise besitzen solche Busse, zum Beispiel der weit verbreitete Advanced Peripheral Bus (APB), AMBA High-Performance Bus (AHB), Advanced eXtensible Interface (AXI), keinen expliziten Zeitabschaltungsmechanismus und das Nachrüsten von Zeitabschaltungen auf Altsysteme, -designs und -einrichtungen ist prohibitiv teuer. Ohne einen ordnungsgemäßen Zeitabschaltungsmonitor kann ein System ohne jegliche Mittel zur Wiederherstellung aus einer Zeitabschaltung leicht zum Stillstand kommen und zusammenbrechen.
  • Wenn ein fehlertoleranter Bus bereitgestellt wird, der so ausgelegt ist, dass er einen Zeitabschaltungsfehler toleriert, ist es auch wichtig, dass ein Zwischenverbindungsdatenbus weiterhin andere Eigenschaften einhält wie etwa Unteilbarkeit, Konsistenz, Isolation und Beständigkeit (ACID – Atomicity, Consistency, Isolation and Durability), um zu garantieren, dass Transaktionen selbst bei Anwesenheit eines Zeitabschaltungsfehlers zuverlässig verarbeitet werden.
  • Ein Hardwaresicherheitsknoten: Zeitabschaltungen und späte Antworten behandeln
  • Um sich mit dem Problem von Zeitabschaltungen in sicherheitskritischen Zwischenverbindungsdatenbussen zu beschäftigen, wurden mehrere Busse für flugkritische Funktionen in Flugzeugen und Flugzeugmotoren entwickelt, wo eine eng geplante Architektur bereitgestellt wird. Bei derartigen zeitausgelösten Busarchitekturen wird eine Antwort gemäß einem im Voraus zugewiesenen Taktzyklus erwartet und geplant, um Zuverlässigkeit sicherzustellen. Eine Zeitabschaltung kann dann detektiert werden, falls eine Antwort gemäß dem Zeitplan in dem bestimmten im Voraus zugewiesenen Taktzyklus nicht zurückkehrt. Dieses System besitzt eine Anzahl von Nachteilen: der Durchsatz des Busses wird durch den Zeitplan streng diktiert, und der statische Zeitplan eines zeitausgelösten Busses ist recht inflexibel.
  • Um eine zeitliche Antwortflexibilität bereitzustellen, gestatten viele der Industrienorm- und proprietären Busse eine (durch ein Ereignis ausgelöste) willkürliche Antwortlatenz. Die willkürliche Antwortlatenz macht es jedoch zu einer Herausforderung zu wissen, ob und wann die Rückkehr einer Antwort erwartet wird. Um dieses Problem der Zeitabschaltung in einem Zwischenverbindungsdatenbus mit einer willkürlichen Antwortlatenz zu behandeln, wird ein Hardwaresicherheitsknoten zwischen zwei Partitionen/Segmenten einer chipinternen Bushierarchie oder eines chipinternen Busnetzwerks eingefügt: einem vorgeschalteten Abschnitt (Master) und einem nachgeschalteten Abschnitt (Slave). Der vorgeschaltete Abschnitt kann mit mindestens einem oder mehreren Mastern verbunden sein, und der nachgeschaltete Abschnitt kann mit mindestens einem oder mehreren Slaves verbunden sein. Der Sicherheitsknoten kann von dem vorgeschalteten Abschnitt empfangene Transaktionen arbitrieren und Toleranz für in dem nachgeschalteten Abschnitt auftretende Fehler bereitstellen.
  • Allgemein gesprochen enthält eine Bushierarchie oder ein Busnetzwerk zusammengeschaltete Bussegmente, an die ein oder mehrere Master und/oder Slaves angeschlossen oder mit diesen verbunden werden können. Je nach der Ausführungsform oder Anwendung kann die Bushierarchie oder das Busnetzwerk unterschiedliche Topologien besitzen. Der vorgeschaltete Abschnitt einer Bushierarchie/eines Busnetzwerks kann ein oder mehrere Bussegmente vor dem Sicherheitsknoten umfassen, und der nachgeschaltete Abschnitt einer Bushierarchie/eines Busnetzwerks kann ein oder mehrere Bussegmente hinter dem Sicherheitsknoten umfassen. Die zusammengeschalteten Bussegmente einer Bushierarchie oder eines Busnetzwerks ermöglichen, dass der eine oder die mehreren Master mit dem einen oder den mehreren Slaves kommunizieren (von einem Punkt der Bushierarchie- oder -netzwerktopologie zu einem anderen Punkt der Bushierarchie- oder -netzwerktopologie). Ein Sicherheitsknoten kann zwischen zwei Segmenten an einem beliebigen geeigneten Punkt der Bushierarchie oder des Busnetzwerks eingefügt werden. Eine Bushierarchie oder ein Busnetzwerk können mehr als einen Sicherheitsknoten an verschiedenen Punkten der Bushierarchie oder des Busnetzwerks enthalten.
  • Der Sicherheitsknoten leitet während des Betriebs Transaktionen von einem gewählten Master an dem vorgeschalteten Abschnitt zu einem der Slaves an dem nachgeschalteten Abschnitt weiter. Um Zeitabschaltungen zu verarbeiten, liefert der Sicherheitsknoten einen (programmierbaren) Zeitabschaltungsmonitor, der detektiert, ob eine Transaktion an dem nachgeschalteten Abschnitt zum Antworten übermäßige Zeit benötigt. Ohne das Protokoll an irgendeinem Teilabschnitt zu verletzen, löst der Sicherheitsknoten dann die Verbindung zu der weitergeleiteten Transaktion und gestattet dem Master, seine Transaktion durch Zurückschicken einer im Voraus bestimmten Dummy-/Fehlerantwort (oder hier allgemein als ”eine im Voraus bestimmte Antwort”) fertigzustellen. Der Sicherheitsknoten übernimmt dann die Rolle des Masters und hält die Transaktion an dem vorgeschalteten Abschnitt bis zu dem Zeitpunkt aufrecht, wenn die nachgeschaltete Slave-Einrichtung antwortet oder das Bussegment zurückgesetzt wird. Während der nachgeschaltete Busabschnitt belegt bleibt, weist der Sicherheitsknoten alle nachfolgenden Zugriffsaufforderungen durch einen beliebigen der Master an dem vorgeschalteten Abschnitt zusammen mit einer im Voraus bestimmten Antwort derart zurück, dass jene Master eine Blockierung oder einen Stillstand vermeiden können, und mit einer anderen Verarbeitung weitermachen können, wie etwa einer Fehlerbehandlungsroutine. Anders ausgedrückt weist der Sicherheitsknoten alle nachfolgenden Aufforderungen durch beliebige der Master an dem vorgeschalteten Abschnitt zurück durch Übertragen oder Auslösen einer sofortigen Dummy-/Fehlerantwort (z. B. im Voraus bestimmten Fehlerantwort) auf jene nachfolgenden Aufforderungen, wodurch diese Master eine Blockierung oder einen Stillstand vermeiden können.
  • Wenn ein Sicherheitsknoten vorliegt, der eine Zeitabschaltungsbedingung überwachen und überleben kann, kann der Sicherheitsknoten in sicherheitskritischen Systemen Zeitabschaltungen in einem Zwischenverbindungsdatenbus anstandslos verarbeiten und eine Fehlertoleranzzahl von eins bereitstellen (d. h. die Zahl tolerierbarer Fehler/Knotenausfälle in dem Zwischenverbindungsdatenbus hinter dem Sicherheitsknoten). Mit anderen Worten toleriert der Sicherheitsknoten eine maximale Zahl eines Fehlers auf dem Zwischenverbindungsdatenbus. Zudem übernimmt der Sicherheitsknoten die Rolle des Masters, nachdem eine Zeitabschaltung detektiert ist, wartet, dass die Transaktion auf Seiten des Masters vervollständigt wird und weist alle weiteren Transaktionen zurück, die stromabwärts ausgegeben werden, während er in der Lage ist, ein zuverlässiges Transaktionssystem aufrechtzuerhalten.
  • Diese Sicherheitsknotenlösung besitzt den Vorteil, dass sie auf eine späte oder verzögerte Antwort auf eine Transaktion warten kann, anstatt einfach eine Transaktion abzubrechen oder das System zurückzusetzen. Weiterhin ist der Sicherheitsknoten so ausgelegt, dass er ausreichend modular ist, um die Zeitabschaltungsfunktionalität unter Verwendung eines Standardbusses zu unterstützen, ohne andere Teile des Systems wie etwa die Master zu beeinflussen oder zu erfordern, dass es sich bei den Mastern um einen komplexen busunterbrechbaren Prozessor handelt.
  • Die im Voraus bestimmte Antwort
  • Effektiv stellt der Sicherheitsknoten einen (programmierbaren) Zeitabschaltungsmonitor bereit, um eine Zeitabschaltungsbedingung für eine Transaktion zu detektieren. Falls die Zeitabschaltung eingetreten ist, überträgt der Sicherheitsknoten eine im Voraus bestimmte (Dummy-)Antwort zurück zum Master oder löst sie aus, was den Master des vorgeschalteten Abschnitts befreit, um eine Blockierung zu vermeiden und nachfolgende Transaktionen durchzuführen. Je nach dem Prozessor oder Protokoll kann die im Voraus bestimmte Antwort, die verwendet werden soll, um den Master zu befreien, variieren. Allgemein gesprochen können Antworten auf den Master eine oder mehrere der Folgenden beinhalten: ”In-Band”-Antworten innerhalb des legalen Busprotokolls (die Fehler-, Transaktion-Nicht-Vervollständigt-Antworten beinhalten könnten), Normale-Fertigstellungs-Antwort, Teilfertigstellungsantwort (ein Hybrid aus der Normalen-Fertigstellungs- und ”in-Band”-Antwort) und ”Seiten-Band”-Antworten durch andere Signale, die nicht Teil des Busses sind, wie etwa ein Fehlerinterrupt.
  • Einige Prozessoren und Protokolle unterstützen möglicherweise keine In-Band-Fehlerantwort sondern unterstützen nur eine Out-of-Band- oder Seiten-Band-Antwort (Interrupt). Einige Prozessoren/Protokolle gestatten eine ”Split”- oder ”teilweisefertiggestellt”-Antwort z. B. als Teil eines Burst-Protokolls. Diese könnten dem Prozessor gestatten, sich von der problematischen zeitabgeschalteten Transaktion zu entkoppeln und etwas anderes zu tun. Diese ”Teilweise”-Antwort kann durch Programmieren im Voraus bestimmt werden. Analog gestatten einige Prozessoren ein ”Retry”, das als ein ”Split”, wobei noch nichts fertiggestellt worden ist, angesehen werden kann, was auch durch Programmieren im Voraus bestimmt werden kann. In-Band- und Seiten-Band-Antworten können individuell und/oder zusammen verwendet werden.
  • Allgemein gesprochen ist eine Antwort innerhalb des Protokolls eine legale Slave-Antwort, die es dem Master gestattet, die aktuelle Transaktion legal innerhalb des Master-Protokolls fertigzustellen, und es kann sich dabei um eine der Folgenden handeln: eine Fehlerantwort (die anzeigt, dass die Transaktion erfolglos war), eine Teilfertigstellungsantwort (die anzeigt, dass die Transaktion teilweise fertiggestellt wurde und möglicherweise in einen vollständigen Teil und einen unvollständigen Teil aufgeteilt wurde) oder eine Normalfertigstellungsantwort. Um verschiedene Prozessoren/Protokolle zu behandeln, kann der Sicherheitsknoten so programmiert oder konfiguriert werden, dass er die entsprechende, im Voraus bestimmte Antwort liefert/überträgt/auslöst, um beispielsweise den vorgeschalteten Master zu befreien. Die im Voraus bestimmte Antwort kann (a) eine In-Band-Antwortsignalisierung innerhalb des Busprotokolls und/oder (b) eine Seiten-Band-Antwort außerhalb des Busprotokolls wie etwa ein Interrupt beinhalten. Falls beispielsweise eine Normalfertigstellungs-In-Band-Antwort ausgegeben wird (mit einer Dummy-Antwort oder einer normalen Antwort, die nach der Zeitabschaltung der Transaktion empfangen wurde), kann die In-Band-Antwort von einer Seiten-Band-Antwort (zum Beispiel einem Fehler-Interrupt) begleitet werden, so dass der Master über die Zeitabschaltung benachrichtigt wird.
  • Systemüberblick
  • 1 ist ein vereinfachtes Schemadiagramm, das ein beispielhaftes prozessorbasiertes System mit einem Sicherheitsknoten darstellt, gemäß einigen Ausführungsformen der Offenbarung. Das System 100 (chipintegriert) ist eine integrierte Schaltung, die einen digitalen Teil 102 umfasst. Der digitale Teil 102 kann mehrere Master (Prozessoren), z. B. Master 104 und Master 106, enthalten, die konfiguriert sind zum Ausgeben von Transaktionen an mehrere Slaves (Peripheriegeräte), z. B. Slave 108, Slave 110, Slave 112 und Slave 114. Allgemein gesprochen ist die Beziehung zwischen Master und Slave ein Kommunikationsmodell, wo eine Einrichtung/Komponente oder ein Prozess eine unidirektionale Steuerung über eine oder mehrere andere Einrichtungen/Komponenten besitzt. Bei einigen Systemen ist ein Master ausgewählt aus einer Gruppe wählbarer Einrichtungen, wobei die anderen Einrichtungen in der Rolle von Slaves wirken. Bei diesem veranschaulichenden Beispiel können innerhalb des digitalen Teils 102 verschiedene Takte verwendet werden.
  • Bei einigen Ausführungsformen kann der Master 104 ein Mikroprozessor sein, der konfiguriert ist zum Kontrollieren (oder Überwachen) der Operationen des Masters 106, der als der Hauptsteuerprozessor dient. Wenngleich nur der Master 104 und der Master 106 gezeigt sind, kann der digitale Teil 102 weitere Master-Prozessoren enthalten. Gleichermaßen kann, wenngleich nur Slave 108, Slave 110, Slave 112 und Slave 114 gezeigt sind, der digitale Teil 102 weitere Slave-Peripheriegeräte enthalten.
  • Die mehreren Master und Slaves sind in einem Netzwerk von Kommunikationsstrecken zusammengeschaltet, als ein Zwischenverbindungsdatenbus bezeichnet (z. B. so dargestellt, dass sie mehrere Bussegmente 116a und 116b besitzen), um zu gestatten, dass Transaktionen von einem beliebigen der Master an einen gewählten der Slaves ausgegeben werden (z. B. einen beliebigen von Slave 108, Slave 110, Slave 112 und Slave 114), und damit Antworten von dem gewählten Slave zu dem Master, der die Transaktion ausgegeben hat, übertragen werden. Diese Transaktionen gestatten typischerweise den Mastern, z. B. einem Slave zu befehlen, eine Operation durchzuführen, ein Speicherelement zu lesen/darin zu schreiben usw. Weiterhin kann ein Slave auf eine Transaktion mit Daten oder einer Nachricht antworten, die eine Fertigstellung einer Transaktion anzeigt. Bei einigen Fällen können Slaves auch auf eine Transaktion mit einer Fehlernachricht antworten, die anzeigt, dass eine Transaktion nicht fertiggestellt werden kann. In einigen Fällen können Slaves auch auf eine Transaktion mit einer Teilfertigstellungsnachricht antworten, die anzeigt, dass eine Transaktion teilweise fertiggestellt und teilweise nicht fertiggestellt ist, woraufhin Master in einigen Fällen freigestellt werden können, um andere Aufgaben auszuführen. In einigen Fällen können Slaves auf eine Transaktion mit einem Seitenbandsignal außerhalb des Busprotokolls antworten, wie etwa einem Interrupt, in Kombination mit einer Antwort innerhalb des Busprotokolls, die es dem Master gestattet, freigestellt zu werden, um andere Aufgaben auszuführen.
  • Bei diesem besonderen Beispiel (das nicht beschränkend sein soll) kann das System einen analogen Teil 118 (z. B. ein analoges Front-End (AFE)) enthalten. Der analoge Teil 118 kann eine analoge Elektronik, z. B. AFE 120 und AFE 122, enthalten, um eine analoge Schnittstelle zwischen dem digitalen Teil 102 und Komponenten außerhalb des Systems 100 bereitzustellen (wie etwa Sensoren und anderen Arten analoger Schaltungsanordnung oder mechanischer Komponenten außerhalb des Systems 100).
  • Zuletzt enthält der digitale Teil 102 einen Sicherheitsknoten 124. Der Sicherheitsknoten 124 kann einen vorgeschalteten Teil 126, einen nachgeschalteten Teil 128, einen Zeitabschaltungsmonitor 132 und ein oder mehrere Register 130 enthalten. Ein Sicherheitsknoten wird bereitgestellt, um eine Zeitabschaltung an einem Zwischenverbindungsdatenbus zu überwachen und zu überleben, insbesondere eine Zeitabschaltung an einem Bussegment hinter dem Sicherheitsknoten. Der vorgeschaltete Teil 126 kann mit einem vorgeschalteten Abschnitt einer Bushierarchie oder eines Busnetzwerks (z. B. Bussegment 116a) koppeln (oder kommunizierbar damit verbunden sein), die oder das an einen oder mehrere Master (z. B. Master 104) angeschlossen ist. Der nachgeschaltete Teil 128 kann mit einem nachgeschalteten Abschnitt der Bushierarchie oder des Busnetzwerks (z. vB. Bussegment 116b) gekoppelt sein (oder kommunizierbar damit verbunden sein), die oder das an einen oder mehrere Slaves (z. B. Slave 112 und Slave 114) angeschlossen ist.
  • Bei diesem in 1 gezeigten Beispiel dient der Sicherheitsknoten 124 als einer der Master für das Bussegment 116b (der andere Master ist der Master 106). Der Sicherheitsknoten 124 überwacht auf Ausfälle im Bussegment 116b, im Slave 112 und im Slave 114 hin. Mit anderen Worten liefert der Sicherheitsknoten 124 einen Schutz für hinter dem Sicherheitsknoten 124 auftretende Fehler. Master, z. B. 104 auf dem Bussegment 116a vor dem Sicherheitsknoten 124, müssen zuerst durch den Sicherheitsknoten 124 gehen, bevor die Master vor dem Sicherheitsknoten 124 mit den Slaves kommunizieren können, die hinter dem Sicherheitsknoten 124 geschaltet sind, z. B. Slaves 112 und 114 auf dem Bussegment 116b. Bei diesem Beispiel ist der Master 104 vor Ausfällen hinter dem Sicherheitsknoten 124 geschützt. Man beachte, dass der Master 104 ein Master für die Slaves 108 und 110 auf dem Bussegment 116a bleibt, und der Master 104 kann mit den (lokalen) Slaves 108 und 110 kommunizieren, ohne durch den Sicherheitsknoten 124 oder mit Störung von Master 106 kommunizieren zu müssen. Die Kommunikation von dem Master 104 zum Slave 108 und zum Slave 110 profitiert jedoch nicht von dem Schutz des Sicherheitsknotens 124.
  • Der Sicherheitsknoten 124, z. B. der Zeitabschaltungsmonitor 132 darin, leitet eine erste Transaktion von einem ersten Master (z. B. Master 104) an dem stromaufwärtigen Abschnitt zu einem ersten Slave (z. B. einem von Slave 112 und Slave 114 auf dem Bussegment 116b) auf dem nachgeschalteten Abschnitt weiter. Der Zeitabschaltungsmonitor 132 kann den Zwischenverbindungsdatenbus (z. B. das Bussegment 116b) überwachen, um zu bestimmen, ob der erste Slave nicht innerhalb einer Zeitabschaltungsperiode reagiert. Falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet (z. B. als Reaktion auf das Verstreichen der Zeitabschaltungsperiode und wenn keine Antwort empfangen worden ist), kann der Sicherheitsknoten (z. B. der Zeitabschaltungsmonitor 132) eine im Voraus bestimmte (Dummy-/Fehler-)Antwort an den ersten Master (über den vorgeschalteten Teil 126 oder eine andere Schnittstelle) übertragen oder auslösen, um zu gestatten, dass der erste Master die erste Transaktion fertigstellt, und die erste Transaktion in dem nachgeschalteten Abschnitt hält, indem darauf gewartet wird, dass der erste Slave antwortet.
  • Der Sicherheitsknoten 124 kann in seiner Hardware ein oder mehrere Register 130 enthalten, um Zustandsinformationen des Sicherheitsknotens (durch ein oder mehrere Bits oder Zustände) aufrechtzuerhalten, den Zeitabschaltungsmonitor und/oder den Zwischenverbindungsdatenbus 116. Der Zeitabschaltungsmonitor 132 kann konfiguriert sein zum Einstellen von Werten für mindestens einige des einen oder der mehreren Register 130. Beispielsweise können das eine oder die mehreren Register einen oder mehrere der Folgenden enthalten: ein Zeitabschaltungsmonitorregister zum Anzeigen, ob der Sicherheitsknoten aktiviert oder nicht aktiviert ist, um eine Zeitabschaltung an dem Zwischenverbindungsdatenbus zu überwachen; einen Zeitabschaltungsinterruptregister, um anzuzeigen, ob ein Zeitabschaltungsinterruptsignal aktiv oder inaktiv ist; ein Zeitabschaltungsfehlerregister, um anzuzeigen, ob eine Zeitabschaltung auf dem Zwischenverbindungsdatenbus aufgetreten ist; und ein Zeitabschaltungszählregister zum Einstellen einer (vom Benutzer) programmierbaren Länge der Zeitabschaltungsperiode. Beispiele des einen oder der mehreren Register 130 werden mit den 68 eingehender erläutert.
  • Neben dem Bereitstellen eines Zeitabschaltungsmonitors kann der Sicherheitsknoten 124 auch eine Unterstützung für zuverlässige Transaktionen wie etwa einem Peripheriegerät-Nur-Schreib- oder -Zugriffsschutz (Lese/Schreib-Schutz) auf einer Basis pro Master. Beispielsweise kann der Sicherheitsknoten 124 Schreibschutzregister bereitstellen, die jedem Peripheriegerät zugewiesen sind, um den Schreibzugriff von einem gegebenen Master zu deaktivieren, oder Zugriffsschutzregister, die jedem Peripheriegerät zugewiesen sind, um den Lesezugriff von einem gegebenen Master zu deaktivieren. Ein weiteres Merkmal des Sicherheitsknotens kann Sperren enthalten zum Sperren der Schreibschutzregister und/oder Zugriffsschutzregister.
  • Die Topologie der Zwischenverbindungsbushierarchie/des Zwischenverbindungsbusnetzwerks von 1 soll die Offenbarung nicht beschränken. Beispielsweise können die Zwischenverbindungsbushierarchie/das Zwischenverbindungsbusnetzwerk der vorliegenden Offenbarung Bussegmente enthalten, die auf andere geeignete Weisen mit unterschiedlichen Platzierungen von Mastern und Slaves in der Zwischenverbindungsbushierarchie/dem Zwischenverbindungsbusnetzwerk zusammengeschaltet sind (24 zeigen nur einige der anderen Möglichkeiten). Bei einigen Ausführungsformen kann ein Sicherheitsknoten der einzige Master eines Bussegments sein (d. h., die Zwischenverbindungsbushierarchie/das Zwischenverbindungsbusnetzwerk hinter dem Sicherheitsknoten ist nur mit Slaves verbunden). Bei einigen Ausführungsformen kann ein Sicherheitsknoten den Zugriff auf ein Bussegment unter mehreren Mastern arbitrieren (d. h., der Sicherheitsknoten kann unter mehreren Mastern Transaktionen empfangen, die für einen der Slaves hinter dem Sicherheitsknoten bestimmt sind). Bei einigen Ausführungsformen kann ein Sicherheitsknoten als einer der Master für ein Bussegment dienen. Bei einigen Ausführungsformen kann der vorgeschaltete Teil eines Sicherheitsknotens mit mehr als einem Bussegment verbunden sein (das mit mehr als einem Master verbunden sein kann). Bei einigen Ausführungsformen kann der nachgeschaltete Teil eines Sicherheitsknotens mit mehr als einem Bussegment verbunden sein (das mit mehr als einem Slave verbunden sein kann).
  • Bidirektionale Sicherheit in einem Zwischenverbindungsbus
  • Wie bezüglich 1 beschrieben, schützt der Sicherheitsknoten 124 davor, dass Ausfälle stromabwärts auf einem Bussegment 116b für einen Master auftreten, der sich vor dem Sicherheitsknoten 124 befindet (aber nicht für Ausfälle, die vor dem Bussegment 116a auftreten). Somit ist der Sicherheitsknoten 124 unidirektional. Um andere Teile der Bushierarchie oder des Busnetzwerks zu schützen, können der Zwischenverbindungsbushierarchie/dem Zwischenverbindungsbusnetzwerk weitere Sicherheitsknoten hinzugefügt werden. 2 ist ein vereinfachtes Schemadiagramm, das ein beispielhaftes prozessorbasiertes System mit zwei Sicherheitsknoten darstellt: Sicherheitsknoten 124 und Sicherheitsknoten 134. Falls der Master 106 vor auf dem Bus 116a, dem Slave 108 und dem Slave 110 auftretenden Ausfällen geschützt werden soll, kann der Sicherheitsknoten 134 vorgesehen werden.
  • Bei diesem Beispiel kann der Sicherheitsknoten 134 (ähnlich dem Sicherheitsknoten 124) einen vorgeschalteten Teil 136, einen nachgeschalteten Teil 138, einen Zeitabschaltungsmonitor 142 und ein oder mehr Register 140 enthalten. Der Sicherheitsknoten 134 kann eine Zeitabschaltung an einem Zwischenverbindungsdatenbus überwachen und überleben, insbesondere einem Bussegment hinter dem Sicherheitsknoten 134. In diesem Fall überwacht der Sicherheitsknoten 134 das Bussegment 116a auf auf dem Bussegment 116a, dem Slave 108 und dem Slave 110 auftretende Fehler hin. Der vorgeschaltete Teil 136 kann mit einem vorgeschalteten Abschnitt einer Bushierarchie (z. B. einem Bussegment 116b) koppeln (oder kommunizierbar damit verbunden sein), die mit einem oder mehreren Mastern (z. B. Master 104) verbunden ist. Der nachgeschaltete Teil 138 kann mit einem nachgeschalteten Abschnitt der Bushierarchie (z. B. dem Bussegment 116a) gekoppelt sein (oder kommunizierbar damit verbunden sein), die mit einem oder mehreren Slaves (z. B. Slave 108, Slave 110) verbunden ist.
  • Folgendes sind die Prinzipien des Sicherheitsknotens 134. Der Sicherheitsknoten arbeitet auf ähnliche Weise wie der Sicherheitsknoten 124, aber in der entgegengesetzten Richtung. Bei diesem in 2 gezeigten Beispiel dient der Sicherheitsknoten 134 als einer der Master (der andere Master ist der Master 104) für das Bussegment 116a, um auf Ausfälle in dem Bussegment 116a, dem Slave 108 und dem Slave 110 zu überwachen. Mit anderen Worten liefert der Sicherheitsknoten 134 einen Schutz für Fehler, die hinter dem Sicherheitsknoten 134 auftreten. Master, z. B. Master 106 auf dem Bussegment 116b vor dem Sicherheitsknoten 134, müssen zuerst durch den Sicherheitsknoten 134 gehen, bevor die Master vor dem Sicherheitsknoten 134 mit den Slaves kommunizieren können, die hinter dem Sicherheitsknoten 134 geschaltet sind, z. B. Slaves 108 und 110 auf dem Bussegment 116a. Bei diesem Beispiel ist der Master 106 vor Ausfällen hinter dem Sicherheitsknoten 134 geschützt. Man beachte, dass der Master 106 ein Master für die Slaves 112 und 114 auf dem Bussegment 116b bleibt, und der Master 106 kann mit den (lokalen) Slaves 112 und 114 kommunizieren, ohne durch den Sicherheitsknoten 134 oder mit Störung von Master 104 kommunizieren zu müssen. Die Kommunikation von dem Master 106 zum Slave 112 und zum Slave 114 profitiert jedoch nicht von dem Schutz des Sicherheitsknotens 134.
  • Der Sicherheitsknoten 134, z. B. der Zeitabschaltungsmonitor 142 darin, leitet eine erste Transaktion von einem ersten Master (z. B. Master 106) an dem stromaufwärtigen Abschnitt zu einem ersten Slave (z. B. einem von Slave 108 und Slave 110 auf dem Bussegment 116a) auf dem nachgeschalteten Abschnitt weiter. Der Zeitabschaltungsmonitor 142 kann den Zwischenverbindungsdatenbus (z. B. das Bussegment 116a) überwachen, um zu bestimmen, ob der erste Slave nicht innerhalb einer Zeitabschaltungsperiode antwortet. Falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet, kann der Sicherheitsknoten (z. B. der Zeitabschaltungsmonitor 142) eine im Voraus bestimmte (Dummy-/Fehler-)Antwort an den ersten Master (über den vorgeschalteten Teil 136 oder eine andere Schnittstelle mit dem ersten Master) übertragen oder auslösen, um zu gestatten, dass der erste Master die erste Transaktion fertigstellt, und die erste Transaktion in dem nachgeschalteten Abschnitt hält, indem darauf gewartet wird, dass der erste Slave antwortet.
  • Es wird angemerkt, dass 2 dazu dient zu veranschaulichen, dass mehrere Sicherheitsknoten vorgesehen werden können, um Fehler in verschiedenen Teilen einer Bushierarchie oder eines Busnetzwerks zu schützen. Allgemein sind Zwischenverbindungsbushierarchie/Zwischenverbindungsbusnetzwerktopologien, wo der oder die Sicherheitsknoten verwendet werden können, nicht auf die Topologien wie hierin gezeigt beschränkt. Je nach dem benötigten Ausmaß an Fehlertoleranz des Systems, wo Fehlertoleranz benötigt wird, und der Topologie der Bushierarchie oder des Busnetzwerks, kann die Platzierung des oder der Sicherheitsknoten variieren.
  • Hierarchie/Netzwerk von Zwischenverbindungsbussegmenten und Sicherheitsknoten
  • Der Sicherheitsknoten kann in dem prozessorbasierten System innerhalb einer Vielzahl von Hierarchien oder Netzwerktopologien vorgesehen werden. Bei einem Beispiel kann ein Sicherheitsknoten Transaktionen von einem von mehreren Mastern vor dem Sicherheitsknoten zu einem oder mehreren Slaves hinter dem Sicherheitsknoten arbitrieren. 3 ist ein vereinfachtes Schemadiagramm, das eine beispielhafte Zwischenverbindungsbushierarchie oder ein beispielhaftes Zwischenverbindungsbusnetzwerk mit einem Sicherheitsknoten zeigt, gemäß einigen Ausführungsformen der Offenbarung. Bei diesem Beispiel enthält das prozessorbasierte System einen Master 302, einen Master 304, einen Slave 306, einen Slave 308, einen Slave 310, einen Slave 312, einen Slave 314, einen Slave 316 und einen Slave 318.
  • Wenngleich in diesem Beispiel eine gewisse Anzahl an Slaves gezeigt ist, wird in Betracht gezogen, dass andere Anzahlen an Slaves innerhalb dieser Architektur und Hierarchie vorgesehen werden können.
  • Das Bussegment 320a verschaltet den Master 302 und seinen (lokalen) Slave 306 und Slave 308. Das Bussegment 320b verschaltet den Master 304 und seinen (lokalen) Slave 310 und Slave 312. Das Bussegment 320c verschaltet den Sicherheitsknoten 322, den Slave 314, den Slave 316 und den Slave 318. In dieser Darstellung besitzt der Sicherheitsknoten 322 einen vorgeschalteten Abschnitt, der mit zwei Bussegmenten koppelt (Bussegment 320a und 320b). Weiterhin dient der Sicherheitsknoten 322 als alleiniger Master von Slave 314, Slave 316 und Slave 318.
  • Bei dieser Hierarchie/diesem Netzwerk ist der Master 302 ein Master des Bussegments 320a und kann Transaktionen an den Slave 306 und den Slave 308 ohne Störung von anderen Mastern oder dem Sicherheitsknoten 322 austeilen. Der Master 302 ist jedoch nicht durch den Sicherheitsknoten 322 vor Fehlern im Slave 306 und Slave 308 geschützt. Analog ist der Master 304 ein Master des Bussegments 320b und kann Transaktionen an den Slave 310 und den Slave 312 ohne Störung von anderen Mastern oder dem Sicherheitsknoten 322 austeilen. Der Master 304 ist jedoch nicht durch den Sicherheitsknoten 322 vor Fehlern im Slave 306 und im Slave 308 geschützt. Falls entweder der Master 302 oder 304 eine Transaktion an den Slave 314, den Slave 316 und den Slave 318 auf dem Bussegment 320c austeilen möchte, muss die Transaktion zuerst durch den Sicherheitsknoten 322 gehen. Auf diese Weise kann der Sicherheitsknoten 322, wie hierin beschrieben, arbeiten, um entweder den Master 302 oder den Master 304 vor auf dem Bussegment 320c, dem Slave 314, dem Slave 316 und dem Slave 318 auftretenden Fehlern zu schützen (Fehler hinter dem Sicherheitsknoten 322).
  • Unter Erweiterung der in 3 dargestellten Topologie wird eine ”verschachtelte” Zwischenverbindungshierarchie oder ein komplexeres Zwischenverbindungsbusnetzwerk in Betracht gezogen, das veranschaulicht, dass die Funktionalität des Sicherheitsknotens erweiterbar ist. Eine ”verschachtelte” Hierarchie kann gestatten, dass ein oder mehrere Sicherheitsknoten hinter einem anderen Sicherheitsknoten platziert werden, oder gestatten, dass ein Sicherheitsknoten hinter einem oder mehreren Sicherheitsknoten platziert wird. 4 ist ein vereinfachtes Schemadiagramm, das eine weitere beispielhafte Zwischenverbindungsbushierarchie oder ein weiteres beispielhaftes Zwischenverbindungsbusnetzwerk mit mehreren Sicherheitsknoten zeigt, gemäß einigen Ausführungsformen der Offenbarung. Das Beispiel von 4 veranschaulicht, dass die Sicherheitsknoten auf beliebige geeignete Weise innerhalb einer Zwischenverbindungsbushierarchie/eines Zwischenverbindungsbusnetzwerks vorgesehen werden können, um z. B. Fehlertoleranzanforderungen zu erfüllen. Durch den Einsatz mehrerer Sicherheitsknoten können verschiedene Sicherheitszonen in einer Zwischenverbindungsbushierarchie/einem Zwischenverbindungsbusnetzwerk vorgesehen werden und die Abschottung des Systems kann gefördert werden. Die Sicherheitszonen können dabei helfen, Fehler innerhalb eines Systems zu isolieren, und/oder verhindern, dass sich Fehler zu anderen Teilen der Zwischenverbindungsbushierarchie/des Zwischenverbindungsbusnetzwerks ausbreiten, und erhöht die Mindestsystemverfügbarkeit eines fehlertoleranten Systems.
  • Bei diesem Beispiel enthält das prozessorbasierte System einen Master 402, einen Master 404, einen Master 406, einen Slave 408, einen Slave 410, einen Slave 412, einen Slave 414, einen Slave 416, einen Slave 418, einen Slave 420, einen Slave 422, einen Slave 424, einen Slave 426, einen Slave 428, einen Slave 430, einen Slave 432, einen Slave 434, einen Sicherheitsknoten 436, einen Sicherheitsknoten 438 und einen Sicherheitsknoten 440.
  • Das Bussegment 442a verschaltet den Master 402 und seinen (lokalen) Slave 408 und Slave 410. Das Bussegment 442b verschaltet den Master 404 und seinen (lokalen) Slave 412 und den Slave 414. Das Bussegment 442c verschaltet den Master 406 und seinen (lokalen) Slave 416 und Slave 418. Bei dieser Hierarchie kann ein Master (der ein Master des Bussegments ist, an dem er angeschlossen ist) Transaktionen an seine lokalen Slaves ohne Störung von anderen Mastern oder den Sicherheitsknoten im System austeilen. Dieser Master ist jedoch nicht vor Fehlern in diesem Bussegment und seinen lokalen Slaves geschützt.
  • Falls in dieser Hierarchie der Master 402 oder der Master 404 eine Transaktion an irgendeinen Slave hinter dem Sicherheitsknoten 436 ausgeben soll (z. B. Slave 420, Slave 422, Slave 430, Slave 432 und Slave 434), muss die Transaktion zuerst durch den Sicherheitsknoten 436 gehen. Für durch den Master 402 oder den Master 404 an irgendeinen (Ziel-)Slave hinter dem Sicherheitsknoten 440 (z. B. Slave 430, Slave 432 und Slave 434) auszugebende Transaktionen muss die Transaktion zuerst durch den Sicherheitsknoten 436 gehen, dann durch den Sicherheitsknoten 440, bevor sie den (Ziel-)Slave erreicht. Auf diese Weise werden der Master 402 und der Master 404 durch den Sicherheitsknoten 436 vor hinter dem Sicherheitsknoten 436 auftretenden Fehlern geschützt (d. h. im Bussegment 442d, Slave 420, Slave 422). Weil der Sicherheitsknoten 440 hinter dem Sicherheitsknoten 436 vorliegt, sind auch der Master 402 und der Master 404 (durch den Sicherheitsknoten 436 und den Sicherheitsknoten 440) vor Fehlern geschützt, die nachgeschaltet in irgendeinem der Folgenden auftreten: dem Sicherheitsknoten 440, dem Bussegment 442f, dem Slave 430, dem Slave 432 und dem Slave 434.
  • Falls der Master 404 oder der Master 406 eine Transaktion an irgendeinen Slave hinter dem Sicherheitsknoten 438 ausgeben soll (z. B. Slave 424, Slave 426 und Slave 428), muss die Transaktion zuerst durch den Sicherheitsknoten 438 gehen. Auf diese Weise sind der Master 404 und der Master 406 durch den Sicherheitsknoten 438 vor Fehlern geschützt, die hinter dem Sicherheitsknoten 438 auftreten (d. h. im Bussegment 442e, Slave 424, Slave 426 und Slave 428).
  • Bei einer alternativen Ausführungsform besitzt der Sicherheitsknoten 440 einen vorgeschalteten Teil, der mit dem Bussegment 442e gekoppelt ist. Diese Topologie würde es dem Master 404 und dem Master 406 ermöglichen, über den Sicherheitsknoten 440 mit dem Slave 430, mit dem Slave 432 und dem Slave 434 zu kommunizieren. Weiterhin würde der Sicherheitsknoten 440 (als der einzige Master von Slave 430, Slave 432 und Slave 434) den Master 404 und den Master 406 vor Fehlern schützen, die hinter dem Sicherheitsknoten 440 auftreten. Dies zeigt noch eine weitere von vielen möglichen Ausführungsformen, bei denen die Sicherheitsknoten innerhalb einer Zwischenverbindungsbushierarchie/innerhalb eines Zwischenverbindungsbusnetzwerks platziert werden können, um eine gewünschte Fehlertoleranz im System bereitzustellen.
  • Verfahrensüberblick
  • 5 ist ein vereinfachtes Flussdiagramm, das eine Prozedur zum Überwachen und Überleben einer Zeitabschaltung auf einem Zwischenverbindungsdatenbus darstellt, gemäß einigen Ausführungsformen der Offenbarung. Insbesondere wird das Verfahren zum Überwachen und Überleben einer Zeitabschaltung auf einem Zwischenverbindungsdatenbus durch einen Sicherheitsknoten, wie etwa dem Sicherheitsknoten von 1, durchgeführt. Der Sicherheitsknoten kann einen vorgeschalteten Teil, der mit einem vorgeschalteten Abschnitt einer Bushierarchie/eines Busnetzwerks gekoppelt ist, die bzw. das mit einem oder mehreren Mastern verbunden sind, und einen nachgeschalteten Teil, der mit einem nachgeschalteten Abschnitt der Bushierarchie/des Busnetzwerks gekoppelt ist, die bzw. das mit einem oder mehreren Slaves verbunden sind, enthalten.
  • Das Verfahren beinhaltet das Weiterleiten einer ersten Transaktion von einem ersten Master an dem vorgeschalteten Abschnitt zu einem ersten Slave auf dem nachgeschalteten Abschnitt (Kasten 502). Der Sicherheitsknoten, der zwischen dem vorgeschalteten Abschnitt und dem nachgeschalteten Abschnitt eingefügt ist, dient zum Weiterleiten von Transaktionen und Antworten, die zwischen Mastern und Slaves ausgetauscht werden.
  • Der Sicherheitsknoten überwacht den Zwischenverbindungsdatenbus (Kasten 504), um zu bestimmen, ob der erste Slave nicht innerhalb einer Zeitabschaltungsperiode antwortet (z. B. prüft in der Raute 506 auf die Zeitabschaltungsbedingung hin). Beispielsweise lauscht der Sicherheitsknoten auf dem nachgeschalteten Abschnitt auf eine Antwort von dem ersten Slave.
  • Bei einigen Ausführungsformen besitzt der Sicherheitsknoten ein Zeitabschaltungsmonitorregister, um anzuzeigen, ob der Sicherheitsknoten aktiviert oder nicht aktiviert ist, um die Zeitabschaltung auf dem Zwischenverbindungsdatenbus zu überwachen (oder ob der Zeitabschaltungsmonitor des Sicherheitsknotens aktiviert oder nicht aktiviert ist). Dementsprechend kann der Sicherheitsknoten den Zwischenverbindungsdatenbus auf der Basis des Zustands überwachen, der durch das Zeitabschaltungsmonitorregister angezeigt wird.
  • Bei einigen Ausführungsformen wird die Länge der Zeitabschaltungsperiode durch ein programmierbares Zeitabschaltungszählregister des Sicherheitsknotens konfiguriert. Ein Takt für das Herunterzählen der Zeitabschaltungsperiode kann mit dem Zeitabschaltungsmonitor bereitgestellt werden, um einen Zeitgeber für die Zeitabschaltungsperiode bereitzustellen. Die Zeitabschaltungsperiode kann bezüglich der Anzahl an Taktzyklen definiert werden (z. B. einem Wert, der in einem Zeitabschaltungszählregister gespeichert ist).
  • Eine konfigurierbare Zeitabschaltungsperiode zu haben, ist aus mehreren Gründen vorteilhaft. Beispielsweise kann der Zeitabschaltungszähler programmiert werden, eine Zeit darzustellen, die länger ist als die längste, auf dem Bus erwartete normale Latenz, aber kürzer als die kleinste erforderliche Systemantwortzeit auf eine Fehlerbedingung. Dieser Wert kann von System zu System variieren, und es ist wertvoll, ihn unter der Steuerung des Benutzers zu haben. Bei einem weiteren Beispiel kann die Hardware den Zeitabschaltungszähler mit einem von mehreren programmierbaren Werten initialisieren, wobei die Wahl von der Art des Masters oder des adressierten Slave abhängt, als Beispiel, eine längere Zeitabschaltung für eine langsame Einrichtung und eine kürzere Zeitabschaltung für eine schnellere Einrichtung. Die Anzahl an programmierbaren Registeroptionen ist prinzipiell nicht beschränkt.
  • Falls der erste Slave innerhalb der Zeitabschaltungsperiode antwortet (”NEIN, ANTW. ERH.” Pfeil von Raute 506), stellt der Sicherheitsknoten einen ordnungsgemäßen und normalen Betrieb sicher durch Weiterleiten der Antwort an den ersten Master (Kasten 508).
  • Falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet (oder keine Antwort beobachtet worden ist) (”JA”-Pfeil von Raute 506), kann eines oder mehrere der Folgenden eintreten, um anzuzeigen, dass der Sicherheitsknoten (oder der Zwischenverbindungsdatenbus) in einen Zeitabschaltungszustand eingetreten ist oder einen Zeitabschaltungsfehler beobachtet hat. Bei einigen Ausführungsformen stellt der Sicherheitsknoten den Wert eines Zeitabschaltungsinterruptregisters ein, um anzuzeigen, dass ein Zeitabschaltungsinterruptsignal aktiv ist (Kasten 510). Bei einigen Ausführungsformen generiert oder erhöht der Sicherheitsknoten das Zeitabschaltungsinterruptsignal (z. B. zusätzlich zu dem Einstellen des Werts des Zeitabschaltungsinterruptregisters). Bei einigen Ausführungsformen stellt der Sicherheitsknoten den Wert eines Zeitabschaltungsfehlerregisters ein, um anzuzeigen, dass auf dem Zwischenverbindungsdatenbus eine Zeitabschaltung eingetreten ist (Kasten 510).
  • Falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode nicht antwortet (oder keine Antwort beobachtet worden ist) (”JA”-Pfeil von Raute 506), überträgt der Sicherheitsknoten eine im Voraus bestimmte Antwort (Fehler- oder Dummy-Antwort) an den ersten Master oder löst sie aus, damit der erste Master die erste Transaktion fertigstellen kann (Kasten 512). Dies stellt sicher, dass unter dem Gesichtspunkt des ersten Masters die erste Transaktion ”fertiggestellt wird”, obwohl die erste Transaktion eine im Voraus bestimmte Antwort empfangen hat.
  • Falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet (oder keine Antwort beobachtet worden ist), übernimmt zudem der Sicherheitsknoten die Rolle des ersten Masters und wartet von Seiten des ersten Masters auf eine Antwort (Kasten 514). Insbesondere hält der Sicherheitsknoten die erste Transaktion in dem nachgeschalteten Abschnitt, indem er darauf wartet, dass der erste Slave antwortet. Mit anderen Worten überlebt der Sicherheitsknoten nach der Zeitabschaltung (wird nicht zurückgesetzt). Dieser Überlebensaspekt, dass der Sicherheitsknoten die erste Transaktion im nachgeschalteten Abschnitt hält, kann beinhalten, dass darauf gewartet wird, dass der erste Slave auf die erste Transaktion antwortet, bis entweder (1) der erste Slave auf die erste Transaktion antwortet (”JA, ANTW. ERH.”-Pfeil von Raute 516) oder (2) der Bus zurückgesetzt wird (”JA”-Pfeil von Raute 518).
  • Nachdem der Sicherheitsknoten in den Zeitabschaltungszustand eingetreten ist, kann der Sicherheitsknoten über den vorgeschalteten Teil, der mit dem vorgeschalteten Abschnitt des Zwischenverbindungsdatenbusses koppelt, eine zweite Transaktion von dem zweiten Master auf dem vorgeschalteten Abschnitt (oder andere Transaktionen von anderen Mastern) empfangen. Um weitere Fehler zu verhindern und einen fortgesetzten Betrieb des Systems sicherzustellen, kann der Sicherheitsknoten z. B. unter Verwendung des Zeitabschaltungsmonitors (über den vorgeschalteten Teil oder irgendeine andere Schnittstelle mit dem zweiten Master) eine im Voraus bestimmte (Dummy-)Antwort (z. B. einschließlich einer oder mehrerer von Fehler-, Teil-, normaler und/oder Seitenband-Interrupt-Antwort) als Reaktion auf die zweite Transaktion (oder beliebige andere nachfolgende Transaktionen, die an die Slaves ausgegeben werden) an den zweiten Master übertragen oder auslösen (Kasten 512). Dies gestattet, dass der Sicherheitsknoten diese nachgeschalteten Transaktionen in Anwesenheit eines Zeitabschaltungsfehlers zurückweist.
  • Nachdem der Sicherheitsknoten in den Zeitabschaltungszustand eingetreten ist, falls der Sicherheitsknoten eine erste Antwort auf die erste Transaktion über den nachgeschalteten Teil empfängt, der mit dem nachgeschalteten Abschnitt des Zwischenverbindungsdatenbusses koppelt (”JA, ANTW. ENTH.”-Pfeil von Raute 516), meldet der Sicherheitsknoten die Antwort (Kasten 520) an den ersten Master. Da das Busprotokoll eine und nur eine Antwort pro Transaktion gestattet, kann der Sicherheitsknoten dem ersten Master die Antwort auf eine Weise außerhalb des Busprotokolls melden, z. B. durch einen Interrupt und/oder durch ein Statusbit in einem Register, die anzeigen, dass das nachgeschaltete Bussegment zurückgewonnen worden ist. Die empfangene Antwort kann in einem Register für die nachfolgende Untersuchung durch den ersten Master erfasst werden.
  • Zudem kann der Sicherheitsknoten Register löschen, um anzuzeigen, dass sich der Sicherheitsknoten nicht länger in einem Zeitabschaltungszustand befindet. Bei einigen Ausführungsformen setzt der Sicherheitsknoten als Reaktion auf das Empfangen der ersten Antwort das Zeitabschaltungsinterruptregister zurück (Kasten 522). Bei einigen Ausführungsformen setzt der Sicherheitsknoten ein Zeitabschaltungsinterruptregister zurück, um das Zeitabschaltungsinterruptsignal zu löschen (Kasten 522), wobei das Zeitabschaltungsinterruptregister anzeigt, ob das Zeitabschaltungsinterruptsignal aktiv ist. Bei einigen Ausführungsformen setzt der Sicherheitsknoten als Reaktion auf das Empfangen der ersten Antwort das Zeitabschaltungsfehlerregister zurück (Kasten 522).
  • Wenn sich der Sicherheitsknoten im Zeitabschaltungszustand befindet, wird die ausstehende Transaktion durch eine im Voraus bestimmte Dummy-Antwort auf der Masterseite beendet. Danach arbeiten Bustransaktionen auf dem Bussegment vor dem Sicherheitsknoten wie normal. Alle anderen neuen Master-Schnittstellentransaktionen, die hinter dem Sicherheitsknoten ausgegeben werden (d. h. durch den Sicherheitsknoten gehen), empfangen sofort eine Fehlerantwort. Falls eine verspätete Slave-Antwort empfangen wird, wird ein Zeitabschaltungsfehlerregister gelöscht und der Master wird außerhalb des Busprotokolls benachrichtigt.
  • Man beachte, dass, falls die Zeitabschaltungstransaktion ein Schreiben ist, es eine potentielle Fehlanpassung zwischen der Master- und Slave-Ansicht der Transaktion gibt. Der Master empfängt einen Fehler am Ende der Zeitabschaltungsperiode, während der Slave das Schreiben möglicherweise fertigstellt, nachdem die Zeitabschaltungsperiode abläuft. Diese potentielle Fehlanpassung muss mit Vorsicht gelöst werden. Es gibt mehrere Wege, um diese Situation zu handhaben. Bei einem Beispiel kann der Master, falls er eine Schreib-Transaktion versucht, aber eine Fehlerantwort empfängt, nun eine Fehlerbehandlungsroutine ausführen. Die Anwendung sollte annehmen, dass das Ergebnis des Schreibens unbestimmt ist, und eine entsprechende Aktion ergreifen, um das System zu schützen. Falls bei einem weiteren Beispiel das Schreiben nach dem Zeitabschaltungsfehler später fertiggestellt wird, kann der Sicherheitsknoten eine Interrupt- oder Statusanzeige (Bit in einem Register) verwenden, um den einleitenden Master zu benachrichtigen. Die Behandlungsroutine für diese Anzeige kann dann eine Diagnose- oder Korrekturaktion ergreifen, um den aktuellen Zustand des Systems zu bestimmen und um eine angemessene Aktion zu ergreifen, um das System zu schützen. Man beachte, dass keine dieser Fehlerhandhabungsroutinen in Systemen ohne den hierin beschriebenen Sicherheitsknoten möglich sind, weil das normale Busprotokoll erfordert, dass der vorgeschaltete Master ewig wartet.
  • Es wird angemerkt, dass das Verfahren, wie in Relation zu der in 5 gezeigten Anordnung beschrieben, nicht beschränkend sein soll. Verschiedene Teile des Verfahrens können außerhalb der Reihenfolge oder parallel ausgeführt werden und/oder durch andere geeignete Implementierungen des Verfahrens ersetzt werden.
  • Sicherheitsknoten-Steuerregister
  • 6 ist ein Diagramm, das ein beispielhaftes Steuerregister eines Sicherheitsknotens darstellt, gemäß einigen Ausführungsformen der Offenbarung. Insbesondere stellt diese Figur einen Satz von beispielhaften Registern dar, die zum Steuern des Sicherheitsknotens verwendet werden (”SICHERHEITSKNOTEN-STEUERREGISTER”). Der Satz von Registern enthält 32 Bits, doch können je nach der Anwendung und den Bedürfnissen eine andere Anzahl an Bits verwendet werden. Typischerweise werden diese Steuerbits durch eine zur Systeminitialisierungszeit auf den Mastern (Prozessoren) laufende Software konfiguriert. Das relevanteste Steuerregister für die vorliegende Offenbarung ist das Zeitabschaltungsmonitorregister 602 (”TOMON”, um anzuzeigen, ob die Zeitabschaltungsüberwachungsfunktion des Sicherheitsknotens aktiviert oder nicht aktiviert ist). Wenn in diesem Beispiel der Wert ”1” beträgt, ist der Zeitabschaltungsmonitor aktiviert, und wenn der Wert ”0” beträgt, ist der Zeitabschaltungsmonitor nicht aktiviert. Wenn das Zeitabschaltungsmonitorregister gesetzt ist (z. B. ein 1-Bit-Register bei Position 20, zum Speichern des Steuerbits bestimmt), werden Bustransaktionen auf dem nachgeschalteten Segment des Zwischenverbindungsdatenbusses auf einen Zeitabschaltungsfehler hin überwacht.
  • Andere Steuerregister können ein oder mehrere Register beinhalten, um Folgendes zu ermöglichen: Zugriffsschutzregistersperren, Schreibschutzregistersperren, Schutzverletzungsinterrupt-Aktivierung, Globalsperrenfeld [Global Lock Field] usw.
  • Sicherheitsknoten-Statusregister
  • 7 ist ein Diagramm, das ein beispielhaftes Statusregister eines Sicherheitsknotens darstellt, gemäß einigen Ausführungsformen der Offenbarung. Insbesondere stellt diese Figur einen Satz von beispielhaften Registern dar, die zum Anzeigen verschiedener Status des Sicherheitsknotens verwendet werden (”SICHERHEITSKNOTEN-STATUSREGISTER”). Der Satz von Registern enthält 32 Bits, doch kann je nach der Anwendung und den Notwendigkeiten eine andere Anzahl an Bits verwendet werden. Die relevantesten Steuerregister für die vorliegende Offenbarung sind das Zeitabschaltungsinterruptregister 702 (”TIRQ (W1C)”, um anzuzeigen, ob das Zeitabschaltungsinterruptsignal aktiv oder inaktiv ist, Schreiben-Eins-Löschen) und das Zeitabschaltungsfehlerregister 704 (”TOERR (RO)”, um anzuzeigen, ob auf dem Zwischenverbindungsdatenbus eine Zeitabschaltung eingetreten ist, mit Nur-Lesen).
  • Wenn das Zeitabschaltungsinterruptregister (z. B. ein 1-Bit-Register an Position 13, die zum Speichern des Statusbits bestimmt ist) als aktiv gesetzt ist, zeigt der Wert ”1” an, dass eine Zeitabschaltungsverletzung detektiert worden ist und ein Zeitabschaltungsinterruptsignal gesetzt worden ist (oder aktiv ist). Wenn das Zeitabschaltungsinterruptregister als inaktiv gesetzt ist oder zurückgesetzt worden ist, zeigt der Wert ”0” an, dass eine Zeitabschaltungsverletzung nicht länger vorliegt und das Zeitabschaltungsinterruptsignal nicht aktiv ist. Zeitabschaltungsinterruptsignale des Sicherheitsknotens können durch Setzen des Statusbits des Zeitabschaltungsinterruptregisters mit Schreib-Eins-gelöscht werden.
  • Wenn das Zeitabschaltungsfehlerregister (z. B. ein 1-Bit-Register an Position 29, die zum Speichern des Statusbits bestimmt ist) als aktiv gesetzt ist, zeigt der Wert ”1” an, dass auf dem Zwischenverbindungsdatenbus eine Zeitabschaltung aufgetreten ist. Das Zeitabschaltungsfehlerregister wird nur gelesen, und ein Wert von ”1” oder ein aktiver Wert zeigt an, dass eine Zeitabschaltungstransaktion abläuft. Dieses Statusbit wird (selbst) gelöscht oder zurückgesetzt, wenn nach dem Ablaufen der Zeitabschaltungsperiode eine späte Antwort detektiert wird.
  • Andere Steuerregister können ein oder mehrere Register beinhalten zum Anzeigen des Status von: Sperrschreibfehler, Adressfehler, Globalsperrstatus, Verletzungsinterrupt usw.
  • Sicherheitsknoten-Zeitabschaltungsregister
  • 8 ist ein Diagramm, das ein beispielhaftes Zeitabschaltungszählerregister eines Sicherheitsknotens darstellt, gemäß einigen Ausführungsformen der Offenbarung. Ein Vorteil des Sicherheitsknotens ist die Programmierbarkeit der Zeitabschaltungsperiode. Die Länge der Zeitabschaltungsperiode kann durch den Wert in dem Zeitabschaltungszählregister 802 eingestellt werden. Bei diesem Beispiel können die Zeitabschaltungszählerregister 32 Bits enthalten, doch kann eine andere Anzahl an Bits verwendet werden. 16 Bits (Positionen 0 bis 15 des Zählerregisters) in diesem Beispiel sind zum Speichern eines Zeitabschaltungszählwerts reserviert. Das Zeitabschaltungszählregister ermöglicht dem System, die Länge der Zeitabschaltungsperiode z. B. bezüglich Anzahl von Taktzyklen usw. zu programmieren.
  • Falls bei einigen Ausführungsformen das Zeitabschaltungsmonitorregister anzeigt, dass der Sicherheitsknoten aktiviert ist, wird ein Interrupt generiert (TIRQ), wenn der Zielendpunkt nicht vor Ablauf des Zeitabschaltungszählers antwortet. Falls das Zeitabschaltungszählregister einen Wert von ”0” besitzt, wird kein Zeitabschaltungsinterruptsignal generiert. Ein Lesen aus dem Zeitabschaltungszählregister liefert den programmierten Wert zurück. Ein aktueller Zählwert steht nicht für das Lesen zur Verfügung.
  • Anwendungen und Varianten des Systems und der Verfahren
  • Die hierin beschriebenen Sicherheitsknoten besitzen breite Anwendbarkeit in vielen Arten von Systemen, wo eine Fehlertoleranz erwünscht ist. Beispielsweise können Sicherheitsknoten in einem On-Chip-System zwischen zwei (oder mehr) Teilsystemen platziert werden, wobei Teilsysteme die Operationen oder den Zustand voneinander überwachen können (die beiden Teilsysteme können asymmetrisch oder symmetrisch sein). Indem ein Sicherheitsknoten zwischen diesen Teilsystemen platziert wird, kann ein Schutz für ein Teilsystem vor Fehlern bereitgestellt werden, die in dem anderen Teilsystem auftreten, während die beiden Teilsysteme miteinander kommunizieren können. Ohne die Verwendung von Sicherheitsknoten würde ein Systemdesigner normalerweise die beiden Teilsysteme daran hindern müssen, miteinander zu kommunizieren, um eine Fehlertoleranz bereitzustellen, was die Funktionen des Systems stark einschränken kann.
  • Mehrere Teilsysteme, die eine gute Fehlertoleranz erfordern, findet man oft in sicherheitskritischen Anwendungen wie etwa (solaren) Photovoltaikwechselrichtersystemen und Motorsteuersystemen. Beispielsweise können funktionale Sicherheitsziele Photovoltaikwechselrichtersystemen auferlegt werden, die einen Sicherheitsmechanismus erfordern, der einen ordnungsgemäßen Betrieb des Systems (oder zumindestens eines Teils des Systems) während der Anwesenheit einer gewissen Anzahl an Hardwarefehlern sicherstellt (was eine von null verschiedene fehlertolerante Anzahl erfordert). Im Beispiel eines Solarpaneelenwechselrichters kann der Hauptsteuerprozessor/-master viele Echtzeitaufgaben ausführen, während er dafür verantwortlich ist, Kilowatt an Energie herum zu bewegen. Falls ein Fehler vorliegt, kann sich der Fehler zu anderen Teilen des Systems ausbreiten. Industrierichtlinien können erfordern, dass der Solarpaneelenwechselrichter gewisse Sicherheitsanforderungen erfüllt, wo der Wechselrichter das System abschalten oder die Kapazität im Fall eines Hardwareausfalls reduzieren muss. Beispielsweise muss möglicherweise ein Relais getrennt werden, falls ein Fehler detektiert wird. Der Sicherheitsknoten kann eine erhebliche Nützlichkeit bereitstellen, indem eine Blockierung oder ein Stillstand vermieden werden und den Mastern ermöglicht wird, ordnungsgemäß zu reagieren (durch Durchführen einer Abhilfemaßnahme im Fall eines Hardwarefehlers).
  • Allgemein gesprochen müssen diese sicherheitskritischen Systeme das Versagen eines Teils des Systems bis zu einem gewissen Prozentsatz an Abdeckung überleben können und eine allerletzte Sicherheitsoperation zum Schützen der Umgebung, von Menschen, von Eigentum, von Gerät usw. durchführen können. Herkömmliche Systeme könnten versuchen, eine Fehlertoleranz bereitzustellen durch Isolieren aller Peripheriegeräte von anderen Teilen des Systems, um das Ausbreiten von Fehlern zu anderen Teilen des Systems zu verhindern. Solche Systeme besitzen jedoch sehr wenig Nützlichkeit, weil moderne/komplexe Elektroniksysteme es Teilsystemen selten gestatten, isoliert unabhängig zu arbeiten. Falls Sicherheitsknoten verwendet werden, gestattet das Gesamtsystem effektiv die gesteuerte gemeinsame Nutzung von Peripheriegeräten und Kommunikation unter Mastern und Slaves, während die gewünschte Fehlertoleranz bereitgestellt wird.
  • Sicherheitsknoten gestatten dem System, sicher auszufallen, indem ein Master gewarnt wird, dass eine Zeitabschaltungsbedingung aufgetreten ist, durch Übertragen oder Auslösen einer im Voraus bestimmten (Dummy-/Fehler-)Antwort und Aktivieren eines Masters, um eine Fehlerhandhabungsprozedur zu beginnen. Sicherheitsknoten können den Vorteil liefern, dass gestattet wird, dass zwei Teilsysteme kommunizieren, während eine Fehlerisolation aufrechterhalten wird, und ein ausfallsicheres System bereitstellen. Die Sicherheitsknoten verwendende Systeme können sich von Hardwarefehlern erholen (d. h. sie besitzen einen hohen Grad an Überlebensfähigkeit), während sie den Vorzug besitzen, die beiden Systeme zu verschalten.
  • Ein weiterer Vorteil ist die Fähigkeit, Sicherheitsknoten in einer Zwischenverbindungsbushierarchie/einem Zwischenverbindungsbusnetzwerk zu verwenden, um den Anteil gemeinsam verursachter Ausfälle (GVA – CCF – Common Cause Failures) des Busses zu reduzieren. Wenn mehrere Teilsysteme (oder Prozessoren) vorliegen, kann es eine Anzahl von GVAs geben, die die mehreren Systeme zur gleichen Zeit aufgrund der zwischen den Teilsystemen gemeinsam verwendeten Logik beeinflussen können. Sicherheitsknoten können die Interoperabilität erhöhen, während der GVA-Anteil des Systems reduziert wird, weil die durch Sicherheitsknoten bereitgestellte Isolation verhindern kann, dass Fehler gleichzeitig mehrere Master beeinflussen (wodurch der GVA-Beitrag reduziert wird).
  • Zu Industriezweigen, die von der Anwendbarkeit der durch die Offenbarung in Betracht gezogenen Sicherheitsknoten stark profitieren können, zählen: Kraftfahrzeug, Motorsteuerindustrie, Energieübertragung und -verteilung, Solarsysteme, unterbrechungsfreie Stromversorgungen, Gesundheitswesen, Transportwesen, Versorgungsbetriebe, Infrastruktur, Luftfahrt usw.
  • Innerhalb des Kontexts der Offenbarung und der Ansprüche schließen der Ausdruck ”Bushierarchie” und der Ausdruck ”Busnetzwerk” beide Zwischenverbindungsbusse ein, die in einer Baumstruktur konfiguriert sind (wo keine Schleifen existieren) und Zwischenverbindungsbusse als ein Netzwerk konfiguriert sind (wo eine oder mehrere Schleifen existieren können).
  • In den Erörterungen der obigen Ausführungsformen können die Komponenten ohne weiteres ausgetauscht, substituiert oder anderweitig modifiziert werden, um bestimmte Schaltungsanordnungsnotwendigkeiten zu berücksichtigen. Zudem sei angemerkt, dass die Verwendung von komplementären Elektronikeinrichtungen, Hardware, Software usw. eine gleichermaßen durchführbare Option zum Implementieren der Lehren der vorliegenden Offenbarung anbieten.
  • Bei einem Ausführungsbeispiel kann eine beliebige Anzahl von Schaltungen der 14 auf einer Platine einer assoziierten Elektronikeinrichtung implementiert werden. Die Platine kann eine allgemeine Leiterplatte sein, die verschiedene Komponenten des internen Elektroniksystems der Elektronikeinrichtung halten und zudem Verbinder für andere Peripheriegeräte bereitstellen kann. Insbesondere kann die Platine die elektrischen Verbindungen bereitstellen, durch die die anderen Komponenten des Systems elektrisch kommunizieren können. Beliebige geeignete Prozessoren (einschließlich digitaler Signalprozessoren, Mikroprozessoren, unterstützender Chipsätze usw.), computerlesbare nicht-vorübergehende Speicherelemente usw., können geeignet an die Platine auf der Basis bestimmter Konfigurationsnotwendigkeiten, Verarbeitungsanforderungen, Computerdesigns usw. gekoppelt sein. Andere Komponenten wie etwa externe Speicherung, zusätzliche Sensoren, Controller für Audio-/Videodisplay und Peripherieeinrichtungen können an der Platine als Einsteckkarten und über Kabel angebracht oder in die Platine selbst integriert sein.
  • Bei einem weiteren Ausführungsbeispiel können die elektrischen Schaltungen der Figuren als unabhängige Module implementiert sein (z. B. eine Einrichtung mit assoziierten Komponenten und Schaltungsanordnung, konfiguriert zum Durchführen einer spezifischen Anwendung oder Funktion) oder als Einsteckmodule in applikationsspezifischer Hardware von Elektronikeinrichtungen implementiert sein. Man beachte, dass bestimmte Ausführungsformen der vorliegenden Offenbarung ohne weiteres in einem System-on-Chip-Package (SOC-Package) entweder teilweise oder ganz enthalten sein können. Ein SOC stellt einen IC dar, der Komponenten eines Computers oder eines anderen Elektroniksystems auf einem einzelnen Chip integriert. Er kann digitale, analoge, Mischsignal- und oftmals Hochfrequenzfunktionen enthalten: Alle können auf einem einzelnen Chipsubstrat vorgesehen sein. Andere Ausführungsformen können ein Mehrchipmodul (MCM) enthalten, wobei sich mehrere separate ICs innerhalb eines einzelnen Elektronikpackage befinden und konfiguriert sein, durch das Elektronikpackage eng miteinander zu interagieren. Bei verschiedenen anderen Ausführungsformen können die Verstärkungsfunktionalitäten in einem oder mehreren Siliziumkernen in applikationsspezifischen integrierten Schaltungen (ASICs), feldprogrammierbaren Gatearrays (FPGAs) und anderen Halbleiterchips implementiert werden.
  • Es ist auch wichtig anzumerken, dass alle die Spezifikationen, Abmessungen und Beziehungen, die hier umrissen sind (z. B. die Anzahl an Prozessoren, Logikoperationen usw.) lediglich zu Zwecken des Beispiels und der Lehre angeboten worden sind. Solche Informationen können erheblich verändert werden, ohne von dem Gedanken der vorliegenden Offenbarung oder dem Schutzbereich der beigefügten Ansprüche abzuweichen. Die Spezifikationen gelten nur für ein nicht beschränkendes Beispiel, und dementsprechend sollten sie derart ausgelegt werden. In der obigen Beschreibung wurden Ausführungsbeispiele unter Bezugnahme auf bestimmte Prozessor- und/oder Komponentenanordnungen beschrieben. An solchen Ausführungsformen können verschiedene Modifikationen und Änderungen vorgenommen werden, ohne von dem Schutzbereich der beigefügten Ansprüche abzuweichen. Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden statt in einem restriktiven Sinne anzusehen.
  • Man beachte, dass die oben unter Bezugnahme auf die Figuren (wie etwa 5) erörterten Aktivitäten sich auf alle integrierten Schaltungen anwenden lassen, die eine prozessorbasierte Elektronik mit einem Zwischenverbindungsbus zwischen Mastern und Slaves beinhalten, insbesondere jene, die spezialisierte Softwareprogramme oder Algorithmen in einer sicherheitskritischen Anwendung ausführen können, von denen einige mit der Verarbeitung digitalisierter Echtzeitdaten assoziiert sein können. Gewisse Ausführungsformen können die Mehr-Datenspeicher-Signalverarbeitung, Fließkommaverarbeitung, Signal-/Steuerverarbeitung, Verarbeitung mit fester Funktion, Mikrocontrolleranwendungen usw. betreffen.
  • In gewissen Kontexten können die hierin erörterten Merkmale auf medizinische Systeme, wissenschaftliche Instrumentation, drahtlose und verdrahtete Kommunikationen, Radar, industrielle Prozesssteuerung, Audio- und Videogerät, Stromerfassung, Instrumentierung (die hochpräzise sein kann) und andere Systeme auf der Basis digitaler Verarbeitung anwendbar sein. Anwendungen des Sicherheitsknotens der vorliegenden Offenbarung können Kraftfahrzeugtechnologien für Sicherheitssysteme beinhalten (z. B. Fahrdynamikregelsysteme, Fahrerassistenzsysteme, Bremssysteme, Infotainment und innere Anwendungen beliebiger Art).
  • Man beachte, dass bei den hierin vorgelegten zahlreichen Beispielen eine Interaktion bezüglich zwei, drei, vier oder mehr elektrischen Komponenten beschrieben werden kann. Dies ist jedoch lediglich zum Zweck der Deutlichkeit und des Beispiels geschehen. Es versteht sich, dass das System auf beliebige geeignete Weise konsolidiert werden kann. Zusätzlich zu ähnlichen Designalternativen können beliebige der dargestellten Komponenten, Module und Elemente der Figuren in verschiedenen möglichen Konfigurationen kombiniert werden, die alle eindeutig innerhalb des breiten Schutzbereichs dieser Patentschrift liegen. In bestimmten Fällen kann es leichter sein, eine oder mehrere der Funktionalitäten eines gegebenen Satzes von Flüssen nur durch Referenzieren einer begrenzten Anzahl elektrischer Elemente zu beschreiben. Es versteht sich, dass die elektrischen Schaltungen von 1 und ihre Lehren ohne weiteres skaliert werden können und eine große Anzahl von Komponenten berücksichtigen kann, sowie kompliziertere/ausgeklügeltere Anordnungen und Konfigurationen. Dementsprechend sollten die bereitgestellten Beispiele den Schutzbereich nicht beschränken oder die breiten Lehren der elektrischen Schaltungen, wie sie potentiell auf eine Unmenge anderer Architekturen angewendet werden, nicht blockieren.
  • Man beachte, dass in dieser Patentschrift Bezugnahmen auf verschiedene Merkmale (z. B. Elemente, Strukturen, Module, Komponenten, Schritte, Operationen, Charakteristika usw.), die in ”einer einzigen Ausführungsform”, ”einem Ausführungsbeispiel”, ”einer Ausführungsform”, ”einer weiteren Ausführungsform”, ”einigen Ausführungsformen”, ”verschiedenen Ausführungsformen”, ”weiteren Ausführungsformen”, ”einer alternativen Ausführungsform” und dergleichen bedeuten sollen, dass beliebige derartige Merkmale in einer oder mehreren Ausführungsformen der vorliegenden Offenbarung enthalten sind, aber möglicherweise nicht in den gleichen Ausführungsformen kombiniert sind. Zahlreiche andere Änderungen, Substitutionen, Variationen, Abänderungen und Modifikationen können durch einen Fachmann ermittelt werden, und es ist beabsichtigt, dass die vorliegende Offenbarung alle solche Änderungen, Substitutionen, Variationen, Abänderungen und Modifikationen als in den Schutzbereich der beigefügten Ansprüche fallend einschließt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEC 61508 mit dem Titel ”Funktionale Sicherheit sicherheitsbezogener elektrischer/elektronischer/programmierbarer elektronischer Systeme” [0015]
    • ISO 26262 mit dem Titel ”Straßenfahrzeuge – funktionale Sicherheit” [0015]

Claims (20)

  1. Sicherheitsknoten zum Überwachen und Überleben einer Zeitabschaltung an einem Zwischenverbindungsdatenbus, wobei der Sicherheitsknoten Folgendes umfasst: einen vorgeschalteten Teil, der mit einem vorgeschalteten Abschnitt eines mit einem oder mehreren Mastern verbundenen Busnetzwerks koppelt; und einen nachgeschalteten Teil, der mit einem nachgeschalteten Abschnitt des mit einem oder mehreren Slaves verbundenen Busnetzwerks koppelt; wobei der Sicherheitsknoten konfiguriert ist zum: Weiterleiten einer ersten Transaktion von einem ersten Master an dem vorgeschalteten Abschnitt zu einem ersten Slave an dem nachgeschalteten Abschnitt; Überwachen des Zwischenverbindungsdatenbusses, um zu bestimmen, ob der erste Slave nicht innerhalb einer Zeitabschaltungsperiode antwortet; und falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet, Übertragen einer im Voraus bestimmten Antwort an den ersten Master, damit der erste Master die erste Transaktion fertigstellen kann.
  2. Sicherheitsknoten nach Anspruch 1, wobei der Sicherheitsknoten weiterhin konfiguriert ist zum: falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet, Halten der ersten Transaktion in dem nachgeschalteten Abschnitt durch Warten darauf, dass der erste Slave antwortet.
  3. Sicherheitsknoten nach Anspruch 1 oder 2, wobei der Sicherheitsknoten weiterhin Folgendes umfasst: ein Zeitabschaltungsmonitorregister zum Anzeigen, ob der Sicherheitsknoten aktiviert oder nicht aktiviert ist, um eine Zeitabschaltung an dem Zwischenverbindungsdatenbus zu überwachen.
  4. Sicherheitsknoten nach einem vorhergehenden Anspruch, wobei der Sicherheitsknoten weiterhin Folgendes umfasst: ein Zeitabschaltungsinterruptregister, um anzuzeigen, ob ein Zeitabschaltungsinterruptsignal aktiv oder inaktiv ist.
  5. Sicherheitsknoten nach einem vorhergehenden Anspruch, wobei der Sicherheitsknoten weiterhin Folgendes umfasst: ein Zeitabschaltungsfehlerregister, um anzuzeigen, ob eine Zeitabschaltung an dem Zwischenverbindungsdatenbus erfolgt ist.
  6. Sicherheitsknoten nach einem vorhergehenden Anspruch, wobei der Sicherheitsknoten weiterhin Folgendes umfasst: ein Zeitabschaltungszählregister zum Einstellen einer programmierbaren Länge der Zeitabschaltungsperiode.
  7. Sicherheitsknoten nach einem vorhergehenden Anspruch, wobei der Sicherheitsknoten weiterhin konfiguriert ist zum, falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet: Empfangen, über den vorgeschalteten Teil, einer zweiten Transaktion von einem zweiten Master an dem vorgeschalteten Abschnitt; und Übertragen einer im Voraus bestimmten Fehlerantwort zu dem zweiten Master als Reaktion auf die zweite Transaktion.
  8. Sicherheitsknoten nach einem vorhergehenden Anspruch, wobei der Sicherheitsknoten eine maximale Anzahl von einem Fehler auf dem Zwischenverbindungsdatenbus toleriert.
  9. Verfahren zum Überwachen und Überleben einer Zeitabschaltung an einem Zwischenverbindungsdatenbus durch einen Sicherheitsknoten, wobei der Sicherheitsknoten Folgendes umfasst: einen vorgeschalteten Teil, der mit einem vorgeschalteten Abschnitt eines mit einem oder mehreren Mastern verbundenen Busnetzwerks koppelt, und einen nachgeschalteten Teil, der mit einem nachgeschalteten Abschnitt des mit einem oder mehreren Slaves verbundenen Busnetzwerks koppelt, wobei das Verfahren Folgendes umfasst: Weiterleiten einer ersten Transaktion von einem ersten Master an dem vorgeschalteten Abschnitt zu einem ersten Slave an dem nachgeschalteten Abschnitt; Überwachen des Zwischenverbindungsdatenbusses, um zu bestimmen, ob der erste Slave nicht innerhalb einer Zeitabschaltungsperiode antwortet; und falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet, Übertragen einer im Voraus bestimmten Antwort an den ersten Master, damit der erste Master die erste Transaktion fertigstellen kann.
  10. Verfahren nach Anspruch 9, das weiterhin Folgendes umfasst: falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet, Halten der ersten Transaktion in dem nachgeschalteten Abschnitt durch Warten darauf, dass der erste Slave antwortet.
  11. Verfahren nach Anspruch 9 oder 10, weiterhin umfassend, falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet: Empfangen, über den vorgeschalteten Teil, einer zweiten Transaktion von einem zweiten Master an den vorgeschalteten Abschnitt; und Übertragen einer im Voraus bestimmten Fehlerantwort zu dem zweiten Master als Reaktion auf die zweite Transaktion.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei die Länge der Zeitabschaltungsperiode durch ein programmierbares Zeitabschaltungszählregister des Sicherheitsknotens konfiguriert wird.
  13. Verfahren nach einem der Ansprüche 9 bis 12, weiterhin umfassend, falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet: Einstellen des Werts eines Zeitabschaltungsinterruptregisters, um anzuzeigen, dass ein Zeitabschaltungsinterruptsignal aktiv ist.
  14. Verfahren nach Anspruch 13, das weiterhin nach der Zeitabschaltungsperiode Folgendes umfasst: Empfangen einer ersten Antwort auf die erste Transaktion über den nachgeschalteten Teil; als Reaktion auf das Empfangen der ersten Antwort, Rücksetzen des Zeitabschaltungsinterruptregisters.
  15. Verfahren nach einem der Ansprüche 9 bis 14, weiterhin umfassend, falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet: Generieren eines Zeitabschaltungsinterruptsignals.
  16. Verfahren nach Anspruch 15, das weiterhin nach der Zeitabschaltungsperiode Folgendes umfasst: Empfangen einer ersten Antwort auf die erste Transaktion über den nachgeschalteten Teil; als Reaktion auf das Empfangen der ersten Antwort, Rücksetzen des Zeitabschaltungsinterruptregisters, um das Zeitabschaltungsinterruptsignal zu löschen, wobei das Zeitabschaltungsinterruptregister anzeigt, ob das Zeitabschaltungsinterruptsignal aktiv ist.
  17. Verfahren nach einem der Ansprüche 9 bis 11, weiterhin umfassend, falls der erste Slave nicht innerhalb der Zeitabschaltungsperiode antwortet: Einstellen des Werts eines Zeitabschaltungsfehlerregisters, um anzuzeigen, dass eine Zeitabschaltung an dem Zwischenverbindungsdatenbus aufgetreten ist.
  18. Verfahren nach Anspruch 17, das weiterhin nach der Zeitabschaltungsperiode Folgendes umfasst: Empfangen einer ersten Antwort auf die erste Transaktion über den nachgeschalteten Teil; als Reaktion auf das Empfangen der ersten Antwort, Rücksetzen des Zeitabschaltungsfehlerregisters.
  19. Verfahren nach Anspruch 10 oder nach einem von Anspruch 10 abhängigen Anspruch, wobei das Halten der ersten Transaktion in dem nachgeschalteten Abschnitt durch Warten, dass der erste Slave antwortet, Folgendes umfasst: Warten darauf, dass der erste Slave auf die erste Transaktion antwortet, bis entweder (1) der erste Slave auf die erste Transaktion antwortet oder (2) der Bus zurückgesetzt wird.
  20. System, das Folgendes umfasst: mindestens einen ersten Master und einen zweiten Master; einen oder mehrere Slaves; einen Zwischenverbindungsdatenbus, der einen mit mindestens dem ersten Masterprozessor und dem zweiten Masterprozessor verbundenen vorgeschalteten Abschnitt und einen mit dem einen oder den mehreren Slaves verbundenen nachgeschalteten Abschnitt umfasst; und einen Sicherheitsknoten nach einem der Ansprüche 1 bis 8.
DE102015108689.1A 2014-06-10 2015-06-02 Sicherheitsknoten in Zwischenverbindungsdatenbussen Active DE102015108689B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462010014P 2014-06-10 2014-06-10
US62/010,014 2014-06-10
US14/717,894 2015-05-20
US14/717,894 US9804942B2 (en) 2014-06-10 2015-05-20 Safety node in interconnect data buses

Publications (2)

Publication Number Publication Date
DE102015108689A1 true DE102015108689A1 (de) 2015-12-10
DE102015108689B4 DE102015108689B4 (de) 2023-03-30

Family

ID=54549021

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015108689.1A Active DE102015108689B4 (de) 2014-06-10 2015-06-02 Sicherheitsknoten in Zwischenverbindungsdatenbussen

Country Status (3)

Country Link
US (1) US9804942B2 (de)
CN (1) CN105279438B (de)
DE (1) DE102015108689B4 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3321814A1 (de) * 2016-11-10 2018-05-16 NXP USA, Inc. Verfahren und vorrichtung zur handhabung offener verbindungstransaktionen
CN109582634A (zh) * 2017-09-29 2019-04-05 三星电子株式会社 总线系统

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921715B2 (en) 2014-01-27 2024-03-05 Microstrategy Incorporated Search integration
US10255320B1 (en) 2014-01-27 2019-04-09 Microstrategy Incorporated Search integration
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
US10095759B1 (en) 2014-01-27 2018-10-09 Microstrategy Incorporated Data engine integration and data refinement
US9952894B1 (en) * 2014-01-27 2018-04-24 Microstrategy Incorporated Parallel query processing
JP2016036944A (ja) * 2014-08-06 2016-03-22 シャープ株式会社 画像形成装置
WO2016207933A1 (ja) * 2015-06-22 2016-12-29 株式会社日立製作所 フィールドプログラマブルゲートアレイ
JP6600518B2 (ja) * 2015-09-28 2019-10-30 ルネサスエレクトロニクス株式会社 バスシステム
CN106921547B (zh) * 2017-01-25 2020-05-08 华为技术有限公司 管理设备的装置和方法
US10846318B1 (en) 2017-04-18 2020-11-24 Microstrategy Incorporated Natural language visualizations
US10437773B2 (en) * 2017-12-05 2019-10-08 Marvell World Trade Ltd. SPI devices with multi-master capabilities
US11126578B2 (en) * 2017-12-18 2021-09-21 Intel Corporation Mobile broadband interface model (MBIM) with timeout mechanism
US11195050B2 (en) 2019-02-05 2021-12-07 Microstrategy Incorporated Machine learning to generate and evaluate visualizations
US11614970B2 (en) 2019-12-06 2023-03-28 Microstrategy Incorporated High-throughput parallel data transmission
US11567965B2 (en) 2020-01-23 2023-01-31 Microstrategy Incorporated Enhanced preparation and integration of data sets
CN113190400B (zh) * 2021-04-19 2022-11-04 思澈科技(上海)有限公司 一种适用于ahb协议的总线监控模块与监控方法
US20220335003A1 (en) * 2021-04-19 2022-10-20 Advanced Micro Devices, Inc. Master-Slave Communication with Subdomains

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003029997A1 (en) 2001-09-27 2003-04-10 Koninklijke Philips Electronics N.V. Bus system and bus interface
US8825804B2 (en) * 2005-01-26 2014-09-02 International Business Machines Corporation Method and system for avoiding an unintentional time-out for communications in a client-proxy-server environment
US7917719B2 (en) * 2006-12-04 2011-03-29 Sandisk Corporation Portable module interface with timeout prevention by dummy blocks
US8725946B2 (en) * 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
CN103064817B (zh) 2012-12-21 2015-04-15 桂林电子科技大学 一种简化两线式串行数据总线传输方法
EP2869201B1 (de) * 2013-09-11 2017-12-06 Huawei Technologies Co., Ltd. Fehlerisolierungsverfahren, computersystem und vorrichtung
US9910817B2 (en) * 2014-03-04 2018-03-06 Black Diamond Video, Inc. Apparatus, system, and method for allowing USB devices to communicate over a network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEC 61508 mit dem Titel "Funktionale Sicherheit sicherheitsbezogener elektrischer/elektronischer/programmierbarer elektronischer Systeme"
ISO 26262 mit dem Titel "Straßenfahrzeuge - funktionale Sicherheit"

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3321814A1 (de) * 2016-11-10 2018-05-16 NXP USA, Inc. Verfahren und vorrichtung zur handhabung offener verbindungstransaktionen
US10318466B2 (en) 2016-11-10 2019-06-11 Nxp Usa, Inc. Method and apparatus for handling outstanding interconnect transactions
CN109582634A (zh) * 2017-09-29 2019-04-05 三星电子株式会社 总线系统
CN109582634B (zh) * 2017-09-29 2024-02-20 三星电子株式会社 总线系统

Also Published As

Publication number Publication date
CN105279438B (zh) 2018-06-08
US9804942B2 (en) 2017-10-31
US20150355989A1 (en) 2015-12-10
DE102015108689B4 (de) 2023-03-30
CN105279438A (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
DE102015108689B4 (de) Sicherheitsknoten in Zwischenverbindungsdatenbussen
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
DE102015103220B4 (de) System, umfassend ein Master-Sicherheitsprüfungsregister, Verfahren, Nichtflüchtiges Medium und maschinenlesbare Anweisungen
DE112010001469B4 (de) Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen
DE102013209058B4 (de) Steuern einer fehlertoleranten Gruppe von Wandlern
DE102016109363A1 (de) Host-port für serielle periphere schnittstellen
EP2909721A1 (de) Schnittstelle zum datenaustausch zwischen redundant ausgeführten programmen zur kraftfahrzeugsteuerung
DE102014002181B4 (de) Chip und Verfahren zum Betreiben eines Chips
WO2016102055A2 (de) Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente
EP2962207A1 (de) Verfahren und schaltungsanordnung für kontrollierte zugriffe auf slave-einheiten in einem ein-chip-system
DE102012009513A1 (de) Multifunktionaler Kontroller für einen Satelliten
DE102013113262A1 (de) Auslöser-Leitwegeinheit
DE102015113281A1 (de) System und Verfahren zur Steuerung wenigstens eines Leistungsstellers, insbesondere für ein Luftfahrzeug
EP3186710B1 (de) Mikrocontrollersystem und verfahren für sicherheitskritische kraftfahrzeugsysteme sowie deren verwendung
DE102017204691B3 (de) Steuervorrichtung zum redundanten Ausführen einer Betriebsfunktion sowie Kraftfahrzeug
EP3655876B1 (de) Ein-chip-system, verfahren zum betrieb eines ein-chip-systems und kraftfahrzeug
DE102015201278B4 (de) Steuersystem
DE102016109387A1 (de) Ein-Chip-System mit Taktverwaltungseinheit und Verfahren zum Betreiben des Ein-Chip-Systems
DE102019111623A1 (de) Lenksteuerapparat und lenksteuerverfahren und lenksystem
DE102021209687A1 (de) Cloudrechner zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion eines Kraftfahrzeugs und Verfahren zum Betreiben eines Cloudrechners
EP3469484B1 (de) Datenübertragung zwischen signaltechnisch sicheren recheneinheiten
DE102021129703A1 (de) Anwendungsorientierter angemessener überstromschutz für multi-buchsen-plattformen
US9378102B1 (en) Safety hardware and/or software fault tolerance using redundant channels
DE102016109298A1 (de) Debug-Trigger-Schnittstelle für ein Nicht-Debug-Domänen-Systemrücksetzen
WO2016087175A1 (de) Rechensystem für ein kraftfahrzeugsystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB, DE

R082 Change of representative

Representative=s name: WITHERS & ROGERS LLP, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012260000

Ipc: H04L0043000000

R081 Change of applicant/patentee

Owner name: ANALOG DEVICES, INC., WILMINGTON, US

Free format text: FORMER OWNER: ANALOG DEVICES, INC., NORWOOD, MASS., US

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0043000000

Ipc: H04L0043060000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final