-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft im Allgemeinen das Testen von Betriebskomponenten von Computervorrichtungen, und betrifft insbesondere Systeme und Verfahren zum Anweisen von Computervorrichtungen, um einen Testbetrieb durchzuführen, und zum Anzeigen eines Fehlers, wenn das Ergebnis nicht wie erwartet ausfällt.
-
EINLEITUNG
-
Ein autonomes Fahrzeug ist ein Fahrzeug, das in der Lage ist, seine Umgebung zu erfassen und mit geringfügiger oder gar keiner Benutzereingabe zu navigieren. Ein autonomes Fahrzeug erfasst seine Umgebung unter Verwendung von Sensorvorrichtungen, wie beispielsweise Radar-, Lidar-, Bildsensoren und dergleichen. Das autonome Fahrzeug nutzt weiterhin Informationen von globalen Positioniersystemen (GPS), Navigationssystemen, Fahrzeug-Fahrzeug-Kommunikationen, Fahrzeug-Infrastruktur-Technologien und/oder drahtgesteuerten Systemen, um das Fahrzeug zu navigieren.
-
Das Analysieren der Daten von den Sensorvorrichtungen erfordert erhebliche Rechenleistung. Um die rechentechnischen Anforderungen der Fahrzeugautomatisierung zu erfüllen, werden parallele Verarbeitungsvorrichtungen häufiger eingesetzt. Zum Beispiel werden Grafikverarbeitungseinheiten (Grafics Processing Unit (GPUs)) verwendet, um die rechentechnische Kapazität für bestimmte Vorgänge zu nutzen. Obwohl diese parallelen Verarbeitungsvorrichtungen eine erhöhte rechentechnische Kapazität bereitstellen, weisen sie typischerweise keine robuste Fähigkeit auf, sich selbst auf funktionale Richtigkeit zu testen.
-
Einige komplexe Vorrichtungen weisen eine eingebaute Fähigkeit auf, sich selbst zu testen (Bist). Ein Bist wird innerhalb der Vorrichtung selbst beim Hochfahren durchgeführt, um zu bestimmen, ob die Vorrichtung fehlerhaft ist. Bist stellt jedoch nicht die Fähigkeit bereit, den Test durchzuführen, während die Vorrichtung nach dem Hochfahren betrieben wird, und erlaubt auch nicht das Testen individueller Komponenten, um die Leistungsbeeinträchtigung durch das Testen einzuschränken und stellt andernfalls sehr wenig Flexibilität beim Testen der Vorrichtung oder der Komponenten der Vorrichtung bereit. Ferner weisen parallele Verarbeitungsvorrichtungen typischerweise kein Bist Leistungsvermögen auf.
-
Dementsprechend ist es wünschenswert Systeme und Verfahren vorzusehen, die einzelne Komponenten einer Vorrichtung testen, während die Vorrichtung sich im Betrieb befindet. Ferner werden andere wünschenswerte Funktionen und Merkmale der vorliegenden Erfindung aus der nachfolgenden ausführlichen Beschreibung und den beigefügten Ansprüchen, in Verbindung mit den beigefügten Zeichnungen, sowie mit dem vorangehenden technischen Gebiet und Hintergrund ersichtlich offensichtlich.
-
KURZDARSTELLUNG
-
Systeme und Verfahren zum Testen einer Betriebskomponente für ein erstes Computergerät eines Fahrzeugs sind vorgesehen. In einer Ausführungsform beinhaltet ein Verfahren das Auswählen der Betriebskomponente des ersten Computergeräts und das Auswählen eines Testbetriebs, der konfiguriert ist, eine gesamte Kapazität der Betriebskomponente zu nutzen. Das Verfahren beinhaltet ferner das Anweisen des ersten Computergeräts den Testbetrieb durchzuführen und ein erstes Ergebnis zu generieren. Das Verfahren beinhaltet darüber hinaus auch das Abrufen eines zweiten Ergebnisses des Testbetriebs und das Vergleichen des ersten Ergebnisses des Testbetriebs vom ersten Computergerät mit dem zweiten Ergebnis. Das Verfahren beinhaltet ferner das Anzeigen, dass das erste Computergerät fehlerhaft ist, basierend mindestens teilweise auf einem Unterschied zwischen dem ersten Ergebnis und den zweiten Ergebnis.
-
In einer Ausführungsform beinhaltet ein Verfahren zum Testen eines ersten Computergeräts eines Fahrzeugs das Auswählen einer Betriebskomponente des ersten Computergeräts, wobei die Betriebskomponente entweder eine Memory-Komponente, ein Register, oder eine arithmetische Logikeinheit (Arithmetic Logic Unit (ALU)) ist. Das Verfahren beinhaltet ferner das Auswählen eines Testbetriebs, der konfiguriert ist, eine gesamte Kapazität der Betriebskomponente zu nutzen, wobei das Auswählen des Testbetriebs das Auswählen eines Schreibvorgangs und eines Lesevorgangs als Reaktion darauf beinhaltet, dass die Betriebskomponente Memory-Komponente ist. Das Auswählen des Testbetriebs beinhaltet ferner das Auswählen eines Bit-Schaltvorgangs als den Testbetrieb als Reaktion darauf, dass die Betriebskomponente das Register ist, und das Auswählen entweder eines Vektoradditionsvorgangs, eines Vektormultiplikationsvorgangs, oder eines Logikbetriebs als Reaktion darauf, dass die Betriebskomponente die ALU ist. Das Verfahren beinhaltet ferner das Anweisen des ersten Computergeräts, den Testbetrieb durchzuführen und ein erstes Ergebnis zu generieren. Das Verfahren beinhaltet ferner das Anweisen eines zweiten Computergeräts des Fahrzeugs den Testbetrieb durchzuführen und ein zweites Ergebnis zu generieren. Das Verfahren beinhaltet ferner das Vergleichen des ersten Ergebnisses des Testbetriebs vom ersten Computergerät mit dem zweiten Ergebnis basierend auf einer funktionalen Richtigkeit des ersten Computergeräts. Das Verfahren beinhaltet ferner das Anzeigen, dass das erste Computergerät fehlerhaft ist, basierend mindestens teilweise auf einem Unterschied zwischen dem ersten Ergebnis und den zweiten Ergebnis.
-
In einer Ausführungsform beinhaltet ein System zum Testen eines Computergeräts eines Fahrzeugs mindestens einen Prozessor. Der mindestens eine Prozessor ist für Folgendes konfiguriert: Auswählen einer Betriebskomponente des ersten Computergeräts, Auswählen eines Testbetriebs, der konfiguriert ist, eine gesamte Kapazität der Betriebskomponente zu nutzen, Anweisen des ersten Computergeräts, den ersten Testbetrieb durchzuführen und ein erstes Ergebnis zu generieren, Abrufen des zweiten Ergebnisses des Testbetriebs, Vergleichen des ersten Ergebnisses des Testbetriebs vom ersten Computergerät mit dem zweiten Ergebnis, und Angeben, dass das erste Computergerät basierend zumindest teilweise auf einem Unterschied zwischen dem ersten Ergebnis und dem zweiten Ergebnis, fehlerhaft ist.
-
Figurenliste
-
Die exemplarischen Ausführungsformen werden nachfolgend in Verbindung mit den folgenden Zeichnungen beschrieben, worin gleiche Bezugszeichen gleiche Elemente bezeichnen, und worin gilt:
- 1 ist ein Funktionsblockdiagramm, das ein autonomes Fahrzeug mit einem Steuersystem gemäß verschiedenen Ausführungsformen darstellt;
- 2 ist ein vereinfachtes Blockdiagramm, das ein Steuersystem des autonomen Fahrzeugs gemäß verschiedenen Ausführungsformen veranschaulicht; und
- 3 ist ein Flussdiagramm, das ein Steuerverfahren zum Testen von Komponenten der Computervorrichtungen aus 2 in Übereinstimmung mit verschiedenen Ausführungsformen veranschaulicht;
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende ausführliche Beschreibung dient lediglich als Beispiel und soll die Anwendung und Verwendung in keiner Weise einschränken. Weiterhin besteht keine Absicht, im vorstehenden technischen Bereich, Hintergrund, der Kurzzusammenfassung oder der folgenden ausführlichen Beschreibung an eine ausdrücklich oder implizit vorgestellte Theorie gebunden zu sein. Der hierin verwendete Begriff „Modul“ bezieht sich auf alle Hardware-, Software-, Firmwareprodukte, elektronische Steuerkomponenten, auf die Verarbeitungslogik und/oder Prozessorgeräte, einzeln oder in Kombinationen, unter anderem umfassend, eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder gruppiert) und einen Speicher, der ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten ausführt, die die beschriebene Funktionalität bieten.
-
Ausführungsformen der vorliegenden Offenbarung können hierin als funktionale und/oder logische Blockkomponenten und verschiedene Verarbeitungsschritte beschrieben sein. Es ist zu beachten, dass derartige Blockkomponenten aus einer beliebigen Anzahl an Hardware-, Software- und/oder Firmware-Komponenten aufgebaut sein können, die zur Ausführung der erforderlichen Funktionen konfiguriert sind. Zum Beispiel kann eine Ausführungsform der vorliegenden Offenbarung eines Systems oder einer Komponente verschiedene integrierte Schaltungskomponenten, beispielsweise Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Wertetabellen oder dergleichen, einsetzen, die mehrere Funktionen unter der Steuerung eines oder mehrerer Mikroprozessoren oder anderer Steuervorrichtungen durchführen können. Zudem werden Fachleute auf dem Gebiet erkennen, dass die exemplarischen Ausführungsformen der vorliegenden Offenbarung in Verbindung mit einer beliebigen Anzahl an Systemen eingesetzt werden können, und dass das hierin beschriebene System lediglich eine exemplarische Ausführungsform der vorliegenden Offenbarung darstellt.
-
Der Kürze halber sind konventionelle Techniken in Verbindung mit der Signalverarbeitung, Datenübertragung, Signalgebung, Steuerung und weiteren funktionalen Aspekten der Systeme (und den einzelnen Bedienelementen der Systeme) hierin ggf. nicht im Detail beschrieben. Weiterhin sollen die in den verschiedenen Figuren dargestellten Verbindungslinien exemplarische Funktionsbeziehungen und/oder physikalische Verbindungen zwischen den verschiedenen Elementen darstellen. Es sollte beachtet werden, dass viele alternative oder zusätzliche funktionale Beziehungen oder physikalische Verbindungen in einer Ausführungsform der vorliegenden Offenbarung vorhanden sein können.
-
Wie unter Bezugnahme auf 1 ersichtlich, ist ein bei 100 allgemein dargestelltes Steuersystem mit einem Fahrzeug 10 gemäß verschiedenen Ausführungsformen assoziiert. Im Allgemeinen weist das Steuersystem 100 Architektur- und Laufzeitdienstleistungen auf, um die funktionale Richtigkeit eines parallelen Computergeräts während des Betriebs zu prüfen. Das Steuersystem 100 verwendet eine Kombination aus unterschiedlichen Testfällen und Testaufrufen, die durch ein Computergerät des Fahrzeugs 10 durchgeführt werden. Das Testen kann mit unterschiedlichen Konfigurationen implementiert werden, um auf unterschiedliche Bedürfnisse in Bezug auf unterschiedliche parallele Computerhardware einzugehen. Das Testen ist während der Laufzeit konfigurierbar und ist in der Lage, Störungen der normalen Rechenleistung des Computergeräts zu steuern.
-
Wie in 1 dargestellt, beinhaltet das Fahrzeug 10 im Allgemeinen ein Fahrgestell 12, eine Karosserie 14, Vorderräder 16 und Hinterräder 18. Die Karosserie 14 ist auf dem Fahrgestell 12 angeordnet und umhüllt im Wesentlichen die anderen Komponenten des Fahrzeugs 10. Die Karosserie 14 und das Fahrgestell 12 können gemeinsam einen Rahmen bilden. Die Räder 16-18 sind jeweils mit dem Fahrgestell 12 in der Nähe einer jeweiligen Ecke der Karosserie 14 drehbar verbunden.
-
In verschiedenen Ausführungsformen ist das Fahrzeug 10 ein autonomes Fahrzeug und das Steuersystem 100 ist in das Fahrzeug 10 integriert. Das Fahrzeug 10 ist beispielsweise ein Fahrzeug, das automatisch gesteuert wird, um Passagiere von einem Ort zum anderen zu befördern. Das Fahrzeug 10 ist in der veranschaulichten Ausführungsform als Pkw dargestellt, es sollte jedoch beachtet werden, dass auch jedes andere Fahrzeug, einschließlich Motorräder, Lastwagen, Sportfahrzeuge (SUVs), Freizeitfahrzeuge (RVs), Schiffe, Flugzeuge usw. verwendet werden können. In einer exemplarischen Ausführungsform ist das Fahrzeug 10 ein sogenanntes Level-Vier- oder Level-Fünf-Automatisierungssystem. Ein Level-Vier-System zeigt eine „hohe Automatisierung“ unter Bezugnahme auf die Fahrmodus-spezifische Leistung durch ein automatisiertes Fahrsystem aller Aspekte der dynamischen Fahraufgabe an, selbst wenn ein menschlicher Fahrer nicht angemessen auf eine Anforderung einzugreifen, reagiert. Ein Level-Fünf-System zeigt eine „Vollautomatisierung“ an und verweist auf die Vollzeitleistung eines automatisierten Fahrsystems aller Aspekte der dynamischen Fahraufgabe unter allen Fahrbahn- und Umgebungsbedingungen, die von einem menschlichen Fahrer verwaltet werden können.
-
Wie dargestellt, beinhaltet das Fahrzeug 10 im Allgemeinen ein Antriebssystem 20, ein Übertragungssystem 22, ein Lenksystem 24, ein Bremssystem 26, ein Sensorsystem 28, ein Stellantriebsystem 30, mindestens einen Datenspeicher 32, mindestens eine Steuerung 34 und ein Kommunikationssystem 36. Das Antriebssystem 20 kann in verschiedenen Ausführungsformen einen Verbrennungsmotor, eine elektrische Maschine, wie beispielsweise einen Traktionsmotor und/oder ein Brennstoffzellenantriebssystem, beinhalten. Das Übertragungssystem 22 ist dazu konfiguriert, Leistung vom Antriebssystem 20 zu den Fahrzeugrädern 16-18 gemäß den wählbaren Übersetzungen zu übertragen. Gemäß verschiedenen Ausführungsformen kann das Getriebesystem 22 ein Stufenverhältnis-Automatikgetriebe, ein stufenlos verstellbares Getriebe oder ein anderes geeignetes Getriebe beinhalten. Das Bremssystem 26 ist dazu konfiguriert, den Fahrzeugrädern 16-18 ein Bremsmoment bereitzustellen. Das Bremssystem 26 kann in verschiedenen Ausführungsformen Reibungsbremsen, Brake-by-Wire, ein regeneratives Bremssystem, wie beispielsweise eine elektrische Maschine und/oder andere geeignete Bremssysteme beinhalten. Das Lenksystem 24 beeinflusst die Position der Fahrzeugräder 16-18. Während in einigen Ausführungsformen innerhalb des Umfangs der vorliegenden Offenbarung zur Veranschaulichung als ein Lenkrad dargestellt, kann das Lenksystem 24 kein Lenkrad beinhalten.
-
Das Sensorsystem 28 beinhaltet eine oder mehrere Sensorvorrichtungen 40a-40n, die beobachtbare Zustände der äußeren Umgebung und/oder der inneren Umgebung des Fahrzeugs 10 erfassen. Die Sensorvorrichtungen 40a-40n können Radargeräte, Lidare, globale Positionierungssysteme, optische Kameras, Wärmebildkameras, Ultraschallsensoren und/oder andere Sensoren beinhalten, sind aber nicht darauf beschränkt. Das Stellantriebssystem 30 beinhaltet eine oder mehrere Stellantriebs-Vorrichtungen 42a-42n, die ein oder mehrere Fahrzeugmerkmale, wie zum Beispiel das Antriebssystem 20, das Getriebesystem 22, das Lenksystem 24 und das Bremssystem 26, steuern, jedoch nicht darauf beschränkt sind. In verschiedenen Ausführungsformen können die Fahrzeugmerkmale ferner Innen- und/oder Außenfahrzeugmerkmale, wie beispielsweise Türen, einen Kofferraum und Innenraummerkmale, wie z. B. Luft, Musik, Beleuchtung usw., beinhalten, sind jedoch nicht auf diese beschränkt (nicht nummeriert).
-
Das Datenspeichergerät 32 speichert Daten zur Verwendung beim automatischen Steuern des Fahrzeugs 10. In verschiedenen Ausführungsformen speichert die Datenspeichervorrichtung 32 definierte Landkarten der navigierbaren Umgebung. In verschiedenen Ausführungsformen werden die definierten Landkarten vordefiniert und von einem entfernten System (in weiteren Einzelheiten in Bezug auf 2 beschrieben) erhalten. So können beispielsweise die definierten Landkarten durch das entfernte System zusammengesetzt und dem Fahrzeug 10 (drahtlos und/oder drahtgebunden) mitgeteilt und in der Datenspeichervorrichtung 32 gespeichert werden. Wie ersichtlich, kann die Datenspeichervorrichtung 32 ein Teil der Steuerung 34, von der Steuerung 34 getrennt, oder ein Teil der Steuerung 34 und Teil eines separaten Systems sein.
-
Die Steuerung 34 beinhaltet mehrere Computervorrichtungen, die jeweils mindestens einen Prozessor 44 und eine computerlesbare Speichervorrichtung oder Medien 46 beinhalten. Der Prozessor 44 kann eine Spezialanfertigung oder ein handelsüblicher Prozessor oder allgemein irgendeine Vorrichtung zum Ausführen von Anweisungen sein. Die computerlesbare Speichervorrichtung oder Medien 46 können flüchtige und nicht-flüchtige Speicher in einem Nur-Lese-Speicher (ROM), einem Speicher mit direktem Zugriff (RAM) und einem Keep-Alive-Memory (KAM) beinhalten. KAM ist ein persistenter oder nichtflüchtiger Speicher, der verwendet werden kann, um verschiedene Betriebsvariablen zu speichern, während der Prozessor 44 ausgeschaltet ist. Die computerlesbare Speichervorrichtung oder Medien 46 können unter Verwendung einer beliebigen einer Anzahl an bekannten Speichervorrichtungen, wie beispielsweise PROMs (programmierbarer Nur-Lese-Speicher), EPROMs (elektrische PROM), EEPROMs (elektrisch löschbarer PROM), Flash-Speicher oder beliebige andere elektrischen, magnetischen, optischen oder kombinierten Speichervorrichtungen, implementiert werden, die Daten speichern können, von denen einige ausführbare Anweisungen darstellen, die von der Steuerung 34 beim Steuern des Fahrzeugs 10 verwendet werden.
-
Die Anweisungen können ein oder mehrere separate Programme beinhalten, von denen jede eine geordnete Auflistung von ausführbaren Anweisungen zum Implementieren von logischen Funktionen umfasst. Die Anweisungen empfangen und verarbeiten, wenn diese vom Prozessor 44 ausgeführt werden, Signale vom Sensorsystem 28, führen Logik, Berechnungen, Verfahren und/oder Algorithmen zur automatischen Steuerung der Komponenten des Fahrzeugs 10 durch und erzeugen Steuersignale an das Stellantriebsystem 30, um die Komponenten des Fahrzeugs 10 basierend auf der Logik, den Berechnungen, den Verfahren und/oder Algorithmen automatisch zu steuern. Obwohl in 1 nur eine Steuerung 34 dargestellt ist, können Ausführungsformen des Fahrzeugs 10 eine beliebige Anzahl an Steuerungen 34 beinhalten, die über ein geeignetes Kommunikationsmedium oder eine Kombination von Kommunikationsmedien kommunizieren und zusammenwirken, um die Sensorsignale zu verarbeiten, Logiken, Berechnungen, Verfahren und/oder Algorithmen durchzuführen, und Steuersignale zu erzeugen, um die Funktionen des autonomen Fahrzeugs 10 automatisch zu steuern. In verschiedenen Ausführungsformen sind eine oder mehrere Anweisungen der Steuerung 34 in dem Steuersystem 100 verkörpert und, wenn sie durch den Prozessor 44 ausgeführt werden, führen sie die nachstehend beschriebenen Verfahren durch.
-
Das Kommunikationssystem 36 ist dazu konfiguriert, Informationen drahtlos an und von anderen Einheiten 48, wie beispielsweise, jedoch nicht beschränkt auf andere Fahrzeuge („V2V“-Kommunikation,) Infrastruktur („V2I“-Kommunikation), entfernte Systeme und/oder persönliche Vorrichtungen (in Bezug auf 2 näher beschrieben), zu übermitteln. In einer exemplarischen Ausführungsform ist das drahtlose Kommunikationssystem 36 dazu konfiguriert, über ein drahtloses lokales Netzwerk (WLAN) unter Verwendung des IEEE 802.11-Standards, über Bluetooth oder mittels einer mobilen Datenkommunikation zu kommunizieren. Im Geltungsbereich der vorliegenden Offenbarung werden jedoch auch zusätzliche oder alternative Kommunikationsverfahren, wie beispielsweise ein dedizierter Nahbereichskommunikations-(DSRC)-Kanal, berücksichtigt. DSRC-Kanäle beziehen sich auf Einweg- oder Zweiwege-Kurzstrecken- bis Mittelklasse-Funkkommunikationskanäle, die speziell für den Automobilbau und einen entsprechenden Satz von Protokollen und Standards entwickelt wurden.
-
Unter nunmehriger Bezugnahme auf 2 und unter weiterer Bezugnahme auf 1 veranschaulicht ein vereinfachtes Blockdiagramm verschiedene Ausführungsformen des Steuersystems 100 und der Steuerung 34. Im vorliegenden Beispiel ist das Steuersystem 100 innerhalb einer Vorrichtung der Steuerung 34 eingebettet. Verschiedene Ausführungsformen des Steuersystems 100 können gemäß der vorliegenden Offenbarung eine beliebige Anzahl von Untermodulen des Steuersystems 100 und eine beliebige Anzahl von Vorrichtungen der Steuerung 34 beinhalten. Wie zu erkennen ist, können die in 2 dargestellten Untermodule miteinander kombiniert und/oder weiter unterteilt werden, um das Fahrzeug 10 in ähnlicher Weise zu steuern. Eingaben in das Steuersystem 100 können von Vorrichtungen der Steuerung 34 empfangen werden, von dem Sensorsystem 28 empfangen werden, von anderen Steuermodulen (nicht dargestellt), die dem Fahrzeug 10 zugeordnet sind, empfangen werden, von dem Kommunikationsnetzwerk 56 und an dem Kommunikationssystem 36 empfangen werden und/oder von anderen Untermodulen (nicht dargestellt) innerhalb der Steuerung 34 ermittelt/modelliert werden.
-
In verschiedenen Ausführungsformen beinhaltet das Steuersystem 100 ein Teststeuermodul 110, ein Testfallmodul 112, eine vorkonfigurierte Testdatenbank 114, vorberechnete Testergebnisse 116, und ein Ergebnisvergleichsmodul 118. Das Steuersystem 100 ist konfiguriert, eine Komponente einer Vorrichtung durch das Durchführen der nachstehend beschriebenen Verfahren zu testen.
-
Die Steuerung 34 beinhaltet eine beliebige Anzahl von Computervorrichtungen 130a-n. Ein Computergerät, wie hierin definiert, ist Computerhardware, die verschiedene Komponenten (nachfolgend definiert) beinhaltet und durch ein Betriebssystem, das auf der Steuerung 34 läuft, individuell adressierbar ist.. In dem vorgesehenen Beispiel beinhalten die Vorrichtungen zentrale Verarbeitungseinheiten (CPUs), Grafikverarbeitungseinheiten (GPUs), einen Mikroprozessor auf Halbleiterbasis (in der Form eines Mikrochips oder eines Chipsatzes), einen Makroprozessor und jede beliebige Kombination davon. Die Vorrichtungen sind individuell adressierbar, sodass ein Betriebssystem, das auf der Steuerung 34 ausgeführt wird, jedes bestimmte Computergerät 130a-n für eine Berechnung selektiv verwenden oder nicht verwenden kann.
-
Jede Vorrichtung 130a-n beinhaltet betriebsrelevante Komponenten132a-n. Jede betriebsrelevante Komponente, wie hierin definiert, ist entweder eine arithmetische Logikeinheit (ALU), ein Register, eine Speicherkomponente, oder ein Zwischenspeicher. In dem vorgesehenen Beispiel sind die einzelnen Komponenten 132 durch das Betriebssystem, das auf der Steuerung 34 ausgeführt wird, nicht individuell adressierbar. Zum Beispiel weist das Betriebssystem die erste Betriebskomponente 132a (z. B. eine Memory-Komponente) des ersten Computergeräts 130a (z. B., ein GPU) möglicherweise nicht direkt an, betrieben zu werden. Stattdessen wird das erste Computergerät 130a in dem bereitgestellten Beispiel angewiesen, einen Testbetrieb durchzuführen, der die erste Betriebskomponente 132a verwendet. Zum Beispiel können die Daten an das erste Computergerät 130a gesendet und davon abgerufen werden, um die erste Betriebskomponente 132a zu testen, wenn die erste Betriebskomponente 132a eine Speicherkomponente ist.
-
Das Teststeuermodul 110 ist konfiguriert eine Betriebskomponente des ersten Computergeräts auszuwählen und das erste Computergerät anzuweisen, den Testbetrieb durchzuführen und ein erstes Ergebnis zu generieren. Im vorliegenden Beispiel wird die erste Betriebskomponente 132a des ersten Computergeräts 130a als die zu testende Betriebskomponente ausgewählt.
-
In einigen Ausführungsformen führt das das Steuermodul 110 Aufgaben basierend auf einer Anforderungsstruktur durch, die von einer Softwareanwendung empfangen wird, die auf der Steuerung 34 läuft. Die Anforderungsstruktur kann durch eine Softwareanwendung oder durch eine vordefinierte Generationsstrategie generiert werden. In einem Beispiel ist eine vordefinierte Strategie eine der Folgenden: periodisches Testen von Komponenten in Folge, periodisches Testen von Komponenten nach dem Zufallsprinzip, und Testen von Komponenten, die eine höhere Auslastung als 40% aufweisen.
-
In einem Beispiel kann die Anforderungsstruktur die Form <type, comp, method, invoc> aufweisen, wobei „type“ die Art des Tests ist (z. B. gespeicherte oder generierte Testfälle), „comp“ die Komponenten oder die zu testenden Komponenten angibt, „method“ die Generierung von Informationen angibt (z. B. Musterauswahl, Größe, usw.), „invoc“ die Aufrufsteuerung angibt (z. B., leerlaufend, periodisch, unverzüglich, usw.). Durch Spezifizieren einer zu testenden Komponente kann der Test unterteilt werden, um Störungen des normalen Betriebs des ersten Computergeräts 130a zu reduzieren. Zum Beispiel kann eine erste Betriebskomponente 132a (z. B., ein Speicher) separat von der zweiten Betriebskomponente 132b (z. B., ein Register) getestet werden, um die für das Testen der zweiten Betriebskomponente 132b erforderliche Zeit auszusondern. Dementsprechend kann die erste Betriebskomponente 132a folglich schneller als erforderlich berechnet werden, um alle Komponenten des ersten Computergeräts 130a zu testen. Durch Spezifizieren des Aufrufs können die Testbetriebe unter Verwendung leerer Zyklen („slack“) der ersten Vorrichtung 130a durchgeführt werden oder können auf Abruf durchgeführt werden, um die Störung des normalen Betriebs der ersten Computervorrichtung 130a zu steuern. Es sollte ohne vom Umfang der vorliegenden Offenbarung abzuweichen, beachtet werden, dass die Anforderungsstruktur unterschiedliche Formen aufweisen kann.
-
In einigen Ausführungsformen ist das Steuermodul 110 konfiguriert, eine zweite Computervorrichtung des Fahrzeugs anzuweisen, den Testbetrieb durchzuführen. Wenn zum Beispiel kein vorgerechnetes Testergebnis für den Testbetrieb von den vorbereiteten Testergebnissen 116 zur Verfügung steht, kann das Teststeuermodul 110 eine andere Computervorrichtung anweisen (z. B. eine CPU, eine GPU, usw.) den Testbetrieb durchzuführen. Zum Beispiel kann das Steuermodul 110 die zweite Computervorrichtung 130b als eine redundante Vorrichtung anweisen, denselben Testbetrieb durchzuführen, sodass die Testergebnisse von der ersten und der zweiten Vorrichtung 130a-b verglichen werden können. Es sollte ohne vom Umfang der vorliegenden Offenbarung abzuweichen, beachtet werden, dass die zweite Computervorrichtung 130b desselben Typs wie die erste Computervorrichtung (z. B., GPU und CPU) sein kann oder sich davon unterscheiden kann (z. B. GPU und CPU).
-
Das Teststeuermodul 110 ist ferner konfiguriert, eine Aufrufsteuerung auszuwählen, die den Ausführungszeitpunkt für den Testbetrieb angibt. Zum Beispiel kann das Auswählen der Aufrufsteuerung das Auswählen einer unmittelbaren Ausführung, einer periodischen Auslieferung und einer Leerlaufausführung beinhalten. Im vorgesehenen Beispiel wird die Aufrufstrategie basierend auf der Anforderungsstruktur ermittelt.
-
Das Teststeuermodell 110 kann einen Test als Reaktion auf das Eintreffen einer neuen Anforderung beenden oder kann einen Testbetrieb generieren, um den aktuellen Test fortzusetzen. Wenn eine neue Anforderung empfangen wird, kann der Test basierend auf der Softwareanwendung generiert werden, wenn die Anforderungsstruktur anzeigt, dass der Test ein Test auf Abruf („on-demand“) ist. Der Test kann auch basierend auf der Nutzung der Vorrichtung generiert werden, wenn die Anforderungsstruktur nicht angibt, dass es sich dabei um einen Test auf Abruf „on-demand“ handelt.
-
Das Testfallmodul 112 ist konfiguriert, einen Testbetrieb auszuwählen, der konfiguriert ist, eine gesamte Kapazität der Betriebskomponente zu verwenden. Der Begriff „gesamte Kapazität“, wie hierin verwendet, bedeutet jedes Bit eines Registers, jede Zuordnungseinheit eines Speichers oder Zwischenspeichers, jede ALU eines Prozessors, oder jede auf sonstige Weise betreibbare Einheit, die durch die Computervorrichtung verwendet werden kann.
-
Das Testfallmodul 112 kann einen Test erstellen oder kann einen vorkonfigurierten Test aus der vorkonfigurierten Testdatenbank 114 abrufen. Wenn das Testfallmodul 112 einen vorkonfigurierten Test verwendet und sich mehr als ein geeigneter vorkonfigurierter Test in der vorkonfigurierten Testdatenbank 114 befindet, kann das Testfallmodul 112 durch die prä-konfigurierten Tests rotieren oder kann einen der vorkonfigurierten Tests nach dem Zufallsprinzip auswählen.
-
In einem Beispiel beinhaltet das Auswählen des Testbetriebs das Auswählen eines Schreibvorgangs und eines Lesevorgangs als der Testbetrieb als Reaktion darauf, dass die Betriebskomponente eine Speicherkomponente ist. In einigen Beispielen beinhaltet das Auswählen des Testbetriebs das Auswählen eines Bit-Schaltvorgangs als den Testbetrieb als Reaktion darauf, dass die Betriebskomponente ein Register ist. In einigen Beispielen beinhaltet das Auswählen des Testbetriebs das Auswählen eines Vektoradditionsvorgangs, eines Vektormultiplikationsvorgangs, und eines Logikvorgangs als Reaktion darauf, dass die Betriebskomponente eine arithmetische Logikeinheit (ALU) ist.
-
Im vorliegenden Beispiel wählt das Testfallmodul 112 einen Testfall basierend auf der empfangenen Anforderungsstruktur. Wenn der Testtyp „stored“ ist, wählt das Testfallmodul 112 einen gespeicherten vorkonfigurierten Test aus der vorkonfigurierten Datenbank 114. Wenn der Testtyp „Laufzeit“ ist, dann generiert das Testfallmodul 112 einen Test, der die gesamte Kapazität der Komponente verwendet.
-
Zum Beispiel ruft die Anforderungsstruktur <„store“, „ALU“, „füll, add“, „100ms“> für eine Computervorrichtung mit 128 ALU-Elementen einen vorkonfigurierten Testfall ab, der einen gespeicherten Vektor mit einer Größe von 128 Vorgängen (vect<128> a, b, a+b) alle 100 ms verwendet. In einem anderen Beispiel testet eine Anforderungsstruktur <„store“, „register A“, „0-4 bit, xor,“ „200ms“> für eine Computervorrichtung mit einem 32 Bit Register die Bits 0-4 unter Verwendung eines XOR-Vorgangs alle 200 ms. In einem noch weiteren Beispiel erhält die Anforderungsstruktur <„runtime“, „ALU“, „full, any“, „on-demand“> für eine Computervorrichtung mit 128 ALU-Elementen einen Testfall, der bei Laufzeit unter Verwendung eines Sektors generiert wird, dessen Werte nach dem Zufallsprinzip generiert werden und führt einen mathematischen Vorgang durch, der aus einer vordefinierten Liste (z. B. Addition, Multiplikation, Division, usw.) ausgewählt wird.
-
Um einen Test zu generieren, verwendet das Testfallmodul 112 Folgendes: eine Vektoraddition, Multiplikation oder Logikvorgänge (AND,XOR) für ALUs, Bit-Schaltungen für Register und Lese- und Schreibvorgänge für den Speicher. Die Größe der Testdaten wird ausgewählt, um alle Einheiten in einer Runde abzudecken. Zum Beispiel wird eine 128 ALU-Komponente mit 128-Elementvektorvorgängen getestet. Ein 16 KB Speicher wird mit 16 KB Daten getestet. Zum Beispiel kann der Speicher durch Ändern zwischen „0“ und „1“ in verschiedenen Tests getestet werden. In einem anderen Beispiel kann ein 16-Bit-Register durch 16-Bit-Schaltvorgänge getestet werden.
-
Wenn die Computerkomponente nicht direkt getestet werden kann (z. B. Zwischenspeicher, einige Register, usw.) können indirekte Tests unter Verwendung anderer Tests generiert werden. Zum Beispiel kann ein Test, der bewirkt, dass die Computervorrichtung aus einem Zwischenspeicher liest und schreibt, verwendet werden, um den Zwischenspeicher zu testen.
-
Die vorkonfigurierte Testdatenbank 114 ist zum Speichern von Tests konfiguriert, die vorkonfiguriert worden sind, um die volle Kapazität der getesteten Komponente zu verwenden. Zum Beispiel kann ein vorkonfigurierter Test die Multiplikation eines spezifizierten 128-Element-Sektors als ein vorkonfigurierter Testvorgang für eine 128 ALU-Komponente spezifizieren.
-
Vorgerechnete Testergebnisse 116 sind konfiguriert die vorgerechneten Ergebnisse von vorkonfigurierten Tests zu speichern. Dementsprechend können parallele Berechnungen des Testvorgangs durch die zweite Computervorrichtung 130b in einigen Implementierungen ausgelassen werden. Im vorliegenden Beispiel identifiziert ein Index Testfälle eindeutig und ermöglicht die Synchronisierung des Empfangs der Testergebnisse.
-
Das Ergebnisvergleichsmodul 118 ist konfiguriert, ein zweites Ergebnis des Testbetriebs abzurufen, ein erstes Ergebnis des Testbetriebs von der ersten Computervorrichtung mit dem zweiten Ergebnis zu vergleichen und anzugeben, dass die erste Computervorrichtung basierend auf zumindest teilweise einem Unterschied zwischen dem ersten Ergebnis und dem zweiten Ergebnis, fehlerhaft ist. Wenn zum Beispiel ein vorberechnetes Testergebnis zur Verfügung steht, beinhaltet das Abrufen des zweiten Ergebnisses das Lesen eines vorgenerierten zweiten Ergebnisses, das in vorbereiteten Testergebnissen 116 gespeichert ist. Umgekehrt, wenn die zweite Computervorrichtung den Testbetrieb durchführt, beinhaltet das Abrufen des zweiten Ergebnisses das Abrufen eines zweiten Testergebnisses von der zweiten Computervorrichtung.
-
In dem vorliegenden Beispiel basiert das Vergleichen des ersten Ergebnisses mit dem zweiten Ergebnis ferner auf einer funktionalen Richtigkeit der ersten Computervorrichtung. Zum Beispiel werden eher die Werte der Testergebnisse als der Zeitpunkt der Berechnungen verglichen. In dem vorliegenden Beispiel werden die Ergebnisse basierend auf vordefinierten Fehlermustern verglichen. Wenn das Muster zum Beispiel Pass/Fail ist, wird der Vergleich als Fail eingestuft, wenn die Werte der Testergebnisse nicht gleich sind. In einigen Ausführungsformen kann das Fehlermuster diagnostische Informationen bereitstellen. Wenn Punkt „X“ zum Beispiel nicht gleich ist, dann kann ALU „X“ eine fehlerhafte Vorrichtung sein.
-
Das Ergebnisvergleichsmodul 118 gibt an, dass die erste Computervorrichtung 130a basierend auf dem Vergleich zwischen erwarteten und berechneten Ergebnissen fehlerhaft ist. Zum Beispiel kann das Ergebnisvergleichsmodul 118 die Fehlerangabe in die Systemsoftware und/oder Anwendungen für Verminderungs- oder Wiederherstellungsvorgänge eingespeist werden.
-
In einigen Ausführungsformen kann die Anwendung oder die Systemsoftware den Fehler markieren und die Verwendung der ersten Computervorrichtung 130a beenden. Zum Beispiel kann die Anwendung oder Systemsoftware die gesamte Vorrichtung oder die fehlerhafte Komponente der Vorrichtung markieren und kann die Anforderungsstruktur erneut zu einer anderen Computervorrichtung senden. Die Anwendung oder Systemsoftware kann dann die Verwendung des ersten Computervorrichtung 130a beenden.
-
Unter nunmehriger Bezugnahme auf 3 und fortgesetzter Bezugnahme auf die 1-2 veranschaulicht ein Flussdiagramm ein Steuerverfahren 200 zum Testen einer betrieblichen Komponente einer Computervorrichtung in Übereinstimmung mit der vorliegenden Offenbarung. Wie aus der Offenbarung ersichtlich ist, ist die Abfolge der Vorgänge innerhalb der Verfahren nicht auf die sequenzielle Abarbeitung, wie in 3 beschränkt, sondern kann in beliebigen geeigneten Reihenfolgen gemäß der vorliegenden Offenbarung geschehen. In verschiedenen Ausführungsformen kann das Verfahren 200 basierend auf einem oder mehreren vorbestimmten Ereignissen geplant oder ausgeführt werden, und/oder kann kontinuierlich während des Betriebs des Fahrzeugs 10 laufen.
-
Das Steuersystem 100 wählt eine Komponente der ersten Vorrichtung aus, um sie in Aufgabe 202 zu testen. Zum Beispiel kann die Anforderungsstruktur angeben, dass das Teststeuermodul 110 die erste betriebliche Komponente 132a der ersten Computervorrichtung 130a testen wird.
-
Das Steuersystem 100 bestimmt, ob ein gespeicherter Test in Aufgabe 204 verwendet werden soll. Zum Beispiel kann ein Testfallmodul 112 die Anforderungsstruktur auswerten, um zu ermitteln, ob ein neuer Testfall zu generieren ist oder um einen vorkonfigurierten Test aus der vorkonfigurierten Testdatenbank 114 abzurufen. Wenn das Steuersystem 100 einen gespeicherten Test verwendet, geht das Verfahren 200 zu Aufgabe 206 über. Wenn das Steuersystem 100 einen gespeicherten Test nicht verwendet, geht das Verfahren 200 zu Aufgabe 208 über.
-
Das Steuersystem 100 wählt einen vorkonfigurierten Test für die betriebliche Komponente in Aufgabe 206 aus. Zum Beispiel kann das Testfallmodul 112 ein 128 Element-Vektormultiplikationstest abrufen, wenn die erste betriebliche Komponente 132a der ersten Computervorrichtung 130a eine 128-Element-ALU-Betriebskomponente ist. Das Steuersystem 100 generiert einen Testbetrieb für die Komponente in Aufgabe 208. Zum Beispiel kann das Testfallmodul 112 einen 128-Element-Vektormultiplikationstest generieren, wenn die erste betriebliche Komponente 132a einer ersten Computervorrichtung 130a eine 128-Element-ALU-Betriebskomponente ist.
-
Das Steuersystem 100 ermittelt, ob ein gespeichertes Ergebnis in Aufgabe 210 zu verwenden ist. Zum Beispiel kann das Ergebnisvergleichsmodul 118 ermitteln, ob ein Testergebnis für den Testbetrieb in vorberechneten Testergebnissen 116 besteht. Wenn das Steuersystem 100 ein gespeichertes Testergebnis verwendet, geht das Verfahren 200 zur Aufgabe 214 über. Wenn das Steuersystem 100 ein gespeichertes Testergebnis verwendet, geht das Verfahren 200 zu Aufgabe 212 über.
-
Das Steuersystem 100 weist eine zweite Vorrichtung an, den Test in Aufgabe 212 durchzuführen. Zum Beispiel kann das des Steuermodul 110 die zweite betriebliche Komponente 132b anweisen den Test in Aufgabe 212 durchzuführen. Das Steuersystem 100 ruft das gespeicherte Testergebnis in Aufgabe 214 ab. Zum Beispiel kann das Ergebnisvergleichsmodul 118 ein vorberechnetes Testergebnis aus den vorberechneten Testergebnissen 116 abrufen.
-
Das Steuersystem 100 vergleicht die Ergebnisse, um zu ermitteln, ob sie sich in Aufgabe 218 unterscheiden. Zum Beispiel kann das Ergebnisvergleichsmodul 118 die auf der ersten Computervorrichtung 130a und auf der zweiten Computervorrichtung 130b erstellten Werte durch den Testbetrieb vergleichen, um die funktionale Richtigkeit der ersten Betriebskomponente 132a der ersten Computervorrichtung 130a anzuzeigen. Wenn die Ergebnisse unterschiedlich sind, geht das Verfahren 200 zu Aufgabe 222 über. Wenn die Ergebnisse gleich sind, geht das Verfahren 200 zu Aufgabe 220 über.
-
Das Steuersystem 100 gibt an, dass die erste Vorrichtung in Aufgabe 220 nicht fehlerhaft ist. Zum Beispiel kann das Ergebnisvergleichsmodul 118 einer Anwendung oder einem Systemdienst berichten, dass die erste Betriebskomponente 132a der ersten Computervorrichtung 130a zur weiteren Verwendung annehmbar ist. Das Steuersystem 100 gibt an, dass die erste Vorrichtung in Aufgabe 222 fehlerhaft sein kann. Zum Beispiel kann das Ergebnisvergleichsmodul 118 der Anwendung oder dem Systemdienst angeben, dass die erste Computervorrichtung in zukünftigen Berechnungen nicht verwendet werden sollte.
-
Während mindestens eine exemplarische Ausführungsform in der vorstehenden ausführlichen Beschreibung dargestellt wurde, versteht es sich, dass es eine große Anzahl an Varianten gibt. Es versteht sich weiterhin, dass die exemplarische Ausführungsform oder die exemplarischen Ausführungsformen lediglich Beispiele sind und den Umfang, die Anwendbarkeit oder die Konfiguration dieser Offenbarung in keiner Weise einschränken sollen. Die vorstehende ausführliche Beschreibung stellt Fachleuten auf dem Gebiet vielmehr einen zweckmäßigen Plan zur Implementierung der exemplarischen Ausführungsform bzw. der exemplarischen Ausführungsformen zur Verfügung. Es versteht sich, dass verschiedene Veränderungen an der Funktion und der Anordnung von Elementen vorgenommen werden können, ohne vom Umfang der Offenbarung, wie er in den beigefügten Ansprüchen und deren rechtlichen Entsprechungen aufgeführt ist, abzuweichen.