DE102018130369A1 - Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit - Google Patents

Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit Download PDF

Info

Publication number
DE102018130369A1
DE102018130369A1 DE102018130369.6A DE102018130369A DE102018130369A1 DE 102018130369 A1 DE102018130369 A1 DE 102018130369A1 DE 102018130369 A DE102018130369 A DE 102018130369A DE 102018130369 A1 DE102018130369 A1 DE 102018130369A1
Authority
DE
Germany
Prior art keywords
processor cores
group
processor
setup
test
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
DE102018130369.6A
Other languages
English (en)
Inventor
Carey Smith
Julian Revuelta
Mihai Mihalache
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102018130369A1 publication Critical patent/DE102018130369A1/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/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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
    • G06F11/2242Detection 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 in multi-processor systems, e.g. one processor becoming the test master
    • 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

Abstract

Verfahren und Einrichtungen bezüglich Charakterisieren von Nachbarschaftsrisiken innerhalb eines Funkgitters sind beschrieben. Bei einer Ausführungsform bewirkt eine Testmanagerlogik periodisches Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen. Jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen umfasst einen oder mehrere Prozessorkerne eines Mehrfachkernprozessors. Ein Speicher speichert Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen. Ein Fehlersignal ist als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) zu erzeugen. Andere Ausführungsformen sind ebenfalls offenbart und beansprucht.

Description

  • GEBIE T
  • Die vorliegende Offenbarung betrifft allgemein das Feld der Elektronik. Insbesondere betrifft eine Ausführungsform eine Planung periodischer Zentraler-Verarbeitungseinheit(CPU)-Kern-Diagnostiken innerhalb eines Betriebssystems während der Laufzeit.
  • HINTERGRUND
  • Autonomes Fahren verspricht eine Welt, in der ein Fahrzeug seine Insassen von Punkt A nach Punkt B mit höchster Sicherheit und mit minimalem menschlichem Eingriff transportieren kann. Zur gleichen Zeit werfen gut publizierte Unfälle einen Schatten auf die Zuverlässigkeit von autonomen Fahrsystemen.
  • Um diese Probleme zu behandeln, ordnet die Kraftfahrzeugindustrie strikte Funktionssicherheitsanforderungen an und erwartet, dass Technologieanbieter ihre Vorrichtungen zum Einsatz für autonomes Fahren zertifizieren.
  • Figurenliste
  • Die ausführliche Beschreibung ist unter Bezugnahme auf die begleitenden Figuren bereitgestellt. In den Figuren identifiziert (identifizieren) die Ziffer(n) ganz links einer Referenzzahl die Figur, in der die Referenzzahl zuerst erscheint. Die Verwendung der gleichen Referenzzahlen in unterschiedlichen Figuren gibt ähnliche oder identische Gegenstände an.
    • 1 veranschaulicht ein Diagramm von Timing-Anforderungen für einen Prozessor, der für Kraftfahrzeuganwendungen beabsichtigt ist, gemäß einer Ausführungsform.
    • 2 veranschaulicht ein Zeitverlaufsdiagramm zum Handhaben von Interrupts gemäß einer Ausführungsform.
    • 3, 4, 5 und 6 veranschaulichen Flussdiagramme zum Implementieren periodischer Kerndiagnostiken während der Laufzeit gemäß einer Ausführungsform.
    • 7 und 8 veranschaulichen Blockdiagramme von Ausführungsformen von Rechensystemen, die in verschiedenen hier besprochenen Ausführungsformen verwendet werden können.
    • 9 und 10 veranschaulichen verschiedene Komponenten eines Prozessors gemäß manchen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezielle Einzelheiten dargelegt, um ein umfassendes Verständnis verschiedener Ausführungsformen zu vermitteln. Jedoch können verschiedene Ausführungsformen ohne die speziellen Einzelheiten umgesetzt werden. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht ausführlich beschrieben, um die speziellen Ausführungsformen nicht zu verschleiern. Ferner können verschiedene Aspekte von Ausführungsformen unter Verwendung verschiedener Mittel durchgeführt werden, wie etwa integrierter Halbleiterschaltkreise („Hardware“), computerlesbarer Befehle, die in einem oder mehreren Programmen organisiert sind („Software“) oder mancher Kombinationen von Software und Hardware. Für die Zwecke dieser Offenbarung soll eine Bezugnahme auf „Logik“ entweder Hardware, Software, Firmware oder eine gewisse Kombination davon bedeuten.
  • Wie oben erwähnt, ordnet die Kraftfahrzeugindustrie strikte Funktionssicherheitsanforderungen an und erwartet, dass Technologieanbieter ihre Vorrichtungen zum Einsatz für autonomes Fahren zertifizieren. Zum Beispiel müssen Prozessoren (hier auch austauschbar als CPUs (Central Processing Units - zentrale Verarbeitungseinheiten) bezeichnet), die für Kraftfahrzeuganwendungen beabsichtigt sind, eine ASIL-B(Automotive Safety Integrity Level B - Kraftfahrzeugsicherheitsintegritätsniveau B)-Funktionssicherheitszertifizierung empfangen. Diese Zertifizierung erfordert, dass 90 % von Einzelstellenfehlern (Single Point Faults), die auftreten können, detektiert werden müssen, bevor der Fehler zu einem gefährlichen Ereignis führen kann. Um dies zu garantieren, weisen Gestaltungen ein Fehlertoleranzzeitintervall (FTTI: Fault Tolerant Time Interval) auf, das die minimale Zeitperiode von dem Auftreten eines Fehlers in einem Gegenstand/einer Komponente bis zu dem Auftreten eines gefährlichen Ereignisses ist, falls ein Sicherheitsmechanismus nicht aktiviert wird.
  • Zu diesem Zweck beziehen sich manche Ausführungsformen auf eine Planung periodischer Prozessorkerndiagnostiken innerhalb eines Betriebssystems (OS: Operating System) während der Laufzeit. Eine oder mehrere Ausführungsformen unterstützen Techniken zum Unterstützen und Planen einer Kern-Laufzeit-SBFT-Ausführung (SBFT: Structural Based Functional Test - strukturbasierter Funktionstest), um eine ASIL-B-Zertifizierung für CPUs zu erzielen. Eine Ausführungsform ermöglicht, dass SBFTs in Unterstützung von Funktionssicherheitsanforderungen ausgeführt werden, während ein gleichzeitiger Echtzeitbetrieb von auf dem System laufenden Anwendungen unterstützt wird. Allgemein zielt Strukturtesten darauf ab, Fehler mit der Struktur einer Vorrichtung zu finden (die zu einem katastrophalen Ausfall führen könnten), wohingegen Funktionstesten darauf abzielt, sicherzustellen, dass eine Vorrichtung ihre gewünschte Funktion durchführt. Wie hier besprochen, verweist SBFT allgemein auf einen Test, der auf Microcode(uCode)-Ebene ausgeführt wird, um die Zertifizierungsanforderungen von 90 % für Einzelstellenfehler zu erfüllen.
  • 1 veranschaulicht ein Diagramm von Timing-Anforderungen für einen Prozessor, der für Kraftfahrzeuganwendungen beabsichtigt ist, gemäß einer Ausführungsform. Wie gezeigt, ist zur Zeit t0 (wenn ein Fehler auftritt) ein vorheriger normaler Betrieb abgeschlossen (z. B. endet eine Diagnostik und werden Ergebnisse mitgeteilt). Eine Diagnostik beginnt zur Zeit t0+DTTI-Δtdiag (wobei Δtdiag auf eine Diagnostikausführungszeitperiode verweist und DTTI auf ein Diagnostiktestzeitintervall (Diagnostic Test Time Interval) verweist). Zur Zeit t0+DTTI endet eine Diagnostik und werden Ergebnisse mitgeteilt. Ein sicherer Zustand oder ein Notfallbetrieb wird zur Zeit t0+FDTI+FRTI erreicht (wobei FDTI auf ein Fehlerdetektionszeitintervall (Fault Detection Time Interval) verweist und FRTI auf ein Fehlerreaktionszeitintervall (Fault Reaction Time Interval) verweist). Und zur Zeit t0+FDTI findet das gefährliche Ereignis statt.
  • Zudem wird für CPUs, die Anwendungen ausführen, die eine Funktionssicherheit erfordern, während eines Laufzeitbetriebes der Gestaltung eine Batterie von Diagnostiktests auf jedem Kern der CPU in jedem FTTI-Intervall ausgeführt. Für Kraftfahrzeuganwendungen beträgt dieses FTTI-Intervall typischerweise etwa 100 Millisekunden. Um eine Diagnostikabdeckung von 70 % auf Kernen zu erreichen (d. h., um die zuvor erwähnte 90-%-Einzelstellenfehler-Metrik zu erzielen), wird eine Reihe von Microcode-Ebene-Tests auf niedriger Ebene (SBFT genannt) auf jedem Kern einmal pro FTTI ausgeführt. Außerdem verweist, wie hier besprochen, „Kraftfahrzeug-“ allgemein auf ein beliebiges Fahrzeug, das dazu in der Lage ist, gemäß (einer) Operation(en), die durch einen Mehrfachkernprozessor (der periodisch gemäß manchen Ausführungsformen getestet wird) durchgeführt wird (werden), oder als Reaktion auf diese zu arbeiten, wie etwa einen Personenkraftwagen, einen Lastkraftwagen, ein Motorrad, ein Flugzeug, einen Helikopter usw., unabhängig davon, ob das Fahrzeug ein Passagierfahrzeug oder kommerzielles Fahrzeug ist, und ungeachtet des Leistungstyps, der zum Bewegen des Fahrzeugs verwendet wird.
  • 2 veranschaulicht ein Zeitverlaufsdiagramm zum Handhaben von Interrupts gemäß einer Ausführungsform. Zudem sind, obwohl manche Figuren spezielle Werte angeben, diese lediglich als eine Implementierungswahl beabsichtigt und diese speziellen Werte können für unterschiedliche Implementierungen in verschiedenen Ausführungsformen geändert werden. Wie gezeigt, sendet ein FTTI-Timer einen Interrupt/Tick an ISI bei 202. ISI (auch bekannt als InSI™) ist eine Sicherheitsinsel (Safety Island) (oder geschütztes Modul), die durch Intel Corporation bereitgestellt werden kann. Die Sicherheitsinsel kann die funktionssicherheitsbezogene Diagnostik, die entweder zur Laufzeit oder bei „Schlüssel-Ein/Aus“-Betriebsphasen notwendig ist, orchestrieren. Eine ISI-Logik kann als eine diskrete Komponente implementiert oder bei einer Ausführungsform in den Plattformsteuer-Hub (PCH: Plattform Control Hub) integriert sein. Unter Bezugnahme auf 2 benachrichtigt ISI bei 204 eine automatisierte Ansteuerungsplattform (ADP: Automated Drive Plattform), einen SBFT zu beginnen. Bei 206 werden Aufgaben migriert und Interrupts zwischen Testgruppen gesteuert. Bei 208 benachrichtigt die ADP ISI, dass der SBFT abgeschlossen ist. Bei 210 liest ISI SBFT-Ergebnisse aus der ADP für alle Kerne. ISI überprüft dann einen Testabschluss und gibt Ergebnisse jedes SBFT-Tests für jeden Kern bei 212 weiter, wonach das FTTI-Budget (z. B. 100 ms) aufgebraucht ist und der nächste Zyklus startet.
  • Ein Problem ist, dass, während SBFTs auf einem Kern ausgeführt werden, der Kern für die gesamte Dauer des Tests (was mehr als 30 Millisekunden sein kann) nicht zum Ausführen von Software (äquivalent zu MWAIT(C6) oder Monitor Wait C6) oder Antworten auf jegliche Interrupt-Quellen verfügbar ist. Um Systemechtzeitbetriebsanforderungen zu erfüllen, wird es daher notwendig, ein Verfahren des Planens einer SBFT-Ausführung zwischen den Kernen eines Mehrfachkernprozessors zu finden, um zu ermöglichen, dass Systemechtzeitprozesse weiterhin arbeiten und eingehende Ereignisse bedienen. Einfach alle Kerne für 30 Millisekunden pro FTTI offline zu nehmen, ist keine realistische Option.
  • Ferner führt eine Hyper-Threading™-Technologie (bereitgestellt durch Intel® Corporation) eine zusätzliche Komplexität ein, weil SBFT potentiell einen Effekt auf den gesamten Kern aufweist, was wiederum eine sorgsame Synchronisation einer Hardware-Thread-Ebene-Ausführung erfordert. Wie hier besprochen, verweist Hyper-Threading allgemein auf eine SMT-Implementierung (SMT: Simultaneous MultiThreading - gleichzeitiges Multithreading), die zum Verbessern einer Parallelisierung von Berechnuhgen verwendet wird, um mehrere Aufgaben/Threads gleichzeitig auszuführen. Daher kann Hyper-Threading aufgrund der potentiellen Komplexität deaktiviert werden. Daher leidet eine solche Lösung darunter, Multithreading-Merkmale deaktivieren zu müssen.
  • Außerdem ermöglichen Ausführungsformen, die eine Planung periodischer CPU-Kern-Diagnostiken bewirken, eine Ausführung der erforderlichen Diagnostiken unter Nutzung der inhärenten Echtzeit-Thread-Planungsfähigkeiten der Betriebssystemsoftware und erfordern keine Anpassung des Betriebssystems. Dieser Ansatz ermöglicht eine gleichzeitige Ausführung auf Kernen mit flexibler Planung, wodurch eine Optimierung des Testplans hinsichtlich der speziellen Systemarbeitslast ermöglicht wird, ohne dass erfordert wird, dass Hyper-Threading deaktiviert wird. Andere Alternativen können CPU-Hot-Plug (was Systemechtzeitleistungsfähigkeitsanforderungen nicht erfüllen kann) oder eine spezielle OS-Anpassung (was entweder nicht möglich ist oder durch OS-Architekten als zu riskant erachtet wird) beinhalten.
  • Bei einer Ausführungsform können die hier besprochenen Prozessoren in einer IoT-Vorrichtung enthalten sein. Zudem verweist eine „IoT“-Vorrichtung allgemein auf eine Vorrichtung, die eine elektronische Verarbeitungsschaltungsanordnung (wie etwa ein oder mehrere Prozessoren/Kerne, ein PLA (Programmable Logic Array), ein SoC, einen ASIC (Application Specific Integrated Circuit) usw.), einen Speicher (z. B. zum Speichern von Software oder Firmware), einen oder mehrere Sensoren (oder ist anderweitig mit einem oder mehreren Sensoren, wie etwa einer Kamera, einem Bewegungsmelder usw., gekoppelt) und eine Netzkonnektivität, um der IoT-Vorrichtung zu ermöglichen, Daten zu sammeln und/oder auszutauschen, beinhaltet. IoT-Vorrichtungen können günstiger als herkömmliche Rechenvorrichtungen sein, so dass ihre Ausbreitung bei fernen Standorten ermöglicht wird. IoT-Vorrichtungen können auch Kosten reduzieren, indem eine existierende Infrastruktur (wie etwa das Internet, ein zellulares/drahtloses Netz der dritten Generation (3G), der vierten Generation (4G) oder der fünften Generation (5G)) verwendet wird. Allgemeiner kann eine IoT-Vorrichtung eine oder mehrere Komponenten, wie etwa jene unter Bezugnahme auf 1 und folgende beschrieben, beinhalten.
  • 3 veranschaulicht ein Flussdiagramm zum Implementieren eines periodischen SBFT gemäß einer Ausführungsform. Eine oder mehrere Operationen aus 3 können durch eine Logik (z. B. Logik 302, 304, 306 usw.) und/oder eine oder mehrere hier unter Bezugnahme auf 1-10 besprochene Komponenten (wie etwa einen Prozessor, eine GPU usw.) durchgeführt werden. Obwohl manche Figuren Komponenten als Hardware oder Software angeben, sind diese lediglich als eine Implementierungswahl gedacht und solche Komponenten können bei verschiedenen Ausführungsformen in einer Logik implementiert werden.
  • Unter Bezugnahme auf 3 kann eine Testmanagerlogik 302 als ein OS-Treiber, der an die ISI-Logik 304 gebunden ist, implementiert werden und interagiert mit dem ISI-Untersystem über ein bidirektionales Postfach (in 3 als MSI(Message Signaled Interrupt - nachrichtensignalisierter Interrupt)-Postfach 306 bezeichnet) und/oder ein Interrupt-Signal. Allgemein können Postfachimplementierungen basierend auf verfügbarer Hardware abweichen. Wie hier besprochen, verweist ein „Postfach“ auf ein Verfahren zum Kommunizieren zwischen zwei Entitäten (z. B. ISI und CPU), bei dem Informationen über einen Datenspeicherungsbereich ausgetauscht werden können, auf den beide Entitäten Zugriff haben. Der Testverwalter ist dafür verantwortlich, der ISI zu signalisieren, wenn der OS-Start abgeschlossen ist und bereit ist, periodisches Laufzeittesten zu beginnen. Der Testmanager ist dafür verantwortlich, die periodischen Tests auf „orangen“ Kernen zu planen und auszuführen, die der OS-Instanz zugewiesen sind. Der Testmanager hält eine Synchronisation der FTTI mit der ISI über das Postfach und das Interrupt-Signal aufrecht. Bei manchen Implementierungen können variierende Ebenen einer Funktionssicherheit auf der CPU-Ebene mit einer unterschiedlichen Farbe bezeichnet werden (z. B. grün, orange, rot usw. in Abhängigkeit von ihren Ebenen einer Funktionalität). Zum Beispiel kann ein „oranger“ Kern auf einen Kern verweisen, in dem die erwähnten Tests unterstützt werden (z. B. mit mittlerer Leistungsfähigkeit und mittlerer Sicherheit), wohingegen ein roter Kern auf einen Kern verweisen kann, der mit einem anderen roten Kern verknüpft werden kann, so dass er einen Hardwareverriegelungsschritt implementiert (z. B. mit geringerer Leistungsfähigkeit und hoher Sicherheit). Daher können „orange“ Kerne einfach auf die Kerne verweisen, die die SBFT-Tests ausführen müssen. Außerdem müssen bei manchen Ausführungsformen nur spezielle Kerne periodisch getestet werden.
  • Die VCU(Validation Control Unit-Validierungssteuereinheit)-Logik 308 kann in einen Prozessor oder eine CPU (wie etwa jene hier unter Bezugnahme auf 7-10 besprochenen) integriert sein und bewahrt Informationen (z. B. eine Zähltafel) zum Nachverfolgen einer SBFT-Ausführung auf jedem Kern und den Bestehen/Versagen-Status (z. B. wie durch ein einziges Bit angegeben) des letzten SBFT-Durchgangs. Wenn die SBFT-Informationen zeigen, dass alle „orangen“ Kerne einen SBFT-Durchgang abgeschlossen haben, erzeugt die VCU-Logik ein Signal zu der ISI.
  • Wie hier besprochen, verweist die ISI(auch bekannt als InSI™) -Logik 304 allgemein auf eine Sicherheitsinsel, die durch Intel Corporation bereitgestellt werden kann, und kann als eine diskrete Komponente bereitgestellt sein oder bei verschiedenen Ausführungsformen in den Plattformsteuer-Hub (PCH) oder einen Prozessor integriert sein. Die ISI ist dafür verantwortlich, das FTTI aufrechtzuerhalten und das FTTI mit der Testmanagerlogik zu synchronisieren. Beim Empfang des Signals, das angibt, dass alle SBFTs abgeschlossen wurden, von der VCU-Logik 310, liest die ISI die VCU-Zählertafel über der Plattformumgebungssteuerschnittstelle (PECI: Platform Environment Control Interface) (für diskrete Implementierungen) oder eine andere Schnittstelle (für integrierte Implementierungen) bei 312. Unter Verwendung der Zählertafeldaten schließt die ISI die Testaufzeichnung 314 (z. B. innerhalb einer Zeitperiode, die durch einen Watchdog-Timer, wie in 3 gezeigt, verfolgt wird) für das momentane Intervall ab und signalisiert einen Fehler, falls irgendwelche Tests fehlgeschlagen sind 316. Falls kein Signal von der VCU vor dem Ende des FTTI (z. B. wie durch ein Auslaufen des Watchdog-Timers oder eine Watchdog-Zeitüberschreitung markiert) empfangen wird, signalisiert die ISI einen Fehler 318.
  • 4 veranschaulicht ein Flussdiagramm für eine mögliche Implementierung der Testmanagerlogikplanung gemäß einer Ausführungsform. Eine oder mehrere Operationen aus 4 können durch eine Logik (z. B. die Logik 302 usw.) und/oder eine oder mehrere hier unter Bezugnahme auf 1-10 besprochene Komponenten (wie etwa einen Prozessor, eine GPU usw.) durchgeführt werden. Obwohl manche Figuren Komponenten als Hardware oder Software angeben, sind des Weiteren diese lediglich als eine Implementierungswahl beabsichtigt und solche Komponenten können bei verschiedenen Ausführungsformen in Logik implementiert werden.
  • Wie oben erwähnt, können die SBFTs in einem CPU-Mikrocode implementiert und periodisch ausgeführt werden, um die 70-%-Abdeckung zu erzielen. Während die SBFTs auf einem Kern ausgeführt werden, ist der Kern nicht für die Dauer des Tests (was mehr als 30 Millisekunden sein kann) zum Ausführen von Software (äquivalent zu MWAIT(C6)) oder Antworten auf beliebige Interrupt-Quellen verfügbar. Um Echtzeitanforderungen zu erfüllen, können sich daher nicht alle Kerne gleichzeitig in diesem Testmodus befinden. Minimal werden Kerne in zwei Testgruppen 402/404 getestet, um beliebige aktive Aufgaben zu ermöglichen und damit eine Interrupt-Handhabung von zu testenden Kernen zu Kernen migriert wird, die zum Verarbeiten einer Arbeitslast und Handhaben von Interrupts verfügbar sind.
  • Bei einer Ausführungsform wird die Testmanagerlogik 302 als ein OS-Vorrichtungstreiber implementiert. Der an eine ISI-Vorrichtungsfunktion gebunden ist. Der Testmanager ist dafür verantwortlich, das FTTI-Intervall mit der ISI zu synchronisieren und SBFTs auf allen Kernen zu planen, die der OS-Instanz zugeordnet sind.
  • Der Testmanager plant die SBFTs unter Verwendung eines Pools von Echtzeit-Threads, der während einer Testmanagerinitialisierung erzeugt wird - eine Prozessgruppe ist jeder „orangen“ Kerngruppe zugeordnet, wobei jeder Prozess in der Gruppe an einen Hardware-Thread in dem Kern gebunden ist. Der Testmanager ruft eine Testaufführung auf, indem einer Gruppe von Echtzeit-Threads, die mit einer Testgruppe assoziiert sind, signalisiert wird, einen Testzyklus zu beginnen. Es gibt mehrere mögliche Pläne, die der Testmanager verwenden kann, um eine Testausführung innerhalb eines FTTI zu verwalten. Jedoch muss die Testmanagerlogik immer noch Tests in minimal zwei Testgruppen 402/404 und auf eine Weise planen, um zu ermöglichen, dass beliebige andere Echtzeitarbeitslasten weiterhin ausgeführt werden, indem von in Test befindlichen Kernen zu verfügbaren Kernen migriert wird.
  • Unter Bezugnahme auf 4 ist ein Möglicher Testmanagerplan gezeigt, bei dem ein periodischer SBFT in 10 Testläufe von jeweils 3,1 ms unterteilt ist. Jeder der 10 Testläufe wird auf Testgruppe1 402 gefolgt von einem Testlauf auf Testgruppe2 404 ausgeführt. Zum Beispiel ist es gleichermaßen zulässig, einen einzigen Testlauf von 30 ms auf der Testgruppe1 gefolgt von einem einzigen Testlauf von 30 ms auf der Testgruppe2 durchzuführen, so lange Tests nicht gleichzeitig auf sowohl Testgruppe1 als auch Testgruppe2 ablaufen, um zu ermöglichen, dass Arbeitslasten weiterhin auf nicht zu testenden Kernen ausgeführt werden.
  • Bei manchen Ausführungsformen werden, um die Interrupt-Dienst-Latenzanforderungen für das System aufrechtzuerhalten, Interrupts minimal einem Kern in jeder Testgruppe zugeordnet und werden Interrupt-Signale zu einem momentan nicht zu testenden Kern gelenkt. Für Vorrichtungen, die Quellen eines MSI-Interrupts sind, bedeutet dies, dass die MSI-Konfiguration entsprechend eingestellt wird - um Interrupts zu einem Kern in jeder der Testgruppen zu senden. Das Lenken von Interrupts zu nicht zu testenden Kernen kann unter Verwendung des APIC-Aufgabenprioritätsregisters (APIC: Advanced Programmable Interrupt Controller - fortschrittliche programmierbare Interrupt-Steuerung) erzielt werden.
  • 5 veranschaulicht ein Flussdiagramm für eine mögliche Implementierung eines SBFT-Gruppentests gemäß einer Ausführungsform. Eine oder mehrere Operationen aus 5 können durch eine Logik (z. B. die Logik 302, 304, 308 usw.) und/oder eine oder mehrere hier unter Bezugnahme auf 1-10 besprochene Komponenten (wie etwa einen Prozessor, eine GPU usw.) durchgeführt werden.
  • Unter Bezugnahme auf 5 löst die Testmanagerlogik 302 die Echtzeit-Threads, die mit den Kernen assoziiert sind, die der Zieltestgruppe zugeordnet sind, bei Operation 502 aus. Nach dem Beginn von SBFTs auf einer Testgruppe bei 504 wartet der Testmanager bei 506 auf ein Abschlusssignal von allen Echtzeit-Threads, z. B. mit einer Zeitüberschreitungsperiode wie etwa 50 ms bei einer Ausführungsform (was durch Auslaufen eines Timers angegeben werden kann). Dies ermöglicht eine Detektion eines Fehlers durch den Testmanager und eine Protokollierung bei 508, die für eine Profilbildung und eine Fehlerbeseitigung wichtig sein wird. Das Verfahren endet nach dem Aufzeichnen und Aktualisieren von Profil-/Fehlerbeseitigungsinformationen bei Operation 510.
  • 6 zeigt ein Flussdiagramm eines Echtzeit-Threads, der einen SBFT ausführt, gemäß einer Ausführungsform. Der Echtzeit-Thread beginnt den Testlauf durch Speichern, dann Einstellen des (z. B. EA (Eingabe Ausgabe)) APIC-Aufgabenprioritätsregisters auf die höchste Priorität bei 602, um das Lenken von Interrupts zu einem verfügbaren Kern zu beeinflussen. Der Echtzeit-Thread deaktiviert dann Interrupts auf dem Kern bei 604 und führt den SBFT bei 606 aus. Bei einer Ausführungsform kann sich, während der SBFT ausgeführt wird, der CPU-Kern in einem Pseudo-C6-Zustand befinden, wobei sich C6 auf einen CPU-Leistungsverwaltungszustand bezieht, in dem nur gewisse Ereignisse den CPU-Kern aufwecken können. Anschließend an eine SBFT-Ausführung aktiviert der Echtzeit-Thread Interrupts auf dem Kern bei 608, stellt das APIC-Aufgabenprioritätsregister bei 610 wieder her und signalisiert schließlich dem Aufgabenmanager, z. B. mit einem Status, einen Abschluss des SBFT.
  • Des Weiteren können manche Ausführungsformen in Rechenvorrichtungen angewandt werden, die einen oder mehrere Prozessoren (z. B. mit einem oder mehreren Prozessorkernen) beinhalten, wie etwa jene unter Bezugnahme auf 1 bis 10 besprochenen, einschließlich zum Beispiel Kleinformfaktor- oder Mobilrechenvorrichtungen, z. B. einer IoT-Vorrichtung, M2M(Machine-to-Machine)-Vorrichtung, eines Smartphones, eines Tablets, eines UMPC (Ultra-Mobile Personal Computer), eines Laptop-Computers, einer Ultrabook™-Rechenvorrichtung, Wearable-Vorrichtungen (wie etwa einer Smart-Watch, Smart-Glasses usw.), 2-in-1-Systemen usw. Jedoch sind hier besprochene Ausführungsformen nicht auf Mobilrechenvorrichtungen beschränkt und können auf einen beliebigen Typ von Rechenvorrichtung, wie etwa eine Workstation, einen Server, einen Supercomputer usw., angewandt werden. Außerdem werden manche Ausführungsformen sowohl in Rechenvorrichtungen, die einen Kühlungslüfter beinhalten, als auch in lüfterlosen Rechenvorrichtungen angewandt.
  • 7 veranschaulicht ein Blockdiagramm eines SOC-Gehäuses gemäß einer Ausführungsform. Wie in 7 veranschaulicht, beinhaltet das SOC 702 einen oder mehrere Zentrale-Verarbeitungseinheit(CPU)-Kerne 720, einen oder mehrere Grafikverarbeitungseinheit(GPU)-Kerne 730, eine Eingabe/Ausgabe(E/A)-Schnittstelle 740 und eine Speichersteuerung 742. Verschiedene Komponenten des SOC-Gehäuses 702 können mit einer Zwischenverbindung oder einem Bus, wie etwa hier unter Bezugnahme auf die anderen Figuren besprochen, gekoppelt sein. Außerdem kann das SOC-Gehäuse 702 mehr oder weniger Komponenten als z. B. unter Bezugnahme auf die anderen Figuren hierin besprochen beinhalten. Bei einer Ausführungsform ist das SOC-Gehäuse 702 (und seine Komponenten) z. B. auf einem oder mehreren Integrierter-Schaltkreis(IC)-Dies bereitgestellt, die in eine einzige Halbleitervorrichtung gekapselt sind.
  • Wie in 7 veranschaulicht, ist das SOC-Gehäuse 702 über eine Speichersteuerung 742 mit einem Speicher 760 gekoppelt. Bei einer Ausführungsform kann der Speicher 760 (oder ein Teil von ihm) auf dem SOC-Gehäuse 702 integriert sein.
  • Die E/A-Schnittstelle 740 kann mit einer oder mehreren E/A-Vorrichtungen 770 gekoppelt sein, z. B. über eine Zwischenverbindung und/oder einen Bus, wie etwa hier unter Bezugnahme auf andere Figuren besprochen. (Eine) E/A-Vorrichtung(en) 770 kann (können) eine Tastatur und/oder eine Maus und/oder ein Berührungsfeld und/oder eine Anzeige und/oder eine Bild/Video-Erfassungsvorrichtung (wie etwa eine Kamera oder einen Camcorder/Videorekorder) und/oder einen Berührungsbildschirm und/oder einen Lautsprecher oder dergleichen beinhalten.
  • 8 ist ein Blockdiagramm eines Verarbeitungssystems 800 gemäß einer Ausführungsform. Bei verschiedenen Ausführungsformen beinhaltet das System 800 einen oder mehrere Prozessoren 802 und einen oder mehrere Grafikprozessoren 808 und kann ein Einzelprozessor-Desktop-System, ein Mehrfachprozessor-Workstation-System oder ein Serversystem mit einer großen Anzahl an Prozessoren 802 oder Prozessorkernen 807 sein. Bei einer Ausführungsform ist das System 800 eine Verarbeitungsplattform, die innerhalb eines System-auf-Chip(SoC oder SOC: System-on-a-Chip)-Integrierter-Schaltkreises zur Verwendung in Mobil-, Handheld- oder eingebetteten Vorrichtungen eingebunden ist.
  • Eine Ausführungsform des Systems 800 kann eine serverbasierte Spieleplattform, eine Spielekonsole, einschließlich einer Spiel-und-Medien-Konsole, eine mobile Spielekonsole, eine Handheld-Spielekonsole oder eine Online-Spielekonsole beinhalten oder darin eingebunden sein. Bei manchen Ausführungsformen ist das System 800 ein Mobiltelefon, ein Smartphone, eine Tablet-Rechenvorrichtung oder eine mobile Internetvorrichtung. Das Datenverarbeitungssystem 800 kann auch eine Wearable-Vorrichtung, wie etwa eine Smart-Watch-Wearable-Vorrichtung, eine intelligente Brillenvorrichtung, eine Erweiterte-Realität-Vorrichtung oder eine Virtuelle-Realität-Vorrichtung beinhalten, damit gekoppelt sein oder darin integriert sein. Bei manchen Ausführungsformen ist das Datenverarbeitungssystem 800 eine Fernseh- oder Set-Top-Box-Vorrichtung mit einem oder mehreren Prozessoren 802 und einer Grafikoberfläche, die durch einen oder mehrere Grafikprozessoren 808 erzeugt wird.
  • Bei manchen Ausführungsformen beinhalten der eine oder die mehreren Prozessoren 802 jeweils einen oder mehrere Prozessorkerne 807 zum Verarbeiten von Befehlen, die, wenn sie ausgeführt werden, Operationen für System- und Benutzersoftware durchführen. Bei manchen Ausführungsformen ist jeder des einen oder der mehreren Prozessorkerne 807 dazu konfiguriert, einen speziellen Befehlssatz 809 zu verarbeiten. Bei manchen Ausführungsformen kann der Befehlssatz 809 eine Berechnung mit komplexem Befehlssatz (CISC: Complex Instruction Set Computing), eine Berechnung mit reduziertem Befehlssatz (RISC: Reduced Instruction Set Computing) oder eine Berechnung über ein sehr langes Befehlswort (VLIW: Very Long Instruction Word) ermöglichen. Mehrere Prozessorkerne 807 können jeweils einen unterschiedlichen Befehlssatz 809 verarbeiten, der Befehle zum Ermöglichen der Emulation anderer Befehlssätze beinhalten kann. Der Prozessorkern 807 kann auch andere Verarbeitungsvorrichtungen, wie etwa einen digitalen Signalprozessor (DSP), beinhalten.
  • Bei manchen Ausführungsformen beinhaltet der Prozessor 802 einen Cache-Speicher 804. In Abhängigkeit von der Architektur kann der Prozessor 802 einen einzigen internen Cache oder mehrere Ebenen eines internen Cache aufweisen. Bei manchen Ausführungsformen wird der Cache-Speicher zwischen verschiedenen Komponenten des Prozessors 802 geteilt. Bei manchen Ausführungsformen verwendet der Prozessor 802 auch einen externen Cache (z. B. einen Level3(L3)-Cache oder einen Last-Level-Cache (LLC)) (nicht gezeigt), der zwischen Prozessorkernen 807 unter Verwendung bekannter Cache-Kohärenztechniken geteilt werden kann. Eine Registerbank 806 ist zusätzlich in dem Prozessor 802 enthalten, welche unterschiedliche Typen von Registern zum Speichern unterschiedlicher Typen von Daten beinhalten kann (z. B. Integer-Register, Gleitkommaregister, Statusregister und Befehlszeigerregister). Manche Register können Mehrzweckregister sein, während andere Register spezifisch für die Gestaltung des Prozessors 802 sein können.
  • Bei manchen Ausführungsformen ist der Prozessor 802 mit einem Prozessorbus 810 gekoppelt, um Kommunikationssignale, wie etwa Adressen-, Daten- oder Steuersignale, zwischen dem Prozessor 802 und anderen Komponenten in dem System 800 zu übertragen. Bei einer Ausführungsform verwendet das System 800 eine beispielhafte „Hub“-Systemarchitektur, einschließlich eines Speichersteuerung-Hub 816 und eines Eingabe-Ausgabe(E/A)-Steuerung-Hub 830. Ein Speichersteuerung-Hub 816 ermöglicht eine Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 800, während ein E/A-Steuerung-Hub (ECH) 830 Verbindungen zu E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt. Bei einer Ausführungsform ist die Logik des Speichersteuerung-Hub 816 innerhalb des Prozessors integriert.
  • Die Speichervorrichtung 820 kann eine Dynamischer-Direktzugriffsspeicher(DRAM)-Vorrichtung, eine Statischer-Direktzugriffsspeicher(SRAM)-Vorrichtung, eine Flash-Speichervorrichtung, eine Phasenwechselspeichervorrichtung oder irgendeine andere Speichervorrichtung mit einer geeigneten Leistungsfähigkeit, um als Prozessspeicher zu dienen, sein. Bei einer Ausführungsform kann die Vorrichtung 820 als Systemspeicher für das System 800 arbeiten, um Daten 822 und Befehle 82 zur Verwendung zu speichern, wenn der eine oder die mehreren Prozessoren 802 eine Anwendung oder einen Prozess ausführen. Der Speichersteuerung-Hub 816 koppelt auch mit einem optionalen externen Grafikprozessor 812, der mit dem einen oder den mehreren Grafikprozessoren 808 in den Prozessoren 802 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen.
  • Bei manchen Ausführungsformen ermöglicht der ECH 830, dass sich Peripheriegeräte mit der Speichervorrichtung 820 und dem Prozessor 802 über einen Hochgeschwindigkeit-E/A-Bus verbinden. Die E/A-Peripheriegeräte beinhalten unter anderem eine Audiosteuerung 846, eine Firmwareschnittstelle 828, einen Drahtlossendeempfänger 826 (z. B. Wi-Fi, Bluetooth), eine Datenspeicherungsvorrichtung 824 (z. B. ein Festplattenlaufwerk, einen Flash-Speicher usw.) und eine Alt-E/A-Steuerung 840 zum Koppeln von alten (z. B. Personal-System-2 (PS/2) -) Vorrichtungen mit dem System. Eine oder mehrere Universal-Serial-Bus(USB)-Steuerungen 842 verbinden Eingabevorrichtungen, wie etwa Kombinationen aus Tastatur und Maus 844. Eine Netzwerksteuerung 834 kann auch mit dem ECH 830 koppeln. Bei manchen Ausführungsformen koppelt eine Hochleistungsnetzwerksteuerung (nicht gezeigt) mit dem Prozessorbus 810. Es versteht sich, dass das gezeigte System 800 beispielhaft und nicht beschränkend ist, da andere Typen von Datenverarbeitungssystemen, die unterschiedlich konfiguriert sind, ebenfalls verwendet werden können. Zum Beispiel kann der E/A-Steuerung-Hub 830 innerhalb des einen oder der mehreren Prozessoren 802 integriert sein, oder können der Speichersteuerung-Hub 816 und der E/A-Steuerung-Hub 830 in einen diskreten externen Grafikprozessor, wie etwa den externen Grafikprozessor 812, integriert sein.
  • 9 ist ein Blockdiagramm einer Ausführungsform eines Prozessors 900 mit einem oder mehreren Prozessorkernen 902A bis 902N, einer integrierten Speichersteuerung 914 und einem integrierten Grafikprozessor 908. Jene Elemente aus 9 mit den gleichen Bezugsnummern (oder Namen) wie die Elemente einer beliebigen anderen Figur hierin können auf eine Weise, die jener anderswo hier beschriebenen ähnlich ist, arbeiten oder wirken, sind aber nicht derart beschränkt. Der Prozessor 900 kann zusätzliche Kerne bis zu einem und einschließlich eines zusätzlichen Kern(s) 902N beinhalten, die durch die Boxen mit gestrichelten Linien repräsentiert sind. Jeder der Prozessorkerne 902A bis 902N beinhaltet eine oder mehrere interne Cache-Einheiten 904A bis 904N. Bei manchen Ausführungsformen hat jeder Prozessorkern auch Zugriff auf eine oder mehrere geteilte Cache-Einheiten 906.
  • Die internen Cache-Einheiten 904A bis 904N und die geteilten Cache-Einheiten 906 repräsentieren eine Cache-Speicherhierarchie innerhalb des Prozessors 900. Die Cache-Speicherhierarchie kann wenigstens eine Ebene von Befehlen und eines Daten-Cache innerhalb jedes Prozessorkerns und eine oder mehrere Ebenen eines geteilten Mid-Level-Cache, wie etwa ein Level-2(L2)-, Level-3(L3)-, Level-4(L4)- oder andere Ebenen eines Cache, beinhalten, wobei die höchste Ebene eines Cache vor einem externen Speicher als der LLC klassifiziert ist. Bei manchen Ausführungsformen bewahrt eine Cache-Kohärenzlogik eine Kohärenz zwischen den verschiedenen Cache-Einheiten 906 und 904A bis 904N.
  • Bei manchen Ausführungsformen kann der Prozessor 900 auch einen Satz aus einer oder mehreren Bussteuereinheiten 916 und einen Systemagentenkern 910 beinhalten. Die eine oder die mehreren Bussteuereinheiten 916 verwalten einen Satz von Peripheriebussen, wie etwa einen oder mehrere Peripheral-Componenten-Interconnect-Busse (z. B. PCI, PCI-Express). Der Systemagentenkern 910 stellt eine Verwaltungsfunktionalität für die verschiedenen Prozessorkomponenten bereit. Bei manchen Ausführungsformen beinhaltet der Systemagentenkern 910 eine oder mehrere integrierte Speichersteuerungen 914 zum Verwalten eines Zugriffs auf verschiedene externe Speichervorrichtungen (nicht gezeigt).
  • Bei manchen Ausführungsformen beinhalten ein oder mehrere der Prozessorkerne 902A bis 902N eine Unterstützung für gleichzeitiges Multithreading. Bei einer solchen Ausführungsform beinhaltet der Systemagentenkern 910 Komponenten zum Koordinieren und Betreiben der Kerne 902A bis 902N während einer Multithreading-Verarbeitung. Der Systemagentenkern 910 kann zusätzlich eine Leistungssteuereinheit (PCU: Power Control Unit) beinhalten, die eine Logik und Komponenten zum Regeln des Leistungszustands der Prozessorkerne 902A bis 902N und des Grafikprozessors 908 beinhaltet.
  • Bei manchen Ausführungsformen beinhaltet der Prozessor 900 zusätzlich einen Grafikprozessor 908, der Grafikverarbeitungsoperationen ausführt. Bei manchen Ausführungsformen koppelt der Grafikprozessor 908 mit dem Satz von geteilten Cache-Einheiten 906 und dem Systemagentenkern 910 einschließlich der einen oder der mehreren integrierten Speichersteuerungen 914. Bei manchen Ausführungsformen ist eine Anzeigesteuerung 911 mit dem Grafikprozessor 908 gekoppelt, um die Grafikprozessorausgabe an eine oder mehrere gekoppelte Anzeigen zu treiben. Bei manchen Ausführungsformen kann die Anzeigesteuerung 911 ein separates Modul sein, das über wenigstens eine Zwischenverbindung mit dem Grafikprozessor gekoppelt ist, oder kann innerhalb des Grafikprozessors 908 oder des Systemagentenkerns 910 integriert sein.
  • Bei manchen Ausführungsformen wird eine Zwischenverbindungseinheit 912 auf Ringbasis verwendet, um die internen Komponenten des Prozessors 900 zu koppeln. Jedoch kann eine alternative Zwischenverbindungseinheit verwendet werden, wie etwa eine Punkt-zu-Punkt-Zwischenverbindung, eine geschaltete Zwischenverbindung oder andere Techniken, einschließlich Techniken, die in der Technik wohl bekannt sind. Bei manchen Ausführungsformen koppelt der Grafikprozessor 908 über einen E/A-Link 913 mit der Ringzwischenverbindung 912.
  • Der beispielhafte E/A-Link 913 repräsentiert wenigstens eine von mehreren Varianten von E/A-Zwischenverbindungen, einschließlich einer E/A-Zwischenverbindung auf dem Gehäuse, die eine Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungsspeichermodul 918, wie etwa einem eDRAM(oder eingebetteter DRAM)-Modul, ermöglicht. Bei manchen Ausführungsformen verwenden jeder der Prozessorkerne 902 bis 902N und der Grafikprozessor 908 eingebettete Speichermodule 918 als einen geteilten Last-Level-Cache.
  • Bei manchen Ausführungsformen sind die Prozessorkerne 902A bis 902N homogene Kerne, die die gleiche Befehlssatzarchitektur ausführen. Bei einer anderen Ausführungsform sind die Prozessorkerne 902A bis 902N heterogen hinsichtlich einer Befehlssatzarchitektur (ISA: Instruction Set Architecture), wobei ein oder mehrere der Prozessorkerne 902A bis 902N einen ersten Befehlssatz ausführen, während wenigstens einer der anderen Kerne einen Teilsatz des ersten Befehlssatzes oder einen anderen Befehlssatz ausführt. Bei einer Ausführungsform sind die Prozessorkerne 902A bis 902N heterogen hinsichtlich einer Mikroarchitektur, wobei ein oder mehrere Kerne mit einem relativ höheren Leistungsverbrauch mit einem oder mehreren Leistungskernen mit einem geringeren Leistungsverbrauch koppeln. Außerdem kann der Prozessor 900 auf einem oder mehreren Chips oder als ein SoC-Integrierter-Schaltkreis mit den veranschaulichten Komponenten zusätzlich zu anderen Komponenten implementiert werden.
  • 10 ist ein Blockdiagramm eines Grafikprozessors 1000, der eine diskrete Grafikverarbeitungseinheit sein kann oder ein mit mehreren Verarbeitungskernen integrierter Grafikprozessor sein kann. Bei manchen Ausführungsformen kommuniziert der Grafikprozessor über eine speicherabgebildete E/A-Schnittstelle mit Registern auf dem Grafikprozessor und mit Befehlen, die in dem Prozessorspeicher platziert sind. Bei manchen Ausführungsformen beinhaltet der Grafikprozessor 1000 eine Speicherschnittstelle 1014 zum Speicherzugriff. Die Speicherschnittstelle 1014 kann eine Schnittstelle zu einem lokalen Speicher, einem oder mehreren internen Caches, einem oder mehreren geteilten externen Caches und/oder einem Systemspeicher sein.
  • Bei manchen Ausführungsformen beinhaltet der Grafikprozessor 1000 eine Anzeigesteuerung 1002 zum Treiben von Anzeigeausgabedaten zu einer Anzeigevorrichtung 1020. Die Anzeigesteuerung 1002 beinhaltet Hardware für eine oder mehrere Überlagerungsebenen für die Anzeige und eine Zusammensetzung mehrerer Schichten von Video- oder Benutzeroberflächenelementen. Bei manchen Ausführungsformen beinhaltet der Grafikprozessor 1000 eine Video-Codec-Engine 1006 zum Codieren, Decodieren oder Umschlüsseln von Medien von oder zwischen einem oder mehreren Mediencodierungsformaten, einschließlich unter anderem Moving-Picture-Experts-Group(MPEG)-Formaten, wie etwa MPEG-2, Advanced-Video-Coding(AVC)-Formaten, wie etwa H.264/MPEG-4 AVC, sowie den Society-of-Motion-Picture&Television-Engineers(SMPTE)-421M/VC-1- und Joint-Photographic-Experts-Group(JPEG)-Formaten, wie etwa JPEG, und Motion-JPEG(MJPEG)-Formaten.
  • Bei manchen Ausführungsformen beinhaltet der Grafikprozessor 1000 eine Blockbildtransfer(BLIT: Block Image Transfer)-Engine 1004 zum Durchführen von zweidimensionalen (2D-) Rasterungsoperationen, einschließlich zum Beispiel Bitgrenzenblocktransfers. Jedoch werden bei einer Ausführungsform 10D-Grafikoperationen unter Verwendung einer oder mehrerer Komponenten einer Grafikverarbeitung-Engine (GPE: Graphics Processing Engine) 1010 durchgeführt. Bei manchen Ausführungsformen ist die Grafikverarbeitung-Engine 1010 eine Rechen-Engine zum Durchführen von Grafikoperationen, einschließlich dreidimensionaler (3D-) Grafikoperationen und Medienoperationen.
  • Bei manchen Ausführungsformen beinhaltet die GPE 1010 eine 3D-Pipeline 1012 zum Durchführen von 3D-Operationen, wie etwa Rendern dreidimensionaler Bilder und Szenen unter Verwendung von Verarbeitungsfunktionen, die auf primitive 3D-Formen (z. B. ein Rechteck, Dreieck usw.) wirken. Die 3D-Pipeline 1012 beinhaltet programmierbare und feste Funktionselemente, die verschiedene Aufgaben innerhalb des Elements durchführen und/oder Ausführung-Threads zu einem 3D/Medien-Untersystem 1015 erzeugen. Während die 3D-Pipeline 1012 verwendet werden kann, um Medienoperationen durchzuführen, beinhaltet eine Ausführungsform einer GPE 1010 auch eine Medien-Pipeline 1016, die speziell verwendet wird, um Medienoperationen, wie etwa Videonachbearbeitung und Bildverbesserung, durchzuführen.
  • Bei manchen Ausführungsformen beinhaltet die Medien-Pipeline 1016 feste Funktions- oder programmierbare Logikeinheiten, um einen oder mehrere spezialisierte Medienoperationen, wie etwa eine Videodecodierungsbeschleunigung, Videoentschachtelung und Videocodierungsbeschleunigung, anstelle der, oder im Auftrag der, Video-Codec-Engine 1006 durch zuführen. Bei manchen Ausführungsformen beinhaltet die Medien-Pipeline 1016 zusätzlich eine Thread-Erzeugungseinheit zum Erzeugen von Threads zur Ausführung auf einem 3D/Medien-Untersystem 1015. Die erzeugten Threads führen Berechnungen für die Medienoperationen auf einer oder mehreren Grafikausführungseinheiten durch, die in dem 3D/Medien-Untersystem 1015 enthalten sind.
  • Bei manchen Ausführungsformen beinhaltet das 3D/Medien-Untersystem 1015 eine Logik zum Ausführen von Threads, die durch die 3D-Pipeline 1012 und die Medien-Pipeline 1016 erzeugt werden. Bei einer Ausführungsform senden die Pipelines Thread-Ausführungsanforderungen an das 3D/Medien-Untersystem 1015, das eine Thread-Versendelogik zum Vermitteln und Versenden der verschiedenen Anforderungen an verfügbare Thread-Ausführungsressourcen beinhaltet. Die Ausführungsressourcen beinhalten ein Array aus Grafikausführungseinheiten zum Verarbeiten der 3D- und Medien-Threads. Bei manchen Ausführungsformen beinhaltet das 3D/Medien-Untersystem 1015 einen oder mehrere interne Caches für Thread-Befehle und -Daten. Bei manchen Ausführungsformen beinhaltet das Untersystem auch einen geteilten Speicher, einschließlich Registern und eines adressierbaren Speichers, um Daten zwischen Threads zu teilen und Ausgabedaten zu speichern.
  • Die folgenden Beispiele betreffen weitere Ausführungsformen. Beispiel 1 beinhaltet eine Einrichtung, die Folgendes umfasst: eine Testmanagerlogik zum Bewirken von periodischem Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen, wobei jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen einen oder mehrere Prozessorkerne eines Mehrfachkernprozessors umfasst; und einen Speicher, der mit der Testmanagerlogik gekoppelt ist, zum Speichern von Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen, wobei ein Fehlersignal als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) zu erzeugen ist. Beispiel 2 beinhaltet die Einrichtung aus Beispiel 1, die eine Logik zum Bewahren der Informationen, die in dem Speicher gespeichert sind, basierend wenigstens teilweise auf einer Angabe, dass das Periodentesten der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne abgeschlossen wurde, umfasst. Beispiel 3 beinhaltet die Einrichtung aus Beispiel 1, die eine Logik zum Lesen der gespeicherten Informationen nach Abschluss des periodischen Testens der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne und zum Bewirken einer Übertragung des Fehlersignals als Reaktion auf eine Bestimmung, dass ein Fehler während des FTTI aufgetreten ist, umfasst. Beispiel 4 beinhaltet die Einrichtung aus Beispiel 3, wobei die Logik zum Lesen der gespeicherten Informationen über eine Plattformumgebungssteuerschnittstelle (PECI) ausgelegt ist. Beispiel 5 beinhaltet die Einrichtung aus Beispiel 1, wobei das FTTI einer minimalen Zeitperiode von einem Auftreten eines Fehlers in wenigstens einem des einen oder der mehreren Prozessorkerne bis zu dem Auftreten eines gefährlichen Ereignisses entspricht. Beispiel 6 beinhaltet die Einrichtung aus Beispiel 1, wobei das FTTI etwa 100 ms beträgt. Beispiel 7 beinhaltet die Einrichtung aus Beispiel 1, wobei ein Betriebssystemtreiber die Testmanagerlogik enthalten soll. Beispiel 8 beinhaltet die Einrichtung aus Beispiel 1, wobei eine Periode des periodischen Testens etwa 30 ms beträgt. Beispiel 9 beinhaltet die Einrichtung aus Beispiel 1, wobei der Mehrfachkernprozessor zum Ausführen mehrerer Threads gleichzeitig während des periodischen Testens in der Lage ist. Beispiel 10 beinhaltet die Einrichtung aus Beispiel 1, wobei der Mehrfachkernprozessor in einem von Folgendem bereitzustellen ist: einem Fahrzeug oder einer Internet-der-Dinge(IoT: Internet of Things)-Vorrichtung. Beispiel 11 beinhaltet die Einrichtung aus Beispiel 10, wobei das Fahrzeug eines von Folgendem umfasst: einen Personenkraftwagen, einen Lastkraftwagen, ein Motorrad, ein Flugzeug oder einen Helikopter. Beispiel 12 beinhaltet die Einrichtung aus Beispiel 1, wobei ein oder mehrere Interrupt-Signale zu dem einen oder den mehreren Prozessorkernen über ein Fortschrittliche-programmierbare-Interrupt-Steuerung(APIC)-Aufgabenprioritätsregister zu leiten sind. Beispiel 13 beinhaltet die Einrichtung aus Beispiel 1, wobei eine einzige Integrierter-Schaltkreis-Vorrichtung eines oder mehrere von Folgendem umfasst: die Testmanagerlogik, den einen oder die mehreren Prozessorkerne und den Speicher. Beispiel 14 beinhaltet die Einrichtung aus Beispiel 1, wobei die Testmanagerlogik zum Bewirken einer Übertragung eines Fehlersignals als Reaktion auf ein Auslaufen einer Zeitperiode vor dem Empfang eines Testabschlusssignals von allen zu testenden Prozessorkernen ausgelegt ist. Beispiel 15 beinhaltet die Einrichtung aus Beispiel 14, wobei die Zeitperiode etwa 50 ms beträgt. Beispiel 16 beinhaltet die Einrichtung aus Beispiel 1, wobei das periodische Testen wenigstens einen strukturbasierten Funktionstest (SBFT) umfasst.
  • Beispiel 17 beinhaltet ein oder mehrere computerlesbare Medien, das/die einen oder mehrere Befehle umfasst/umfassen, der/die, wenn er/sie auf wenigstens einem Prozessor ausgeführt wird/werden, den wenigstens einen Prozessor zum Durchführen einer oder mehrerer Operationen konfiguriert/konfigurieren zum: Bewirken, dass die Testmanagerlogik periodisches Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen durchführt, wobei jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen einen oder mehrere Prozessorkerne eines Mehrfachkernprozessors umfasst; und Speichern von Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen in einem Speicher, wobei ein Fehlersignal als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) zu erzeugen ist. Beispiel 18 beinhaltet das computerlesbare Medium aus Beispiel 17, das ferner einen oder mehrere Befehle umfasst, der/die, wenn er/sie auf dem wenigstens einen Prozessor ausgeführt wird/werden, den wenigstens einen Prozessor zum Durchführen einer oder mehrerer Operationen konfiguriert/konfigurieren, um Bewahren der Informationen, die in dem Speicher gespeichert sind, basierend wenigstens teilweise auf einer Angabe, dass das Periodentesten der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne abgeschlossen wurde, zu bewirken. Beispiel 19 beinhaltet das computerlesbare Medium aus Beispiel 17, das ferner einen oder mehrere Befehle umfasst, der/die, wenn er/sie auf dem wenigstens einen Prozessor ausgeführt wird/werden, den wenigstens einen Prozessor zum Durchführen einer oder mehrerer Operationen konfiguriert/konfigurieren, um Lesen der gespeicherten Informationen nach Abschluss des periodischen Testens der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne zu bewirken und eine Übertragung des Fehlersignals als Reaktion auf eine Bestimmung, dass ein Fehler während des FTTI aufgetreten ist, zu bewirken. Beispiel 20 beinhaltet das computerlesbare Medium aus Beispiel 17, wobei das FTTI einer minimalen Zeitperiode von einem Auftreten eines Fehlers in wenigstens einem des einen oder der mehreren Prozessorkerne bis zu dem Auftreten eines gefährlichen Ereignisses entspricht. Beispiel 21 beinhaltet das computerlesbare Medium aus Beispiel 17, wobei der Mehrfachkernprozessor zum Ausführen mehrerer Threads gleichzeitig während des periodischen Testens in der Lage ist. Beispiel 22 beinhaltet das computerlesbare Medium aus Beispiel 17, wobei der Mehrfachkernprozessor in einem von Folgendem bereitzustellen ist: einem Fahrzeug oder einer Internet-der-Dinge(IoT)-Vorrichtung. Beispiel 23 beinhaltet das computerlesbare Medium aus Beispiel 17, das ferner einen oder mehrere Befehle umfasst, der/die, wenn er/sie auf dem wenigstens einen Prozessor ausgeführt wird/werden, den wenigstens einen Prozessor zum Durchführen einer oder mehrerer Operationen konfiguriert/konfigurieren, um Leiten eines oder mehrerer Interrupt-Signale zu dem einen oder den mehreren Prozessorkernen über ein Fortschrittliche-programmierbare-Interrupt-Steuerung(APIC)-Aufgabenprioritätsregister zu bewirken. Beispiel 24 beinhaltet das computerlesbare Medium aus Beispiel 17, das ferner einen oder mehrere Befehle umfasst, der/die, wenn er/sie auf dem wenigstens einen Prozessor ausgeführt wird/werden, den wenigstens einen Prozessor zum Durchführen einer oder mehrerer Operationen konfiguriert/konfigurieren, um die Testmanagerlogik zum Bewirken einer Übertragung eines Fehlersignals als Reaktion auf ein Auslaufen einer Zeitperiode vor dem Empfang eines Testabschlusssignals von allen zu testenden Prozessorkernen zu veranlassen. Beispiel 25 beinhaltet das computerlesbare Medium aus Beispiel 17, wobei das periodische Testen wenigstens einen strukturbasierten Funktionstest (SBFT) umfasst.
  • Beispiel 26 beinhaltet ein Rechensystem, das Folgendes umfasst: einen Prozessor mit einem oder mehreren Prozessorkernen; einen Speicher, der mit dem Prozessor gekoppelt ist, zum Speichern eines oder mehrerer Bits von Daten; und eine Testmanagerlogik zum Bewirken von periodischem Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen, wobei jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen einen oder mehrere Prozessorkerne des Prozessors umfasst; und wobei der Speicher zum Speichern von Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen ausgelegt ist, wobei ein Fehlersignal als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) zu erzeugen ist. Beispiel 27 beinhaltet das Rechensystem aus Beispiel 23, das eine Logik zum Bewahren der Informationen, die in dem Speicher gespeichert sind, basierend wenigstens teilweise auf einer Angabe, dass das Periodentesten der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne abgeschlossen wurde, umfasst. Beispiel 28 beinhaltet das Rechensystem aus Beispiel 23, das eine Logik zum Lesen der gespeicherten Informationen nach Abschluss des periodischen Testens der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne und zum Bewirken einer Übertragung des Fehlersignals als Reaktion auf eine Bestimmung, dass ein Fehler während des FTTI aufgetreten ist, umfasst. Beispiel 29 beinhaltet das System aus Beispiel 23, wobei die Logik zum Lesen der gespeicherten Informationen über eine Plattformumgebungssteuerschnittstelle (PECI) ausgelegt ist. Beispiel 30 beinhaltet das System aus Beispiel 23, wobei das FTTI einer minimalen Zeitperiode von einem Auftreten eines Fehlers in wenigstens einem des einen oder der mehreren Prozessorkerne bis zu dem Auftreten eines gefährlichen Ereignisses entspricht. Beispiel 31 beinhaltet das System aus Beispiel 23, wobei das FTTI etwa 100 ms beträgt. Beispiel 32 beinhaltet das System aus Beispiel 23, wobei ein Betriebssystemtreiber die Testmanagerlogik enthalten soll. Beispiel 33 beinhaltet das System aus Beispiel 23, wobei eine Periode des periodischen Testens etwa 30 ms beträgt. Beispiel 34 beinhaltet das System aus Beispiel 23, wobei der Prozessor zum Ausführen mehrerer Threads gleichzeitig während des periodischen Testens in der Lage ist. Beispiel 35 beinhaltet das System aus Beispiel 23, wobei der Prozessor in einem von Folgendem bereitzustellen ist: einem Fahrzeug oder einer Internet-der-Dinge(IoT)-Vorrichtung. Beispiel 36 beinhaltet das System aus Beispiel 35, wobei das Fahrzeug eines von Folgendem umfasst: einen Personenkraftwagen, einen Lastkraftwagen, ein Motorrad, ein Flugzeug oder einen Helikopter. Beispiel 37 beinhaltet das System aus Beispiel 23, wobei ein oder mehrere Interrupt-Signale zu dem einen oder den mehreren Prozessorkernen über ein Fortschrittliche-programmierbare-Interrupt-Steuerung(APIC)-Aufgabenprioritätsregister zu leiten sind.
  • Beispiel 38 beinhaltet ein Verfahren, das Folgendes umfasst: Bewirken, dass eine Testmanagerlogik periodisches Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen durchführt, wobei jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen einen oder mehrere Prozessorkerne eines Mehrfachkernprozessors umfasst; und Speichern von Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen in einem Speicher, wobei ein Fehlersignal als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) erzeugt wird. Beispiel 39 beinhaltet das Verfahren aus Beispiel 38, das ferner Bewahren der Informationen, die in dem Speicher gespeichert sind, basierend wenigstens teilweise auf einer Angabe, dass das Periodentesten der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne abgeschlossen wurde, umfasst. Beispiel 40 beinhaltet das Verfahren aus Beispiel 38, das ferner Lesen der gespeicherten Informationen nach Abschluss des periodischen Testens der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne und Bewirken einer Übertragung des Fehlersignals als Reaktion auf eine Bestimmung, dass ein Fehler während des FTTI aufgetreten ist, umfasst. Beispiel 41 beinhaltet das Verfahren aus Beispiel 38, wobei das FTTI einer minimalen Zeitperiode von einem Auftreten eines Fehlers in wenigstens einem des einen oder der mehreren Prozessorkerne bis zu dem Auftreten eines gefährlichen Ereignisses entspricht. Beispiel 42 beinhaltet das Verfahren aus Beispiel 38, das ferner Ausführen mehrerer Threads gleichzeitig während des periodischen Testens durch den Mehrfachkernprozessor umfasst. Beispiel 43 beinhaltet das Verfahren aus Beispiel 38, das ferner Leiten eines oder mehrerer Interrupt-Signale zu dem einen oder den mehreren Prozessorkernen über ein Fortschrittliche-programmierbare-Interrupt-Steuerung(APIC)-Aufgabenprioritätsregister umfasst. Beispiel 44 beinhaltet das Verfahren aus Beispiel 38, das ferner Übertragen eines Fehlersignals als Reaktion auf ein Auslaufen einer Zeitperiode vor dem Empfang eines Testabschlusssignals von allen zu testenden Prozessorkernen umfasst. Beispiel 45 beinhaltet das Verfahren aus Beispiel 38, wobei das periodische Testen wenigstens einen strukturbasierten Funktionstest (SBFT) umfasst.
  • Beispiel 46 beinhaltet eine Einrichtung, die ein Mittel zum Durchführen eines Verfahrens nach einem vorhergehenden Beispiel umfasst. Beispiel 47 umfasst eine maschinenlesbare Speicherung, die maschinenlesbare Befehle umfasst, um, wenn sie ausgeführt werden, ein Verfahren zu implementieren oder eine Einrichtung nach einem vorhergehenden Beispiel zu realisieren.
  • Bei verschiedenen Ausführungsformen können die hier, z. B. unter Bezugnahme auf 1 und folgende, besprochenen Operationen als Hardware (z. B. Logikschaltungsanordnung), Software, Firmware oder Kombinationen davon implementiert werden, was als ein Computerprogrammprodukt bereitgestellt werden kann, z. B. einschließlich eines greifbaren (z. B. nichtflüchtigen) maschinenlesbaren oder computerlesbaren Mediums mit darauf gespeicherten Befehlen (oder Softwareprozeduren), die zum Programmieren eines Computers dazu verwendet werden, einen hier besprochenen Prozess durchzuführen. Das maschinenlesbare Medium kann eine Speicherungsvorrichtung, wie etwa jene mit Bezug auf 1 und folgende besprochene, beinhalten.
  • Außerdem können computerlesbare Medien als ein Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer (z. B. einem Server) zu einem anfordernden Computer (z. B. einem Client) mittels Datensignalen, die in einer Trägerwelle oder einem anderen Propagationsmedium über einen Kommunikation-Link (z. B. einen Bus, ein Modem oder eine Netzwerkverbindung) bereitgestellt werden, transferiert werden kann.
  • Eine Bezugnahme in der Beschreibung auf „eine Ausführungsform“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur und/oder eine bestimmte Charakteristik, das/die in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer Implementierung enthalten sein kann. Das Auftauchen der Phrase „bei einer Ausführungsform“ an verschiedenen Stellen in der Beschreibung kann jeweils auf die gleiche Ausführungsform verweisen oder nicht.
  • Außerdem können in der Beschreibung und den Ansprüchen die Ausdrücke „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Bei manchen Ausführungsformen kann „verbunden“ verwendet werden, um anzugeben, dass sich zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt befinden. „Gekoppelt“ kann bedeuten, dass sich zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt befinden. Jedoch kann „gekoppelt“ auch bedeuten, dass sich zwei oder mehr Elemente möglicherweise nicht in direktem Kontakt miteinander befinden, aber immer noch zusammenwirken oder miteinander interagieren.
  • Obwohl Ausführungsformen in für strukturelle Merkmale und/oder methodologische Handlungen spezifischer Sprache beschrieben wurden, versteht es sich dementsprechend, dass der beanspruchte Gegenstand möglicherweise nicht auf die beschriebenen speziellen Merkmale oder Handlungen beschränkt ist. Stattdessen sind die speziellen Merkmale und Handlungen als Beispielformen des Implementierens des beanspruchten Gegenstands offenbart.

Claims (25)

  1. Einrichtung, die Folgendes umfasst: eine Testmanagerlogik zum Bewirken von periodischem Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen, wobei jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen einen oder mehrere Prozessorkerne eines Mehrfachkernprozessors umfasst; und einen Speicher, der mit der Testmanagerlogik gekoppelt ist, zum Speichern von Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen, wobei ein Fehlersignal als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) zu erzeugen ist.
  2. Einrichtung nach Anspruch 1, die eine Logik zum Bewahren der Informationen, die in dem Speicher gespeichert sind, basierend wenigstens teilweise auf einer Angabe, dass das Periodentesten der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne abgeschlossen wurde, umfasst.
  3. Einrichtung nach Anspruch 1, die eine Logik zum Lesen der gespeicherten Informationen nach Abschluss des periodischen Testens der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne und zum Bewirken einer Übertragung des Fehlersignals als Reaktion auf eine Bestimmung, dass ein Fehler während des FTTI aufgetreten ist, umfasst.
  4. Einrichtung nach Anspruch 3, wobei die Logik zum Lesen der gespeicherten Informationen über eine Plattformumgebungssteuerschnittstelle (PECI) ausgelegt ist.
  5. Einrichtung nach Anspruch 1, wobei das FTTI einer minimalen Zeitperiode von einem Auftreten eines Fehlers in wenigstens einem des einen oder der mehreren Prozessorkerne bis zu dem Auftreten eines gefährlichen Ereignisses entspricht.
  6. Einrichtung nach Anspruch 1, wobei das FTTI etwa 100 ms beträgt.
  7. Einrichtung nach Anspruch 1, wobei ein Betriebssystemtreiber die Testmanagerlogik umfassen soll.
  8. Einrichtung nach Anspruch 1, wobei eine Periode des periodischen Testens etwa 30 ms beträgt.
  9. Einrichtung nach Anspruch 1, wobei der Mehrfachkernprozessor zum Ausführen mehrerer Threads gleichzeitig während des periodischen Testens in der Lage ist.
  10. Einrichtung nach Anspruch 1, wobei der Mehrfachkernprozessor in einem von Folgendem bereitzustellen ist: einem Fahrzeug oder einer Internet-der-Dinge(IoT)-Vorrichtung.
  11. Einrichtung nach Anspruch 10, wobei das Fahrzeug eines von Folgendem umfasst: einen Personenkraftwagen, einen Lastkraftwagen, ein Motorrad, ein Flugzeug oder einen Helikopter.
  12. Einrichtung nach Anspruch 1, wobei ein oder mehrere Interrupt-Signale zu dem einen oder den mehreren Prozessorkernen über ein Fortschrittliche-programmierbare-Interrupt-Steuerung(APIC)-Aufgabenprioritätsregister zu leiten sind.
  13. Einrichtung nach Anspruch 1, wobei eine einzige Integrierter-Schaltkreis-Vorrichtung eines oder mehrere von Folgendem umfasst: die Testmanagerlogik, den einen oder die mehreren Prozessorkerne und den Speicher.
  14. Einrichtung nach Anspruch 1, wobei die Testmanagerlogik zum Bewirken einer Übertragung eines Fehlersignals als Reaktion auf ein Auslaufen einer Zeitperiode vor dem Empfang eines Testabschlusssignals von allen zu testenden Prozessorkernen ausgelegt ist.
  15. Einrichtung nach Anspruch 14, wobei die Zeitperiode etwa 50 ms beträgt.
  16. Einrichtung nach Anspruch 1, wobei das periodische Testen wenigstens einen strukturbasierten Funktionstest (SBFT) umfasst.
  17. Verfahren, das Folgendes umfasst: Bewirken, dass eine Testmanagerlogik periodisches Testen einer ersten Gruppe von Prozessorkernen oder einer zweiten Gruppe von Prozessorkernen durchführt, wobei jede der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe von Prozessorkernen einen oder mehrere Prozessorkerne eines Mehrfachkernprozessors umfasst; und Speichern von Informationen entsprechend dem Periodentesten der ersten Gruppe von Prozessorkernen und der zweiten Gruppe von Prozessorkernen in einem Speicher, wobei ein Fehlersignal als Reaktion auf einen Abschluss des Periodentestens außerhalb eines Fehlertoleranzzeitintervalls (FTTI) erzeugt wird.
  18. Verfahren nach Anspruch 17, das ferner Bewahren der Informationen, die in dem Speicher gespeichert sind, basierend wenigstens teilweise auf einer Angabe, dass das Periodentesten der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne abgeschlossen wurde, umfasst.
  19. Verfahren nach Anspruch 17, das ferner Lesen der gespeicherten Informationen nach Abschluss des periodischen Testens der ersten Gruppe von Prozessorkernen oder der zweiten Gruppe der Prozessorkerne und Bewirken einer Übertragung des Fehlersignals als Reaktion auf eine Bestimmung, dass ein Fehler während des FTTI aufgetreten ist, umfasst.
  20. Verfahren nach Anspruch 17, wobei das FTTI einer minimalen Zeitperiode von einem Auftreten eines Fehlers in wenigstens einem des einen oder der mehreren Prozessorkerne bis zu dem Auftreten eines gefährlichen Ereignisses entspricht.
  21. Verfahren nach Anspruch 17, das ferner Ausführen mehrerer Threads gleichzeitig während des periodischen Testens durch den Mehrfachkernprozessor umfasst.
  22. Verfahren nach Anspruch 17, das ferner Leiten eines oder mehrerer Interrupt-Signale zu dem einen oder den mehreren Prozessorkernen über ein Fortschrittliche-programmierbare-Interrupt-Steuerung(APIC)-Aufgabenprioritätsregister umfasst.
  23. Verfahren nach Anspruch 17, das ferner Übertragen eines Fehlersignals als Reaktion auf ein Auslaufen einer Zeitperiode vor dem Empfang eines Testabschlusssignals von allen zu testenden Prozessorkernen umfasst.
  24. Computerlesbares Medium, das einen oder mehrere Befehle umfasst, der/die, wenn er/sie auf einem Prozessor ausgeführt wird/werden, den Prozessor zum Durchführen einer oder mehrerer Operationen nach einem der Ansprüche 17 bis 23 konfiguriert/konfigurieren.
  25. Einrichtung, die ein Mittel zum Durchführen eines Verfahrens nach einem der Ansprüche 17 bis 23 umfasst.
DE102018130369.6A 2017-12-29 2018-11-29 Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit Pending DE102018130369A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/858,492 US10838835B2 (en) 2017-12-29 2017-12-29 Scheduling periodic CPU core diagnostics within an operating system during run-time
US15/858,492 2017-12-29

Publications (1)

Publication Number Publication Date
DE102018130369A1 true DE102018130369A1 (de) 2019-07-04

Family

ID=65275159

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018130369.6A Pending DE102018130369A1 (de) 2017-12-29 2018-11-29 Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit

Country Status (3)

Country Link
US (1) US10838835B2 (de)
CN (1) CN109992456A (de)
DE (1) DE102018130369A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10838835B2 (en) 2017-12-29 2020-11-17 Intel Corporation Scheduling periodic CPU core diagnostics within an operating system during run-time
WO2022179724A1 (de) * 2021-02-25 2022-09-01 Robert Bosch Gmbh Verfahren zum überwachen der energieversorgung eines kraftfahrzeugs

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742795A (zh) * 2020-05-27 2021-12-03 台湾积体电路制造股份有限公司 对集成电路中的半导体存储器的安全级别进行认证的方法
GB2600708B (en) * 2020-11-04 2023-06-14 Advanced Risc Mach Ltd Data processing systems
GB2604089B (en) 2020-11-27 2024-05-08 Advanced Risc Mach Ltd Data processing systems
US20230102991A1 (en) * 2021-09-24 2023-03-30 Intel Corporation Systems, apparatuses, and methods for autonomous functional testing of a processor
CN115424658B (zh) * 2022-11-01 2023-01-31 南京芯驰半导体科技有限公司 存储单元的测试方法、装置、电子设备、存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522189B2 (en) * 2011-03-09 2013-08-27 Intel Corporation Functional fabric based test access mechanism for SoCs
US9043521B2 (en) * 2012-11-13 2015-05-26 Intel Corporation Technique for communicating interrupts in a computer system
JP6496562B2 (ja) * 2014-04-11 2019-04-03 ルネサスエレクトロニクス株式会社 半導体装置、診断テスト方法及び診断テスト回路
JP6424271B2 (ja) * 2015-04-16 2018-11-14 ルネサスエレクトロニクス株式会社 半導体装置
JP6438353B2 (ja) * 2015-05-27 2018-12-12 ルネサスエレクトロニクス株式会社 半導体装置及び診断テスト方法
CN106936616B (zh) * 2015-12-31 2020-01-03 伊姆西公司 备份通信方法和装置
DE102016210984A1 (de) * 2016-06-20 2017-12-21 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US10481202B2 (en) * 2017-02-13 2019-11-19 Qualcomm Incorporated In-field self-test controller for safety critical automotive use cases
US10838835B2 (en) 2017-12-29 2020-11-17 Intel Corporation Scheduling periodic CPU core diagnostics within an operating system during run-time

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10838835B2 (en) 2017-12-29 2020-11-17 Intel Corporation Scheduling periodic CPU core diagnostics within an operating system during run-time
WO2022179724A1 (de) * 2021-02-25 2022-09-01 Robert Bosch Gmbh Verfahren zum überwachen der energieversorgung eines kraftfahrzeugs

Also Published As

Publication number Publication date
US10838835B2 (en) 2020-11-17
CN109992456A (zh) 2019-07-09
US20190050309A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
DE102018130369A1 (de) Planung periodischer cpu-kern-diagnostiken innerhalb eines betriebssystems während der laufzeit
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE102020102232A1 (de) Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen
US11148675B2 (en) Apparatus and method of sharing a sensor in a multiple system on chip environment
DE112017003710T5 (de) Verfahren zum Konfigurieren physischer Rechenressourcen für Arbeitslasten per Leitungsvermittlung verwandte Fälle
DE102021104387A1 (de) Verfahren zur durchführung bit-linearer transformationen
DE112020005347T5 (de) 5g-ressourcen-zuweisungstechnik
DE102019130715A1 (de) Verwaltung der systemstromversorgung in usb-c/usb-stromversorgungs-ablieferungssystemen
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
DE102010055267A1 (de) Gemeinsames Benutzen von Ressourcen zwischen einer CPU und GPU
DE112020000231T5 (de) Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität
CN111026363A (zh) 用于自主驾驶的异构计算架构硬件/软件协同设计
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE102021114012A1 (de) Intelligente flüssigkeitsgekühlte computer- pods für ein mobiles rechenzentrum
DE102015102135A1 (de) Unterbrechbares Exklusivspeichern
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
US20190052277A1 (en) Functional safety clocking framework for real time systems
WO2016102055A2 (de) Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE112017001012T5 (de) Prozessoren, verfahren und systeme zum einstellen maximaler taktfrequenzen basierend auf dem befehlstyp
DE102023103633A1 (de) Zustandsüberwachung in sicheren rechenzentren
DE112018004329T5 (de) Steuerblöcke zur prozessorleistungsverwaltung
DE112007003722T5 (de) Modifizieren von Systemroutinginformationen in linkbasierenden Systemen