DE102017123054A1 - Verfahren und System zur System-On-Chip-Integritätsverifizierung - Google Patents

Verfahren und System zur System-On-Chip-Integritätsverifizierung Download PDF

Info

Publication number
DE102017123054A1
DE102017123054A1 DE102017123054.8A DE102017123054A DE102017123054A1 DE 102017123054 A1 DE102017123054 A1 DE 102017123054A1 DE 102017123054 A DE102017123054 A DE 102017123054A DE 102017123054 A1 DE102017123054 A1 DE 102017123054A1
Authority
DE
Germany
Prior art keywords
soc
register values
execution
controller
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017123054.8A
Other languages
English (en)
Inventor
Sumit Khandelwal
Varun Kumar
Puneetha Mukherjee
Sandeep Naduvalamane
Juergen Schaefer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102017123054A1 publication Critical patent/DE102017123054A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

Verfahren und Systeme zur Überprüfung der Integrität eines System-On-Chip (SOC) sind beschrieben. Das SOC kann eine Steuerung und ein oder mehr Register beinhalten. (Ein) Registerwert(e) von dem/den Register(n) kann/können zu einer ersten Zeit erhalten werden, um einen ersten Satz von Registerwerten zu erzeugen. (Ein) Prozess(e) des SOC wird/werden zu einer zweiten Zeit nach der ersten Zeit ausgeführt. Registerwerte können wieder von den Registern zu einer dritten Zeit nach der zweiten Zeit erhalten werden, um einen zweiten Satz von Registerwerten zu erzeugen. Der erste Satz von Registerwerten kann mit dem zweiten Satz von Registerwerten verglichen werden. Basierend auf dem Vergleich kann ein Betriebsmodus des SOC angepasst werden. Das SOC-Integritätsverifizierungssystem und -verfahren können in (einer) Sicherheits- und/oder Überwachungsanwendung(en), wie etwa ASIL-Anwendungen, verwendet werden. Zum Beispiel können das System und Verfahren in teilweise oder vollständig autonomen (selbstfahrenden) Kraftfahrzeugssystemen verwendet werden.

Description

  • Hier beschriebene Ausführungsformen betreffen allgemein das Gebiet von Systemintegritätsverifizierungsverfahren und -vorrichtungen, einschließlich Integritätsverifizierungen während des Anlaufens und/oder der Laufzeit.
  • Die unabhängigen Ansprüche definieren allgemeine Ausführungsformen gemäß der Erfindung in verschiedenen Aspekten. Die abhängigen Ansprüche geben Merkmale von Ausführungsbeispielen gemäß der Erfindung in verschiedenen Aspekten wieder.
  • Die begleitenden Zeichnungen, die hier vollständig aufgenommen sind und einen Teil der Beschreibung bilden, veranschaulichen die Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung ferner dazu, die Prinzipien der Ausführungsformen zu erklären und einem Fachmann die Fertigung und Verwendung der Ausführungsformen zu ermöglichen. Die Zeichnungen/Figuren werden nun kurz beschrieben.
  • 1 veranschaulicht ein System-On-Chip (SOC – Einchipsystem) gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
  • 2 veranschaulicht ein SOC-Integritätsverifizierungssystem gemäß Ausführungsbeispielen der vorliegenden Offenbarung.
  • 3 veranschaulicht einen Beispielbetrieb eines SOC-Integritätsverifizierungssystems gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
  • 4 veranschaulicht einen Beispielbetrieb eines SOC-Integritätsverifizierungssystems gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
  • 5 veranschaulicht ein Flussdiagramm eines Integritätsverifizierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
  • 6 veranschaulicht ein beispielhaftes Computersystem gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
  • Die Ausführungsbeispiele der vorliegenden Offenbarung werden unter Bezugnahme auf die begleitenden Zeichnungen beschrieben. Die Zeichnung, in der ein Element zuerst auftaucht, ist typischerweise durch die Ziffer(n) ganz links in der entsprechenden Bezugszahl angegeben.
  • In der folgenden ausführlichen Beschreibung werden zahlreiche spezielle Einzelheiten dargelegt, um ein eingehendes Verständnis der Ausführungsformen der vorliegenden Offenbarung bereitzustellen. Jedoch wird es für einen Fachmann ersichtlich, dass die Ausführungsformen einschließlich Strukturen, Systemen und Verfahren ohne diese speziellen Einzelheiten umgesetzt werden können. Die vorliegende Beschreibung und Repräsentation sind das übliche Mittel, das von Fachleuten verwendet wird, um den Inhalt ihrer Arbeit an andere Fachleute höchst effektiv zu vermitteln. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht ausführlich beschrieben, um die Ausführungsformen dieser Offenbarung nicht unnötig unklar zu machen.
  • Als eine Übersicht wird während des Anlaufens (auch als Boot-Up bezeichnet) eines System-On-Chip (SOC), wie etwa eines Mikrocontrollers, und vor einer Anwendungssoftwareausführung eine Anlaufsoftware ausgeführt. Die Anlaufsoftware steht allgemein in Bezug zu der Hardware eines assoziierten Systems, wie etwa einer oder mehr Peripherievorrichtungen, die mit dem Mikrocontroller verbunden sind. Aufgrund von Änderungen des Mikrocontrollerstatus während des Ausführens der Anlaufsoftware kann eine später ausgeführte Anwendungssoftware negativ beeinflusst werden. Die Änderungen des Mikrocontrollerstatus können zum Beispiel Änderungen von Steuer- und Statusregistern des Mikrocontrollers beinhalten.
  • Der Status des Mikrocontrollers kann hinsichtlich Direktauswirkung-Flags oder -registern verifiziert werden. Bei einem oder mehr Ausführungsbeispielen können indirekte Auswirkungen verifiziert werden, indem ein oder mehr Register, wie etwa Spezialfunktionsregister (SFR: Special Function Register), überprüft werden und bei manchen oder allen Ausführungsformen werden alle SFRs überprüft. Zum Beispiel können die SFRs überprüft werden, um zu verifizieren, dass die SFRs in ihre entsprechenden erwarteten Werte wiederhergestellt wurden, um Anwendungsprobleme mit später ausgeführter Anwendungssoftware zu reduzieren und/oder zu vermeiden. Im Betrieb können die SFRs mit einer oder mehr Peripherievorrichtungen assoziiert sein, die mit dem SOC (z. B. einem Mikrocontroller) verbunden sind (und durch diesen gesteuert werden). Die SFRs können verwendet werden, um die assoziierten Peripherievorrichtungen zu konfigurieren. Zum Beispiel kann ein SFR dazu konfiguriert sein, die Datenrate für Kommunikationen zwischen dem SOC und der entsprechenden Peripherievorrichtung zu definieren. Die Verifizierung der SFRs kann zusätzlich zu oder als eine Alternative zu einem oder mehr eingebauten Speicherselbsttests (MBIST: Memory Built-In Self-Test) und/oder eingebauten Logikselbsttests (LBIST – Logic Built-In Self-Test) sein. Ferner kann die Integrität der SFRs verwendet werden, um die Verifizierung von zum Beispiel ASIL-Anwendungen (ASIL: Automotive Safety Integrity Level – Kraftfahrzeugsicherheitsintegritätsniveau) zu unterstützen.
  • 1 veranschaulicht ein System-On-Chip (SOC) 100 gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Das SOC 100 kann eine Steuerung 115, eine oder mehr Speichereinheiten 135 und ein oder mehr Register 120.1 bis 120.M beinhalten. Das SOC 100 kann mit einer oder mehr Peripherievorrichtungen 130.1 bis 130.N verbunden sein. Bei einem Ausführungsbeispiel ist das SOC 100 ein Mikrocontroller, ist aber nicht darauf beschränkt. Der Speicher 135 kann ein beliebiger wohlbekannter flüchtiger und/oder nichtflüchtiger Speicher sein, der Daten und/oder Anweisungen speichert, einschließlich zum Beispiel eines Nurlesespeichers (ROM), Direktzugriffsspeichers (RAM), Flash-Speichers, eines Magnetspeichermediums, einer optischen Disc, eines löschbaren programmierbaren Nurlesespeichers (EPROM) und eines programmierbaren Nurlesespeichers (PROM). Der Speicher kann festverbaut, austauschbar oder eine Kombination von beidem sein. Obwohl dies nicht veranschaulicht ist, kann das SOC 100 bei einem oder mehr Ausführungsbeispielen eine oder mehr (interne) Peripherievorrichtungen innerhalb des SOC 100 zusätzlich zu oder als eine Alternative zu den Peripheriegeräten 130.1 bis 130.N beinhalten.
  • Bei einem Ausführungsbeispiel sind das eine oder die mehreren der Register 120 ein Spezialfunktionsregister (SFR). Eines oder mehr der Register 120 können mit einer entsprechenden der Peripherievorrichtungen 130 assoziiert sein und die Register 120 können dazu konfiguriert sein, einen oder mehr Parameter der entsprechenden Peripherievorrichtungen 130 zu definieren. Zum Beispiel kann der Registerwert des Registers 120.1 eine Datenrate zwischen dem SOC 100 und der Peripherievorrichtung 130 definieren. Bei einem anderen Beispiel kann der Registerwert des Registers 120.1 zum Beispiel den Peripherienamen, die Seriennummer, die Hardwareversion, die Softwareversion, die Firmwareversion und/oder einen oder mehr Parameter definieren, wie ein Durchschnittsfachmann verstehen würde. Bei einem Ausführungsbeispiel, bei dem das SOC 100 ein oder mehr interne Peripheriegeräte beinhaltet, kann das SOC 100 ein oder mehr entsprechende Register 120 beinhalten, die mit den internen Peripheriegeräten assoziiert sind.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, einen oder mehr Integritätsverifizierungsvorgänge zum Überprüfen der Integrität des SOC 100 durchzuführen. Bei einem Ausführungsbeispiel kann die Steuerung 115 eine Prozessorschaltungsanordnung beinhalten, die dazu konfiguriert ist, den einen oder die mehreren Integritätsverifizierungsvorgänge durchzuführen, um die Integrität des SOC 100 zu überprüfen.
  • Die Steuerung 115 kann dazu konfiguriert sein, den/die Integritätsverifizierungsvorgang/-vorgänge während des Anlaufens und/oder der Laufzeit des SOC 100 durchzuführen. Zum Beispiel kann die Steuerung 115 die Integrität des SOC 100 während des Anlaufens (auch als Boot-Up bezeichnet) des SOC 100 und vor einer Anwendungssoftwareausführung überprüfen. Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, die Integrität des SOC 110 zu überprüfen, nachdem Anlaufsoftware ausgeführt wurde, aber vor der Ausführung von Softwareanwendungen. Im Betrieb kann die Steuerung 115 dazu konfiguriert sein, Statusänderungen des SOC 100 während (und infolge) der Ausführung der Anlaufsoftware zu bestimmen. Die Änderungen des Status des SOC 100 können zum Beispiel Änderungen von Steuer- und Statusregistern des SOC 100 beinhalten. Durch das Bestimmen von Statusänderungen des SOC 100 können mögliche negative Auswirkungen auf später ausgeführte Anwendungssoftware von Statusänderungen des SOC 100 reduziert und/oder aufgehoben werden.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, entsprechende Registerwerte von einem oder mehr der Register 120.1 bis 120.N zu erhalten. Die Steuerung 115 kann die Registerwerte aus den Registern 120 lesen und die Registerwerte in einem oder mehr Speichern 135 des SOC 100 speichern. Bei manchen Ausführungsformen beinhaltet die Steuerung 115 einen oder mehr interne Speicher und kann dazu konfiguriert sein, die Registerwerte in dem einen oder den mehreren internen Speichern zusätzlich zu oder als eine Alternative zu dem Speicher 135 zu speichern.
  • Bei einem beispielhaften Aspekt kann die Steuerung 115 die Registerwerte vor dem Ausführen von einem oder mehr Anlaufvorgängen des SOC 100, einschließlich einer oder mehr Anlaufanwendungen, erhalten. Bei diesem Beispiel können diese Registerwerte als Vor-Ausführung-Registerwerte bezeichnet werden. Bei der vorliegenden Offenbarung können Anwendungen ein Computerprogramm mit einer oder mehr Anweisungen beinhalten, die, wenn sie durch eine entsprechende Steuerung 115 ausgeführt werden, die Steuerung 115 dazu steuern, eine oder mehr Funktionen der entsprechenden Anwendung durchzuführen.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, einen oder mehr Sätze von Registerwerten basierend auf einem oder mehr der erhaltenen Registerwerte zu erzeugen. Der/die Satz/Sätze von Registerwerten kann/können dann in dem Speicher 135 und/oder einem internen Speicher (oder Speichern) der Steuerung 115 gespeichert werden.
  • Anschließend an die Erfassung der Registerwerte (oder die Erzeugung des/der Satzes/Sätze von Registerwerten aus den erhaltenen Werten) kann die Steuerung 115 einen oder mehr Prozesse des SOC 100 ausführen, die einen oder mehr Anlaufvorgänge des SOC 100 (z. B. eine Ausführung der Anlaufsoftware) beinhalten können. Die Steuerung 115 kann mit Anweisungen zum Durchführen entsprechender Anlauffunktionen „festcodiert” sein oder kann dazu konfiguriert sein, auf einen internen Speicher der Steuerung 114 und/oder den Speicher 135 zuzugreifen, um darin gespeicherte Anweisungen abzurufen, die, wenn sie durch die Steuerung 115 ausgeführt werden, die entsprechenden Anlauffunktionen durchführen können.
  • Die Steuerung 115 kann auch dazu konfiguriert sein, wieder entsprechende Registerwerte von einem oder mehr der Register 120.1 bis 120.N zu erhalten. Die Steuerung 115 kann die Registerwerte aus den Registern 120 lesen und die Registerwerte in einem oder mehr Speichern 135 des SOC 100 und/oder einem internen Speicher der Steuerung 115 speichern. Bei einem beispielhaften Aspekt kann die Steuerung 115 die Registerwerte nach dem Ausführen von einem oder mehr Anlaufvorgängen des SOC 100, einschließlich einer oder mehr Anlaufanwendungen, erhalten. Bei diesem Beispiel können diese Registerwerte als Nach-Ausführung-Registerwerte bezeichnet werden.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, einen oder mehr zusätzliche Sätze von Registerwerten basierend auf den Nach-Ausführung-Registerwerten zu erzeugen. Der/die Satz/Sätze von Registerwerten kann/können dann in dem Speicher 135 und/oder einem internen Speicher (oder Speichern) der Steuerung 115 gespeichert werden. Bei diesem Beispiel kann dieser Satz von Registerwerten als Nach-Ausführung-Registerwert-Satz(-Sätze) bezeichnet werden.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, die Vor-Ausführung-Registerwerte/-sätze mit den Nach-Ausführung-Register-Werten/-sätzen zu vergleichen. Zum Beispiel kann die Steuerung 115 dazu konfiguriert sein, die Vor-Ausführung-Registerwerte/-sätze mit den Nach-Ausführung-Registerwerten/-sätzen zu vergleichen. Basierend auf dem Vergleich kann die Steuerung 115 dazu konfiguriert sein, Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu bestimmen.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, die Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu analysieren und zu bestimmen, ob die Steuerung 115 eine oder mehr Maßnahmen ergreifen sollte. Die Maßnahmen können zum Beispiel Ändern des Betriebsmodus des SOC 100 (z. B. Umschalten zu einem sicheren Modus), Durchführen einer Rücksetzung des SOC 100 (z. B. eines Power-On-Resets), Wiederherstellen von einem oder mehr Registern 120 zu einem vorbestimmten Wert (z. B. einem Standardwert), Erzeugen einer Warnung hinsichtlich des Unterschieds, der den Betrieb des SOC 100 beeinträchtigen kann, und/oder eine oder mehr andere Maßnahmen, wie ein Durchschnittsfachmann verstehen würde, beinhalten.
  • Die Steuerung 115 kann dazu konfiguriert sein, eine oder mehr Datenbanken der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und die Bestimmung beliebiger Unterschiede zwischen den Werten/Sätzen zu erzeugen, oder das SOC 100 zu deren Erzeugung zu steuern. Die Datenbank kann zum Beispiel Registernamen, Registeradressen (z. B. 0 × f0000000), Vor-Ausführung-Registerwerte, Nach-Ausführung-Registerwerte, einen oder mehr Indikatoren/Flags, die einen Unterschied zwischen den Vor-Ausführung- und Nach-Ausführung-Werten angeben, eine Analyse durch die Steuerung 115 und/oder durch einen oder mehr Benutzer des SOC 100, die von der Steuerung 115 und/oder durch den/die Benutzer des SOC 100 ergriffene(n) oder zu ergreifende(n) Maßnahme(n) und/oder einen oder mehr andere Parameter und/oder Informationen, wie ein Durchschnittsfachmann verstehen würde, beinhalten. Die Datenbank kann in einer oder mehr Speichereinheiten, wie etwa dem Speicher 135, gespeichert werden.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, einen Bericht basierend auf dem Vergleich der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze zu erzeugen. Der Bericht kann die Analyse der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und/oder der durch die Steuerung 115 ergriffene(n) oder zu ergreifenden) Maßnahme(n) beinhalten. Die Steuerung 115 kann dazu konfiguriert sein oder das SOC 100 dazu steuern, den erzeugten Bericht an eine oder mehr Komponenten des SOC 100 zu liefern, den Bericht an eine oder mehr externe Vorrichtungen (z. B. Peripherievorrichtungen 130) zu liefern, den Bericht über einb oder mehr Kommunikationsnetzwerke zu übertragen, das SOC 100 dazu zu steuern, den Bericht auf einer oder mehr Anzeigen anzuzeigen und/oder mit dem erzeugten Bericht eine oder mehr andere Maßnahmen zu ergreifen, wie ein Durchschnittsfachmann verstehen würde.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, eine Benachrichtigung zu erzeugen, oder das SOC 100 und/oder eine oder mehr externe Komponenten dazu zu steuern, die Benachrichtigung zu erzeugen, um Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Werten anzugeben. Die Benachrichtigung kann ein Signal an eine oder mehr andere Komponenten, um die Komponente(n) über den Unterschied zu benachrichtigen, ein hörbares Signal, ein sichtbares Signal oder eine andere Benachrichtigung beinhalten, wie ein Durchschnittsfachmann verstehen würde. Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, eine Anwendungssoftware des SOC 100 und/oder eine Anwendungssoftware von einer oder mehr externen Komponenten basierend auf einem oder mehr Unterschieden zwischen den Vor-Ausführung- und Nach-Ausführung-Werten zu benachrichtigen (und/oder das SOC 100 und/oder eine oder mehr externe Komponenten zum Benachrichtigen zu steuern).
  • 2 veranschaulicht ein System-On-Chip(SOC)-Integritätsverifizierungssystem 200 gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Das SOC-Integritätsverifizierungssystem 200 kann das SOC 100 beinhalten, das ähnlich dem unter Bezugnahme auf 1 besprochenen Ausführungsbeispiel dazu konfiguriert sein kann, sich mit einer oder mehr Peripherievorrichtungen 130 zu verbinden. Bei einem Ausführungsbeispiel ist der Auswerter 205 zum Beispiel als eine Verarbeitungseinrichtung (z. B. ein Prozessor) oder ein Computer (wie etwa ein unter Bezugnahme auf 6 beschriebenes Computersystem 600) implementiert, ist aber nicht darauf beschränkt.
  • Bei einem Ausführungsbeispiel beinhaltet das SOC-Integritätsverifizierungssystem 200 den Auswerter 205, der (drahtlos und/oder drahtgebunden) mit dem SOC 100 verbunden ist. Der Auswerter 205 kann eine Steuerung 210 und einen Speicher 220, der mit der Steuerung 210 verbunden ist, beinhalten. Der Speicher 220 kann ein beliebiger wohlbekannter flüchtiger und/oder nichtflüchtiger Speicher sein, der Daten und/oder Anweisungen speichert, einschließlich zum Beispiel eines Nurlesespeichers (ROM), Direktzugriffsspeichers (RAM), Flash-Speichers, eines Magnetspeichermediums, einer optischen Disc, eines löschbaren programmierbaren Nurlesespeichers (EPROM) und eines programmierbaren Nurlesespeichers (PROM). Der Speicher kann festverbaut, austauschbar oder eine Kombination von beidem sein.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, einen oder mehr Integritätsverifizierungsvorgänge zum Überprüfen der Integrität des SOC 100 durchzuführen. Bei einem Ausführungsbeispiel kann die Steuerung 210 eine Prozessorschaltungsanordnung beinhalten, die dazu konfiguriert ist, den einen oder die mehreren Integritätsverifizierungsvorgänge durchzuführen, um die Integrität des SOC 100 zu überprüfen.
  • Wie unter Bezugnahme auf 1 oben besprochen, kann die Steuerung 115 dazu konfiguriert sein, entsprechende Registerwerte von einem oder mehr der Register 120.1 bis 120.N zu erhalten. Die Steuerung 115 kann die Registerwerte aus den Registern 120 lesen und die Registerwerte in einem oder mehr Speichern 135 des SOC 100 und/oder einem oder mehr internen Speichern der Steuerung 115 speichern. Bei einem beispielhaften Aspekt kann die Steuerung 115 die Registerwerte (z. B. Vor-Ausführung-Registerwerte) vor dem Ausführen von einem oder mehr Anlaufvorgängen des SOC 100, einschließlich einer oder mehr Anlaufanwendungen, erhalten. Die Steuerung 115 kann einen oder mehr Sätze von Registerwerten basierend auf einem oder mehr der erhaltenen Registerwerte erzeugen.
  • Anschließend an die Erfassung der Registerwerte (oder die Erzeugung des/der Satzes/Sätze von Registerwerten aus den erhaltenen Werten) kann die Steuerung 115 einen oder mehr Prozesse des SOC 100 ausführen, die einen oder mehr Anlaufvorgänge des SOC 100 (z. B. eine Ausführung der Anlaufsoftware) beinhalten können. Die Steuerung 115 kann wieder entsprechende Registerwerte aus einem oder mehr der Register 120.1 bis 120.N (z. B. Nach-Ausführung-Registerwerte) erhalten (und speichern). Die Steuerung 115 kann dazu konfiguriert sein, einen oder mehr zusätzliche Sätze von Registerwerten basierend auf einem oder mehr der erhaltenen Registerwerte (z. B. Nach-Ausführung-Registerwertsatz/-sätze) zu erzeugen (und zu speichern). Bei einem Ausführungsbeispiel ist die Steuerung 210 des Auswerters 205 dazu konfiguriert, die Steuerung 115 dazu zu steuern, Registerwerte zu erhalten, und/oder einen oder mehr Prozesse des SOC 100 auszuführen.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, die Vor-Ausführung- und Nach-Ausführung-Registerwerte und/oder -Registerwertsätze an den Auswerter 205 zu liefern. Bei einem Ausführungsbeispiel kann der Auswerter 205 die Werte/Wertesätze von/aus dem SOC 100 erhalten/lesen. Der Auswerter 205 kann die Werte oder Wertesätze in dem Speicher 220 und/oder in einem oder mehr internen Speichern der Steuerung 210 speichern. Bei einem Ausführungsbeispiel ist die Verbindung zwischen dem SOC 100 und dem Auswerter 205 eine serielle Verbindung, eine USB(Universal Serial Bus)-Verbindung, eine Infrarotverbindung, eine Faseroptikverbindung, FireWire (IEEE 1394), eine eSATA-Verbindung, eine drahtgebundene und/oder drahtlose Netzwerkverbindung (z. B. WLAN, LAN, Ethernet) und/oder eine andere Verbindungsart, wie ein Durchschnittsfachmann verstehen würde.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, die Vor-Ausführung-Registerwerte mit den Nach-Ausführung-Register-Werten zu vergleichen. Zum Beispiel kann die Steuerung 210 dazu konfiguriert sein, den/die Vor-Ausführung-Registerwertsatz/-sitze mit dem/den Nach-Ausführung-Registerwertsatz/-sätzen zu vergleichen. Basierend auf dem Vergleich kann die Steuerung 210 dazu konfiguriert sein, Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu bestimmen.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, die Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu analysieren und zu bestimmen, ob die Steuerung 115 und/oder die Steuerung 210 eine oder mehr Maßnahmen ergreifen sollte. Die Maßnahmen können zum Beispiel Ändern des Betriebsmodus des SOC 100 (z. B. Umschalten zu einem sicheren Modus), Durchführen einer Rücksetzung des SOC 100 (z. B. eines Power-On-Resets), Wiederherstellen von einem oder mehr Registern 120 zu einem vorbestimmten Wert (z. B. einem Standardwert), Erzeugen einer Warnung hinsichtlich des Unterschieds, der den Betrieb des SOC 100 beeinträchtigen kann, und/oder eine oder mehr andere Maßnahmen, wie ein Durchschnittsfachmann verstehen wurde, beinhalten.
  • Die Steuerung 210 kann dazu konfiguriert sein, eine oder mehr Datenbanken der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und die Bestimmung beliebiger Unterschiede zwischen den Werten/Sätzen zu erzeugen, oder das SOC 100 (z. B. die Steuerung 115) zu deren Erzeugung zu steuern. Wie oben besprochen, kann die Datenbank zum Beispiel Registernamen, Registeradressen (z. B. 0 × f0000000), Vor-Ausführung-Registerwerte, Nach-Ausführung-Registerwerte, einen oder mehr Indikatoren/Flags, die einen Unterschied zwischen den Vor-Ausführung- und Nach-Ausführung-Werten angeben, eine Analyse durch die Steuerung 210, die Steuerung 115 und/oder durch einen oder mehr Benutzer des SOC 100, die von der Steuerung 210, der Steuerung 115 und/oder durch den/die Benutzer des SOC 100 ergriffene(n) oder zu ergreifende(n) Maßnahme(n) und/oder einen oder mehr andere Parameter und/oder Informationen, wie ein Durchschnittsfachmann verstehen würde, beinhalten. Die Datenbank kann in einer oder mehr Speichereinheiten, wie etwa dem Speicher 220 und/oder dem Speicher 135, gespeichert werden.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, einen Bericht basierend auf dem Vergleich der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze zu erzeugen. Der Bericht kann die Analyse der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und/oder der durch die Steuerung 210 und/oder die Steuerung 115 ergriffene(n) oder zu ergreifende(n) Maßnahme(n) beinhalten. Die Steuerung 210 kann dazu konfiguriert sein oder das SOC 100 dazu steuern, den erzeugten Bericht an eine oder mehr Komponenten des SOC 100 zu liefern, den Bericht an eine oder mehr externe Vorrichtungen (z. B. Peripherievorrichtungen 130) zu liefern, den Bericht über ein oder mehr Kommunikationsnetzwerke zu übertragen, den Bericht auf einer oder mehr Anzeigevorrichtungen anzuzeigen, das SOC 100 dazu zu steuern, den Bericht auf einer oder mehr Anzeigen anzuzeigen und/oder eine oder mehr andere Maßnahmen mit dem erzeugten Bericht zu ergreifen, wie ein Durchschnittsfachmann verstehen würde.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, eine Benachrichtigung zu erzeugen, oder das SOC 100 und/oder eine oder mehr externe Komponenten dazu zu steuern, die Benachrichtigung zu erzeugen, um Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Werten anzugeben. Die Benachrichtigung kann ein Signal an eine oder mehr andere Komponenten, um die Komponente(n) über den Unterschied zu benachrichtigen, ein hörbares Signal, ein sichtbares Signal oder eine andere Benachrichtigung beinhalten, wie ein Durchschnittsfachmann verstehen würde.
  • Bei einem Ausführungsbeispiel können die Steuerung 210 und die Steuerung 115 kooperativ arbeiten, um einen oder mehr Integritätsverifizierungsvorgänge durchzuführen. Bei diesem Beispiel kann eine beliebige Kombination der Funktionen und Vorgänge, die durch die Steuerung 115 durchgeführt werden, durch die Steuerung 210 durchgeführt werden und umgekehrt. Zum Beispiel kann die Steuerung 115 einen Teil des Erhaltens von Werten, Speichern von Werten, Vergleichen von Werten, Analysieren von Werten, der Datenbankerzeugung, der Benachrichtigung und/oder Berichterstattung durchführen, während die Steuerung 210 den verbleibenden Teil der Vorgänge, die nicht durch die Steuerung 115 durchgeführt werden, durchführt.
  • 3 veranschaulicht einen Beispielbetrieb 300 eines SOC-Integritätsverifizierungssystems gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Der Betrieb 300 ist unter Bezugnahme auf 1 und 2 beschrieben.
  • Bei einem Ausführungsbeispiel können ein oder mehr Register (z. B. Register 120) identifiziert werden (z. B. Namen, Adressen und/oder andere Identifikationsinformationen). Die Identifikationsinformation des/der Register können mit einer oder mehr Softwareanwendungen verwendet werden, die dazu konfiguriert sind, Registerwerte aus den Registern zu lesen. Zum Beispiel kann eine Anwendungsprogrammierungsschnittstelle (API: Application Programming Interface) verwendet werden, um eine oder mehr Softwareanwendungen zu erzeugen, die dazu konfiguriert sind, Registerwerte (z. B. eine „PrintRegs()”-Anweisung) aus einem oder mehr Registern zu erhalten. Die Lesevorgänge (z. B. eine „PrintRegs()”-Anweisung) können in dem SOC 100 implementiert werden und die Steuerung 115 kann dazu konfiguriert sein, die Anweisungen zum Lesen der Registerwerte aus den Registern 120 auszuführen. Im Betrieb kann die Steuerung des SOC 100 dazu konfiguriert sein, die Registerwerte vor der Ausführung von einem oder mehr Anlaufvorgängen (z. B. eine „Start-up Exec()”-Anweisung) des SOC 100 zu erhalten.
  • Anschließend an die Erfassung der Vor-Ausführung-Registerwerte/-sätze kann die Steuerung 115 einen oder mehr Anlaufvorgänge (z. B. eine „Start-up Exec()”-Anweisung) ausführen. Nachdem der/die Anlaufvorgang/-vorgänge ausgeführt wurden (und bei manchen Ausführungsformen nachdem die Vorgänge abgeschlossen wurden), kann die Steuerung 115 wieder Registerwerte aus den Registern lesen (z. B. eine „PrintRegs()”-Anweisung).
  • Die Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze können dann verglichen und analysiert werden. Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, die Vor-Ausführung-Registerwerte mit den Nach-Ausführung-Register-Werten zu vergleichen. Basierend auf dem Vergleich kann die Steuerung 115 dazu konfiguriert sein, Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu bestimmen.
  • Bei einem Ausführungsbeispiel kann die Steuerung 115 dazu konfiguriert sein, die Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu analysieren und zu bestimmen, ob die Steuerung 115 eine oder mehr Maßnahmen ergreifen sollte.
  • Bei einem Ausführungsbeispiel kann ein Bericht basierend auf dem Vergleich der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze erzeugt werden. Zum Beispiel kann die Steuerung 115 dazu konfiguriert sein, einen Bericht basierend auf dem Vergleich der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze zu erzeugen. Der Bericht kann die Analyse der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und/oder von durch die Steuerung 115 ergriffene(n) oder zu ergreifende(n) Maßnahme(n) beinhalten. Die Steuerung 115 kann dazu konfiguriert sein oder das SOC 100 dazu steuern, den erzeugten Bericht an eine oder mehr Komponenten des SOC 100 zu liefern, den Bericht an eine oder mehr externe Vorrichtungen (z. B. Peripherievorrichtungen 130) zu liefern, den Bericht über ein oder mehr Kommunikationsnetzwerke zu übertragen, das SOC 100 dazu zu steuern, den Bericht auf einer oder mehr Anzeigen anzuzeigen und/oder eine oder mehr andere Maßnahmen mit dem erzeugten Bericht zu ergreifen, wie ein Durchschnittsfachmann verstehen werde.
  • Die Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze, eine entsprechende Analyse, bestimmte Unterschiede und/oder andere Informationen können in dem SOC 100 und/oder in einer oder mehr externen Vorrichtungen gespeichert werden. Zum Beispiel kann die Steuerung 115 dazu konfiguriert sein, die Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze, eine entsprechende Analyse und die Bestimmung beliebiger Unterschiede zwischen den Werten/Sätzen zum Beispiel in dem Speicher 135 zu speichern. Die Steuerung 115 kann dazu konfiguriert sein, eine oder mehr Datenbanken der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und die Bestimmung beliebiger Unterschiede zwischen den Werten/Sätzen zu erzeugen, oder das SOC 100 zu deren Erzeugung zu steuern.
  • Zusätzlich oder alternativ dazu können der Vergleich der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze, eine Analyse, eine Unterschiedsbestimmung, eine Berichterzeugung, eine Benachrichtigung und/oder andere Vorgänge durch eine externe Vorrichtung, wie etwa den Auswerfer 205, wie in 2 veranschaulicht Ist, durchgeführt werden. Diese externen Vorgänge sind unter Bezugnahme auf 4 ausführlicher beschrieben.
  • 4 veranschaulicht einen Beispielbetrieb 400 eines SOC-lItegritätsverifizierungssystems gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Der Vorgang 400 ist ähnlich dem in 3 veranschaulichten Vorgang, beinhaltet aber Vorgänge, die durch eine externe Komponente, wie etwa den Auswerter 205, durchgeführt werden.
  • Zum Beispiel können, wie oben besprochen, ein oder mehr Register (z. B. Register 120) identifiziert werden und können die Identifikationsinformationen mit einer oder mehr Softwareanwendungen verwendet werden, die dazu konfiguriert sind, Registerwerte aus den Registern zu lesen. Die Lesevorgänge (z. B. eine „PrintRegs()”-Anweisung) können in dem SOC 100 implementiert werden und die Steuerung 115 kann dazu konfiguriert sein, die Anweisungen zum Lesen der Registerwerte aus den Registern 120 auszuführen. Im Betrieb kann die Steuerung des SOC 100 dazu konfiguriert sein, die Registerwerte vor der Ausführung von einem oder mehr Anlaufvorgängen (z. B. eine „Start-up Exec()”-Anweisung) des SOC 100 zu erhalten.
  • Anschließend an die Erfassung der Vor-Ausführung-Registerwerte/-sätze kann die Steuerung 115 einen oder mehr Anlaufvorgänge (z. B. eine „Start-up Exec()”-Anweisung) ausführen. Nachdem der/die Anlaufvorgang/-vorgänge ausgeführt wurden (und bei manchen Ausführungsformen nachdem die Vorgänge abgeschlossen wurden), kann die Steuerung 115 wieder Registerwerte aus den Registern lesen (z. B. eine „PrintRegs()”-Anweisung).
  • Die Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze werden dann an den Auswerter 205 geliefert oder durch den Auswerter 205 von dem SOC 100 erhalten.
  • Bei einem Ausführungsbeispiel kann der Auswerter 205 die Werte/Wertesätze von/aus dem SOC 100 empfangen und/oder erhalten/lesen. Der Auswerter 205 kann die Werte oder Wertesätze in dem Speicher 220 und/oder in einem oder mehr internen Speichern der Steuerung 210 speichern.
  • Die Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze werden dann verglichen. Basierend auf dem Vergleich können Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen bestimmt werden. Bei einem Ausführungsbeispiel kann die Steuerung 210 des Auswerters 205 dazu konfiguriert sein, die Vor-Ausführung-Registerwerte mit den Nach-Ausführung-Register-Werten zu vergleichen. Basierend auf dem Vergleich kann die Steuerung 210 dazu konfiguriert sein, Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu bestimmen.
  • Die Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und/oder beliebige bestimmte Unterschiede können analysiert werden. Basierend auf der Analyse kann der Auswerter 205 bestimmen, falls eine oder mehr Maßnahmen (z. B. Anpassen des Betriebsmodus, Rücksetzen des SOC 100 usw.) zu ergreifen sind. Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, die Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Registerwerten/-sätzen zu analysieren und zu bestimmen, ob die Steuerung 115 und/oder die Steuerung 210 eine oder mehr Maßnahmen ergreifen sollte.
  • Bei einem beispielhaften Vorgang können eine oder mehr Datenbanken erzeugt werden. Zum Beispiel kann die Steuerung 210 dazu konfiguriert sein, eine oder mehr Datenbanken der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze und die Bestimmung beliebiger Unterschiede zwischen den Werten/Sätzen zu erzeugen, oder das SOC 100 (z. B. die Steuerung 115) zu deren Erzeugung zu steuern. Bei einem nichtbeschränkenden Beispiel kann die Datenbank eine Tabelle aus Werten, ein Spreadsheet (z. B. ein XLS-Dokument) oder eine andere Datenstruktur sein, wie ein Durchschnittsfachmann verstehen würde.
  • Wie oben besprachen, kann die Datenbank zum Beispiel Registernamen, Registeradressen (z. B. 0 × f0000000), Vor-Ausführung-Registerwerte, Nach-Ausführung-Registerwerte, einen oder mehr Indikatoren/Flags, die einen Unterschied zwischen den Vor-Ausführung- und Nach-Ausführung-Werten angeben, eine Analyse durch die Steuerung 210, die Steuerung 115 und/oder durch einen oder mehr Benutzer des SOC 100, die von der Steuerung 210, der Steuerung 115 und/oder durch den/die Benutzer des SOC 100 ergriffene(n) oder zu ergreifende(n) Maßnahme(n) und/oder einen oder mehr andere Parameter und/oder Informationen, wie ein Durchschnittsfachmann verstehen würde, beinhalten. Die Datenbank kann in einer oder mehr Speichereinheiten, wie etwa dem Speicher 220 und/oder dem Speicher 135, gespeichert werden.
  • Mit weiterer Bezugnahme auf 4 kann ein Bericht basierend auf den Vor-Ausführung-Werten/Sätzen, Nach-Ausführung-Werten/Sätzen, bestimmten Unterschieden, einer Analyse der Vor-Ausführung- und Nach-Ausführung-Registerwerte/-sätze, durch das SOC 100 und/oder den Auswerter 205 ergriffenen oder zu ergreifenden Handlungen und/oder anderen Informationen erzeugt werden, wie ein Durchschnittsfachmann verstehen würde.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, den Bericht zu erzeugen. Die Steuerung 210 kann dazu konfiguriert sein, den Bericht an eine oder mehr Komponenten des SOC 100 zu liefern, den Bericht an eine oder mehr externe Vorrichtungen (z. B. Peripherievorrichtungen 130) zu liefern, den Bericht über ein oder mehr Kommunikationsnetzwerke zu übertragen, den Bericht auf einer oder mehr Anzeigevorrichtungen anzuzeigen, das SOC 100 dazu zu steuern, den Bericht auf einer oder mehr Anzeigen anzuzeigen und/oder eine oder mehr andere Maßnahmen mit dem erzeugten Bericht zu ergreifen, wie ein Durchschnittsfachmann verstehen würde.
  • Bei einem Ausführungsbeispiel kann die Steuerung 210 dazu konfiguriert sein, eine Benachrichtigung zu erzeugen, oder das SOC 100 und/oder eine oder mehr externe Komponenten dazu zu steuern, die Benachrichtigung zu erzeugen, um Unterschiede zwischen den Vor-Ausführung- und Nach-Ausführung-Werten anzugeben. Die Benachrichtigung kann ein Signal an eine oder mehr andere Komponenten, um die Komponente(n) über den Unterschied zu benachrichtigen, ein hörbares Signal, ein sichtbares Signal oder eine andere Benachrichtigung beinhalten, wie ein Durchschnittsfachmann verstehen wurde.
  • 5 veranschaulicht ein Flussdiagramm 500 eines Integritätsverifizierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Das Flussdiagramm ist unter weiterer Bezugnahme auf 14 beschrieben. Die Schritte des Verfahrens sind nicht auf die nachfolgend beschriebene Reihenfolge beschränkt und verschiedene Schritte können in einer unterschiedlichen Reihenfolge durchgeführt werden. Ferner können zwei oder mehr Schritte des Verfahrens gleichzeitig zueinander durchgeführt werden.
  • Das Verfahren des Flussdiagramms 500 beginnt bei Schritt 505 und geht zu Schritt 510 über, bei dem ein oder mehr Registerwerte von/aus dem einen oder den mehreren Registern erhalten/gelesen werden, um einen ersten Satz von Registerwerten zu erzeugen. Bei einem Ausführungsbeispiel ist das SOC 100 (z. B. die Steuerung 115) dazu konfiguriert, die Registerwerte von/aus einem oder mehr der Register 120 zu erhalten/lesen. Bei einem Ausführungsbeispiel ist der Auswerter 205 dazu konfiguriert, das SOC 100 dazu zu steuern, die Registerwerte von/aus dem/den Register(n) 120 zu erhalten/lesen. Bei einem Ausführungsbeispiel kann das SOC 100 dazu konfiguriert sein, einen ersten Registerwertsatz basierend auf den erhaltenen Registerwerten zu erzeugen. Die Werte und/oder Wertesätze können zum Beispiel in dem Speicher 135 und/oder dem Speicher 220 gespeichert werden.
  • Nach Schritt 510 geht das Flussdiagramm 500 zu Schritt 515 über, bei dem ein oder mehr Prozesse, wie etwa ein oder mehr Anlaufprozesse, ausgeführt werden. Bei einem Ausführungsbeispiel ist die Steuerung 115 des SOC 100 dazu konfiguriert, einen oder mehr Prozesse auszuführen oder eine oder mehr andere Komponenten des SOC 100 zum Ausführen von diesen zu steuern, welche einen oder mehr Anlaufvorgänge des SOC 100 beinhalten können.
  • Nach dem Schritt 515 geht das Flussdiagramm 500 zu Schritt 520 über, bei dem ein oder mehr Registerwerte wieder von/aus dem einen oder den mehreren Registern erhalten/gelesen werden, um einen zweiten Satz von Registerwerten zu erzeugen. Bei einem Ausführungsbeispiel ist das SOC 100 (z. B. die Steuerung 115) dazu konfiguriert, die Registerwerte von/aus einem oder mehr der Register 120 zu erhalten/lesen. Bei einem Ausführungsbeispiel ist der Auswerter 205 dazu konfiguriert, das SOC 100 dazu zu steuern, die Registerwerte von/aus dem/den Register(n) 120 zu erhalten/lesen. Bei einem Ausführungsbeispiel kann das SOC 100 dazu konfiguriert sein, einen zweiten Registerwertsatz basierend auf den erhaltenen Registerwerten zu erzeugen. Die Werte und/oder Wertesätze können zum Beispiel in dem Speicher 135 und/oder dem Speicher 220 gespeichert werden.
  • Nach Schritt 520 geht das Flussdiagramm 500 zu Schritt 525 über, bei dem der erste Satz von Registerwerten und der zweite Satz von Registerwerten verglichen werden, um zu bestimmen, ob ein Unterschied zwischen einem oder mehr der Registerwerte zwischen dem ersten und dem zweiten Satz von Registerwerten vorhanden ist. Bei einem Ausführungsbeispiel ist die Steuerung 115 des SOC 100 und/oder die Steuerung 210 des Auswerters 205 dazu konfiguriert, den ersten Satz von Registerwerten mit dem zweiten Satz von Registerwerten zu vergleichen.
  • Falls ein Unterschied mit einem oder mehr Werten (JA bei Schritt 525) vorhanden ist, geht das Flussdiagramm 500 zu Schritt 530 über. Ansonsten (NEIN bei Schritt 525) geht das Flussdiagramm 500 zu Schritt 540 über, bei dem das Flussdiagramm endet.
  • Bei Schritt 530 werden die Unterschiede zwischen dem ersten und dem zweiten Satz von Registerwerten analysiert. Basierend auf der Analyse wird bestimmt, ob eine oder mehr Maßnahmen als Reaktion auf die Unterschiede durchgeführt werden sollten. Bei einem Ausführungsbeispiel ist die Steuerung 115 des SOC 100 und/oder die Steuerung 210 des Auswerters 205 dazu konfiguriert, die Unterschiede zwischen dem ersten Satz von Registerwerten und dem zweiten Satz von Registerwerten zu analysieren. Die Steuerung 115 und/oder die Steuerung 210 bestimmt basierend auf der Analyse, ob eine oder mehr Maßnahmen ergriffen werden sollten. Bei einem Ausführungsbeispiel kann der Benutzer des SOC 100 dazu konfiguriert sein, die Unterschiede zu analysieren und zu bestimmen, ob eine oder mehr Maßnahmen ergriffen werden sollten. Zum Beispiel kann der Benutzer einen Bericht analysieren, der basierend auf den Unterschieden erzeugt wird, und bestimmen, ob eine oder mehr Maßnahmen ergriffen werden sollten.
  • Falls eine oder mehr Maßnahmen durchzuführen sind (JA bei Schritt 530), geht das Flussdiagramm 500 zu Schritt 535 über. Ansonsten (NEIN bei Schritt 530) geht das Flussdiagramm 500 zu Schritt 540 über, bei dem das Flussdiagramm endet.
  • Bei Schritt 535 werden eine oder mehr Maßnahmen als Reaktion auf die Analyse der Unterschiede zwischen dem ersten und zweiten Satz von Registerwerten durchgeführt. Die Maßnahmen können zum Beispiel Ändern/Anpassen des Betriebsmodus des SOC 100 (z. B. Umschalten zu einem sicheren Modus), Durchführen einer Rücksetzung des SOC 100 (z. B. eines Power-On-Resets), Wiederherstellen von einem oder mehr Registern 120 zu einem vorbestimmten Wert (z. B. einem Standardwert), Erzeugen einer Warnung hinsichtlich des Unterschieds, der den Betrieb des SOC 100 beeinträchtigen kann, und/oder eine oder mehr andere Maßnahmen, wie ein Durchschnittsfachmann verstehen würde, beinhalten. Bei einem Ausführungsbeispiel ist die Steuerung 115 des SOC 100 und/oder die Steuerung 210 des Auswerters 205 dazu konfiguriert, die Maßnahme(n) durchzuführen oder die SOC 100 zum Durchführen der Maßnahme(n) zu steuern.
  • Nach Schritt 535 geht das Flussdiagramm 500 zu Schritt 540 über, bei dem das Flussdiagramm 500 endet. Das Flussdiagramm 500 kann einmal oder mehrmals wiederholt werden. Zum Beispiel kann das Flussdiagramm 500 während der Laufzeit des SOC 100 durchgeführt werden. Als ein nichtbeschränkendes Beispiel kann das Integritätsverifizierungsverfahren während einer Laufzeit durchgeführt werden: als Reaktion auf eine Anfrage von einer oder mehr externen Komponenten; als Reaktion auf eine externe Komponente, die sich mit dem SOC 100 verbindet und/oder von diesem trennt; als Reaktion auf eine Benutzeranfrage; und/oder zu einer bestimmten Zeit und/oder periodisch.
  • Beispielcomputersystem
  • Verschiedene hier beschriebene Ausführungsbeispiele können zum Beispiel unter Verwendung von einem oder mehr Computersystemen, wie etwa einem in 6 gezeigten Computersystem 600, implementiert werden. Das Computersystem 600 kann ein Computer sein, der dazu in der Lage Ist, die hier beschriebenen Funktionen durchzuführen. Bei einem Ausführungsbeispiel ist der Auswerter 205 als das Computersystem 600 implementiert.
  • Das Computersystem 600 beinhaltet einen oder mehr Prozessoren (auch als zentrale Berechnungseinheiten oder CPUs (Central Processing Units) bezeichnet), wie etwa einen Prozessor 604. Der Prozessor 604 ist mit einer Kommunikationsinfrastruktur oder einem Bus 606 verbunden.
  • Ein oder mehr Prozessoren 604 können jeweils eine Grafikverarbeitungseinheit (GPU: Graphics Processing Unit) sein. Bei einer Ausführungsform ist eine GPU ein Prozessor, der ein spezialisierter elektronischer Schaltkreis ist, der dazu gestaltet ist, mathematisch intensive Anwendungen rasch auf elektronischen Vorrichtungen zu verarbeiten. Die GPU kann eine hoch parallele Struktur aufweisen, die für eine parallele Verarbeitung von großen Datenblöcken, wie etwa mathematisch intensiven Daten, die für Computergrafikanwendungen, Bilder und Videos üblich sind, effizient ist.
  • Das Computersystem 600 kann auch (eine) Benutzer-Eingabe/Ausgabe-Vorrichtung(en) 603, wie etwa Bildschirme, Tastaturen, Zeigevorrichtungen usw., beinhalten, welche durch (eine) Benutzer-Eingabe/Ausgabe-Schnittstelle(n) 602 mit der Kommunikationsinfrastruktur 606 kommunizieren.
  • Das Computersystem 600 kann einen Haupt- oder Primärspeicher 608, wie etwa einen Direktzugriffsspeicher (RAM: Random Access Memory), beinhalten. Der Hauptspeicher 608 kann mehrere Cacheebenen beinhalten. Der Hauptspeicher 608 weist eine darin gespeicherte Steuerlogik (d. h. eine Computersoftware) und/oder Daten auf.
  • Das Computersystem 600 kann auch eine oder mehr Sekundärspeichervorrichtungen oder einen Speicher 610 beinhalten. Der Sekundärspeicher 610 kann zum Beispiel eine Festplatte 612 und/oder eine entfernbare Speichervorrichtung oder ein Laufwerk 614 beinhalten. Das entfernbare Speicherlaufwerk 614 kann ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Compact-Disc-Laufwerk, ein optisches Speicherlaufwerk, eine Bandsicherungsvorrichtung und/oder ein(e) beliebige(s) andere(s) Speichervorrichtung/-laufwerk sein.
  • Das entfernbare Speicherlaufwerk 614 kann mit einer entfernbaren Speichereinheit 618 interagieren. Die entfernbare Speichereinheit 618 beinhaltet eine computerverwendbare oder -lesbare Speichervorrichtung mit darauf gespeicherter Computersoftware (Steuerlogik) und/oder Daten. Die entfernbare Speichereinheit 618 kann eine Diskette, ein Magnetband, eine Compact-Disc, eine DVD, eine optische Speicher-Disc und/oder eine beliebige andere Computerdatenspeichervorrichtung sein. Das entfernbare Speicherlaufwerk 614 liest von der und/oder schreibt auf die entfernbare Speichereinheit 618 auf eine wohlbekannte Weise.
  • Gemäß einem Ausführungsbeispiel kann der Sekundärspeicher 610 andere Instrumentalitäten oder andere Ansätzen beinhalten, um zu ermöglichen, dass auf Computerprogramme und/oder andere Anweisungen und/oder Daten durch das Computersystem 600 zugegriffen wird. Solche Instrumentalitäten oder andere Ansätze können zum Beispiel eine entfernbare Speichereinheit 622 und eine Schnittstelle 620 beinhalten. Beispiele für die entfernbare Speichereinheit 622 und die Schnittstelle 620 können eine Programmkassette und eine Kassettenschnittstelle (wie etwa jene in Videospielvorrichtungen vorzufindende), einen entfernbaren Speicherchip (wie etwa einen EPROM oder PROM) und einen assoziierten Sockel, einen Speicherstick und einen USB-Port, eine Speicherkarte und einen assoziierten Speicherkarteneinschub und/oder eine beliebige andere entfernbare Speichereinheit und eine assoziierte Schnittstelle beinhalten.
  • Das Computersystem 600 kann ferner eine Kommunikations- oder Netzwerkschnittstelle 624 beinhalten. Die Kommunikationsschnittstelle 624 ermöglicht dem Computersystem 600, mit einer beliebigen Kombination von fernen Vorrichtungen, fernen Netzwerken, fernen Entitäten usw. (einzeln und gemeinsam durch die Bezugsnummer 628 bezeichnet) zu kommunizieren und zu interagieren. Zum Beispiel kann die Kommunikationsschnittstelle 624 dem Computersystem 600 ermöglichen, mit fernen Vorrichtungen 628 über einen Kommunikationspfad 626 zu kommunizieren, der drahtgebunden und/oder drahtlos sein kann und der eine beliebige Kombination von LANs, WANs, dem Internet usw. beinhalten kann. Die Steuerlogik und/oder Daten können über den Kommunikationspfad 626 zu dem und von dem Computersystem 600 übertragen werden.
  • Bei einem Ausführungsbeispiel wird hier eine greifbare Einrichtung oder ein Herstellungsartikel, der ein greifbares computerverwendbares oder -lesbares Medium mit darauf gespeicherter Steuerlogik (Software) umfasst, auch als ein Computerprogrammprodukt oder eine Programmspeichervorrichtung bezeichnet. Dies beinhaltet unter anderem das Computersystem 600, den Hauptspeicher 608, den Sekundärspeicher 610 und die entfernbaren Speichereinheiten 618 und 622 sowie greifbare Herstellungsartikel, die eine beliebige Kombination des vorausgehenden umsetzen. Eine solche Steuerlogik bewirkt, wenn sie durch eine oder mehr Datenverarbeitungsvorrichtungen (wie etwa das Computersystem 600) ausgeführt wird, dass solche Datenverarbeitungsvorrichtungen wie hier beschrieben arbeiten.
  • Basierend auf den in dieser Offenbarung enthaltenen Lehren wird es für einen Fachmann offensichtlich, wie die Erfindung unter Verwendung von Datenverarbeitungsvorrichtungen, Computersystemen und/oder Computerarchitekturen außer jener in 6 gezeigten zu fertigen und zu verwenden ist. Insbesondere können Ausführungsformen mit Software, Hardware und/oder Betriebssystemimplementierungen außer jenen hier beschriebenen arbeiten.
  • Schließlich wird die zuvor genannte Beschreibung der speziellen Ausführungsformen somit die allgemeine Natur der Offenbarung vollständig aufzeigen, so dass andere solche speziellen Ausführungsformen durch Anwenden des Wissens nach dem Stand der Technik ohne übermäßiges Experimentieren einfach hinsichtlich verschiedener Anwendungen modifizieren und/oder anpassen können, ohne von dem allgemeinen Konzept der vorliegenden Offenbarung abzuweichen. Daher sollen basierend auf den Lehren und der Anleitung, die hier präsentiert sind, solche Anpassungen und Modifikationen innerhalb der Bedeutung und des Äquivalenzbereichs der offenbarten Ausführungsformen liegen. Es versteht sich, dass die Ausdrucksweise oder Terminologie hier dem Zweck der Beschreibung und nicht der Beschränkung dient, so dass die Terminologie oder Ausdrucksweise der vorliegenden Beschreibung durch einen Fachmann in Anbetracht der Lehren und der Anleitung zu interpretieren ist.
  • Verweise in der Beschreibung auf „eine Ausführungsform”, „ein Ausführungsbeispiel” usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft beinhalten können, aber nicht jede Ausführungsform muss notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft aufweisen. Zudem verweisen solche Ausdrücke nicht notwendigerweise auf die gleiche Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird ferner vorgeschlagen, dass es innerhalb der Kenntnis eines Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder eine solche Eigenschaft in Verbindung mit anderen Ausführungsformen zu beeinflussen, unabhängig davon, ob dies explizit beschrieben ist oder nicht.
  • Die hier beschriebenen Ausführungsbeispiele sind zu Veranschaulichungszwecken bereitgestellt und sind nicht beschränkend. Andere Ausführungsbeispiele sind möglich und Modifikationen können an den Ausführungsbeispielen vorgenommen werden. Daher soll die Beschreibung die Offenbarung nicht beschränken. Vielmehr wird der Schutzumfang der Offenbarung nur gemäß den folgenden Ansprüchen und ihren Äquivalenten definiert.
  • Ausführungsformen können in Hardware (z. B. Schaltkreisen), Firmware, Software oder einer beliebigen Kombination von diesen implementiert werden. Ausführungsformen können auch als auf einem maschinenlesbaren Medium gespeicherte Anweisungen implementiert werden, die durch einen oder mehr Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Medium kann einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. eine Berechnungsvorrichtung) lesbaren Form beinhalten. Zum Beispiel kann ein maschinenlesbares Medium einen Nurlesespeicher (ROM: Read Only Memory); Direktzugriffsspeicher (RAM); ein Magnetplattenspeichermedium; ein optisches Speichermedium; Flash-Speicher-Vorrichtungen, elektrische, optische, akustische oder andere Formen von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) und anderes beinhalten. Ferner können Firmware, Software, Routinen, Anweisungen hier als bestimmte Handlungen ausführend beschrieben werden. Jedoch versteht es sich, dass solche Beschreibungen lediglich der Zweckmäßigkeit dienen und dass solche Handlungen tatsächlich aus Berechnungsvorrichtungen, Prozessoren, Steuerungen oder anderen Vorrichtungen, die die Firmware, Software, Routinen, Anweisungen usw. ausführen, resultieren. Ferner kann eine beliebige der Implementierungsvariationen durch einen Mehrzweckcomputer ausgeführt werden.
  • Für den Zweck dieser Erörterung soll der Begriff „Prozessorschaltungsanordnung” als (ein) Schaltkreis(e), (ein) Prozessor(en), eine Logik oder eine Kombination davon verstanden werden. Zum Beispiel kann ein Schaltkreis einen analogen Schaltkreis, einen digitalen Schaltkreis, eine Zustandsmaschinenlogik, eine andere strukturelle elektronische Hardware oder eine Kombination davon beinhalten. Ein Prozessor kann einen Mikroprozessor, einen digitalen Signalprozessor (DSP) oder einen anderen Hardwareprozessor beinhalten. Der Prozessor kann mit Anweisungen zum Durchführen von einer oder mehr entsprechenden Funktionen gemäß hier beschriebenen Ausführungsformen „festcodiert” sein. Alternativ dazu kann der Prozessor auf einen internen und/oder externen Speicher zugreifen, um in dem Speicher gespeicherte Anweisungen abzurufen, die, wenn sie durch den Prozessor ausgeführt werden, die mit dem Prozessor assoziierte(n) entsprechende(n) Funktion(en) und/oder eine oder mehr Funktionen und/oder Vorgänge in Bezug auf den Betrieb einer Komponente, die den darin enthaltenen Prozessor aufweist, durchführen.
  • Bei einer oder mehr der hier beschriebenen Ausführungsbeispiele kann die Prozessorschaltungsanordnung einen Speicher beinhalten, der Daten und/oder Anweisungen speichert. Der Speicher kann ein beliebiger wohlbekannter flüchtiger und/oder nichtflüchtiger Speicher sein, einschließlich zum Beispiel eines Nurlesespeichers (ROM), Direktzugriffsspeichers (RAM), Flash-Speichers, eines Magnetspeichermediums, einer optischen Disc, eines löschbaren programmierbaren Nurlesespeichers (EPROM) und eines programmierbaren Nurlesespeichers (PROM). Der Speicher kann festverbaut, austauschbar oder eine Kombination von beidem sein.

Claims (20)

  1. Verfahren zum Überprüfen der Integrität eines System-On-Chip (SOC) mit einer Steuerung und einem oder mehr Registern, wobei das Verfahren Folgendes umfasst: Erhalten von einem oder mehr Registerwerten von dem einen oder den mehreren Register zu einer ersten Zeit, um einen ersten Satz von Registerwerten zu erzeugen; Ausführen von einem oder mehr Prozessen des SOC zu einer zweiten Zeit nach der ersten Zeit durch die Steuerung; Erhalten des einen oder der mehreren Registerwerte von dem einen oder den mehreren Register zu einer dritten Zeit nach der zweiten Zeit, um einen zweiten Satz von Registerwerten zu erzeugen; Vergleichen des ersten Satzes von Registerwerten mit dem zweiten Satz von Registerwerten; und Anpassen eines Betriebsmodus des SOC basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  2. Verfahren nach Anspruch 1, das ferner Folgendes umfasst: Erzeugen einer Datenbank basierend auf dem ersten Satz von Registerwerten, dem zweiten Satz von Registerwerten und dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  3. Verfahren nach Anspruch 1 oder 2, das ferner Folgendes umfasst: automatisches Wiederherstellen von dem einen oder den mehreren Registerwerten des einen oder der mehreren Register zu einem oder mehr entsprechenden vorbestimmten Werten basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  4. Verfahren nach einem der Ansprüche 1 bis 3, das ferner Folgendes umfasst: Erzeugen eines Berichts basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten und dem Anpassen des Betriebsmodus; und Liefern des Berichts an das SOC oder an eine oder mehr Peripherievorrichtungen in Kommunikation mit dem SOC.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das eine oder die mehreren Register ein Spezialfunktionsregister sind.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der eine oder die mehreren Registerwerte mit einer oder mehr Peripherievorrichtungen in Kommunikation mit dem SOC assoziiert sind.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Anpassen des Betriebsmodus des SOC Folgendes umfasst: Einstellen des Betriebsmodus des SOC auf einen sicheren Modus, oder Rücksetzen des SOC.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei die erste Zeit vor der Ausführung von einem oder mehr Anlaufvorgängen des SOC ist und die dritte Zeit nach der Ausführung von dem einen oder den mehreren Anlaufvorgängen ist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei die erste Zeit vor der Ausführung von einem oder mehr Anlaufvorgängen ist und die dritte Zeit nach der Ausführung von dem einen oder den mehreren Anlaufvorgängen des SOC und während des normalen Betriebs des SOC ist.
  10. System-On-Chip (SOC), das Folgendes umfasst: ein oder mehr Register, die dazu konfiguriert sind, einen oder mehr Registerwerte zu speichern; und eine Steuerung, die zu Folgendem konfiguriert ist: Erhalten des einen oder der mehreren Registerwerte von dem einen oder mehr Registern zu einer ersten Zeit, um einen ersten Satz von Registerwerten zu erzeugen; Ausführen von einem oder mehr Prozessen des SOC zu einer zweiten Zeit nach der ersten Zeit; Erhalten des einen oder der mehreren Registerwerte von dem einen oder den mehreren Register zu einer dritten Zeit nach der zweiten Zeit, um einen zweiten Satz von Registerwerten zu erzeugen; Vergleichen des ersten Satzes von Registerwerten mit dem zweiten Satz von Registerwerten; und Anpassen eines Betriebsmodus des SOC basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  11. SOC nach Anspruch 10, wobei die Steuerung ferner zu Folgendem konfiguriert ist: Erzeugen einer Datenbank basierend auf dem ersten Satz von Registerwerten, dem zweiten Satz von Registerwerten und dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  12. SOC nach Anspruch 10 oder 11, wobei die Steuerung ferner zu Folgendem konfiguriert ist: automatisches Wiederherstellen von dem einen oder den mehreren Registerwerten des einen oder der mehreren Register zu einem oder mehr entsprechenden vorbestimmten Werten basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  13. SOC nach einem der Ansprüche 10 bis 12, wobei die Steuerung ferner zu Folgendem konfiguriert ist: Erzeugen eines Berichts basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten und dem Anpassen des Betriebsmodus; und Liefern des Berichts an eine oder mehr Peripherievorrichtungen in Kommunikation mit dem SOC.
  14. SOC nach einem der Ansprüche 10 bis 13, wobei das eine oder die mehreren Register ein Spezialfunktionsregister sind.
  15. SOC nach einem der Ansprüche 10 bis 14, wobei der eine oder die mehreren Registerwerte mit einer oder mehr Peripherievorrichtungen in Kommunikation mit dem SOC assoziiert sind.
  16. SOC nach einem der Ansprüche 10 bis 15, wobei das Anpassen des Betriebsmodus des SOC Folgendes umfasst: Einstellen des Betriebsmodus des SOC auf einen sicheren Modus, oder Rücksetzen des SOC.
  17. SOC nach einem der Ansprüche 10 bis 16, wobei die erste Zeit vor der Ausführung von einem oder mehr Anlaufvorgängen des SOC ist und die dritte Zeit nach der Ausführung von dem einen oder den mehreren Anlaufvorgängen ist.
  18. SOC nach einem der Ansprüche 10 bis 17, wobei die erste Zeit vor der Ausführung von einem oder mehr Anlaufvorgängen ist und die dritte Zeit nach der Ausführung von dem einen oder den mehreren Anlaufvorgängen des SOC und während des normalen Betriebs des SOC ist.
  19. Integritätsüberprüfungssystem, das Folgendes umfasst: ein System-On-Chip (SOC), das Folgendes beinhaltet: ein oder mehr Register, die dazu konfiguriert sind, einen oder mehr Registerwerte zu speichern; und eine Steuerung, die zu Folgendem konfiguriert ist: Erhalten des einen oder der mehreren Registerwerte von dem einen oder den mehreren Registern zu einer ersten Zeit, um einen ersten Satz von Registerwerten zu erzeugen; Ausführen von einem oder mehr Prozessen des SOC zu einer zweiten Zeit nach der ersten Zeit; Erhalten des einen oder der mehren Registerwerte von dem einen oder den mehreren Registern zu einer dritten Zeit nach der zweiten Zeit, um einen zweiten Satz von Registerwerten zu erzeugen; und einen Auswerter, der zu Folgendem konfiguriert ist: Empfangen des ersten und des zweiten Satzes von Registerwerten von dem SOC; Vergleichen des ersten Satzes von Registerwerten mit dem zweiten Satz von Registerwerten; und Anweisen des SOC zum Anpassen eines Betriebsmodus des SOC basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten.
  20. Integritätsüberprüfungssystem nach Anspruch 19, wobei der Auswerter ferner zu Folgendem konfiguriert ist: Erzeugen eines Berichts basierend auf dem Vergleich des ersten und des zweiten Satzes von Registerwerten und dem Anpassen des Betriebsmodus; und Liefern des Berichts an eine oder mehr Peripherievorrichtungen in Kommunikation mit dem SOC.
DE102017123054.8A 2016-10-07 2017-10-05 Verfahren und System zur System-On-Chip-Integritätsverifizierung Pending DE102017123054A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/288,434 US10198332B2 (en) 2016-10-07 2016-10-07 System on chip integrity verification method and system
US15/288,434 2016-10-07

Publications (1)

Publication Number Publication Date
DE102017123054A1 true DE102017123054A1 (de) 2018-04-12

Family

ID=61695658

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017123054.8A Pending DE102017123054A1 (de) 2016-10-07 2017-10-05 Verfahren und System zur System-On-Chip-Integritätsverifizierung

Country Status (3)

Country Link
US (1) US10198332B2 (de)
JP (1) JP6453415B2 (de)
DE (1) DE102017123054A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372545B2 (en) * 2017-03-13 2019-08-06 Infineon Technologies Ag Safe reset techniques for microcontroller systems in safety related applications
IT201700050166A1 (it) 2017-05-09 2018-11-09 St Microelectronics Srl Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US11003153B2 (en) * 2017-11-17 2021-05-11 Intel Corporation Safety operation configuration for computer assisted vehicle
US11352133B2 (en) 2017-12-28 2022-06-07 Intel Corporation Systems, cableless drone swarm systems, method and apparatus
US11340978B2 (en) * 2017-12-28 2022-05-24 Intel Corporation Methods, systems and apparatus for functional safety implementation
US11308791B2 (en) * 2018-12-28 2022-04-19 Intel Corporation Methods, systems and apparatus to use audio return path for functional safety validation
US11702101B2 (en) 2020-02-28 2023-07-18 International Business Machines Corporation Automatic scenario generator using a computer for autonomous driving
US11814080B2 (en) 2020-02-28 2023-11-14 International Business Machines Corporation Autonomous driving evaluation using data analysis
US11644331B2 (en) 2020-02-28 2023-05-09 International Business Machines Corporation Probe data generating system for simulator

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332744A (ja) 1993-05-19 1994-12-02 Nec Corp 情報処理装置の試験方法
JPH0728663A (ja) 1993-07-09 1995-01-31 Fujitsu Ltd 情報処理装置の試験装置
JP3320570B2 (ja) 1994-09-26 2002-09-03 船井電機株式会社 システム異常からの復帰方法
AU2521297A (en) 1996-04-11 1997-10-29 Hitachi Limited Disk drive and computer
KR101375171B1 (ko) * 2006-12-30 2014-03-18 삼성전자주식회사 시스템 온 칩 모델 검증 방법 및 장치
US9767319B2 (en) * 2007-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus of secure authentication for system on chip (SoC)
JP5447874B2 (ja) 2011-01-13 2014-03-19 ブラザー工業株式会社 情報処理装置
KR20130101927A (ko) * 2012-03-06 2013-09-16 한국전자통신연구원 디버깅 기능을 가지는 멀티코어 SoC
JP6102235B2 (ja) 2012-12-12 2017-03-29 日本電気株式会社 Bios復旧制御装置及びその復旧制御方法、情報処理装置、並びにコンピュータ・プログラム
US9507680B2 (en) * 2014-03-24 2016-11-29 Freescale Semiconductor, Inc. Verification system and method for automated verification of register information for an electronic system
US9836373B2 (en) * 2014-11-26 2017-12-05 Texas Instruments Incorporated On-chip field testing methods and apparatus
US9594623B2 (en) * 2015-03-24 2017-03-14 Nxp Usa, Inc. System on chip and method of updating program code on a system on chip

Also Published As

Publication number Publication date
US20180101458A1 (en) 2018-04-12
US10198332B2 (en) 2019-02-05
JP6453415B2 (ja) 2019-01-16
JP2018077835A (ja) 2018-05-17

Similar Documents

Publication Publication Date Title
DE102017123054A1 (de) Verfahren und System zur System-On-Chip-Integritätsverifizierung
DE112020000123T5 (de) Patch-verwaltung in einer hybriden datenverwaltungsumgebung
DE112012002718B4 (de) Erkennen von Sicherheitsschwachstellen in Web-Anwendungen
DE112016003949T5 (de) Webbasierte programmierumgebung für eingebettete geräte
DE112009002207B4 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
DE102005010900A1 (de) Modellspezifische Registeroperationen
DE102011056563A1 (de) Datenkompressionsvorrichtungen, Betriebsverfahren dafür und Datenverarbeitungsgeräte einschließlich derselben
DE102018204864A1 (de) Technologie zum Ermöglichen eines schnellen Bootens mit einem schnellen und langsamen nichtflüchtigen Speicher
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE102018104070A1 (de) System und verfahren zur auswahl einer computerplattform
DE102013213047A1 (de) System, Verfahren und Computerprogrammprodukt zum Testen von Vorrichtungsparametern
EP3001313A1 (de) Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
DE102019122934A1 (de) Automatisierte preboot-leistungsfähigkeit-messung
DE102020102237A1 (de) Echtzeit-eingabe/ausgabe-bandbreitenschätzung
DE112016005823T5 (de) Überwachen des betriebs eines prozessors
DE112011105098T5 (de) Virtuelles BIOS
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE102021116906A1 (de) Test- und messsystem zur analyse von zu testenden vorrichtungen
DE102021120076A1 (de) Validierung von dram-inhalten unter verwendung einer internendatensignatur
DE112014002960T5 (de) Ableitung verallgemeinerter Testfälle
DE112013002591T5 (de) Verhindern von Kaskadenfehlern in Computersystemen
DE102013213048A1 (de) System, Verfahren und Computerprogrammprodukt zum Bestimmen von Einstellungen für eine Vorrichtung
DE102018123524A1 (de) Eine intelligente Übertaktungsmethode
DE102019131865A1 (de) Verfahren und vorrichtung zur eigendiagnose der ram-fehlererkennungslogik eines antriebsstrangcontrollers

Legal Events

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

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication