DE112022001192T5 - Isolating an area of a system on a chip for safety-critical operations - Google Patents
Isolating an area of a system on a chip for safety-critical operations Download PDFInfo
- Publication number
- DE112022001192T5 DE112022001192T5 DE112022001192.0T DE112022001192T DE112022001192T5 DE 112022001192 T5 DE112022001192 T5 DE 112022001192T5 DE 112022001192 T DE112022001192 T DE 112022001192T DE 112022001192 T5 DE112022001192 T5 DE 112022001192T5
- Authority
- DE
- Germany
- Prior art keywords
- error
- interface
- section
- processor
- soc
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 75
- 230000015654 memory Effects 0.000 claims description 216
- 238000000034 method Methods 0.000 claims description 148
- 230000004044 response Effects 0.000 claims description 112
- 230000006870 function Effects 0.000 claims description 96
- 230000009471 action Effects 0.000 claims description 54
- 239000004065 semiconductor Substances 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 239000000463 material Substances 0.000 claims description 4
- 238000001514 detection method Methods 0.000 description 307
- 239000003999 initiator Substances 0.000 description 53
- 238000012545 processing Methods 0.000 description 53
- 238000003860 storage Methods 0.000 description 43
- 238000013528 artificial neural network Methods 0.000 description 40
- 239000000872 buffer Substances 0.000 description 29
- 238000002955 isolation Methods 0.000 description 29
- 230000000670 limiting effect Effects 0.000 description 27
- 239000004020 conductor Substances 0.000 description 26
- 230000008569 process Effects 0.000 description 22
- 238000012360 testing method Methods 0.000 description 21
- 238000013527 convolutional neural network Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000002776 aggregation Effects 0.000 description 12
- 238000004220 aggregation Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 239000000047 product Substances 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 240000003517 Elaeocarpus dentatus Species 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 241000269400 Sirenidae Species 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 125000000914 phenoxymethylpenicillanyl group Chemical group CC1(S[C@H]2N([C@H]1C(=O)*)C([C@H]2NC(COC2=CC=CC=C2)=O)=O)C 0.000 description 3
- 229920002451 polyvinyl alcohol Polymers 0.000 description 3
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 241000052343 Dares Species 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 206010034960 Photophobia Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0733—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0796—Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1604—Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
Abstract
In verschiedenen Beispielen weist eine integrierte Schaltung einen ersten und einen zweiten Abschnitt auf, die in getrennten Bereichen arbeiten. Der zweite Abschnitt hat eine Schnittstelle, die den ersten und den zweiten Abschnitt miteinander verbindet. Der zweite Abschnitt sperrt selektiv die Schnittstelle, um eine Kommunikation mit dem ersten Abschnitt über die Schnittstelle zu verhindern, und entsperrt selektiv die Schnittstelle, um eine Kommunikation mit dem ersten Abschnitt über die Schnittstelle zu ermöglichen.In various examples, an integrated circuit has first and second sections that operate in separate areas. The second section has an interface that connects the first and second sections together. The second section selectively disables the interface to prevent communication with the first section via the interface and selectively unlocks the interface to enable communication with the first section via the interface.
Description
ANSPRUCH AUF PRIORITÄTCLAIM TO PRIORITY
Diese Anmeldung beruft sich auf die vorläufige indische Anmeldung Nr. 202111034492 mit dem Titel „ISOLATING A REGION OF A SYSTEM ON A CHIP FOR SAFETY CRITICAL OPERATIONS“, die am 30. Juli 2021 eingereicht wurde, und auf die US-Patentanmeldung Nr.
TECHNISCHES GEBIETTECHNICAL FIELD
Mindestens eine Ausführungsform bezieht sich auf die Isolierung eines Bereichs einer Schaltung, der mit einer höheren Risikostufe arbeitet, von anderen Bereichen der Schaltung, die mit einer niedrigeren Risikostufe arbeiten. Zum Beispiel bezieht sich mindestens eine Ausführungsform auf ein System auf einem Chip, das verschiedene neue Verfahren implementiert, die hier beschrieben sind. In einem weiteren Beispiel betrifft mindestens eine Ausführungsform ein autonomes Fahrzeug, das ein solches System auf einem Chip aufweist.At least one embodiment relates to isolating a portion of a circuit operating at a higher level of risk from other portions of the circuit operating at a lower level of risk. For example, at least one embodiment relates to a system on a chip that implements various new methods described herein. In a further example, at least one embodiment relates to an autonomous vehicle that has such a system on a chip.
HINTERGRUNDBACKGROUND
Automotive Safety Integrity Level („ASIL“) ist ein Risikoklassifizierungssystem für die funktionale Sicherheit von Straßenfahrzeugen, das durch die Norm 26262 der International Organization for Standardization („ISO“) für funktionale Sicherheit definiert ist. In diesem Risikoklassifizierungssystem gibt es vier Risikoklassifizierungsstufen, die als ASIL-A, ASIL-B, ASIL-C und ASIL-D bezeichnet werden, wobei ASIL-D die höchste Risikoklassifizierungsstufe darstellt. Komponenten, die als ASIL-D spezifiziert sind, haben daher höhere Sicherheitsanforderungen als Komponenten, die mit einer niedrigeren Risikoklassifizierungsstufe (wie ASIL-B) spezifiziert sind, und können teurer sein. In vielen Automobilplattformen werden zumindest einige Sicherheitsdienste von einem externen Steuergerät ausgeführt, wenn bestimmte Fehler in einem System auf einem Chip bzw. System on a Chip („SoC“) erkannt werden, das verschiedene Fahrfunktionen eines autonomen oder teilautonomen Fahrzeugs steuert. Im Allgemeinen kann die externe Steuerung auf einer höheren Risikostufe (z. B. ASIL-D) arbeiten als das Fahrzeug-SoC (z. B. ASIL-B). Leider führen solche externen Steuereinheiten zu Latenzzeiten und können teuer sein, da sie separate Komponenten erfordern, die auch in dem Fahrzeug-SoC vorhanden sind, wie z. B. DRAM, nichtflüchtigem Speicher usw., und die jeweils Platz innerhalb der Fahrzeug-Plattform (z. B. auf einer Schaltung) beanspruchen.Automotive Safety Integrity Level (“ASIL”) is a road vehicle functional safety risk classification system defined by the International Organization for Standardization (“ISO”) functional safety standard 26262. In this risk classification system, there are four risk classification levels, referred to as ASIL-A, ASIL-B, ASIL-C and ASIL-D, with ASIL-D being the highest risk classification level. Components specified as ASIL-D therefore have higher safety requirements than components specified with a lower risk classification level (such as ASIL-B) and may be more expensive. In many automotive platforms, at least some safety services are performed by an external control device when certain errors are detected in a system on a chip (“SoC”) that controls various driving functions of an autonomous or semi-autonomous vehicle. In general, the external controller can operate at a higher risk level (e.g. ASIL-D) than the vehicle SoC (e.g. ASIL-B). Unfortunately, such external control units introduce latency and can be expensive because they require separate components that are also present in the vehicle SoC, such as: B. DRAM, non-volatile memory, etc., and each of which takes up space within the vehicle platform (e.g. on a circuit).
KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
Die vorliegenden Systeme und Verfahren zur Isolierung eines Bereichs eines Systems auf einem Chip werden im Folgenden unter Bezugnahme auf die beigefügten Figuren detailliert beschrieben, wobei gilt:
-
1 ist eine Illustration einer beispielhaften Fahrzeug-Plattform gemäß einigen Ausführungsformen der vorliegenden Offenbarung; -
2 ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung eine Darstellung von (einer) beispielhaften Schnittstelle(n), die eine in einem Fahrzeug-SoC integrierte Sicherheitsinsel mit anderen Komponenten des Fahrzeug-SoCs verbindet; -
3 ist ein Flussdiagramm, das ein Verfahren zum Übergang der Sicherheitsinsel zwischen einem Cocoon-Modus und einem Nicht-Isolations-Modus gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt. -
4 ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung eine Illustration von (einer) beispielhaften Fehlerschnittstelle(n), die Fehler von den anderen Komponenten des Fahrzeug-SoC an die Sicherheitsinsel übertragen; -
5A ist ein Flussdiagramm, das ein Verfahren zur Übermittlung von Fehlern an die Sicherheitsinsel gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt; -
5B ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein Flussdiagramm, das ein Verfahren zeigt, das ein Prozessor verwenden kann, um von einem SoC-Fehleraggregator empfangene Interrupts zu verarbeiten; -
5C ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein Flussdiagramm, das ein Verfahren zeigt, das die SI 110 verwenden kann, um Signale für korrigierte und unkorrigierte Fehler zu verarbeiten; -
5D ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein Flussdiagramm, das ein Verfahren zeigt, das die SI 110 verwenden kann, um ein SoC-Fehleraggregatorsignal zu verarbeiten; -
6A veranschaulicht gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein beispielhaftes Signalzeitdiagramm für Signale, die von dem Prozessor der Sicherheitsinsel empfangen und gesendet werden, nachdem ein unkorrigierter Fehler mit niedrigem Schweregrad (z. B. dem Mindestwert) aufgetreten ist; -
6B zeigt gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein beispielhaftes Signalzeitdiagramm für Signale, die von dem Prozessor der Sicherheitsinsel empfangen und gesendet werden, nachdem ein unkorrigierter Fehler mit hohem Schweregrad (z.B. dem Maximalwert) aufgetreten ist; -
6C zeigt gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein beispielhaftes Signalzeitdiagramm für Signale, die von dem Prozessor der Sicherheitsinsel empfangen und gesendet werden, nachdem ein unkorrigierter Fehler mit hohem Schweregrad (z.B. dem Maximalwert) aufgetreten ist, aber die Sicherheitsinsel keinen Mailbox-Interrupt empfängt; -
7 ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein Flussdiagramm, das ein Verfahren zum Schreiben von Daten in einen Carve-Out zeigt, der in einem flüchtigen Speicher definiert ist, der von der Sicherheitsinsel und den anderen Komponenten des Fahrzeug-SoC gemeinsam genutzt wird; -
8 illustriert gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein Beispiel eines Fehlererkennungsblocks der Sicherheitsinsel, der das Verfahren von7 durchführt; -
9 ist ein Flussdiagramm, das ein Verfahren zum Lesen von Daten aus dem Carve-Out gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt. -
10 illustriert gemäß einigen Ausführungsformen der vorliegenden Offenbarung ein Beispiel eines Fehlererkennungsblocks der Sicherheitsinsel, der das Verfahren von9 durchführt; -
11 ist eine Illustration eines Blockdiagramms, das Fehlermeldungen zeigt, die von dem Fehlererkennungsblock erzeugt werden, wenn der Fehlererkennungsblock bei einigen Ausführungsformen Ausstiegs- und Einstiegs-Timer aufweist oder mit diesen verbunden ist; -
12 ist eine Darstellung eines beispielhaften autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung; - FIG. ist 13 ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug aus
12 gemäß einigen Ausführungsformen der vorliegenden Offenbarung; -
14 ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug von12 gemäß einigen Ausführungsformen der vorliegenden Offenbarung; -
15 ist ein Systemdiagramm für eine Kommunikation zwischen einem oder mehreren Cloud-basierten Servern und dem beispielhaften autonomen Fahrzeug aus12 gemäß einigen Ausführungsformen der vorliegenden Offenbarung; und -
16 ist ein Blockdiagramm eines Beispiels einer Rechenvorrichtung, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
-
1 is an illustration of an example vehicle platform in accordance with some embodiments of the present disclosure; -
2 is an illustration of example interface(s) that connects a security island integrated in a vehicle SoC to other components of the vehicle SoC, according to some embodiments of the present disclosure; -
3 is a flowchart depicting a method for transitioning the security island between a cocoon mode and a non-isolation mode in accordance with some embodiments of the present disclosure. -
4 is an illustration of example fault interface(s) that communicate faults from the other components of the vehicle SoC to the safety island, according to some embodiments of the present disclosure; -
5A is a flowchart depicting a method for communicating errors to the security island in accordance with some embodiments of the present disclosure; -
5B is a flowchart illustrating a method that a processor may use to process interrupts received from an SoC error aggregator, according to some embodiments of the present disclosure; -
5C is a flowchart illustrating a method that theSI 110 may use to process corrected and uncorrected error signals, according to some embodiments of the present disclosure; -
5D is a flowchart illustrating a method thatSI 110 may use to process an SoC fault aggregator signal, according to some embodiments of the present disclosure; -
6A illustrates an example signal timing diagram for signals received and transmitted by the security island processor after, according to some embodiments of the present disclosure an uncorrected error of low severity (e.g. the minimum value) occurred; -
6B shows an exemplary signal timing diagram for signals received and transmitted by the security island processor after an uncorrected high severity error (e.g., the maximum value) occurs, according to some embodiments of the present disclosure; -
6C shows, in accordance with some embodiments of the present disclosure, an exemplary signal timing diagram for signals received and sent by the security island's processor after an uncorrected high severity error (e.g., the maximum value) occurs but the security island does not receive a mailbox interrupt; -
7 is a flowchart illustrating a method for writing data to a carve-out defined in a volatile memory shared by the security island and the other components of the vehicle SoC, according to some embodiments of the present disclosure; -
8th illustrates, according to some embodiments of the present disclosure, an example of a safety island error detection block that implements the method of7 carries out; -
9 is a flowchart showing a method for reading data from the carve-out in accordance with some embodiments of the present disclosure. -
10 illustrates, according to some embodiments of the present disclosure, an example of a safety island error detection block that implements the method of9 carries out; -
11 is an illustration of a block diagram showing error messages generated by the error detection block when the error detection block includes or is associated with exit and entry timers in some embodiments; -
12 is an illustration of an example autonomous vehicle in accordance with some embodiments of the present disclosure; - FIG. 13 is an example of camera positions and fields of view for the exemplary autonomous vehicle
12 according to some embodiments of the present disclosure; -
14 is a block diagram of an example system architecture for the example autonomous vehicle of12 according to some embodiments of the present disclosure; -
15 is a system diagram for communication between one or more cloud-based servers and the exemplary autonomous vehicle12 according to some embodiments of the present disclosure; and -
16 is a block diagram of an example of a computing device suitable for use in implementing some embodiments of the present disclosure.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Es werden Systeme und Verfahren offenbart, die sich auf die Isolierung eines Bereichs einer Schaltung, der auf einer höheren Risikostufe (z.B. ASIL-D) arbeitet, von anderen Bereichen der Schaltung, die auf einer niedrigeren Risikostufe (z.B. ASIL-B) arbeiten. Beispielsweise kann ein Bereich oder eine „Insel“, die der funktionalen Sicherheit gewidmet ist, von anderen Komponenten auf einem System auf einem Chip („SoC“), z. B. einem Fahrzeug-SoC, (z. B. kommunikativ) isoliert werden.
Das Fahrzeug-Verarbeitungssystem 102 weist mindestens ein Fahrzeug-SoC 104 auf. Das Fahrzeug-SoC 104 führt zumindest einige Funktionen aus, kann aber eine oder mehrere Sicherheitsfunktionen an eine optionale externe Steuereinheit 106 (z. B. eine externe ASIL-D-Mikrocontrollereinheit aufweisend) abgeben. Die optionale externe Steuereinheit 106 kann unter einer höheren Risikoklassifizierungsstufe (z. B. ASIL-D) arbeiten als das Fahrzeug SoC 104 und diese einhalten. In Ausführungsformen, die die optionale externe Steuereinheit 106 aufweisen, wird beim Auftreten eines Fehlers in dem Fahrzeug-SoC 104 dieser Fehler an die optionale externe Steuereinheit 106 übermittelt, die eine oder mehrere Maßnahmen ergreifen kann, um die Fahrzeug-Plattform 100 in einen sicheren Zustand zu versetzen. Somit kann zumindest ein Teil der Sicherheitsfunktionen von der optionalen externen Steuereinheit 106 ausgeführt werden. Die optionale externe Steuereinheit 106 kann jedoch Latenzzeiten verursachen und teuer sein, da sie separate Komponenten wie DRAM, nichtflüchtigen Speicher usw. benötigt, die jeweils Platz in der Fahrzeug-Plattform 100 (z. B. auf einer Leiterplatte) beanspruchen.The
Um zumindest einen Teil der Latenz und der Kosten zu vermeiden, die durch die optionale externe Steuereinheit 106 verursacht werden, weist die Fahrzeug-Plattform 100 von
Zusätzlich zu dem Fahrzeug-SoC 104 und der optionalen externen Steuereinheit 106 (falls vorhanden) kann das Fahrzeug-Verarbeitungssystem 102 einen ersten (SoC-)Taktgeber bzw. Takt 112 für das Fahrzeug-SoC 104, einen zweiten (SI-) Taktgeber bzw. Takt 114 für die SI 110 und eine integrierte Schaltung („IC“) 116 für die Stromversorgung aufweisen. Jede der Komponenten des Fahrzeug-Verarbeitungssystems 102 ist zumindest teilweise in Hardware implementiert. Die logischen Komponenten des Fahrzeug-Verarbeitungssystems 102 (z. B. das Fahrzeug-SoC 104 und die optionale externe Steuereinheit 106) sind typischerweise jeweils in logischen Hardware-Schaltungen innerhalb eines oder mehrerer integrierter Schaltungschips implementiert. Die logischen Komponenten können fest verdrahtet oder programmierbar oder eine Kombination aus fest verdrahteten und programmierbaren Elementen sein. Zusätzlich oder alternativ können bestimmte Funktionen des Fahrzeug-Verarbeitungssystems 102 in Software oder Firmware implementiert sein, die von einem eingebetteten Mikroprozessor oder Mikrocontroller ausgeführt wird.In addition to the
Der erste und der zweite Taktgeber 112 bzw. 114 liefern zwei getrennte Taktsignale an das Fahrzeug-SoC 104. Insbesondere wird ein erstes Taktsignal, das durch den ersten (SoC-)Taktgeber 112 erzeugt wird, an andere Komponenten 160 des Fahrzeug-SoC 104 als die SI 110 geliefert, und ein zweites Taktsignal, das durch den zweiten (SI-)Taktgeber 114 erzeugt wird, wird an die SI 110 geliefert. Somit können die SI 110 und die anderen Komponenten 160 als in getrennten Taktdomänen bzw. Taktbereichen arbeitend bezeichnet werden. Der Taktbereich der SI 110 wird als SI-Taktbereich und der Taktbereich der anderen Komponenten 160 als SoC-Taktbereich bezeichnet. Der erste und der zweite Taktgeber 112 bzw. 114 können jeweils zumindest teilweise als Quarzoszillatoren implementiert sein. Der erste (SoC-)Taktgeber 112 kann über eine erste Taktverbindung (nicht dargestellt), wie z. B. eine Leitung, eine Signalspur (signal trace) und dergleichen, mit jeder der anderen Komponenten 160 des Fahrzeug-SoC 104 verbunden sein. Somit kann der erste (SoC-)Taktgeber 112 das erste Taktsignal über die erste Taktverbindung (nicht dargestellt) an die anderen Komponenten 160 des Fahrzeug-SoC 104 liefern. Der zweite (SI-)Taktgeber 114 kann mit jeder der Komponenten der SI 110 über eine zweite Taktverbindung (nicht dargestellt), wie z. B. einen Draht, eine Signalspur und dergleichen, verbunden sein. Somit kann der zweite (SI-)Taktgeber 114 das zweite Taktsignal über die zweite Taktverbindung (nicht dargestellt) an die SI 110 liefern.The first and
Der Stromversorgungs-IC 116 versorgt andere Komponenten des Fahrzeug-Verarbeitungssystems 102 mit Leistung bzw. Strom. Beispielsweise verbinden Stromschienen oder Verbindungen 118A-118C den Stromversorgungs-IC 116 mit den anderen Komponenten 160 des Fahrzeug-SoC 104, der SI 110 bzw. der optionalen externen Steuereinheit 106. Die Stromverbindungen 118A-118C tragen dazu bei, die anderen Komponenten 160 des Fahrzeug-SoC 104, die SI 110 bzw. die optionale externe Steuereinheit 106 (sofern vorhanden) elektrisch voneinander zu isolieren. So kann die SI 110 in einem von den anderen Komponenten 160 und der optionalen externen Steuereinheit 106 (sofern vorhanden) getrennten Spannungsbereich arbeiten. Der Spannungsbereich der SI 110 wird als SI-Spannungsbereich und der Spannungsbereich der anderen Komponenten 160 als SoC-Spannungsbereich bezeichnet. Der Stromversorgungs-IC 116 kann als eine oder mehrere integrierte Schaltungen implementiert sein, die die Komponenten des Fahrzeug-Verarbeitungssystems 102 mit ausreichend Strom versorgen. Die Stromverbindungen 118A-118C können jeweils als leitendes Element, wie z. B. eine elektrische Übertragungsleitung, ein Draht, eine Stromleitung und dergleichen, implementiert sein.The
Wie oben erwähnt, arbeitet die SI 110 in dem SI-Taktbereich und dem SI-Spannungsbereich. Zusammen werden der SI-Taktbereich und der SI-Spannungsbereich als SI-Bereich bezeichnet. In ähnlicher Weise arbeiten die anderen Komponenten 160 in dem SoC-Taktbereich und dem SoC-Spannungsbereich. Zusammen werden der SoC-Taktbereich und der SoC-Spannungsbereich als SoC-Bereich bezeichnet.As mentioned above, the
Die anderen Komponenten 160 des Fahrzeug-SoC 104 können einen Haupt-Zentralverarbeitungs- („CPU“-) Komplex, eine Hilfssicherheitseinheit 122, eine Schaltung 124 zur Durchführung von Fahrzeug-SoC-Funktionen, einen flüchtigen Datenspeicher oder Speicher 126 (z. B. einen dynamischen Direktzugriffsspeicher („DRAM“)) und einen nichtflüchtigen Datenspeicher oder Speicher 128 aufweisen. Der Haupt-CPU-Komplex 120 kann als ein oder mehrere Prozessoren implementiert sein, die unter ASIL-B arbeiten. Bei solchen Ausführungsformen kann das Fahrzeug-SoC 104 unter mehreren oder gemischten ASILs arbeiten, da die SI 110 auf einer höheren ASIL-Stufe (z. B. ASIL-D) arbeiten kann. Als nicht einschränkende Beispiele kann die Schaltung 124 Hardware aufweisen, die eine oder mehrere Anzeigen, eine oder mehrere Fahrzeug-Eingabe-/Ausgabe-Steuerungen, eine oder mehrere Speichersteuerungen, eine oder mehrere Verbindungen usw. implementiert. Bei der dargestellten Ausführungsform ist die Schaltung 124 so dargestellt, dass sie eine Vielzahl von Logikblöcken LB(1) - LB(N) aufweist oder implementiert, die häufig als geistiges Eigentum „IP“ (Intellectual Property) bezeichnet werden. Die Logikblöcke LB(1) - LB(N) können verschiedene Funktionen innerhalb des autonomen Fahrzeugs (z. B. dem in
Die optionale externe Steuereinheit 106 kann eine Steuerung 130, einen Fehleraggregator 132, einen flüchtigen Datenspeicher oder Speicher 136 (z. B. einen DRAM) und einen nichtflüchtigen Datenspeicher oder Speicher 138 aufweisen. Die optionale externe Steuerung 106 kann auch einen oder mehrere Logikblöcke (nicht dargestellt) aufweisen, die die von der optionalen externen Steuerung 106 ausgeführten Sicherheitsfunktionen implementieren. Die Steuerung 130 kann als ein oder mehrere Prozessoren (z. B. Mikrocontroller) implementiert sein, die unter ASIL-D arbeiten. Die Steuerung 130 führt Anweisungen aus, wie z. B. Anweisungen, die mit einem oder mehreren Automotive Open System Architecture („AUTOSAR“)-Softwarestandards konform sind und im nichtflüchtigen Speicher 138 gespeichert sind. Die Anweisungen können die Steuerung 130 anweisen, geeignete Maßnahmen zu ergreifen, wenn der Fehleraggregator 132 einen Fehler von dem Fahrzeug-SoC 104 empfängt.The optional
In einer oder mehreren Ausführungsformen weist die SI 110 einen Prozessor 140, eine Interrupt-Steuerung 141, einen SI-Fehleraggregator 142, einen flüchtigen Datenspeicher oder Speicher 146 (z. B. einen statischen Direktzugriffsspeicher („SRAM“)) und einen oder mehrere Logikblöcke 148 auf. Der Prozessor 140 kann als ein Cluster von Prozessoren implementiert werden, z. B. als hoch bewertete ASIL-D-Sicherheitsprozessoren. Der Prozessor 140 führt Anweisungen 149 aus, z. B. Anweisungen, die mit dem/den AUTOSAR-Software-Standard(s) konform sind, die beim Hochfahren aus dem nichtflüchtigen Speicher 128 abgerufen und in dem flüchtigen Speicher 146 gespeichert werden. Die Anweisungen 149 können den Prozessor 140 anweisen, geeignete Maßnahmen zu ergreifen, wenn der SI-Fehleraggregator 142 einen Fehler von den anderen Komponenten 160 des Fahrzeug-SoC 104 empfängt. Der/die Logikblock/blöcke 148 kann/können dazu beitragen, die von der SI 110 ausgeführten Sicherheitsfunktionen zu implementieren.In one or more embodiments, the
Die Hilfssicherheitseinheit 122 kann als Echtzeit-Sicherheits-Hilfsverarbeitungseinheit implementiert werden und/oder als ASIL-B oder höher eingestuft werden. Mit anderen Worten kann die Hilfssicherheitseinheit 122 auf der gleichen oder einer höheren Risikoklassifizierungsstufe arbeiten als andere Komponenten innerhalb des SoC-Bereichs. Die Hilfssicherheitseinheit 122 weist einen Prozessor 150, einen oder mehrere SoC-Fehleraggregatoren 152, eine Interrupt-Steuerung 154 und einen oder mehrere Logikblöcke auf, die im Folgenden als Mailbox(en) 156 bezeichnet werden. Der SI-Fehleraggregator 142 und der Fehleraggregator 132 (sofern vorhanden) können jeweils Fehler von dem/den SoC-Fehleraggregator(en) 152 empfangen. Der/die SoC-Fehleraggregator(en) 152 kann/können also über eine oder mehrere Fehlerschnittstellen 170 mit dem Fehleraggregator 132 verbunden sein und ist/sind über eine oder mehrere Fehlerschnittstellen 172 mit dem SI-Fehleraggregator 142 verbunden. Jede der Fehlerschnittstellen 170 und 172 weist eine Verbindung auf, wie z. B. einen Draht, eine Signalspur oder ähnliches, die jeden der SoC-Fehleraggregatoren 152 physisch mit dem Fehleraggregator 132 oder dem SI-Fehleraggregator 142 verbindet.The
Die Mailbox(en) 156 kann/können eine erste Mailbox, in die der Prozessor 150 schreibt und aus der der Prozessor 140 liest, und eine zweite Mailbox, in die der Prozessor 140 schreibt und aus der der Prozessor 150 liest, aufweisen. Die Mailbox(en) 156 kann/können von dem Prozessor 150 (z. B. einer Zentralverarbeitungseinheit („CPU“) der Stufe ASIL-B oder höher) verwendet werden, um Mailbox-Interrupts an die Interrupt-Steuerung 141 zu melden und Interrupts von der Interrupt-Steuerung 141 zu empfangen. Daher weist/en die Fehlerschnittstelle(n) 172 mindestens einen Signalleiter auf, der die Mailbox(en) 156 mit der Interrupt-Steuerung 141 verbindet. Jeder Mailbox-Interrupt weist einen Schweregrad-Identifikator auf, der den Schweregrad des Fehlers angibt. Als nicht einschränkendes Beispiel kann der Schweregrad-Identifikator ein numerischer Wert sein, der von einem Minimalwert (z. B. Null) bis zu einem Maximalwert (z. B. Sieben) reicht. Ein weiteres, nicht einschränkendes Beispiel ist, dass der Interrupt eine Interruptnummer haben kann, die von vornherein kodiert ist, um den Schweregrad anzuzeigen. Der Prozessor 140 und/oder der Prozessor 150 können Fehlerinformationen in die Mailbox(en) 156 schreiben. Die Fehlerinformationen weisen Informationen über den/die Error(s) auf, der/die den Fehler erzeugt hat/haben, wie z. B. den/die Namen des Logikblocks, in dem der/die Error(s) aufgetreten ist/sind, den/die Logikblock-Diagnosebezeichner, die Art des Fehlers, den Schweregradbezeichner und dergleichen.The mailbox(es) 156 may include a first mailbox that the
Die Integration der SI 110 in den Fahrzeug-SoC 104 kann es ermöglichen, dass eine Reihe von separaten Komponenten (z. B. der flüchtige Speicher 136 und der nichtflüchtige Speicher 138) aus dem Fahrzeug-Verarbeitungssystem 102 weggelassen werden können, wenn die optionale externe Steuereinheit 106 ebenfalls weggelassen wird. Dennoch ist es notwendig, die SI 110 von den anderen Komponenten 160 (z. B. dem Haupt-CPU-Komplex 120, der Hilfssicherheitseinheit 122, der Schaltung 124, dem flüchtigen Speicher 126 und dem nichtflüchtigen Speicher 128) des Fahrzeug-SoC 104 zu isolieren, damit potenzielle Probleme, die in einer oder mehreren der anderen Komponenten 160 auftreten, die SI 110 nicht negativ beeinflussen. Eine solche Isolierung kann beispielsweise verhindern, dass die SI 110 durch einen Ausfall in einer oder mehreren der anderen Komponenten 160 des Fahrzeug-SoC 104 beeinträchtigt wird. Nicht einschränkende Beispiele für die Typen von Ausfällen, die in einer oder mehreren der anderen Komponenten 160 auftreten können, schließen zufällige Fehler, Taktprobleme, Leistungsprobleme und/oder Spannungsprobleme ein. Aufgrund der räumlichen Nähe und einer oder mehrerer Schnittstellen 200 (siehe
Der erste (SoC-)Taktgeber 112 ist von dem zweiten (SI-)Taktgeber 114 getrennt (z. B. weist er einen separaten Referenzkristall auf), was dazu beiträgt, die SI 110 von den anderen Komponenten 160 des Fahrzeug-SoC 104 zu isolieren. Ebenso ist die erste Stromverbindung 118A von der zweiten Stromverbindung 118B getrennt, was dazu beiträgt, die SI 110 von den anderen Komponenten 160 des Fahrzeug-SoC 104 zu isolieren. Wie bereits erwähnt, kann die SI 110 in einem von den anderen Komponenten 160 des Fahrzeug-SoC 104 getrennten SI-Spannungsbereich arbeiten. Aber selbst mit dem separaten zweiten (SI-)Taktgeber 114 und der separaten zweiten Stromverbindung 118B kommuniziert die SI 110 über die Schnittstelle(n) 200 mit den anderen Komponenten 160 des Fahrzeug-SoC 104 (siehe
Der (die) Logikblock/blöcke 148 weist (weisen) eine Takt- und Rücksetzschaltung 230 (siehe
Die Schnittstelle 200A für den flüchtigen Speicher ist eine Schnittstelle zwischen dem Prozessor 140 und dem flüchtigen Speicher 126 des Fahrzeug-SoC 104. Die Schnittstelle 200A für den flüchtigen Speicher ermöglicht es dem Prozessor 140, Informationen in den flüchtigen Speicher 126 zu schreiben und Informationen aus dem flüchtigen Speicher 126 zu lesen. Die Schnittstelle 200A für den flüchtigen Speicher weist eine oder mehrere Verbindungen mit dem flüchtigen Speicher 126 auf, wie z. B. eine Leitung, eine Signalspur und dergleichen. Die Schnittstelle 200A für den flüchtigen Speicher kann die Steuerung 220 zur logischen Isolation, einen Zugriffs-Timer 222 und eine Bereichssynchronisationsschaltung 224 aufweisen. Die Steuerung 220 zur logischen Isolation weist einen Gatter- oder Sperrmechanismus auf, der durch den Prozessor 140 selektiv ge- und entsperrt werden kann. Der Zugriffs-Timer 222 ermöglicht ein Timeout bei einem von dem Prozessor 140 initiierten Zugriffsversuch.The
Die Bereichssynchronisationsschaltung 224 weist eine Phasensynchronisationsschaltung und einen oder mehrere Spannungspegelschieber auf. Die Phasensynchronisationsschaltung hilft dabei, die Phasen von Signalen zu synchronisieren, die über den SI- und SoC-Bereich kommuniziert werden und die unter Verwendung der separaten ersten und zweiten Taktgeber 112 und 114 erzeugt wurden (siehe
Wenn die Schnittstelle 200A für die flüchtige Speicherschnittstelle entsperrt ist, kann der Prozessor 140 auf den flüchtigen Speicher 126 zugreifen, wodurch der Zugriffs-Timer 222 gestartet wird. Wenn der Zugriffs-Timer 222 angibt, dass mehr als eine erste vorbestimmte Zeitspanne verstrichen ist und keine Antwort von dem flüchtigen Speicher 126 empfangen wurde, gibt der Prozessor 140 einen Sicherheitsfehler an, verwendet die Steuerung 220 zur logischen Isolation, um die Schnittstelle 200A des flüchtigen Speichers zu sperren, sperrt optional jede der Schnittstelle(n) 200, die nicht gesperrt sind, und führt optional eine oder mehrere Maßnahmen durch, die so ausgestaltet sind, dass die Fahrzeug-Plattform 100 (siehe
Die erste und die zweite Steuer-Backbone-Schnittstelle 200B bzw. 200C sind Schnittstellen zwischen dem Prozessor 140 und einem Steuer-Backbone 210. Das Steuer-Backbone 210 kann als Bus und dergleichen implementiert sein. Die erste Steuer-Backbone-Schnittstelle 200B dient der Kommunikation zwischen dem Prozessor 140 und dem Steuer-Backbone 210, und die zweite Steuer-Backbone-Schnittstelle 200C dient der Kommunikation zwischen dem Steuer-Backbone 210 und dem Prozessor 140. Als nicht einschränkendes Beispiel kann der Prozessor 140 über das Steuer-Backbone 210 auf zumindest einige der anderen Komponenten 160 (z.B. die Schaltung 124, die Mailbox(en) 156 und den nichtflüchtigen Speicher 128) des Fahrzeug-SoC 104 zugreifen.The first and second control backbone interfaces 200B and 200C, respectively, are interfaces between the
Die erste Steuer-Backbone-Schnittstelle 200B ermöglicht es dem Prozessor 140, Anweisungen und/oder Informationen an das Steuer-Backbone 210 zu senden. Die erste Steuer-Backbone-Schnittstelle 200B kann die Steuerung 220 zur logischen Isolation, den Zugriffs-Timer 222, die Bereichssynchronisationsschaltung 224 und eine Firewall 226 aufweisen. Die Steuerung 220 zur logischen Isolation der ersten Steuer-Backbone-Schnittstelle 200B ist im Wesentlichen identisch mit der Steuerung 220 zur logischen Isolation der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Somit ermöglicht die Steuerung 220 zur logischen Isolation der ersten Steuer-Backbone-Schnittstelle 200B dem Prozessor 140, die erste Steuer-Backbone-Schnittstelle 200B zu sperren und zu entsperren. Der Zugriffs-Timer 222 der ersten Steuer-Backbone-Schnittstelle 200B ermöglicht, dass bei einem von dem Prozessor 140 initiierten Zugriffsversuch eine Zeitüberschreitung auftritt. Die Bereichssynchronisationsschaltung 224 der ersten Steuer-Backbone-Schnittstelle 200B ist im Wesentlichen identisch mit der Bereichssynchronisationsschaltung 224 der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen genauso. Die Firewall 226 der ersten Steuer-Backbone-Schnittstelle 200B implementiert eine oder mehrere Sicherheitsregeln und erlaubt oder blockiert jede Kommunikation auf der Grundlage der Sicherheitsregel(n).The first
Die zweite Steuer-Backbone-Schnittstelle 200C ermöglicht es dem Prozessor 140, Anweisungen und/oder Informationen von dem Steuer-Backbone 210 zu empfangen. Die zweite Steuer-Backbone-Schnittstelle 200C kann die Steuerung 220 zur logischen Isolation, die Bereichssynchronisationsschaltung 224 und die Firewall 226 aufweisen. Die Steuerung 220 zur logischen Isolation der zweiten Steuer-Backbone-Schnittstelle 200C ist im Wesentlichen identisch mit der Steuerung 220 zur logischen Isolation der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Somit ermöglicht die Steuerung 220 zur logischen Isolation der zweiten Steuer-Backbone-Schnittstelle 200C dem Prozessor 140 das Sperren und Entsperren der zweiten Steuer-Backbone-Schnittstelle 200C. Die Bereichssynchronisationsschaltung 224 der zweiten Steuer-Backbone-Schnittstelle 200C ist im Wesentlichen identisch mit der Bereichssynchronisationsschaltung 224 der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen genauso wie diese. Die Firewall 226 der zweiten Steuer-Backbone-Schnittstelle 200C implementiert eine oder mehrere Sicherheitsregeln und erlaubt oder blockiert jede Kommunikation auf der Grundlage der Sicherheitsregel(n).The second
Die Schnittstelle 200D für sichere Inhalte ist eine Schnittstelle zwischen dem Prozessor 140 und der Schaltung 212 für sichere Inhalte. Die Schnittstelle 200D für sichere Inhalte ermöglicht es dem Prozessor 140, Anweisungen und/oder Informationen (z.B. sichere und/oder sensible Inhalte) von der Schaltung 212 für sichere Inhalte zu empfangen. Die Schnittstelle 200D für sichere Inhalte kann die Steuerung 220 zur logischen Isolation und die Bereichssynchronisationsschaltung 224 aufweisen. Die Steuerung 220 zur logischen Isolation der Schnittstelle 200D für sichere Inhalte ist im Wesentlichen identisch mit der Steuerung 220 zur logischen Isolation der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Somit ermöglicht die Steuerung 220 zur logischen Isolation der Schnittstelle 200D für sichere Inhalte dem Prozessor 140, die Schnittstelle 200D für sichere Inhalte zu sperren und zu entsperren. Die Bereichssynchronisationsschaltung 224 der Schnittstelle 200D für sichere Inhalte ist im Wesentlichen identisch mit der Bereichssynchronisationsschaltung 224 der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser.The
Die Debug-Schnittstelle 200E ist eine Schnittstelle zwischen dem Prozessor 140 und der Debug-Schaltung 214. Die Debug-Schnittstelle 200E ermöglicht es dem Prozessor 140, Anweisungen und/oder Informationen von der Debug-Schaltung 214 zu empfangen. Die Debug-Schnittstelle 200E kann die Steuerung 220 zur logischen Isolation und die Bereichssynchronisationsschaltung 224 aufweisen. Die Steuerung 220 zur logischen Isolation der Debug-Schnittstelle 200E ist im Wesentlichen identisch mit der Steuerung 220 zur logischen Isolation der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Somit ermöglicht die Steuerung 220 zur logischen Isolation der Debug-Schnittstelle 200E dem Prozessor 140, die Debug-Schnittstelle 200E zu sperren und zu entsperren. Die Bereichssynchronisationsschaltung 224 der Debug-Schnittstelle 200E ist im Wesentlichen identisch mit der Bereichssynchronisationsschaltung 224 der Schnittstelle 200 des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Wie es oben erwähnt ist, arbeiten die SI 110 und die anderen Komponenten 160 in getrennten Taktbereichen. Bei solchen Ausführungsformen werden keine Signale von einem externen Taktgeber einer oder mehrerer der anderen Komponenten 160 des Fahrzeug-SoC 104, wie z. B. der Debug-Schaltung 214, in die SI 110 eingespeist. Die von dem Fahrzeug-SoC 104 ausgeführten Debug-Funktionen empfangen das Debug-Taktsignal über die Bereichssynchronisationsschaltung 224 der Debug-Schnittstelle 200E, die die von dem Fahrzeug-SoC 104 ausgeführten Debug-Funktionen auf die Verwendung des von der SI 110 und/oder dem zweiten (SI-) Taktgeber 114 erzeugten Debug-Taktsignals umschaltet oder umwandelt. Da die Debug-Logik nicht verwendet wird, während sich die SI 110 in dem Einsatzmodus befindet (z. B. wenn das Fahrzeug fährt), weist die SI 110 ein erstes Taktgatter für den Debug-Takt auf, um Störungen zu verhindern, die möglicherweise durch das Debug-Taktsignal verursacht werden könnten. Als nicht einschränkendes Beispiel kann das erste Taktgatter eine Komponente der Takt- und Reset-Schaltung 230 sein. Das erste Taktgatter kann mit Hilfe eines ersten Konfigurationsbits, das von dem Prozessor 140 gesetzt wird, gesteuert (z. B. selektiv ein- und ausgeschaltet) werden.The
Die Test-Schnittstelle 200F ist eine Schnittstelle zwischen dem Prozessor 140 und der Test-Schaltung 216. Die Test-Schnittstelle 200F ermöglicht es dem Prozessor 140, Anweisungen und/oder Informationen von der Test-Schaltung 216 zu empfangen. Die Test-Schnittstelle 200F kann die Steuerung 220 zur logischen Isolation und die Bereichssynchronisationsschaltung 224 aufweisen. Die Steuerung 220 zur logischen Isolation der Test-Schnittstelle 200F ist im Wesentlichen identisch mit der Steuerung 220 zur logischen Isolation der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Somit ermöglicht die Steuerung 220 zur logischen Isolation der Test-Schnittstelle 200F dem Prozessor 140 das Sperren und Entsperren der Test-Schnittstelle 200F. Die Bereichssynchronisationsschaltung 224 der Test-Schnittstelle 200F ist im Wesentlichen identisch mit der Bereichssynchronisationsschaltung 224 der Schnittstelle 200A des flüchtigen Speichers und funktioniert im Wesentlichen identisch mit dieser. Wie es bereits erwähnt ist, wird durch diese Konfiguration verhindert, dass externe Signale von einer oder mehreren der anderen Komponenten 160 des Fahrzeug-SoC 104, wie z. B. der Test-Schaltung 216, in die SI 110 eingespeist werden. Die von dem Fahrzeug-SoC 104 ausgeführten Testfunktionen erhalten das Testtaktsignal über die Bereichssynchronisationsschaltung 224 der Debug-Schnittstelle 200E, die die von dem Fahrzeug-SoC 104 ausgeführten Testfunktionen auf die Verwendung des von der SI 110 und/oder dem zweiten (SI-)Taktgeber 114 erzeugten Testtaktsignals umschaltet oder umwandelt. Da die Testlogik nicht verwendet wird, während sich die SI 110 in dem Einsatzmodus befindet (z. B. wenn das Fahrzeug fährt), weist die SI 110 ein zweites Taktgatter für den Testtakt auf, um jegliche Störung zu verhindern, die möglicherweise durch das Testtaktsignal verursacht werden könnte. Als nicht einschränkendes Beispiel kann das zweite Taktgatter eine Komponente der Takt- und Reset-Schaltung 230 sein. Das zweite Taktgatter kann mit Hilfe eines zweiten Konfigurationsbits, das von dem Prozessor 140 gesetzt wird, gesteuert (z. B. selektiv ein- und ausgeschaltet) werden.The
Die SI 110 kann mindestens zwei Betriebsmodi haben, einen isolierten oder Cocoon-Modus und einen nicht-isolierten Modus. Wenn die SI 110 in dem Cocoon-Modus arbeitet, sind die einzigen Informationen, die von dem Fahrzeug-SoC 104 in die SI 110 gelangen dürfen, Fehlerinformationen, die über die Fehlerschnittstelle(n) 172 in die SI 110 gelangen. Auf diese Weise hält der SI-Fehleraggregator 142 einen kumulativen Gesundheitszustand des Fahrzeug-SoC 104 und der SI 110 auf dem aktuellen Stand. Wenn die SI 110 hingegen im nicht isolierten Modus arbeitet, können Informationen über eine oder mehrere der Schnittstelle(n) 200 in die SI 110 gelangen. Ob die SI 110 in dem Cocoon-Modus oder in dem nicht-isolierten Modus arbeitet, wird zumindest teilweise durch die von dem Prozessor 140 ausgeführten Anweisungen 149 und zumindest teilweise durch die Schnittstelle(n) 200 bestimmt.The
Um zu verhindern, dass ein potenzielles sicherheitskritisches Problem, das seinen Ursprung in den anderen Komponenten 160 des Fahrzeug-SoC 104 hat, über eine oder mehrere der Schnittstelle(n) 200 zu der SI 110 gelangt, weist jede der Schnittstelle(n) 200 die separate Steuerung 220 zur logischen Isolation auf, die von dem Prozessor 140 selektiv ge- und entsperrt wird. Wenn der Sperrmechanismus der Steuerung 220 zur logischen Isolation durch den Prozessor 140 gesperrt wird, verhindert der Sperrmechanismus jegliche Kommunikation zwischen dem Fahrzeug-SoC 104 und der SI 110 über die gesperrte Schnittstelle. Andererseits kann die Schnittstelle durch den Prozessor 140 entsperrt werden, um eine solche Kommunikation über die entsperrte Schnittstelle zu ermöglichen. So kann der Prozessor 140 die SI 110 wahlweise in den Cocoon-Modus oder in den nicht isolierten Modus versetzen. Wenn alle Schnittstellen 200 gesperrt sind, kann der Prozessor 140 weder auf den flüchtigen Speicher 126 noch auf den nichtflüchtigen Speicher 128 zugreifen und führt die Anweisungen 149 aus, die in dem flüchtigen Speicher 146 (z. B. SRAM) in der SI 110 gespeichert sind.To prevent a potential safety-critical issue originating in the
Nun mit Bezug zu
Wann immer der Prozessor 140 mit einer bestimmten der anderen Komponenten 160 des Fahrzeug-SoC 104 kommunizieren muss, überprüft der Prozessor 140, ob die Kommunikation mit der bestimmten Komponente sicher ist, bevor er dies versucht. Um diese Überprüfung vorzunehmen, kann der Prozessor 140 in Block 304 den Inhalt des SI-Fehleraggregators 142 überprüfen, der über die Fehlerschnittstelle(n) 172 (siehe
Im Abfrageblock 306 bestimmt der Prozessor 140, ob irgendwelche Fehler in dem SI-Fehleraggregator 142 erkannt wurden. Die Antwort bei dem Abfrageblock 306 lautet „JA“, wenn mindestens ein Fehler erkannt wurde, was bedeutet, dass ein für eine oder mehrere der anderen Komponenten 160 identifizierter Fehler von dem/den SoC-Fehleraggregator(en) 152 an den SI-Fehleraggregator 142 gemeldet wurde. Der Prozessor 140 kann den Fehler anhand der Statusbits 242 innerhalb des SI-Fehleraggregators 142 erkennen. Die Statusbits 242 können so gekennzeichnet sein, dass sie das Befinden des Fahrzeug-SoC 104 verfolgen. Alternativ kann der SI-Fehleraggregator 142 den Prozessor 140 über den Fehler informieren, indem er einen Interrupt an den Prozessor 140 sendet. Andernfalls lautet die Antwort in dem Abfrageblock 306 „NEIN“, wenn kein Fehler erkannt wird.In
Wenn die Antwort in dem Abfrageblock 306 „JA“ lautet, kann der Prozessor 140 in Block 308 eine oder mehrere Korrekturmaßnahmen ergreifen. Die Korrekturmaßnahme(n) kann/können dazu beitragen, das Fahrzeug in einen sicheren Zustand zu bringen. Als nicht einschränkende Beispiele können solche Korrekturmaßnahmen die Betätigung der Fahrzeugbremsen, die Verringerung der Fahrzeuggeschwindigkeit, das Leiten des Fahrzeugs an den Straßenrand und ähnliches aufweisen. Dann kann der Prozessor 140 zu Block 304 zurückkehren.If the answer in
Wenn die Antwort in dem Abfrageblock 306 „NEIN“ lautet, entsperrt der Prozessor 140 in Block 310 den Sperrmechanismus der Steuerung 220 zur logischen Isolation einer bestimmten der mit der bestimmten Komponente verbundenen Schnittstelle(n) 200, wenn der Sperrmechanismus der bestimmten Schnittstelle gesperrt war. Mit anderen Worten kann der Prozessor 140 feststellen, dass es sicher ist, auf die bestimmte Komponente des Fahrzeug-SoC 104 über die bestimmte Schnittstelle zuzugreifen, wenn der SI-Fehleraggregator 142 keinen Fehler speichert. Daher entsperrt der Prozessor 140 in Block 310 die bestimmte Schnittstelle.If the answer in
Dann, in Block 312, kann der Prozessor 140 über die entsperrte bestimmte Schnittstelle Mitteilungen an die bestimmte Komponente senden oder von ihr empfangen, was automatisch den Zugriffs-Timer 222 der bestimmten Schnittstelle startet. Wenn die bestimmte Schnittstelle entsperrt ist, kann der Prozessor 140 einen oder mehrere streng geordnete Zugriffe (einen nach dem anderen) auf dem Fahrzeug-SoC 104 initiieren. Der Zugriffs-Timer 222 startet automatisch für jeden Zugriff. So kann der Zugriffs-Timer 222 mit dem Herunterzählen beginnen, sobald ein bestimmter Zugriff durch den Prozessor 140 eingeleitet wird.Then, in
Im Abfrageblock 314 bestimmt der Prozessor 140, ob eine Zeitüberschreitung eingetreten ist. Die Antwort im Abfrageblock 314 lautet „JA“, wenn der Zugriffs-Timer 222 anzeigt, dass die erste vorbestimmte Zeitspanne verstrichen ist und keine Antwort von der jeweiligen Komponente empfangen wurde. Andernfalls ist die Antwort im Abfrageblock 314 „NEIN“, wenn eine Antwort von der bestimmten Komponente empfangen wird, bevor der Zugriffs-Timer 222 anzeigt, dass die erste vorbestimmte Zeitspanne verstrichen ist.In
Wenn die Antwort in dem Abfrageblock 314 „JA“ lautet, zeigt der Prozessor 140 im Block 316 an, dass ein Sicherheitsfehler aufgetreten ist. Dann, in Block 318, sperrt der Prozessor 140 den Sperrmechanismus der Steuerung 220 zur logischen Isolation der bestimmten Schnittstelle, sperrt optional den Sperrmechanismus der Steuerung 220 zur logischen Isolation jeder der anderen Schnittstelle(n), die nicht gesperrt ist/sind, und führt optional eine oder mehrere Aktionen aus, die ausgestaltet sind, um die Fahrzeug-Plattform 100 in einen sicheren Zustand zurückzubringen.If the answer in
Andererseits, wenn die Antwort im Abfrageblock 314 „NEIN“ ist, schließt der Prozessor 140 in Block 320 die Kommunikation ab. Der Zugriffs-Timer 222 wird automatisch zurückgesetzt. Dann, in Block 318, sperrt der Prozessor 140 den Sperrmechanismus der jeweiligen Schnittstelle. Auf diese Weise stellt das Verfahren 300 sicher, dass die Schnittstelle(n) 200 immer dann gesperrt bleibt (bleiben), wenn der Prozessor 140 nicht auf eine der anderen Komponenten 160 des Fahrzeug-SoC 104 zugreift. Dann wird das Verfahren 300 beendet.On the other hand, if the answer in
Die SI 110 kann den Zugriff auf den gemeinsam genutzten nichtflüchtigen Speicher 128 vermeiden, indem sie die Anweisungen 149 (z. B. kritische Anweisungen, die das System in einen sicheren Zustand bringen) aus dem gemeinsam genutzten nichtflüchtigen Speicher 128 in seinen internen flüchtigen Speicher 146 kopiert, wenn das Fahrzeug-SoC 104 hochgefahren wird. Der Prozessor 140 kann die Anweisungen 149 authentifizieren und validieren, bevor die SI 110 in einen Einsatzmodus übergeht, der einen Fahrzyklus des Fahrzeugs ermöglicht. Die SI 110 kann gleichzeitig im Einsatzmodus und entweder im Cocoon-Modus oder im nicht isolierten Modus arbeiten. Die Anweisungen 149 verbleiben im flüchtigen Speicher 146, wodurch der Prozessor 140 den Zugriff auf den gemeinsamen nicht flüchtigen Speicher 128 vermeiden kann. Nicht kritische Daten, z. B. Anwendungscode, Fusionsdaten usw., können aus dem gemeinsam genutzten flüchtigen Speicher 126 unter Verwendung einer internen (Direct Memory Access-) DMA-Engine 402 (siehe
Bezug nehmend auf
Stattdessen kann, wie es in
Die Mailbox(en) 156 kann/können über eine Mailbox-Interrupt-Signalleitung 416 mit der Interrupt-Steuerung 141 der SI 110 verbunden sein. Die Signalleiter 410-416 können jeweils als Draht, Signalbahn und dergleichen ausgeführt sein.The mailbox(es) 156 may be connected to the interrupt
Der Einfachheit halber wird das Verfahren 500 so beschrieben, dass es von einem bestimmten SoC-Fehleraggregator 152 ausgeführt wird (siehe
In Block 506 aggregiert der bestimmte SoC-Fehleraggregator diejenigen der ersten aggregierten Fehlersignale, die einen Fehler identifizieren, der durch einen korrigierten Fehler verursacht wurde, zu einem Signal eines korrigierten Fehlers. Dann, in Block 508, überträgt der jeweilige SoC-Fehleraggregator das Signal eines korrigierten Fehlers über den Leiter 410 für das Signal für korrigierte Fehler (siehe
In Block 512 startet der bestimmte SoC-Fehleraggregator einen Timer 420C für korrigierte Fehler (siehe
Im Abfrageblock 514 bestimmt der bestimmte SoC-Fehleraggregator, ob der erste korrigierte Fehler von dem bestimmten SoC-Fehleraggregator gelöscht wurde. Die Antwort im Abfrageblock 514 lautet „JA“, wenn der erste korrigierte Fehler gelöscht wurde, bevor der Timer für korrigierte Fehler 420C (siehe
Im Abfrageblock 516 bestimmt der Prozessor 150, ob der Timer 420C für korrigierte Fehler (siehe
In Block 520 aggregiert der bestimmte SoC-Fehleraggregator diejenigen der in Block 502 empfangenen ersten aggregierten Fehlersignale, die einen durch einen nicht korrigierten Fehler bzw. Error verursachten Fehler identifizieren, zu einem Signal für einen unkorrigierten Fehler. Dann, in Block 522, überträgt der jeweilige SoC-Fehleraggregator das Signal für einen unkorrigierten Fehler über den Signalleiter 412 für unkorrigierte Fehler (siehe
In Block 526 startet der bestimmte SoC-Fehleraggregator einen Timer für unkorrigierte Fehler 420U (siehe
Im Abfrageblock 528 bestimmt der bestimmte SoC-Fehleraggregator, ob der erste unkorrigierte Fehler von dem bestimmten SoC-Fehleraggregator gelöscht wurde. Die Antwort im Abfrageblock 528 lautet „JA“, wenn der erste unkorrigierte Fehler gelöscht wurde, bevor der Timer 420U für unkorrigierte Fehler (siehe
Im Abfrageblock 530 stellt der Prozessor 150 fest, ob der Timer 420U für unkorrigierte Fehler anzeigt, dass die dritte vorbestimmte Zeitspanne verstrichen ist, was bedeutet, dass der Timer 420U für unkorrigierte Fehler (siehe
Der Einfachheit halber wird das Verfahren 540 so beschrieben, wie es von dem Prozessor 150 ausgeführt wird (siehe
Wenn ein Problem auftritt, während der Prozessor 150 die Fehler bewertet und/oder die Korrekturmaßnahmen ergreift, ist der Prozessor 150 möglicherweise nicht in der Lage, die Bearbeitung der bestimmten Interrupts fortzusetzen. In diesem Fall lautet die Antwort im Abfrageblock 543 „JA“, und im Block 544 ergreift der Prozessor 150 keine weiteren Maßnahmen weiter in Bezug auf den bestimmten Interrupt. Ist der Prozessor 150 hingegen in der Lage, den bestimmten Interrupt zu klassifizieren und optional die Korrekturmaßnahme(n) zu ergreifen, lautet die Antwort im Abfrageblock 543 „NEIN“. Wenn die Antwort im Abfrageblock 543 „NEIN“ lautet, schreibt der Prozessor 150 in Block 545 Informationen zu dem bestimmten Interrupt in die Mailbox(en) 156, die von dem Prozessor 140 gelesen werden können. Als nächstes sendet der Prozessor 150 im Block 546 einen Mailbox-Interrupt über den Mailbox-Interrupt-Signalleiter 416 an die Interrupt-Steuerung 141. Der Mailbox-Interrupt zeigt den Schweregrad des Fehlers an, der in dem in Block 541 empfangenen Interrupt identifiziert wurde. If a problem occurs while the
Dann bestimmt der Prozessor 150 im Abfrageblock 547, ob der Prozessor 150 den Fehler löschen soll, für den der bestimmte Interrupt von dem bestimmten SoC-Fehleraggregator erzeugt wurde. Die Antwort im Abfrageblock 547 lautet „JA“, wenn der Prozessor 150 beschließt, den Fehler zu löschen. Andernfalls ist die Antwort im Abfrageblock 547 „NEIN“. Die Antwort im Abfrageblock 547 kann „JA“ lauten, wenn die vom Prozessor 150 ergriffene(n) Korrekturmaßnahme(n) den Fehler beheben konnte(n) oder der Fehler durch einen korrigierten Fehler erzeugt wurde (z. B. durch einen von einem der Logikblöcke LB(1) - LB(N) korrigierten Fehler). Als weiteres nicht einschränkendes Beispiel kann die Antwort im Abfrageblock 547 „JA“ lauten, wenn der Prozessor 150 einen Mailbox-Interrupt von dem Prozessor 140 empfängt, der anzeigt, dass der Prozessor 140 den Fehler behoben hat. Wenn die Antwort im Abfrageblock 547 „NEIN“ lautet, ergreift der Prozessor 150 in Block 548 keine weiteren Maßnahmen in Bezug auf den bestimmten Interrupt. Lautet die Antwort im Abfrageblock 547 hingegen „JA“, so löscht der Prozessor 150 in Block 549 den Fehler aus dem jeweiligen SoC-Fehleraggregator. Der Prozessor 150 kann dem Prozessor 140 mitteilen, dass der Fehler aus dem bestimmten SoC-Fehleraggregator gelöscht wurde. Dann wird das Verfahren 540 beendet.Then, in
Der Einfachheit halber wird das Verfahren 550 so beschrieben, dass es von dem SI-Fehleraggregator 142 (siehe
Im Abfrageblock 556 stellt der Prozessor 140 (siehe
Im Abfrageblock 560 entscheidet der Prozessor 140 (siehe
Wenn der SI-Fehleraggregator 142 das Signal eines unkorrigierten Fehlers auf dem Signalleiter 412 für unkorrigierte Fehler empfängt, sendet der SI-Fehleraggregator 142 in Block 566 einen Interrupt an die Interrupt-Steuerung 141 (siehe
Im Abfrageblock 568 bestimmt der Prozessor 140 (siehe
Im Abfrageblock 570 entscheidet der Prozessor 140 (siehe
Im Abfrageblock 573 entscheidet der Prozessor 140, ob eine oder mehrere Korrekturmaßnahmen zu ergreifen sind. Wenn die Antwort im Abfrageblock 573 „JA“ lautet, führt der Prozessor 140 in Block 574 die Korrekturmaßnahme(n) durch, wie z. B. die Betätigung der Fahrzeugbremsen. Dann geht der Prozessor 140 zu Abfrageblock 575 über.In
Wenn die Antwort im Abfrageblock 573 „NEIN“ lautet, geht der Prozessor 140 zu Abfrageblock 575 weiter. Im Abfrageblock 575 entscheidet der Prozessor 140, ob das externe System 404 zu benachrichtigen ist. Wenn die Antwort im Abfrageblock 575 „JA“ lautet, benachrichtigt der Prozessor 140 in Block 576 das externe System 404 und geht weiter zu Block 578. Wenn die Antwort im Abfrageblock 575 „NEIN“ lautet, geht der Prozessor 140 zu Block 578 über.If the answer in
In Block 578 sendet der Prozessor 140 einen Mailbox-Interrupt an die Mailbox(en) 156 und/oder löscht den unkorrigierten Fehler, beispielsweise durch Rücksetzen des Statusbits „BT2“. Optional kann der Prozessor 140 Fehlerinformationen in die Mailbox(en) 156 schreiben. Der Prozessor 140 kann auf die Benachrichtigung des Prozessors 150 warten, dass der dem unkorrigierten Fehler entsprechende Fehler aus dem bestimmten SoC-Fehleraggregator gelöscht wurde, bevor der Prozessor 140 den unkorrigierten Fehler aus dem SI-Fehleraggregator 142 löscht. Dann wird das Verfahren 550 beendet. Der Mailbox-Interrupt wird von dem Prozessor 150 empfangen und kann beim Antwortblock 547 (siehe
Der Einfachheit halber wird das Verfahren 580 so beschrieben, dass es von dem SI-Fehleraggregator 142 (siehe
Wie durch einen Pfeil mit einer gestrichelten Linie in
Nachdem der SoC-Fehler-Timer 424 gestartet wurde, bestimmt die SoC-Fehlerbehandlungsschaltung 422 im Abfrageblock 588, ob der SoC-Fehler-Timer 424 anzeigt, dass eine vierte vorbestimmte Zeitspanne verstrichen ist. Die Entscheidung bzw. Antwort im Antwortblock 588 lautet „JA“, wenn der SoC-Fehler-Timer 424 anzeigt, dass die vierte vorbestimmte Zeitspanne verstrichen ist, und der SoC-Fehleraggregatorfehler nicht gelöscht wurde. Andererseits ist die Antwort im Abfrageblock 588 „NEIN“, wenn der SoC-Fehleraggregatorfehler gelöscht wurde, bevor der SoC-Fehler-Timer 424 anzeigt, dass die vierte vorbestimmte Zeitspanne verstrichen ist.After the
Wenn die Antwort im Abfrageblock 588 „NEIN“ lautet, wartet die SoC-Fehlerbehandlungsschaltung 422 in Block 590 darauf, dass der SoC-Fehler-Timer 424 anzeigt, dass die vierte vorbestimmte Zeitspanne verstrichen ist. Andererseits, wenn die Antwort im Abfrageblock 588 „JA“ lautet, überträgt die SoC-Fehlerbehandlungsschaltung 422 im Block 584 das SoC-Fehlersignal, das den SoC-Fehler aufweist, über die Verbindung 406 (siehe
Nachdem der SI-Fehleraggregator 142 (siehe
Dann, in Block 598, sendet der Prozessor 140 einen Mailbox-Interrupt an die Mailbox(en) 156 und/oder löscht den SoC-Fehleraggregator-Fehler, zum Beispiel durch Zurücksetzen des Statusbits „BT3“, und den/die nicht korrigierten Fehler durch Zurücksetzen des Statusbits „BT2“. Das Löschen des SoC-Fehleraggregator-Fehlers stoppt den SoC-Fehler-Timer 424. Der an die Mailbox(en) 156 gesendete Mailbox-Interrupt kann anzeigen, dass der unkorrigierte Fehler gelöscht wurde und/oder der Prozessor 140 die Korrekturmaßnahme(n) in Block 597 durchgeführt hat. Optional kann der Prozessor 140 Fehlerinformationen in die Mailbox(en) 156 schreiben. Der Prozessor 140 kann auf die Benachrichtigung des Prozessors 150 warten, dass der/die Fehler, die dem/den nicht korrigierten Fehler(n) entsprechen, von dem bestimmten SoC-Fehleraggregator gelöscht wurden, bevor der Prozessor 140 den SoC-Fehleraggregator-Fehler und den/die nicht korrigierten Fehler von dem SI-Fehleraggregator 142 löscht. Dann wird das Verfahren 580 beendet. Der Mailbox-Interrupt wird von dem Prozessor 150 empfangen, der den Fehler, der dem unkorrigierten Fehler entspricht, löschen kann. Der Prozessor 150 kann optional die von dem Prozessor 140 in die Mailbox(en) 156 geschriebenen Fehlerinformationen lesen, bevor er den Fehler löscht.Then, in block 598, the
In den
Die Linie 612A stellt das Signal eines unkorrigierten Fehlers dar, das von dem Signalleiter 412 für unkorrigierte Fehler (siehe
In
Andererseits, wenn der Inhalt der Mailbox(en) 156 nicht anzeigt, dass der Prozessor 150 den bestimmten Fehler gelöscht hat, kann der Prozessor 140 beschließen, eine oder mehrere Korrekturmaßnahmen zu ergreifen (z. B. lautet die Antwort im Abfrageblock 573 von
Wenn die Korrekturmaßnahme(n) erfolgreich war(en), kann der Prozessor 140 einen Mailbox-Interrupt an die Mailbox(en) 156 senden, der anzeigt, dass der Prozessor 140 den bestimmten Fehler gelöscht hat (z. B. Block 578 von
Die Linie 616A stellt das SoC-Fehleraggregations-Signal dar und verdeutlicht, dass der SoC-Fehleraggregations-Fehler nicht gemeldet wurde. Somit wurde(n) der/die unkorrigierte(n) Fehler gelöscht, bevor der Timer 420U für unkorrigierte Fehler ablief.
Die Linie 618A stellt ein SoC-Fehlersignal dar, das über die Verbindung 406 an das externe System 404 (z. B. die optionale externe Steuereinheit 106, einen oder mehrere externe Mikrocontroller, einen oder mehrere externe Agenten und dergleichen) gesendet werden kann. Da der/die unkorrigierte(n) Fehler behandelt wurde(n) und der SoC-Fehleraggregationsfehler nicht gemeldet wurde, zeigt die Linie 618A an, dass die SI 110 das externe System 404 nicht über den/die unkorrigierten Fehler benachrichtigt (z. B. lautet die Antwort im Abfrageblock 575 „NEIN“).
Die Linie 612B stellt das Signal des unkorrigierten Fehlers dar, das von dem Signalleiter 412 für unkorrigierte Fehler (siehe
In
Der Prozessor 140 beschließt jedoch, das externe System 404 (siehe
Die Linie 612C stellt das Signal des unkorrigierten Fehlers dar, das von dem Signalleiter 412 für unkorrigierte Fehler (siehe
In
Eine Linie 628C stellt die dritte vorbestimmte Zeitspanne dar und zeigt an, dass der Timer 420U für unkorrigierte Fehler abgelaufen ist. Da weder der Prozessor 140 noch der Prozessor 150 in der Lage waren, den ersten unkorrigierten Fehler zu löschen, läuft der Timer 420U für unkorrigierte Fehler ab (z.B. Antwort im Abfrageblock 530 von
Nach dem Empfang des SI-Fehleraggregatorsignals (z. B. Block 582 von
Wie bereits mit Bezug zu
Damit die SI 110 den flüchtigen Speicher 126 mit den anderen Komponenten 160 des Fahrzeug-SoC 104 gemeinsam benutzen kann, wird ein separater dedizierter Speicherbereich (als „Carve-Out“ 250 bezeichnet) in dem flüchtigen Speicher 126 für die ausschließliche Verwendung durch die SI 110 geschaffen. Der Ausschnitt bzw. Carve-Out 250 kann für die Speicherverwaltungssoftware (z. B. die Rich-OS-Speicherverwaltungssoftware der Rich-OS-Speicherverwaltung), die vom Haupt-CPU-Komplex 120 ausgeführt wird (siehe
Die SI 110 weist einen Fehlererkennungsblock 272 auf, der Hardware aufweist, die zwischen anderen Komponenten der SI 110 und dem Carve-Out 250 angeordnet ist. So kann der Fehlererkennungsblock 272 als eine Komponente der flüchtigen Speicherschnittstelle 200A implementiert werden. Alternativ kann der Fehlererkennungsblock 272 auch zwischen dem Prozessor 140 und der Schnittstelle 200A für den flüchtigen Speicher angeordnet sein. Bei solchen Ausführungsformen können ein oder mehrere Signalleiter (z.B. ein Draht, eine Signalspur und dergleichen) den Fehlererkennungsblock 272 jeweils mit dem Prozessor 140 und der Schnittstelle 200A für flüchtigen Speicher verbinden.The
Die Hardware des Fehlererkennungsblocks 272 kann einen Codeerzeugungs-Unterblock 273 aufweisen (siehe
In der obigen Gleichung 1 stellt eine Variable „crc_outByte x“ den Fehlererkennungscode dar, der auf der Grundlage des Bytes, das durch eine Variable „Byte-Daten“ dargestellt wird, und der Datenadresse, die durch eine Variable „Byte-Addresse“ dargestellt wird, berechnet wird. In Gleichung 1 verwendet eine Funktion „CRC“ die Werte der Variablen „Byte-Daten“ und „Byte-Addresse“ als Eingaben und gibt den Wert der Variablen „crc_outByte x“ aus. Die Ausgabe der Funktion „CRC“ kann zumindest teilweise durch den Codeerzeugungs-Unterblock 273 (siehe
Nachdem der Fehlererkennungscode bestimmt wurde, bestimmt der Fehlererkennungsblock 272 (z. B. unter Verwendung eines Offsets) eine Codeadresse für den Fehlererkennungscode. Beispielsweise kann Gleichung 2 unten verwendet werden, um den Fehlererkennungscode für ein bestimmtes Byte der in den Carve-Out 250 zu schreibenden Daten zu bestimmen.
In der obigen Gleichung 2 stellt die Variable „crc_out_address“ die Codeadresse dar, die auf der Grundlage der Datenadresse des Bytes, die durch die Variable „Schreibadresse“ dargestellt wird, und eines Offsets, der durch die Variable „fixed_offset“ dargestellt wird, berechnet wird. Wie oben erwähnt, kann der Carve-Out 250 in Unterabschnitte unterteilt werden, wobei der erste Unterabschnitt 252 (siehe
Der Fehlererkennungsblock 272 führt eine Verzögerung (z. B. einige Taktzyklen) zwischen der Speicherung der Daten unter der/den Datenadresse(n) und der Speicherung des Fehlererkennungscodes unter der/den Codeadresse(n) ein. Diese Verzögerung verringert die Wahrscheinlichkeit, dass ein Ereignis (z. B. ein vorübergehendes Ereignis), das sich negativ auf die Daten auswirkt, sich auch negativ auf den Fehlererkennungscode auswirkt. Mit anderen Worten: Die Verzögerung trägt zur Immunität gegen Fehler allgemeiner Art und gegen vorübergehende Fehler bei, was wiederum einen Schutz vor Problemen wie Taktstörungen bietet. Der Fehlererkennungsblock 272 kann zwei oder mehr Datenbytes und die entsprechenden Fehlererkennungscodes puffern, bevor sie im Carve-Out 250 gespeichert werden. Dann kann der Fehlererkennungsblock 272 die Datenbytes (z. B. 16 Bytes) im ersten Unterabschnitt 252 speichern, gefolgt von der Verzögerung. Als nächstes kann der Fehlererkennungsblock 272 die entsprechenden Fehlererkennungscodes (z. B. 16 Bytes) im zweiten Unterabschnitt 254 speichern.The
Nun mit Bezug zu
Gemäß
Dann, in Block 706, bestimmt der Fehlererkennungsblock 272 einen Fehlererkennungscode für den in Block 704 ausgewählten Abschnitt der Daten (z.B. unter Verwendung von Gleichung 1 oben). Als nächstes leitet der Fehlererkennungsblock 272 in Block 708 die erste Schreibanweisung, die den in Block 704 ausgewählten Abschnitt der Daten und die entsprechende Datenadresse aufweist, an den ersten Unterabschnitt 252 (siehe
Im nächsten Block 710 bestimmt der Fehlererkennungsblock 272 (siehe
Anschließend bestimmt der Fehlererkennungsblock 272 (siehe
Wie oben erwähnt ist, kann der Fehlererkennungsblock 272 zwei oder mehr Bytes von Daten und ihre entsprechenden Fehlererkennungscodes puffern, bevor sie im Carve-Out 250 gespeichert werden. Beispielsweise können die Blöcke 706-714 jeweils für mehrere Datenblöcke durchgeführt werden (z. B. ausgewählt in Block 704). Als nicht einschränkendes Beispiel kann der Fehlererkennungsblock 272 den Block 706 für zwei oder mehr Datenbytes durchführen, bevor er die erste Schreibanweisung in Block 708 zusammen mit den Datenbytes und den entsprechenden Datenadressen an das Carve-Out 250 sendet. Beispielsweise kann der Fehlererkennungsblock 272 die Datenbytes zusammen mit einer ersten Datenadresse an den ersten Unterabschnitt 252 senden. Der erste Unterabschnitt 252 kann die Datenbytes in aufeinanderfolgende Speicheradressen schreiben, beginnend mit der ersten Datenadresse. Anschließend kann der Fehlererkennungsblock 272 in Block 710 Codeadressen für die zwei oder mehr in Block 706 ermittelten Fehlererkennungscodes bestimmen. In Block 712 führt der Fehlererkennungsblock 272 eine Verzögerung zwischen dem Schreiben der Datenbytes und dem Schreiben der Fehlererkennungscodes in den Carve-Out 250 ein. Anschließend leitet der Fehlererkennungsblock 272 in Block 714 die zweite Schreibanweisung, die die Fehlererkennungscodes und die Codeadressen einschließt, an den zweiten Unterabschnitt 254 weiter. Der zweite Unterabschnitt 254 schreibt die Fehlererkennungscodes in die Codeadressen. Je nach Implementierungsdetails kann die zweite Schreibanweisung nur eine erste Codeadresse aufweisen, und der zweite Unterabschnitt 254 kann die Fehlererkennungscodes in aufeinanderfolgende Speicheradressen schreiben, beginnend mit der ersten Codeadresse.As noted above,
Die Sicherheitsinselverbindung 808 liefert die erste Schreibanweisung 804 an den Fehlererkennungsblock 272 (z.B. Block 702 von
Als nächstes bestimmt der Codeerzeugungs-Unterblock 273 einen Fehlererkennungscode für jedes Byte der Daten (z. B. Block 706 von
Der Fehlererkennungsblock 272 sendet die Daten und die erste Datenadresse (z.B. in den Signalen 812-0 bis 812-15) über die Schnittstelle 200A des flüchtigen Speichers (siehe
Der erste Unterabschnitt 252 schreibt die Daten in den Speicher, indem er das erste Byte (in
Der erste (Daten-) Puffer 820 ordnet die im Antwortsignal 828 von dem Carve-Out 250 empfangenen „Datenschreibabschlussantworten“ neu. Beispielsweise kann der Fehlererkennungsblock 272 ein Paar von Schreibanweisungen A und B (z. B. in der ersten Schreibanweisung, die in Block 708 von
Der erste (Daten-) Puffer 820 leitet das Antwortsignal 828 an die Sicherheitsinselverbindung 808 weiter, die das Antwortsignal 828 an den Initiator 802 weiterleitet. Zu diesem Zeitpunkt wurden in diesem Beispiel die Daten (z. B. 16 Byte) in einem ersten einzelnen Schreibvorgang in den ersten Unterabschnitt 252 geschrieben.The first (data) buffer 820 forwards the response signal 828 to the security island connection 808, which forwards the response signal 828 to the initiator 802. At this point, in this example, the data (e.g., 16 bytes) has been written to the first subsection 252 in a first single write operation.
Der Fehlererkennungsblock 272 bestimmt auch eine erste Codeadresse auf der Grundlage der ersten Datenadresse (z. B. Block 710 von
Der Fehlererkennungsblock 272 wartet (z. B. Block 712 von
Der zweite Unterabschnitt 254 schreibt die Fehlererkennungscodes in den Speicher, indem er den ersten Fehlererkennungscode (in
Der zweite (Code-) Puffer 822 kann das Antwortsignal 838 verwerfen. Alternativ kann der zweite (Code-) Puffer 822 das Antwortsignal 838 an die Sicherheitsinselverbindung 808 weiterleiten kann, die das Antwortsignal 838 an den Initiator 802 weiterleiten kann. Zu diesem Zeitpunkt wurden in diesem Beispiel die Fehlererkennungscodes (z. B. 16 Byte) in einer zweiten einzelnen Schreiboperation in den zweiten Unterabschnitt 254 geschrieben.The second (code) buffer 822 can discard the response signal 838. Alternatively, the second (code) buffer 822 may forward the response signal 838 to the security island connection 808, which may forward the response signal 838 to the initiator 802. At this point, in this example, the error detection codes (e.g., 16 bytes) have been written to the second subsection 254 in a second single write operation.
Die Schnittstelle 200A des flüchtigen Speichers kann zwei parallele und optional dedizierte Schnittstellen aufweisen, die den Fehlererkennungsblock 272 mit dem flüchtigen Speicher 126 verbinden. Die Daten können über die erste Schnittstelle an die erste Datenadresse gesendet werden und der/die Fehlererkennungscode(s) kann/können über die zweite Schnittstelle an die erste Codeadresse gesendet werden. Bei solchen Ausführungsformen kann der Fehlererkennungsblock 272 die erste Schreibanweisung, die die Daten und die erste Datenadresse (z.B. im Signal 824) einschließt, über die erste Schnittstelle an den ersten Unterabschnitt 252 senden, während der Fehlererkennungsblock 272 gleichzeitig die zweite Schreibanweisung, die den/die Fehlererkennungscode(s) und die erste Codeadresse (z.B. in dem Signal 834) einschließt, über die zweite Schnittstelle an den zweiten Unterabschnitt 254 sendet. Darüber hinaus können das (Daten-) Antwortsignal 828 und das (Code-) Antwortsignal 838 gleichzeitig über die erste bzw. zweite Schnittstelle an den ersten und zweiten Puffer 820 bzw. 822 übertragen werden.The
Wenn der Initiator 802 (z. B. der Prozessor 140) der SI 110 die Daten aus dem Carve-Out 250 lesen möchte, empfängt die SI 110 sowohl die Daten als auch den/die Fehlererkennungscode(s) aus dem Carve-Out 250. Die SI 110 führt eine Verzögerung zwischen dem Lesen der Daten von der/den Datenadresse(n) und dem Lesen des/der Fehlererkennungscodes von der/den Codeadresse(n) ein. Diese Verzögerung verringert die Wahrscheinlichkeit, dass ein Ereignis, das sich negativ auf die Daten auswirkt, sich auch negativ auf den Fehlererkennungscode auswirkt. Die SI 110 leitet die gelesenen Daten durch den Fehlererkennungsblock 272, der einen Prüfcode für die gelesenen Daten bestimmt und den Fehlererkennungscode mit dem Prüfcode vergleicht. Dieser Vergleich kann durch die nachstehende Gleichung 3 dargestellt werden:
In Gleichung 3 zeigt ein Operator „==“ an, dass ein Ausdruck links von dem Operator „==“ gleich einem Ausdruck rechts von dem Operator „==“ ist. Eine Variable „abgerufene Daten“ steht für mindestens einen Abschnitt (z. B. Byte x) der in Block 906 erhaltenen Daten, eine Variable „angeforderte Adresse“ steht für die Datenadresse dieses Abschnitts der Daten, und eine Variable „CRC-Adresse“ steht für die auf der Grundlage der Datenadresse des Abschnitts (z. B. Byte x) der Daten bestimmte Codeadresse. Eine Funktion „CRC_gen“ verwendet die Werte der Variablen „abgerufene Daten“ und „angeforderte Adresse“ als Eingaben, und die Funktion „CRC_gen“ gibt den Prüfcode für den Abschnitt (z. B. Byte x) aus. Die Funktion „CRC_gen“ kann mit der Funktion „CRC“ der obigen Gleichung 1 identisch sein. Die Ausgabe der Funktion „CRC_gen“ kann zumindest teilweise durch den Codeerzeugungs-Unterblock 273 (siehe
Wie es hier beschrieben ist und mit Bezug zu
Dann, in Block 908, bestimmt der Fehlererkennungsblock 272 die Codeadresse(n) für den/die Fehlererkennungscode(s), der/die den Daten entspricht/entsprechen (z.B. unter Verwendung der obigen Gleichung 2). Als nicht einschränkendes Beispiel kann (können) die Codeadresse(n) zumindest teilweise auf der Grundlage der Datenadresse(n) bestimmt werden. Beispielsweise kann gemäß der obigen Gleichung 2 jede der Codeadresse(n) durch Addition des Offsets (des Wertes der Variablen „fixed_offset“) zu einer entsprechenden Datenadresse (dem Wert der Variablen „write_address“) berechnet werden. Je nach den Einzelheiten der Implementierung kann der Fehlererkennungsblock 272 nur eine erste Codeadresse auf der Grundlage der ersten Datenadresse ermitteln. Dann wartet der Fehlererkennungsblock 272 in Block 910 (z. B. einige Taktzyklen), um den/die Fehlererkennungscode(s) anzufordern, der/die an der/den in Block 908 bestimmten Codeadresse(n) gespeichert ist/sind. Daher führt der Fehlererkennungsblock 272 in Block 910 eine Verzögerung zwischen dem Lesen der Daten und dem Lesen des/der Fehlererkennungscodes von der/den Codeadresse(n) ein. Der Fehlererkennungsblock 272 kann einen Leseverzögerungs-Timer (nicht dargestellt) aufweisen, der verwendet wird, um zu bestimmen, wie lange der Fehlererkennungsblock 272 in Block 910 wartet. So kann der Fehlererkennungsblock 272 eine sechste vorbestimmte Zeitspanne warten, bevor er den/die Fehlererkennungscode(s) von dem zweiten Unterabschnitt 254 anfordert.Then, in block 908, the
Nach dem Warten sendet der Fehlererkennungsblock 272 im nächsten Block 912 eine zweite Leseanweisung an den zweiten Unterabschnitt 254, der die in Block 908 ermittelte(n) Codeadresse(n) aufweist und den/die an dieser/n Codeadresse(n) gespeicherten Fehlererkennungscode(s) anfordert. Um die Daten zu lesen, greift der Fehlererkennungsblock 272 also zweimal auf den Carve-Out 250 zu, jeweils einmal in dem Block 904 und 912. Wenn die zweite Leseanweisung nur die erste Codeadresse aufweist, kann der zweite Unterabschnitt 254 eine vorbestimmte Anzahl von Fehlererkennungscodes (z. B. 16 Bytes) aus aufeinanderfolgenden Speicheradressen, beginnend mit der ersten Codeadresse, lesen. In Block 914 empfängt der Fehlererkennungsblock 272 den/die an der/den Codeadresse(n) gespeicherten Fehlererkennungscode(s) von dem zweiten Unterabschnitt 254. In Block 916 bestimmt der Fehlererkennungsblock 272 einen Prüfcode für jeden der in Block 914 erhaltenen Fehlererkennungscodes (z. B. unter Verwendung der obigen Gleichung 1).After waiting, in the
Im Entscheidungsblock 918 bestimmt der Fehlererkennungsblock 272 für jeden der Fehlererkennungscodes, ob der Fehlererkennungscode mit dem Prüfcode übereinstimmt, der mit dem Fehlererkennungscode korrespondiert (z. B. unter Verwendung der obigen Gleichung 3). Die Entscheidung in dem Entscheidungsblock 918 lautet „JA“, wenn der Fehlererkennungscode mit dem entsprechenden Prüfcode übereinstimmt. Andernfalls ist die Entscheidung in dem Entscheidungsblock 918 „NEIN“. Wenn die Entscheidung in dem Entscheidungsblock 918 „JA“ lautet, leitet der Fehlererkennungsblock 272 im Block 920 die mit dem Fehlererkennungscode korrespondierende Daten an den Initiator 802 weiter (siehe
Der Fehlererkennungsblock 272 kann zwei oder mehr Bytes von Daten und ihre entsprechenden Fehlererkennungscodes aus dem Carve-Out 250 auf einmal lesen. Beispielsweise können die Blöcke 904-914 jeweils für mehrere Datenblöcke durchgeführt werden. Als nicht einschränkendes Beispiel kann der Fehlererkennungsblock 272 in Block 904 die erste Leseanweisung an den ersten Unterabschnitt 252 senden und zwei oder mehr Datenbytes von einer ersten Datenadresse anfordern. Der erste Unterabschnitt 252 kann die Datenbytes von aufeinanderfolgenden Speicheradressen, beginnend mit der ersten Datenadresse, lesen und die Datenbytes an den Fehlererkennungsblock 272 senden, die der Fehlererkennungsblock 272 in Block 906 empfängt. Anschließend kann der Fehlererkennungsblock 272 in Block 908 die Codeadresse(n) auf der Grundlage der Datenadresse(n) bestimmen. Abhängig von den Implementierungsdetails kann der Fehlererkennungsblock 272 nur eine erste Codeadresse auf der Grundlage der ersten Datenadresse ermitteln. Dann, in Block 910, führt der Fehlererkennungsblock 272 eine Verzögerung zwischen dem Lesen der Datenbytes und dem Lesen der Fehlererkennungscodes aus dem Carve-Out 250 ein. Als nächstes kann der Fehlererkennungsblock 272 die in dem Carve-Out 250 gespeicherten Fehlererkennungscodes für die in Block 906 erhaltenen Datenbytes anfordern. Zum Beispiel kann der Fehlererkennungsblock 272 die erste Codeadresse an den zweiten Unterabschnitt 254 senden. Der zweite Unterabschnitt 254 kann die Fehlererkennungscodes von aufeinanderfolgenden Speicheradressen, beginnend mit der ersten Codeadresse, lesen und die Fehlererkennungscodes an den Fehlererkennungsblock 272 senden, die der Fehlererkennungsblock 272 in Block 914 empfängt. Dann wird das Verfahren 900 mit Block 916 fortgesetzt.The
Der Fehlererkennungsblock 272 sendet die erste Datenadresse über die Schnittstelle 200A des flüchtigen Speichers (siehe
Der erste Unterabschnitt 252 liest die Daten aus dem Speicher, beginnend mit dem ersten Byte („Byte 0“) an der ersten Datenadresse, und liest die nachfolgenden Bytes von Datenadressen, die der ersten Datenadresse nachfolgen. Die SI 110 kann Daten mit einer vorgegebenen Größe (z. B. 16 Byte) aus dem Carve-Out 250 lesen. Anschließend sendet der erste Unterabschnitt 252 ein Antwortsignal 1012 an den Initiator 802, das die gelesenen Daten einschließt. Das Antwortsignal 1012 wird von dem ersten Unterabschnitt 252 an das Daten-Backbone- und Speicher-Subsystem 826 gesendet, das das Antwortsignal 1012 an die Schnittstelle 200A für den flüchtigen Speicher weiterleitet (siehe
Dann bestimmt der Fehlererkennungsblock 272 eine erste Codeadresse („Address_1“) auf der Grundlage der ersten Datenadresse (z.B. bei Block 908 von
Als nächstes wartet der Fehlererkennungsblock 272 (z. B. bei Block 910 von
Der zweite Unterabschnitt 254 liest die Fehlererkennungscodes aus dem Speicher, indem er den ersten Fehlererkennungscode (für „Byte 0“) an der ersten Codeadresse liest und die nachfolgenden Fehlererkennungscodes von den der ersten Codeadresse nachfolgenden Codeadressen liest. In dem Beispiel der
Wenn der Fehlererkennungsblock 272 wartet (z.B. bei Block 910 von
Wie oben erwähnt, kann der erste (Daten-) Puffer 820 die Bytes neu anordnen, da die Bytes in dem Antwortsignal 1012 möglicherweise nicht in der richtigen Reihenfolge sind. In ähnlicher Weise kann der zweite (Code-) Puffer 822 die Fehlererkennungscodes neu anordnen, wenn die Fehlererkennungscodes in dem Antwortsignal 1016 nicht in der richtigen Reihenfolge vorliegen. Der erste (Daten-) Puffer 820 gibt Signale 1022-0 bis 1022-15 aus, die jeweils eines der Datenbytes enthalten, und der zweite (Code-) Puffer 822 gibt Signale 1024-0 bis 1024-15 aus, die jeweils einen der Fehlererkennungscodes enthalten. Die Signale 1022-0 bis 1022-15 korrespondieren jeweils mit den Signalen 1024-0 bis 1024-15. Der erste und der zweite Puffer 820 und 822 kann die Signale 1022-0 bis 1022-15 bzw. 1024-0 bis 1024-15 weiterleiten oder neu anordnen, um jedes Datenbyte an einer bekannten Stelle in Bezug auf den für das Byte erzeugten Fehlererkennungscode zu positionieren. Bei der in
Dann bestimmt der Codeerzeugungs-Unterblock 273 (z. B. unter Verwendung der obigen Gleichung 1) einen Prüfcode für jedes der Datenbytes (z. B. bei Block 916 von
Für jeden der Fehlererkennungscodes bestimmt der Fehlererkennungsblock 272, ob der Fehlererkennungscode mit dem Prüfcode übereinstimmt, der mit dem Fehlererkennungscode korrespondiert (z. B. bei Entscheidungsblock 918 von
Wie bereits erwähnt, kann die Schnittstelle 200A des flüchtigen Speichers die beiden parallelen und optional dedizierten Schnittstellen aufweisen, die den Fehlererkennungsblock 272 mit dem flüchtigen Speicher 126 verbinden. Bei solchen Ausführungsformen kann der Fehlererkennungsblock 272 die erste Leseanweisung einschließlich der ersten Datenadresse (z.B. im Signal 1010) über die erste Schnittstelle an den ersten Unterabschnitt 252 senden, während der Fehlererkennungsblock 272 die zweite Leseanweisung einschließlich der ersten Codeadresse (z.B. im Signal 1014) über die zweite Schnittstelle an den zweiten Unterabschnitt 254 sendet. Darüber hinaus können die aus dem ersten Unterabschnitt 252 gelesenen Daten (und z.B. übertragen im Antwortsignal 1012) und der/die aus dem zweiten Unterabschnitt 254 gelesene(n) Fehlererkennungscode(s) (und z.B. übertragen im Antwortsignal 1016) gleichzeitig über die erste bzw. zweite Schnittstelle an den ersten und zweiten Puffer 820 bzw. 822 übertragen werden.As previously mentioned, the
Unter Bezugnahme auf
Während einer Schreiboperation kann der Eingangs-Timer 276 starten, wenn der Initiator 802 Daten an den Fehlererkennungsblock 272 übergibt, um in den Carve-Out 250 geschrieben zu werden (z. B. in Block 702 von
Während einer Leseoperation kann der Eingangs-Timer 276 beginnen, wenn der Fehlererkennungsblock 272 die Leseanforderung von dem Initiator 802 empfängt (z. B. in Block 902 von
Wie es oben erwähnt ist, kann der Eingangs-Timer 276 starten, wenn der Initiator 802 während einer Schreiboperation Daten an den Fehlererkennungsblock 272 weitergibt, um in den Carve-Out 250 geschrieben zu werden (z. B. in Block 702 von
Block 1124 zeigt an, dass der Codeerzeugungs-Unterblock 273 (siehe
Der Fehlerspeicher 1108 kann als Fehleraggregator fungieren, der die Fehler 1106, 1116 und 1126 zu einer Fehlermeldung 1130 aggregiert, die der Fehlerspeicher 1108 an den SI-Fehleraggregator 142 sendet.The
Wenn das Fahrzeug-SoC 104 zum ersten Mal hochfährt, kann der Prozessor 140 der SI 110 versuchen, Daten aus dem Carve-Out 250 vorabzurufen (pre-fetch). Ein Vorabruf kann als ein Typ eines nicht absichtlichen Lesens von Daten aus dem Carve-Out 250 gekennzeichnet sein. Da der gemeinsam genutzte flüchtige Speicher 126 flüchtig ist, kann der Carve-Out 250 zu diesem Zeitpunkt uninitialisierte Daten speichern, die keine Fehlererkennungscodes sind oder nicht übereinstimmenden Fehlererkennungscodes zugeordnet sind. Um zu verhindern, dass der Fehlererkennungsblock 272 Übereinstimmungsfehler erzeugt, kann die SI 110 (z. B. der Prozessor 140, die DMA-Engine 402 und/oder dergleichen) einen oder mehrere Fehlererkennungscodes in den Carve-Out 250 für die Daten schreiben, die der Prozessor 140 im Voraus abrufen wird oder könnte. Als nicht einschränkendes Beispiel kann die SI 110 initiale Daten in den Carve-Out 250 schreiben, was die Hardware des Fehlererkennungsblocks 272 veranlasst, einen oder mehrere Fehlererkennungscodes für die initialen Daten zu bestimmen, die jeweils mit einer Codeadresse verbunden sind. Dann kann die SI 110 den Carve-Out 250 veranlassen, jeden Fehlererkennungscode in seiner zugehörigen Codeadresse zu speichern. Somit entsprechen während einer Vorabruf- bzw. Pre-Fetching-Operation die im zweiten Unterabschnitt 254 gespeicherten Fehlererkennungscodes den im ersten Unterabschnitt 252 gespeicherten Daten, und der Fehlererkennungsblock 272 erzeugt keine Übereinstimmungsfehler.When the
Unter Bezugnahme auf
Es ist klar, dass diese und andere Anordnungen, die hier beschrieben sind, nur als Beispiele dargestellt werden. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Anordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Darüber hinaus handelt es sich bei vielen der hier beschriebenen Elemente um funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene Funktionen, wie es hier beschrieben ist, können durch Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der in einem Speicher gespeicherte Anweisungen ausführt.It is to be understood that these and other arrangements described herein are presented as examples only. Other arrangements and elements (e.g. machines, interfaces, functions, arrangements, groupings of functions, etc.) may be used in addition to or instead of those shown, and some elements may be omitted entirely. In addition, many of the elements described herein are functional units that may be implemented as individual or distributed components, or in conjunction with other components, and in any suitable combination and location. Various functions as described herein may be performed by hardware, firmware and/or software. For example, various functions can be performed by a processor executing instructions stored in memory.
BEISPIEL FÜR EIN AUTONOMES FAHRZEUGEXAMPLE OF AN AUTONOMOUS VEHICLE
Das Fahrzeug 1200 kann Komponenten wie ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z.B. 2, 4, 6, 8, 18, etc.), Reifen, Achsen und andere Komponenten eines Fahrzeugs aufweisen. Das Fahrzeug 1200 kann ein Antriebssystem 1250 aufweisen, wie z. B. einen Verbrennungsmotor, ein Hybrid-Elektrokraftwerk, einen reinen Elektromotor und/oder einen anderen Antriebssystemtyp. Das Antriebssystem 1250 kann mit einem Antriebsstrang des Fahrzeugs 1200 verbunden sein, der ein Getriebe umfassen kann, um den Antrieb des Fahrzeugs 1200 zu ermöglichen. Das Antriebssystem 1250 kann in Reaktion auf ein Empfangen von Signalen von der Drosselklappe/Beschleunigungsvorrichtung 1252 gesteuert werden.The
Ein Lenksystem 1254, das ein Lenkrad aufweisen kann, kann verwendet werden, um das Fahrzeug 1200 zu lenken (z. B. entlang eines gewünschten Weges oder einer Route), wenn das Antriebssystem 1250 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 1254 kann Signale von einem Lenkaktuator 1256 empfangen. Das Lenkrad kann optional für die vollständige Automatisierung (Stufe 5) eingesetzt werden.A
Das Bremssensorsystem 1246 kann verwendet werden, um die Fahrzeugbremsen als Reaktion auf ein Empfangen von Signalen von den Bremsaktuatoren 1248 und/oder Bremssensoren zu betätigen.The
Eine Steuerung (Steuerungen) 1236, die ein oder mehrere System-on-Chips (SoCs) 1204 (
Die Steuerung(en) 1236 kann (können) die Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1200 in Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangen werden. Die Sensordaten können zum Beispiel und ohne Einschränkung von (einem) Sensor(en) für globale Navigationssatellitensysteme 1258 (z. B. Global Positioning System-Sensor(en)), RADAR-Sensor(en) 1260, Ultraschallsensor(en) 1262, LIDAR-Sensor(en) 1264, Trägheitssensor(en) (inertial measurement unit (IMU) sensor(s)) 1266 (z. B., Beschleunigungsmesser, Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(en) 1296, Stereokamera(s) 1268, Weitwinkelkamera(s) 1270 (z. B., Fischaugenkameras), Infrarotkamera(s) 1272, Surround-Kamera(s) 1274 (z. B. 360-Grad-Kameras), Fern- und/oder Mittelbereichskamera(s) 1298, Geschwindigkeitssensor(en) 1244 (z. B. zur Messung der Geschwindigkeit des Fahrzeugs 1200), Vibrationssensor(en) 1242, Lenksensor(en) 1240, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 1246) und/oder anderen Sensortypen empfangen werden.The controller(s) 1236 may provide the signals to control one or more components and/or systems of the
Eine oder mehrere der Steuerungen 1236 können Eingaben (z. B. dargestellt durch Eingabedaten) von einem Kombiinstrument 1232 des Fahrzeugs 1200 empfangen und Ausgaben (z. B. dargestellt durch Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstelle (HMI)-Anzeige 1234, einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1200 bereitstellen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. die HD-Karte 1222 von
Das Fahrzeug 1200 umfasst ferner eine Netzschnittstelle 1224, die eine oder mehrere drahtlose Antenne(n) 1226 und/oder Modem(s) zur Kommunikation über ein oder mehrere Netze verwenden kann. Zum Beispiel kann die Netzschnittstelle 1224 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000, etc. zu kommunizieren. Die drahtlose(n) Antenne(n) 1226 kann (können) auch die Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeuge, mobile Geräte usw.) ermöglichen, wobei lokale Netze wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder Weitverkehrsnetze mit geringer Leistung (LPWANs) wie LoRaWAN, SigFox usw. verwendet werden.The
Wie oben erwähnt ist, kann bei mindestens einer Ausführungsform die Fahrzeugplattform 100 (siehe
Die Kameratypen für die Kameras können, sind aber nicht darauf beschränkt, Digitalkameras umfassen, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 1200 ausgelegt sein können. Die Kamera(s) kann/können gemäß ASIL (Automotive Safety Integrity Level) B und/oder einem anderen ASIL arbeiten. Die Kameratypen können in Abhängigkeit von der Ausführungsform jede beliebige Bildaufnahmerate erreichen, z. B. 60 Einzelbilder pro Sekunde („frames per second“, fps), 120 fps, 240 fps usw.. Die Kameras können Rolling Shutter, Global Shutter, einen anderen Verschlusstyp oder eine Kombination davon verwenden. In einigen Beispielen kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar-Farbfilteranordnung („red clear clear clear“, RCCC), eine Rot-Klar-Klar-Blau-Farbfilteranordnung („red clear clear blue“, RCCB), eine Rot-Blau-Grün-Klar-Farbfilteranordnung („red blue green clear“ RBGC), eine Foveon X3-Farbfilteranordnung, eine Bayer-Sensor-Farbfilteranordnung (RGGB), eine Monochromsensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung aufweisen. In einigen Ausführungsformen können zur Erhöhung der Lichtempfindlichkeit Klarpixelkameras, wie z. B. Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, verwendet werden.The camera types for the cameras may include, but are not limited to, digital cameras that may be designed for use with the components and/or systems of the
In einigen Beispielen können eine oder mehrere der Kamera(s) verwendet werden, um fortschrittliche Fahrerassistenzsystem („advanced driver assistance systems“, ADAS)-Funktionen auszuführen (z. B. als Teil eines redundanten oder ausfallsicheren Designs). So kann zum Beispiel eine Multifunktions-Monokamera installiert werden, die Funktionen bereitstellt, die einen Spurhalteassistenten, einen Verkehrszeichenassistenten und eine intelligente Scheinwerfersteuerung umfassen. Eine oder mehrere der Kamera(s) (z. B. alle Kameras) können gleichzeitig Bilddaten (z. B. Video) aufzeichnen und bereitstellen.In some examples, one or more of the cameras may be used to perform advanced driver assistance systems (ADAS) functions (e.g., as part of a redundant or fail-safe design). For example, a multi-function mono camera can be installed that provides functions that include lane departure warning, traffic sign assist and intelligent headlight control. One or more of the camera(s) (e.g. all cameras) can simultaneously record and provide image data (e.g. video).
Eine oder mehrere der Kameras können in einer Montageanordnung, wie z. B. einer kundenspezifisch entworfenen (3-D-gedruckten) Anordnung, montiert werden, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z. B. Reflexionen von dem Armaturenbrett, die in den Windschutzscheibenspiegeln reflektiert werden) auszuschalten, die die Bilddatenerfassungsfähigkeiten der Kamera beeinträchtigen können. Bei der Montage von Außenspiegeln können die Außenspiegel kundenspezifisch dreidimensional gedruckt werden, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen können die Kameras in den Außenspiegel integriert werden. Bei Seitenkameras können die Kameras auch in die vier Säulen an jeder Ecke der Fahrgastzelle integriert werden.One or more of the cameras can be in a mounting arrangement, such as. B. a custom-designed (3-D printed) assembly, to eliminate stray light and reflections from the vehicle interior (e.g. reflections from the dashboard reflected in the windshield mirrors) that can affect the camera's image data capture capabilities . When mounting exterior mirrors, the exterior mirrors can be customized three-dimensionally printed so that the camera mounting plate matches the shape of the exterior mirror. In some examples, the cameras can be integrated into the exterior mirror. For side cameras, the cameras can also be integrated into the four pillars at each corner of the passenger compartment.
Kameras mit einem Sichtfeld, das Abschnitte der Umgebung vor dem Fahrzeug 1200 einbezieht (z. B. nach vorne gerichtete Kameras), können für die Umgebungsansicht verwendet werden, um zu helfen, nach vorne gerichtete Pfade und Hindernisse zu identifizieren, sowie dazu beizutragen, mit Hilfe von einer oder mehreren Steuerungen 1236 und/oder Steuer-SoCs Informationen bereitzustellen, die für ein Erzeugen eines Belegungsgitters und/oder ein Bestimmen der bevorzugten Fahrzeugpfade entscheidend sind. Nach vorne gerichtete Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen als LIDAR auszuführen, einschließlich Notbremsung, Fußgängererfassung und Kollisionsvermeidung. Nach vorne gerichtete Kameras können auch für ADAS-Funktionen und -Systeme wie eine Warnung vor dem Verlassen der Fahrspur („Lane Departure Warnings“, LDW), eine autonome Geschwindigkeitsregelung („Autonomous Cruise Control“, ACC) und/oder andere Funktionen wie die Erkennung von Verkehrszeichen verwendet werden.Cameras with a field of view that includes portions of the environment in front of the vehicle 1200 (e.g., forward-facing cameras) may be used for environmental viewing to help identify and assist in identifying forward-facing paths and obstacles One or
Eine Vielzahl von Kameras kann in einer nach vorne gerichteten Konfiguration verwendet werden, z. B. eine monokulare Kameraplattform, die einen Farbbildwandler vom Typ CMOS (Complementary Metal Oxide Semiconductor) aufweist. Ein weiteres Beispiel sind eine oder mehrere Weitwinkelkameras 1270, die verwendet werden können, um Objekte zu erkennen, die von der Peripherie her in Sicht kommen (z. B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in
Eine oder mehrere Stereokameras 1268 können auch in einer nach vorne gerichteten Konfiguration enthalten sein. Die Stereokamera(s) 1268 kann (können) eine integrierte Steuereinheit enthalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (z.B. FPGA) und einen Multicore-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3-D-Karte der Fahrzeugumgebung zu erzeugen, einschließlich einer Abstandsschätzung für alle Punkte in dem Bild. Eine alternative Stereokamera(s) 1268 kann einen kompakten Stereosicht-Sensor bzw. kompakte Stereosicht-Sensoren umfassen, der bzw. die zwei Kameralinsen (je eine links und rechts) und einen Bildverarbeitungschip enthält bzw. enthalten, die die Entfernung zwischen dem Fahrzeug und dem Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) verwenden können, um die autonomen Notbrems- und Spurhaltewarnfunktionen zu aktivieren. Andere Arten von Stereokamera(s) 1268 können zusätzlich oder alternativ zu den hier beschriebenen verwendet werden.One or more
Kameras mit einem Sichtfeld, die Abschnitte der Umgebung seitlich des Fahrzeugs 1200 einbeziehen (z. B. Seitenkameras), können für eine Umgebungsansicht verwendet werden, die Informationen bereitstellen, die zur Erzeugung und Aktualisierung des Belegungsgitters sowie zur Erzeugung von Seitenaufprallwarnungen verwendet werden. Zum Beispiel kann (können) die Surround-Kamera(s) 1274 (z. B. vier Surround-Kameras 1274, wie in
Kameras mit einem Sichtfeld, die Abschnitte der Umgebung hinter dem Fahrzeug 1200 einschließen (z. B. Rückfahrkameras), können für eine Einparkhilfe, eine Umgebungsansicht, Heckkollisionswarnungen und ein Erzeugen und Aktualisieren des Belegungsgitters verwendet werden. Eine große Vielfalt von Kameras kann verwendet werden, einschließlich, aber nicht beschränkt auf Kameras, die auch als nach vorne gerichtete Kamera(s) geeignet sind (z. B. Fernbereichs- und/oder Mittelbereichskamera(s) 1298, Stereokamera(s) 1268, Infrarotkamera(s) 1272, usw.), wie hier beschrieben.Cameras with a field of view that include portions of the environment behind the vehicle 1200 (e.g., rearview cameras) may be used for parking assistance, an environmental view, rear collision warnings, and generating and updating the occupancy grid. A wide variety of cameras may be used, including, but not limited to, cameras that also function as front-facing camera(s) (e.g., long-range and/or mid-range camera(s) 1298, stereo camera(s) 1268 , infrared camera(s) 1272, etc.) as described here.
Alle Komponenten, Merkmale und Systeme des Fahrzeugs 1200 in
Obwohl der Bus 1202 hier als CAN-Bus beschrieben wird, ist dies nicht als Einschränkung zu verstehen. Beispielsweise können zusätzlich oder alternativ zu dem CAN-Bus auch FlexRay und/oder Ethernet verwendet werden. Obwohl eine einzelne Leitung verwendet wird, um den Bus 1202 darzustellen, ist dies nicht als Einschränkung zu verstehen. So kann es beispielsweise eine beliebige Anzahl von Bussen 1202 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Bustypen mit einem anderen Protokoll aufweisen können. In einigen Beispielen können zwei oder mehr Busse 1202 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder sie können zur Redundanz verwendet werden. So kann beispielsweise ein erster Bus 1202 für eine Kollisionsvermeidungsfunktion verwendet werden und ein zweiter Bus 1202 kann für eine Betätigungssteuerung verwendet werden. In einem beliebigen Beispiel kann jeder Bus 1202 mit einer beliebigen der Komponenten des Fahrzeugs 1200 kommunizieren, und zwei oder mehr Busse 1202 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jedes SoC 1204, jede Steuerung 1236 und/oder jeder Computer innerhalb des Fahrzeugs Zugang zu denselben Eingangsdaten haben (z. B. Eingaben von Sensoren des Fahrzeugs 1200) und kann mit einem gemeinsamen Bus, wie dem CAN-Bus, verbunden sein.Although
Das Fahrzeug 1200 kann eine oder mehrere Steuerungen 1236 enthalten, wie sie hier in Bezug auf
Das Fahrzeug 1200 kann ein oder mehrere System(e) auf einem Chip („System on Chip“, SoC) 1204 aufweisen. Das SoC 1204 kann CPU(s) 1206, GPU(s) 1208, Prozessor(en) 1210, Cache(s) 1212, Beschleuniger 1214, Datenspeicher 1216 und/oder andere nicht dargestellte Komponenten und Merkmale aufweisen. Das (die) SoC(s) 1204 kann (können) verwendet werden, um das Fahrzeug 1200 in einer Vielzahl von Plattformen und Systemen zu steuern. Zum Beispiel kann das SoC (bzw. die SoCs) 1204 in einem System (z. B. dem System des Fahrzeugs 1200) mit einer HD-Karte 1222 kombiniert werden, die Kartenauffrischungen und/oder Kartenaktualisierungen über eine Netzschnittstelle 1224 von einem oder mehreren Servern (z. B. Server(n) 1278 von
Die CPU(s) 1206 kann (können) einen CPU-Cluster oder CPU-Komplex (hier alternativ als „CCPLEX“ bezeichnet) umfassen. Die CPU(s) 1206 kann (können) mehrere Kerne und/oder L2-Caches enthalten. In einigen Ausführungsformen kann (können) die CPU(s) 1206 beispielsweise acht Kerne in einer kohärenten Multiprozessorkonfiguration umfassen. In einigen Ausführungsformen kann (können) die CPU(s) 1206 vier Dual-Core-Cluster umfassen, wobei jeder Cluster einen dedizierten L2-Cache aufweist (z. B. einen 2 MB L2-Cache). Die CPU(s) 1206 (z. B. der CCPLEX) kann (können) konfiguriert werden, um den gleichzeitigen Clusterbetrieb zu unterstützen, wodurch ermöglicht wird, dass eine beliebige Kombination von Clustern der CPU(s) 1206 zu einem bestimmten Zeitpunkt aktiv ist.The CPU(s) 1206 may include a CPU cluster or CPU complex (alternatively referred to herein as “CCPLEX”). The CPU(s) 1206 may contain multiple cores and/or L2 caches. For example, in some embodiments, CPU(s) 1206 may include eight cores in a coherent multiprocessor configuration. In some embodiments, the CPU(s) 1206 may include four dual-core clusters, each cluster having a dedicated L2 cache (e.g., a 2 MB L2 cache). The CPU(s) 1206 (e.g., the CCPLEX) may be configured to support concurrent cluster operation, allowing any combination of clusters of the CPU(s) 1206 to be active at any given time .
Die CPU(s) 1206 kann (können) Energieverwaltungsfunktionen implementieren, die eines oder mehrere der folgenden Merkmale aufweisen: einzelne Hardwareblöcke können automatisch taktbegrenzt werden, wenn sie sich im Leerlauf befinden, um dynamische Energie zu sparen; jeder Kerntakt kann begrenzt werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen nicht aktiv Befehle ausführt; jeder Kern kann unabhängig strombegrenzt sein; jeder Kerncluster kann unabhängig taktbegrenzt sein, wenn alle Kerne taktbegrenzt oder strombegrenzt sind; und/oder jeder Kerncluster kann unabhängig strombegrenzt sein, wenn alle Kerne strombegrenzt sind. Die CPU(s) 1206 kann (können) darüber hinaus einen erweiterten Algorithmus zur Verwaltung von Energiezuständen implementieren, bei dem zulässige Energiezustände und erwartete Aufwachzeiten festgelegt werden und die Hardware/der Mikrocode den besten Energiezustand bestimmt, der für den Kern, den Cluster und CCPLEX einzunehmen ist. Die Prozessorkerne können vereinfachte Sequenzen für den Eintritt in den Energiezustand in Software unterstützen, wobei die Arbeit an den Mikrocode ausgelagert wird.The CPU(s) 1206 may implement power management functions that include one or more of the following features: individual hardware blocks may be automatically clock limited when idle to conserve dynamic power; each core clock can be limited when the core is not actively executing instructions due to the execution of WFI/WFE instructions; each core can be independently current limited; each core cluster can be independently clock limited if all cores are clock limited or power limited; and/or each core cluster may be independently power limited if all cores are power limited. The CPU(s) 1206 may also implement an advanced power state management algorithm in which allowable power states and expected wake-up times are set and the hardware/microcode determines the best power state to use for the core, cluster, and CCPLEX is to be taken. The processor cores can support simplified power state entry sequences in software, offloading the work to microcode.
Die GPU(s) 1208 kann (können) eine integrierte GPU (hier alternativ als „iGPU“ bezeichnet) umfassen. Die GPU(s) 1208 kann (können) programmierbar und für parallele Arbeitslasten effizient sein. Die GPU(s) 1208 kann (können) in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die GPU(s) 1208 kann (können) einen oder mehrere Streaming-Mikroprozessoren enthalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z. B. einen L1-Cache mit mindestens 96 KB Speicherkapazität) enthalten kann und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache (z. B. einen L2-Cache mit 512 KB Speicherkapazität) teilen können. In einigen Ausführungsformen kann (können) die GPU(s) 1208 mindestens acht Streaming-Mikroprozessoren umfassen. Die GPU(s) 1208 kann (können) Computer-basierte Anwendungsprogrammierschnittstelle(n) („Application Programming Interface(s)“, API(s)) für Berechnungen verwenden. Darüber hinaus kann (können) die GPU(s) 1208 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.The GPU(s) 1208 may include an integrated GPU (alternatively referred to herein as an “iGPU”). The GPU(s) 1208 may be programmable and efficient for parallel workloads. The GPU(s) 1208 may use an extended Tensor instruction set in some examples. The GPU(s) 1208 may include one or more streaming microprocessors, where each streaming microprocessor may include an L1 cache (e.g., an L1 cache with at least 96 KB of storage capacity) and two or more of the streaming -Microprocessors can share an L2 cache (e.g. an L2 cache with 512 KB of memory capacity). In some embodiments, the GPU(s) 1208 may include at least eight streaming microprocessors. The GPU(s) 1208 may use computer-based application programming interface(s) for calculations. Additionally, the GPU(s) 1208 may use one or more parallel computing platforms and/or programming models (e.g., NVIDIA's CUDA).
Die GPU(s) 1208 kann (können) für die beste Leistung in automobilen und eingebetteten Anwendungsfällen energieoptimiert sein. Beispielsweise kann (können) die GPU(s) 1208 auf einem Fin-Feldeffekttransistor (FinFET) hergestellt werden. Dies ist jedoch nicht als Einschränkung zu verstehen, und die GPU(s) 1208 kann (können) auch mit anderen Halbleiterfertigungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von in mehrere Blöcke unterteilten gemischt-präzisen Rechenkernen enthalten. So können beispielsweise 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke unterteilt werden, ohne darauf beschränkt zu sein. In einem solchen Beispiel können jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR COREs mit gemischter Präzision für Deep-Learning-Matrixarithmetik, ein LO-Befehlscache, ein Warp-Scheduler, eine Dispatch-Einheit und/oder eine 64-KB-Registerdatei zugewiesen werden. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkommadatenpfade enthalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnungen und Adressierungsberechnungen bereitzustellen. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Planungsfähigkeit aufweisen, um eine feingranulare Synchronisierung und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Datencache und eine gemeinsam genutzte Speichereinheit enthalten, um die Leistung zu verbessern und gleichzeitig das Programmieren zu vereinfachen.The GPU(s) 1208 may be power optimized for best performance in automotive and embedded use cases. For example, the GPU(s) 1208 may be fabricated on a Fin Field Effect Transistor (FinFET). However, this should not be construed as a limitation, and the GPU(s) 1208 may also be manufactured using other semiconductor manufacturing methods. Each streaming microprocessor can contain a number of mixed-precision computing cores divided into several blocks. For example, 64 PF32 cores and 32 PF64 cores can be divided into four processing blocks, but are not limited to this. In such an example, each processing block can have 16 FP32 cores, 8 FP64 cores, 16 INT32 cores, two mixed precision NVIDIA TENSOR COREs for deep learning matrix arithmetic, an LO instruction cache, a warp scheduler, a dispatch unit and/or a 64 KB register file can be assigned. Additionally, the streaming microprocessors can include independent parallel integer and floating point data paths to provide efficient execution of workloads with a mix of computations and addressing computations. The streaming microprocessors can have independent thread scheduling capability to enable fine-grained synchronization and collaboration between parallel threads. The streaming microprocessors can include a combined L1 data cache and shared memory unit to improve performance while simplifying programming.
Die GPU(s) 1208 kann (können) einen Speicher mit hoher Bandbreite („High Bandwidth Memory“, HBM) und/oder ein 16-GB-HBM2-Speicher-Subsystem umfassen, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (SGRAM) verwendet werden, z. B. ein synchroner Grafik-Doppeldatenraten-Direktzugriffsspeicher vom Typ 5 (GDDR5).The GPU(s) 1208 may include High Bandwidth Memory (HBM) and/or a 16 GB HBM2 memory subsystem to provide, in some examples, a peak memory bandwidth of approximately 900 GB/ Second to provide. In some examples In addition or as an alternative to the HBM memory, a synchronous graphics random access memory (SGRAM) can be used, e.g. B. a synchronous graphics dual data rate random access memory type 5 (GDDR5).
Die GPU(s) 1208 kann (können) eine Unified-Memory-Technologie mit Zugriffszählern enthalten, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz von Speicherbereichen verbessert wird, die von den Prozessoren gemeinsam genutzt werden. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (ATS) verwendet werden, um der/den GPU(s) 1208 zu ermöglichen, direkt auf die Seitentabellen der CPU(s) 1206 zuzugreifen. In solchen Beispielen kann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 1208 einen Fehler feststellt, eine Adressübersetzungsanforderung an die CPU(s) 1206 übertragen werden. Als Reaktion darauf kann (können) die CPU(s) 1206 in ihren Seitentabellen nach der virtuell-physikalischen Abbildung für die Adresse suchen und die Übersetzung an die GPU(s) 1208 zurückübertragen. Als solches kann die Unified-Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 1206 als auch der GPU(s) 1208 ermöglichen, wodurch die Programmierung der GPU(s) 1208 und die Portierung von Anwendungen auf die GPU(s) 1208 vereinfacht wird.The GPU(s) 1208 may include unified memory technology with access counters to enable more accurate migration of memory pages to the processor that accesses them most frequently, thereby improving the efficiency of memory areas used by the Processors are shared. In some examples, Address Translation Services (ATS) support may be used to enable GPU(s) 1208 to directly access the page tables of CPU(s) 1206. In such examples, if the memory management unit (MMU) of the GPU(s) 1208 detects an error, an address translation request may be transmitted to the CPU(s) 1206. In response, the CPU(s) 1206 may look up the virtual physical mapping for the address in its page tables and transmit the translation back to the GPU(s) 1208. As such, unified memory technology may enable a single unified virtual address space for the memory of both CPU(s) 1206 and GPU(s) 1208, thereby facilitating programming of GPU(s) 1208 and porting of applications to the GPU(s) 1208 is simplified.
Darüber hinaus kann die GPU(s) 1208 einen Zugriffszähler enthalten, der die Zugriffshäufigkeit der GPU(s) 1208 auf den Speicher anderer Prozessoren nachverfolgen kann. Der Zugriffszähler kann dazu beitragen, dass Speicherseiten in den physischen Speicher von dem Prozessor verschoben werden, der am häufigsten auf die Seiten zugreift.Additionally, the GPU(s) 1208 may include an access counter that may track the frequency of accesses of the GPU(s) 1208 to the memory of other processors. The access counter can help move memory pages into physical memory by the processor that accesses the pages most frequently.
Das (die) SoC(s) 1204 kann (können) eine beliebige Anzahl von Cache(s) 1212 enthalten, einschließlich der hier beschriebenen. Der (die) Cache(s) 1212 kann (können) beispielsweise einen L3-Cache enthalten, der sowohl der (den) CPU(s) 1206 als auch der (den) GPU(s) 1208 zur Verfügung steht (z. B. der sowohl mit der (den) CPU(s) 1206 als auch mit der (den) GPU(s) 1208 verbunden ist). Der (die) Cache(s) 1212 kann (können) einen Rückschreib-Cache umfassen, der die Zustände von Zeilen nachverfolgen kann, z. B. durch Verwenden eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI, usw.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr aufweisen, obwohl auch kleinere Cache-Größen verwendet werden können.The SoC(s) 1204 may include any number of cache(s) 1212, including those described herein. For example, cache(s) 1212 may include an L3 cache that is available to both CPU(s) 1206 and GPU(s) 1208 (e.g., which is connected to both the CPU(s) 1206 and the GPU(s) 1208). The cache(s) 1212 may include a write-back cache that can track the states of lines, e.g. B. by using a cache coherence protocol (e.g. MEI, MESI, MSI, etc.). The L3 cache can be 4 MB or larger depending on the embodiment, although smaller cache sizes can also be used.
Das (die) SoC(s) 1204 kann (können) eine arithmetische Logikeinheit(en) (ALU(s)) enthalten, die beim Durchführen einer Verarbeitung in Bezug auf eine beliebige Vielfalt von Aufgaben oder Operationen des Fahrzeugs 1200 - wie die Verarbeitung von DNNs - wirksam eingesetzt werden kann. Darüber hinaus kann (können) das (die) SoC(s) 1204 eine Gleitkommaeinheit(en) (FPU(s)) - oder andere mathematische Koprozessoren oder numerische Koprozessortypen - zum Durchführen mathematischer Operationen innerhalb des Systems aufweisen. Zum Beispiel kann (können) das (die) SoC(s) 504 eine oder mehrere FPUs enthalten, die als Ausführungseinheiten in eine CPU(s) 1206 und/oder GPU(s) 1208 integriert sind.The SoC(s) 1204 may include an arithmetic logic unit(s) (ALU(s)) used in performing processing related to any variety of tasks or operations of the vehicle 1200 - such as processing DNNs - can be used effectively. Additionally, the SoC(s) 1204 may include a floating point unit(s) (FPU(s)) - or other mathematical coprocessors or numerical coprocessor types - for performing mathematical operations within the system. For example, the SoC(s) 504 may include one or more FPUs integrated as execution units into a CPU(s) 1206 and/or GPU(s) 1208.
Das (die) SoC(s) 1204 kann (können) einen oder mehrere Beschleuniger 1214 aufweisen (z. B. Hardwarebeschleuniger, Softwarebeschleuniger oder eine Kombination davon). Beispielsweise kann (können) das (die) SoC(s) 1204 einen Hardware-Beschleunigungs-Cluster aufweisen, der optimierte Hardware-Beschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große On-Chip-Speicher (z. B. 4 MB SRAM) kann den Hardware-Beschleunigungscluster in die Lage versetzen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. Der Hardware-Beschleunigungscluster kann zur Ergänzung der GPU(s) 1208 und zur Entlastung einiger Aufgaben der GPU(s) 1208 verwendet werden (z. B. um mehr Zyklen der GPU(s) 1208 für das Durchführen anderer Aufgaben freizugeben). Der (die) Beschleuniger 1214 kann (können) beispielsweise für gezielte Arbeitslasten (z. B. Wahrnehmung, faltende neuronale Netze („Convolutional Neural Networks“, CNNs) usw.) verwendet werden, die stabil genug sind, um beschleunigt werden zu können. Der Begriff „CNN“, wie er hier verwendet wird, kann alle Arten von CNNs einbeziehen, einschließlich regionenbasierter oder regionaler faltender neuronaler Netze (RCNNs) und schneller RCNNs (z. B. wie sie für die Objekterfassung verwendet werden).The SoC(s) 1204 may include one or more accelerators 1214 (e.g., hardware accelerators, software accelerators, or a combination thereof). For example, the SoC(s) 1204 may include a hardware acceleration cluster, which may include optimized hardware accelerators and/or large on-chip memory. The large on-chip memory (e.g. 4MB SRAM) can enable the hardware acceleration cluster to accelerate neural networks and other calculations. The hardware acceleration cluster may be used to supplement the GPU(s) 1208 and to offload some tasks of the GPU(s) 1208 (e.g., freeing more cycles of the GPU(s) 1208 to perform other tasks). For example, the accelerator(s) 1214 may be used for targeted workloads (e.g., perception, convolutional neural networks (CNNs), etc.) that are stable enough to be accelerated. The term “CNN” as used herein can include all types of CNNs, including region-based or regional convolutional neural networks (RCNNs) and fast RCNNs (e.g., as used for object detection).
Der (die) Beschleuniger 1214 (z. B. der Hardware-Beschleunigungscluster) kann (können) einen Deep-Learning-Beschleuniger („Deep Learning Accelerator“, DLA) aufweisen. Der (die) DLA(s) kann (können) eine oder mehrere Tensor Processing Einheiten (TPUs) aufweisen, die konfiguriert sein können, um zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferencing bereitzustellen. Die TPUs können Beschleuniger sein, die konfiguriert und optimiert sind, um Bildverarbeitungsfunktionen auszuführen (z. B. für CNNs, RCNNs usw.). Der (die) DLA(s) kann (können) darüber hinaus für einen bestimmten Satz von neuronalen Netztypen und Fließkommaoperationen sowie für Inferencing optimiert sein. Das Design des (der) DLA(s) kann mehr Leistung pro Millimeter bereitstellen als eine Allzweck-GPU und übertrifft die Leistung einer CPU bei weitem. Die TPU(s) kann (können) mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z. B. INT8-, INT16- und FP16-Datentypen sowohl für Merkmale als auch für Gewichte unterstützt, sowie Postprozessorfunktionen.The accelerator(s) 1214 (e.g., the hardware acceleration cluster) may include a deep learning accelerator (DLA). The DLA(s) may include one or more Tensor Processing Units (TPUs), which may be configured to provide an additional ten trillion operations per second for deep learning applications and inferencing. The TPUs can be accelerators configured and optimized to perform image processing functions (e.g. for CNNs, RCNNs, etc.). The DLA(s) may also be optimized for a particular set of neural network types and floating point operations, as well as for inferencing. The design of the DLA(s) can deliver more performance per millimeter than a general-purpose GPU and far exceeds the performance of a CPU. The TPU(s) can perform multiple functions, including a single-instance convolution radio tion, which e.g. B. INT8, INT16 and FP16 data types supported for both features and weights, as well as post-processing functions.
Der (die) DLA(s) können schnell und effizient neuronale Netze, insbesondere CNNs, auf verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, darunter beispielsweise und ohne Einschränkung: ein CNN für eine Objektidentifizierung und -erfassung unter Verwendung von Daten von Kamerasensoren; ein CNN für eine Entfernungsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN für eine Notfallfahrzeugerkennung und -identifizierung und -erfassung unter Verwendung von Daten von Mikrofonen; ein CNN für eine Gesichtserkennung und eine Fahrzeugbesitzeridentifizierung unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevante Ereignisse.The DLA(s) can quickly and efficiently run neural networks, particularly CNNs, on processed or unprocessed data for a variety of functions including, for example and without limitation: a CNN for object identification and detection using data from camera sensors ; a CNN for distance estimation using data from camera sensors; a CNN for emergency vehicle detection and identification and capture using data from microphones; a CNN for facial recognition and vehicle owner identification using data from camera sensors; and/or a CNN for security-related events.
Der (die) DLA(s) kann (können) jede Funktion der GPU(s) 1208 ausführen, und durch Verwenden eines Inferenzbeschleunigers kann ein Entwickler beispielsweise entweder den (die) DLA(s) oder die GPU(s) 1208 für eine beliebige Funktion einsetzen. Zum Beispiel kann der Entwickler die Verarbeitung von CNNs und Gleitkommaoperationen auf den (die) DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 1208 und/oder anderen Beschleuniger(n) 1214 überlassen.The DLA(s) can perform any function of the GPU(s) 1208, and by using an inference accelerator, for example, a developer can use either the DLA(s) or the GPU(s) 1208 for any one Use function. For example, the developer may concentrate the processing of CNNs and floating point operations on the DLA(s) and leave other functions to the GPU(s) 1208 and/or other accelerator(s) 1214.
Der (die) Beschleuniger 1214 (z. B. der Hardware-Beschleunigungscluster) kann (können) einen programmierbaren Bildverarbeitungsbeschleuniger (PVA) aufweisen, der hier alternativ auch als Computer-Vision-Beschleuniger bezeichnet werden kann. Der (die) PVA(s) kann (können) ausgelegt und konfiguriert sein, um Computer-Vision-Algorithmen für fortschrittliche Fahrerassistenzsysteme (ADAS), autonomes Fahren und/oder Augmented-Reality- (AR) und/oder Virtual-Reality-(VR) Anwendungen zu beschleunigen. Der (die) PVA(s) können ein Gleichgewicht zwischen Leistung und Flexibilität bieten. Zum Beispiel kann jeder PVA zum Beispiel und ohne Einschränkung eine beliebige Anzahl von Rechenkernen mit reduziertem Befehlssatz (RISC), direkten Speicherzugriff (DMA) und/oder eine beliebige Anzahl von Vektorprozessoren aufweisen.The accelerator(s) 1214 (e.g., the hardware acceleration cluster) may include a programmable vision accelerator (PVA), which may alternatively be referred to herein as a computer vision accelerator. The PVA(s) may be designed and configured to implement computer vision algorithms for advanced driver assistance systems (ADAS), autonomous driving and/or augmented reality (AR) and/or virtual reality ( VR) to accelerate applications. The PVA(s) can provide a balance between performance and flexibility. For example, each PVA may include, for example and without limitation, any number of reduced instruction set computing (RISC), direct memory access (DMA), and/or any number of vector processors.
Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer der hier beschriebenen Kameras), Bildsignalprozessoren und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher aufweisen. Die RISC-Kerne können je nach Ausführungsform eine beliebige Anzahl von Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (RTOS) ausführen. Die RISC-Kerne können mit einem oder mehreren integrierten Schaltkreisvorrichtungen, anwendungsspezifischen integrierten Schaltkreisvorrichtungen (ASICs) und/oder Speichervorrichtungen implementiert werden. Zum Beispiel können die RISC-Kerne einen Befehls-Cache und/oder einen eng gekoppelten RAM enthalten.The RISC cores may interact with image sensors (e.g., the image sensors of one of the cameras described herein), image signal processors, and/or the like. Each of the RISC cores can have any amount of memory. The RISC cores can use any number of protocols depending on the embodiment. In some examples, the RISC cores may run a real-time operating system (RTOS). The RISC cores may be implemented with one or more integrated circuit devices, application specific integrated circuit devices (ASICs), and/or memory devices. For example, the RISC cores may include an instruction cache and/or tightly coupled RAM.
Der DMA kann es Komponenten des (der) PVA(s) ermöglichen, unabhängig von der (den) CPU(s) 1206 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Funktionen unterstützen, die verwendet werden, um den PVA zu optimieren, einschließlich, aber nicht beschränkt auf, die Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontales Block-Stepping, vertikales Block-Stepping und/oder Tiefen-Stepping aufweisen können.The DMA may enable components of the PVA(s) to access system memory independently of the CPU(s) 1206. The DMA may support any number of functions used to optimize the PVA, including, but not limited to, support for multidimensional addressing and/or circular addressing. In some examples, the DMA may support up to six or more dimensions of addressing, which may include block width, block height, block depth, horizontal block stepping, vertical block stepping, and/or depth stepping.
Die Vektorprozessoren können programmierbare Prozessoren sein, die ausgelegt sein können, um die Programmierung für Computer-Vision-Algorithmen effizient und flexibel auszuführen und Signalverarbeitungsmöglichkeiten bereitzustellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen aufweisen. Der PVA-Kern kann ein Prozessor-Subsystem, DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripheriegeräte aufweisen. Das Vektorverarbeitungs-Teilsystem kann als die primäre Verarbeitungseinheit des PVA arbeiten und kann eine Vektorverarbeitungseinheit (VPU), einen Befehlscache und/oder einen Vektorspeicher (z. B. VMEM) aufweisen. Ein VPU-Kern kann einen digitalen Signalprozessor aufweisen, z. B. einen digitalen Signalprozessor mit einem einzelnen Befehl für mehrere Daten („Single Instruction, Multiple Data“, SIMD) und sehr langen Befehlsworten („Very Long Instruction Word“, VLlW). Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.The vector processors may be programmable processors that may be designed to efficiently and flexibly execute programming for computer vision algorithms and to provide signal processing capabilities. In some examples, the PVA may include a PVA core and two vector processing subsystem partitions. The PVA core may include a processor subsystem, DMA engine(s) (e.g. two DMA engines), and/or other peripherals. The vector processing subsystem may operate as the primary processing unit of the PVA and may include a vector processing unit (VPU), an instruction cache, and/or a vector memory (e.g., VMEM). A VPU core may include a digital signal processor, e.g. B. a digital signal processor with a single instruction for multiple data (“Single Instruction, Multiple Data”, SIMD) and very long instruction words (“Very Long Instruction Word”, VLlW). The combination of SIMD and VLIW can increase throughput and speed.
Jeder der Vektorprozessoren kann einen Befehls-Cache aufweisen und mit einem dedizierten Speicher verbunden sein. Als Ergebnis kann in einigen Beispielen jeder der Vektorprozessoren konfiguriert sein, unabhängig von den anderen Vektorprozessoren zu arbeiten. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA enthalten sind, konfiguriert sein, um Datenparallelität zu verwenden. Zum Beispiel kann in einigen Ausführungsformen die Vielzahl von Vektorprozessoren, die in einem einzelnen PVA enthalten sind, den gleichen Computer-Vision-Algorithmus ausführen, aber auf verschiedenen Regionen eines Bildes. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA enthalten sind, gleichzeitig verschiedene Computer-Vision-Algorithmen auf demselben Bild ausführen oder sogar verschiedene Algorithmen auf aufeinanderfolgenden Bildern oder Abschnitten eines Bildes ausführen. Unter anderem kann eine beliebige Anzahl von PVAs in dem Hardware-Beschleunigungscluster vorhanden sein und eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs enthalten sein. Zusätzlich kann (können) der (die) PVA(s) einen zusätzlichen Fehlerkorrekturcode („Error Correcting Code“, ECC) Speicher aufweisen, um die Sicherheit des Gesamtsystems zu erhöhen.Each of the vector processors may have an instruction cache and be connected to dedicated memory. As a result, in some examples, each of the vector processors may be configured to operate independently of the other vector processors. In other examples, the vector processors included in a particular PVA may be configured to use data parallelism. For example, in some embodiments, the plurality of vector processors included in a single PVA may execute the same computer vision algorithm but on different regions of an image. In other examples, the vector processors included in a given PVA can simultaneously run different computer vision algorithms on the same image, or even different ones Run algorithms on consecutive images or sections of an image. Among other things, any number of PVAs may be present in the hardware acceleration cluster and any number of vector processors may be included in each of the PVAs. In addition, the PVA(s) may have an additional error correcting code (ECC) memory to increase the security of the overall system.
Der (die) Beschleuniger 1214 (z. B. der Hardware-Beschleunigungscluster) kann (können) ein Computer-Vision-Netz auf einem Chip und SRAM aufweisen, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den (die) Beschleuniger 1214 bereitzustellen. In einigen Beispielen kann der Speicher auf dem Chip mindestens 4 MB SRAM aufweisen, der beispielsweise und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, die sowohl für den PVA als auch für den DLA zugreifbar sein können. Jedes Paar von Speicherblöcken kann eine erweiterte Peripheriebus-Schnittstelle („Advanced Peripheral Bus“, APB), Konfigurationsschaltungen, eine Steuerung und einen Multiplexer aufweisen. Jede Art von Speicher kann verwendet werden. Der PVA und der DLA können auf den Speicher über ein Backbone zugreifen, das dem PVA und dem DLA einen Hochgeschwindigkeitszugriff auf den Speicher bereitstellt. Der Backbone kann ein Computer-Vision-Netz auf einem Chip aufweisen, das den PVA und den DLA mit dem Speicher verbindet (z. B. unter Verwendung des APB).The accelerator(s) 1214 (e.g., hardware acceleration cluster) may include an on-chip computer vision network and SRAM to provide high-bandwidth, low-latency SRAM for the accelerator(s) 1214 . In some examples, the on-chip memory may include at least 4 MB of SRAM, consisting of, for example and without limitation, eight field-configurable memory blocks that may be accessible to both the PVA and the DLA. Each pair of memory blocks may include an Advanced Peripheral Bus (APB) interface, configuration circuitry, a controller, and a multiplexer. Any type of storage can be used. The PVA and the DLA can access the memory over a backbone that provides the PVA and the DLA with high-speed access to the memory. The backbone may include an on-chip computer vision network connecting the PVA and DLA to the memory (e.g. using the APB).
Das Computer-Vision-Netz auf dem Chip kann eine Schnittstelle aufweisen, die vor der Übertragung von beliebigen Steuersignalen/Adressen/Daten feststellt, dass sowohl der PVA als auch der DLA einsatzbereite und gültige Signale liefern. Eine solche Schnittstelle kann getrennte Phasen und getrennte Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für die kontinuierliche Datenübertragung vorsehen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, obwohl auch andere Normen und Protokolle verwendet werden können.The on-chip computer vision network may include an interface that determines that both the PVA and DLA are providing operational and valid signals before transmitting any control signals/addresses/data. Such an interface can provide separate phases and separate channels for the transmission of control signals/addresses/data as well as burst communication for continuous data transmission. This type of interface can conform to ISO 26262 or IEC 61508 standards, although other standards and protocols can also be used.
In einigen Beispielen kann (können) das (die) SoC(s) 1204 einen Echtzeit-Raytracing-Hardwarebeschleuniger aufweisen, wie er in der am 10. August 2018 eingereichten
Der (die) Beschleuniger 1214 (z. B. der Hardware-Beschleuniger-Cluster) hat (haben) eine breite Palette von Anwendungen für das autonome Fahren. Der PVA kann ein programmierbarer Bildverarbeitungs-Beschleuniger sein, der für wichtige Verarbeitungsstufen in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA eignen sich gut für algorithmische Bereiche, die eine vorhersehbare Verarbeitung bei geringer Leistung und geringer Latenz benötigen. Mit anderen Worten: Der PVA eignet sich gut für halbdichte oder dichte reguläre Berechnungen, selbst bei kleinen Datensätzen, die vorhersehbare Laufzeiten mit geringer Latenz und geringem Stromverbrauch erfordern. Somit sind die PVAs im Zusammenhang von Plattformen für autonome Fahrzeuge für die Ausführung klassischer Computer-Vision-Algorithmen ausgelegt, da sie bei einer Objekterfassung effizient sind und mit ganzzahliger Mathematik arbeiten.The accelerator(s) 1214 (e.g., the hardware accelerator cluster) has a wide range of applications for autonomous driving. The PVA can be a programmable image processing accelerator that can be used for key processing stages in ADAS and autonomous vehicles. PVA's capabilities are well suited to algorithmic domains that require predictable, low-power, low-latency processing. In other words, the PVA is well suited for semi-dense or dense regular computations, even on small datasets that require predictable runtimes with low latency and low power consumption. Thus, in the context of autonomous vehicle platforms, the PVAs are designed to execute classic computer vision algorithms because they are efficient at object detection and work with integer mathematics.
Zum Beispiel, gemäß einer Ausführungsform der Technologie, wird der PVA verwendet, um Computer-Stereo-Vision durchzuführen. Ein semi-globaler Matching-basierter Algorithmus kann in einigen Beispielen verwendet werden, obwohl dies nicht als Einschränkung gedacht ist. Viele Anwendungen für das autonome Fahren der Stufen 3 bis 5 erfordern eine Bewegungsabschätzung / einen Stereoabgleich während des Betriebs (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspur-Erfassung usw.). Der PVA kann eine Computer-Stereo-Vision-Funktion auf Eingaben von zwei monokularen Kameras ausführen.For example, according to one embodiment of the technology, the PVA is used to perform computer stereo vision. A semi-global matching-based algorithm may be used in some examples, although this is not intended as a limitation. Many Level 3 to 5 autonomous driving applications require on-the-fly motion estimation/stereo matching (e.g. structure from motion, pedestrian detection, lane detection, etc.). The PVA can perform a computer stereo vision function on inputs from two monocular cameras.
In einigen Beispielen kann der PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Zum Beispiel kann der PVA eingesetzt werden, um RADAR-Rohdaten (z.B. unter Verwendung einer schnellen 4D-FourierTransformation) zu verarbeiten, um ein verarbeitetes RADAR-Signal bereitzustellen, bevor der nächste RADAR-Puls emittiert wird. In anderen Beispielen wird der PVA für die Flugzeittiefenverarbeitung verwendet, indem Flugzeitrohdaten verarbeitet werden, um z. B. verarbeitete Flugzeitdaten bereitzustellen.In some examples, the PVA can be used to perform dense optical flow. For example, the PVA can be used to process raw RADAR data (e.g. using a fast 4D Fourier transform) to provide a processed RADAR signal before the next RADAR pulse is emitted. In other examples, the PVA is used for time-of-flight depth processing by processing raw time-of-flight data to e.g. B. to provide processed flight time data.
Der DLA kann verwendet werden, um jede Art von Netz zu betreiben, um die Steuerung und die Fahrsicherheit zu verbessern, einschließlich beispielsweise eines neuronalen Netzes, das für jede Objekterfassung ein Maß für das Vertrauen ausgibt. Ein solcher Vertrauenswert kann als Wahrscheinlichkeit interpretiert werden oder als relatives „Gewicht“ für jede Erfassung im Vergleich zu anderen Erfassungen. Dieser Vertrauenswert ermöglicht es dem System, weitere Entscheidungen in Bezug darauf zu treffen, welche Erfassungen als echte positive Erfassungen und welche als falsch-positive Erfassungen betrachtet werden sollten. Zum Beispiel kann das System einen Schwellenwert für das Vertrauen festlegen und nur die Erfassungen, die diesen Schwellenwert überschreiten, als wahre positive Erfassungen betrachten. In einem automatischen Notbremssystem („Automatic Emergency Braking“, AEB) würden falsch positive Erfassungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was natürlich unerwünscht ist. Daher sollten nur die vertrauenswürdigsten Erfassungen als Auslöser für AEB in Betracht gezogen werden. Der DLA kann ein neuronales Netz zur Regression des Vertrauenswertes einsetzen. Das neuronale Netz kann als Eingabe zumindest eine Teilmenge von Parametern verwenden, wie z. B. Abmessungen eines Begrenzungsrahmens, eine (z. B. von einem anderen Teilsystem) erhaltene Schätzung der Bodenebene, eine Ausgabe eines Trägheitssensors (Inertial Measurement Unit, IMU) 1266, die mit der Ausrichtung des Fahrzeugs 1200 korreliert, eine Entfernung, eine Schätzung der 3D-Position des Objekts, die von dem neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 1264 oder RADAR-Sensor(en) 1260) erhalten wurde, und andere.The DLA can be used to power any type of network to improve control and driving safety, including, for example, a neural network designed for each Object detection provides a measure of trust. Such a confidence value can be interpreted as a probability, or as a relative “weight” for each detection compared to other detections. This confidence value allows the system to make further decisions regarding which detections should be considered true positive detections and which should be considered false positive detections. For example, the system may set a confidence threshold and only consider detections that exceed this threshold as true positive detections. In an Automatic Emergency Braking (AEB) system, false positive detections would cause the vehicle to automatically perform emergency braking, which is of course undesirable. Therefore, only the most trusted detections should be considered as triggers for AEB. The DLA can use a neural network to regression the trust value. The neural network can use as input at least a subset of parameters, such as: B. dimensions of a bounding box, an estimate of the ground plane obtained (e.g. from another subsystem), an output of an inertial measurement unit (IMU) 1266 that correlates with the orientation of the
Das (die) SoC(s) 1204 kann (können) einen oder mehrere Datenspeicher 1216 (z. B. einen Speicher) aufweisen. Der (die) Datenspeicher 1216 kann (können) ein On-Chip-Speicher des (der) SoC(s) 1204 sein, der (die) neuronale Netze speichern kann (können), die auf der GPU und/oder dem DLA ausgeführt werden. In einigen Beispielen kann die Kapazität des (der) Datenspeicher(s) 1216 groß genug sein, um mehrere Instanzen von neuronalen Netzen aus Gründen der Redundanz und Sicherheit zu speichern. Der (die) Datenspeicher 1212 kann (können) L2 oder L3 Cache(s) 1212 aufweisen. Ein Verweis auf den (die) Datenspeicher 1216 kann einen Verweis auf den Speicher aufweisen, der dem PVA, DLA und/oder anderen Beschleunigern 1214 zugeordnet ist, wie hierin beschrieben.The SoC(s) 1204 may include one or more data memories 1216 (e.g., memory). The data memory(s) 1216 may be on-chip memory of the SoC(s) 1204, which may store neural networks running on the GPU and/or the DLA . In some examples, the capacity of the data store(s) 1216 may be large enough to store multiple instances of neural networks for redundancy and security. The data store(s) 1212 may include L2 or L3 cache(s) 1212. A reference to the data memory(s) 1216 may include a reference to the memory associated with the PVA, DLA, and/or
Das (die) SoC(s) 1204 kann (können) einen oder mehrere Prozessor(en) 1210 (z.B. eingebettete Prozessoren) aufweisen. Der (die) Prozessor(en) 1210 kann (können) einen Boot- und Energieverwaltungsprozessor aufweisen, der ein dedizierter Prozessor und ein Subsystem sein kann, um die Boot-Energie- und Verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Boot- und Energieverwaltungsprozessor kann Teil einer Bootsequenz des (der) SoC(s) 1204 sein und kann Laufzeit-Energieverwaltungsdienste bereitstellen. Der Boot-Energie- und Verwaltungsprozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen in einen Zustand mit geringer Leistung, Verwaltung von Temperaturen und Temperatursensoren von SoC(s) 1204 und/oder Verwaltung von Energieversorgungszuständen der SoC(s) 1204 bereitstellen. Jeder Temperatursensor kann als ein Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das (die) SoC(s) 1204 kann (können) die Ringoszillatoren verwenden, um Temperaturen der CPU(s) 1206, GPU(s) 1208 und/oder Beschleuniger 1214 zu erfassen. Wenn festgestellt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Energieverwaltungsprozessor in eine Temperaturfehlerroutine eintreten und das (die) SoC(s) 1204 in einen Zustand mit geringerer Leistung versetzen und/oder das Fahrzeug 1200 in einen Chauffeur-zu-sicherem-Halt-Modus versetzen (z. B. das Fahrzeug 1200 zu einem sicheren Halt bringen).The SoC(s) 1204 may include one or more processor(s) 1210 (e.g., embedded processors). The processor(s) 1210 may include a boot and power management processor, which may be a dedicated processor and subsystem to handle the boot power and management functions and associated security enforcement. The boot and power management processor may be part of a boot sequence of the SoC(s) 1204 and may provide runtime power management services. The boot power and management processor may provide clock and voltage programming, support for system transitions to a low power state, management of temperatures and temperature sensors of SoC(s) 1204, and/or management of power states of SoC(s) 1204. Each temperature sensor may be implemented as a ring oscillator whose output frequency is proportional to temperature, and the SoC(s) 1204 may use the ring oscillators to determine temperatures of the CPU(s) 1206, GPU(s) 1208 and/or or
Der (die) Prozessor(en) 1210 kann (können) ferner einen Satz eingebetteter Prozessoren aufweisen, die als Audioverarbeitungsmaschine dienen können. Die Audioverarbeitungsmaschine kann ein Audio-Subsystem sein, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen und eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungsmaschine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.The processor(s) 1210 may further include a set of embedded processors that may serve as an audio processing engine. The audio processing engine may be an audio subsystem that enables full hardware support for multi-channel audio across multiple interfaces and a wide and flexible range of audio I/O interfaces. In some examples, the audio processing engine is a dedicated processor core with a digital signal processor with dedicated RAM.
Der (die) Prozessor(en) 1210 kann (können) außerdem eine „immer eingeschaltet“-Prozessor-Maschine aufweisen, die die notwendigen Hardware-Funktionen bereitstellt, um ein Sensormanagement mit geringem Stromverbrauch und Aufwach-Anwendungsfälle zu unterstützen. Die „immer eingeschaltet“-Prozessor-Maschine kann einen Prozessorkern, ein eng gekoppeltes RAM, unterstützende Peripheriegeräte (z. B. Timer und Interrupt-Steuerung), verschiedene E/A-Steuerungs-Peripheriegeräte und Routing-Logik aufweisen.The processor(s) 1210 may also include an “always on” processor engine that provides the necessary hardware functions to support low power sensor management and wake-up use cases. The always-on processor machine may include a processor core, tightly coupled RAM, supporting peripherals (e.g., timers and interrupt control), various I/O control peripherals, and routing logic.
Der (die) Prozessor(en) 1210 kann (können) außerdem eine Sicherheits-Cluster-Maschine aufweisen, die ein dediziertes Prozessor-Subsystem für das Sicherheitsmanagement von Automobilanwendungen aufweist. Die Sicherheits-Cluster-Maschine kann zwei oder mehr Prozessorkerne, ein eng gekoppeltes RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber, eine Interrupt-Steuerung usw.) und/oder Routing-Logik aufweisen. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als ein einziger Kern mit einer Vergleichslogik funktionieren, um etwaige Unterschiede zwischen ihren Operationen zu erfassen.The processor(s) 1210 may also include a security cluster machine that has a dedicated processor subsystem for security management of automotive applications. The security cluster machine may include two or more processor cores, tightly coupled RAM, supporting peripherals (e.g., timers, an interrupt controller, etc.), and/or routing logic. In a security mode, the two or more cores can operate in a lockstep mode and function as a single core with comparison logic to to capture any differences between their operations.
Der (die) Prozessor(en) 1210 kann (können) ferner eine Echtzeit-Kamera-Maschine aufweisen, die ein dediziertes Prozessor-Subsystem zur Handhabung des Echtzeit-Kameramanagements aufweisen kann.The processor(s) 1210 may further include a real-time camera engine, which may include a dedicated processor subsystem to handle real-time camera management.
Der (die) Prozessor(en) 1210 kann (können) ferner einen Signalprozessor mit hohem Dynamikbereich aufweisen, der einen Bildsignalprozessor aufweisen kann, der eine Hardware-Maschine ist, die Teil der Kameraverarbeitungspipeline ist.The processor(s) 1210 may further include a high dynamic range signal processor, which may include an image signal processor, which is a hardware engine that is part of the camera processing pipeline.
Der (die) Prozessor(en) 1210 kann (können) einen Videobildkompositor aufweisen, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Videonachverarbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Abspielfenster zu erzeugen. Der Videobildkompositor kann eine Linsenverzerrungskorrektur an der (den) Weitwinkelkamera(s) 1270, der (den) Surround-Kamera(s) 1274 und/oder an den Sensoren der Überwachungskamera in der Fahrgastzelle vornehmen. Der Überwachungskamerasensor in der Fahrgastzelle wird vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des erweiterten SoC läuft, das ausgelegt ist, Ereignisse in der Fahrgastzelle zu erkennen und entsprechend zu reagieren. Ein System in der Fahrgastzelle kann ein Lippenlesen durchführen, um einen Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Fahrzeugfahrtziel zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachgesteuertes Surfen im Internet zu ermöglichen. Bestimmte Funktionen sind dem Fahrer nur verfügbar, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.The processor(s) 1210 may include a video image compositor, which may be a processing block (e.g., implemented on a microprocessor) that implements video post-processing functions required by a video playback application to produce the final image for the Create playback window. The video image compositor may perform lens distortion correction on the wide-angle camera(s) 1270, the surround camera(s) 1274, and/or on the in-vehicle surveillance camera sensors. The surveillance camera sensor in the passenger compartment is preferably monitored by a neural network running on another instance of the advanced SoC, which is designed to detect events in the passenger compartment and respond accordingly. A system in the passenger compartment can perform lip reading to activate cellular service and make a call, dictate email, change the vehicle's destination, activate or change the vehicle's infotainment system and settings, or provide voice-controlled Internet surfing make possible. Certain features are only available to the driver when the vehicle is operating in an autonomous mode and are disabled otherwise.
Der Videobildkompositor kann eine verbesserte zeitliche Rauschunterdrückung sowohl für räumliche als auch für zeitliche Rauschunterdrückung aufweisen. Wenn beispielsweise Bewegungen in einem Video auftreten, gewichtet die Rauschunterdrückung die räumlichen Informationen entsprechend und verringert das Gewicht der von benachbarten Einzelbildern gelieferten Informationen. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung aufweist, kann die vom Videobildkompositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.The video image compositor may have improved temporal noise reduction for both spatial and temporal noise reduction. For example, when motion occurs in a video, noise reduction weights the spatial information accordingly and reduces the weight of the information provided by neighboring frames. When an image or part of an image has no motion, temporal noise reduction performed by the video image compositor can use information from the previous image to reduce noise in the current image.
Der Videobildkompositor kann auch konfiguriert sein, um eine Stereorektifizierung an eingegebenen Stereo-Einzelbildern durchzuführen. Der Videobildkompositor kann ferner für die Gestaltung der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems in Gebrauch ist und die GPU(s) 1208 nicht benötigt werden, um ständig neue Oberflächen zu rendern. Selbst wenn der (die) Grafikprozessor(en) 1208 eingeschaltet und aktiv ein 3D-Rendering ausführt(en), kann der Videobildkompositor verwendet werden, um den (die) Grafikprozessor(en) 1208 zu entlasten, um die Leistung und Reaktionsfähigkeit zu verbessern.The video image compositor may also be configured to perform stereo rectification on input stereo frames. The video image compositor can also be used for user interface design when the operating system desktop is in use and the GPU(s) 1208 are not needed to continually render new interfaces. Even when the graphics processor(s) 1208 is turned on and actively performing 3D rendering, the video image compositor can be used to offload the graphics processor(s) 1208 to improve performance and responsiveness.
Das (die) SoC(s) 1204 kann (können) ferner eine serielle mobile Industrieprozessorschnittstelle („Mobile Industry Processor Interface“, MIPI)-Kameraschnittstelle für den Empfang von Video und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock aufweisen, die/der für Kamera- und verwandte Pixeleingabefunktionen verwendet werden kann. Das (die) SoC(s) 1204 kann (können) ferner eine Eingabe/Ausgabe-Steuerung(en) aufweisen, die durch Software gesteuert werden kann (können) und für den Empfang von E/A-Signalen verwendet werden kann (können), die nicht an eine bestimmte Rolle gebunden sind.The SoC(s) 1204 may further include a Mobile Industry Processor Interface (MIPI) serial camera interface for receiving video and input from cameras, a high speed interface, and/or a video input block /which can be used for camera and related pixel input functions. The SoC(s) 1204 may further include an input/output controller(s) that may be controlled by software and may be used to receive I/O signals. , which are not tied to a specific role.
Das (die) SoC(s) 1204 kann (können) weiterhin eine breite Palette von Peripherieschnittstellen aufweisen, um die Kommunikation mit Peripheriegeräten, Audiocodecs, Energieverwaltung und/oder anderen Geräten zu ermöglichen. Das (die) SoC(s) 1204 kann (können) verwendet werden, um Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z. B. LIDAR-Sensor(en) 1264, RADAR-Sensor(en) 1260 usw., die über Ethernet verbunden sein können), Daten vom Bus 1202 (z. B. Geschwindigkeit des Fahrzeugs 1200, Lenkradposition usw.), Daten von GNSS-Sensor(en) 1258 (z. B. verbunden über Ethernet oder CAN-Bus) zu verarbeiten. Das (die) SoC(s) 1204 kann (können) ferner dedizierte Hochleistungs-Massenspeichersteuerungen aufweisen, die ihre eigenen DMA-Maschinen aufweisen können und die verwendet werden können, um die CPU(s) 1206 von routinemäßigen Datenverwaltungsaufgaben zu entlasten.The SoC(s) 1204 may further include a wide range of peripheral interfaces to enable communication with peripherals, audio codecs, power management, and/or other devices. The SoC(s) 1204 may be used to transmit data from cameras (e.g. connected via Gigabit Multimedia Serial Link and Ethernet), sensors (e.g. LIDAR sensor(s) 1264, RADAR -sensor(s) 1260, etc., which may be connected via Ethernet), data from bus 1202 (e.g. speed of
Das (die) SoC(s) 1204 kann (können) eine Ende zu Ende Plattform mit einer flexiblen Architektur sein, die die Automatisierungsebenen 3-5 überspannt und dadurch eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer Vision und ADAS-Techniken für Diversität und Redundanz nutzt, eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack zusammen mit Werkzeugen für Deep Learning bereitstellt und diese effizient einsetzt. Das (die) SoC(s) 1204 kann (können) schneller, zuverlässiger und sogar energie- und platzsparender sein als herkömmliche Systeme. Zum Beispiel kann (können) der (die) Beschleuniger 1214, wenn er (sie) mit der (den) CPU(s) 1206, der (den) GPU(s) 1208 und dem (den) Datenspeicher(n) 1216 kombiniert wird (werden), eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bilden.The SoC(s) 1204 may be an end-to-end platform with a flexible architecture that spans automation levels 3-5, thereby providing a comprehensive functional safety architecture that incorporates computer vision and ADAS techniques for diversity and redundancy uses, provides a platform for a flexible, reliable driving software stack together with tools for deep learning and uses them efficiently. The SoC(s) 1204 can be faster, more reliable and even more energy and space efficient than traditional systems. For example, the accelerator(s) 1214, when connected to the CPU(s) 1206, may The GPU(s) 1208 and the data storage(s) 1216 are combined to form a fast, efficient platform for Level 3-5 autonomous vehicles.
Die Technologie bietet somit Möglichkeiten und Funktionen, die mit herkömmlichen Systemen nicht erreicht werden können. Zum Beispiel können Computer-Vision-Algorithmen auf CPUs ausgeführt werden, die unter Verwendung von High-Level-Programmiersprachen, wie der Programmiersprache C, konfiguriert werden können, um eine Vielzahl von Verarbeitungsalgorithmen für eine Vielzahl von visuellen Daten auszuführen. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Computer-Vision-Anwendungen zu erfüllen, z. B. in Bezug auf die Ausführungszeit und den Stromverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterfassungsalgorithmen in Echtzeit auszuführen, was eine Voraussetzung für ADAS-Anwendungen im Fahrzeug und eine Voraussetzung für praktische autonome Fahrzeuge der Stufe 3-5 ist.The technology therefore offers possibilities and functions that cannot be achieved with conventional systems. For example, computer vision algorithms can run on CPUs that can be configured using high-level programming languages, such as the C programming language, to execute a variety of processing algorithms on a variety of visual data. However, CPUs are often unable to meet the performance requirements of many computer vision applications, such as: B. in terms of execution time and power consumption. In particular, many CPUs are unable to execute complex object detection algorithms in real time, which is a requirement for in-vehicle ADAS applications and a requirement for practical Level 3-5 autonomous vehicles.
Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch Bereitstellen eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungs-Clusters, dass mehrere neuronale Netze gleichzeitig und/oder nacheinander ausgeführt und die Ergebnisse miteinander kombiniert werden können, um autonome Fahrfunktionen der Stufe 3-5 zu ermöglichen. Zum Beispiel kann ein CNN, das auf dem DLA oder der dGPU (z. B. die GPU(s) 1220) ausgeführt wird, eine Text- und Worterkennung aufweisen, die es dem Supercomputer ermöglicht, Verkehrsschilder zu lesen und zu verstehen, einschließlich Schilder, für die das neuronale Netz nicht speziell trainiert wurde. Der DLA kann ferner ein neuronales Netz aufweisen, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis dafür bereitzustellen und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Wegplanungsmodule weiterzugeben.Unlike traditional systems, the technology described here, by providing a CPU complex, a GPU complex and a hardware acceleration cluster, allows multiple neural networks to run simultaneously and/or sequentially and the results to be combined together to provide autonomous driving functions to enable levels 3-5. For example, a CNN running on the DLA or dGPU (e.g., GPU(s) 1220) may include text and word recognition that allows the supercomputer to read and understand traffic signs, including signs , for which the neural network has not been specifically trained. The DLA may further include a neural network capable of identifying, interpreting and providing a semantic understanding of the character and passing this semantic understanding to the path planning modules running on the CPU complex.
Als weiteres Beispiel können mehrere neuronale Netze gleichzeitig ausgeführt werden, wie es für das Fahren der Stufe 3, 4 oder 5 erforderlich ist. Zum Beispiel kann ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Eisglätte hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netz (z. B. einem neuronalen Netz, das trainiert wurde) als ein Verkehrsschild identifiziert werden, der Text „Blinkende Lichter deuten auf Eisglätte hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das der Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) mitteilt, dass, wenn blinkende Lichter erfasst werden, Eisglätte vorliegt. Das Blinklicht kann durch Betreiben eines dritten neuronalen Netzes über mehrere Einzelbilder identifiziert werden, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blinklichtern informiert. Alle drei neuronalen Netze können gleichzeitig laufen, z. B. innerhalb des DLA und/oder auf der (den) GPU(s) 1208.As another example, multiple neural networks may be running simultaneously as required for level 3, 4, or 5 driving. For example, a warning sign that reads “Caution: Flashing lights indicate slippery ice” along with an electric light can be interpreted independently or jointly by multiple neural networks. The sign itself can be identified as a traffic sign by a first deployed neural network (e.g. a neural network that has been trained), the text “Flashing lights indicate slippery ice” can be interpreted by a second deployed neural network tells the vehicle's path planning software (preferably running on the CPU complex) that if flashing lights are detected, there is slippery ice. The flashing light can be identified by operating a third neural network over multiple frames, which informs the vehicle's path planning software of the presence (or absence) of flashing lights. All three neural networks can run simultaneously, e.g. B. within the DLA and/or on the GPU(s) 1208.
In einigen Beispielen kann ein CNN für eine Gesichtserkennung und die Identifizierung eines Fahrzeugbesitzers Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1200 zu identifizieren. Die „immer eingeschaltete" Sensorverarbeitungsmaschine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn der Besitzer sich der Fahrertür nähert, und die Lichter einschalten, und, im Sicherheitsmodus, um das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise stellt (stellen) das (die) SoC(s) 1204 die Sicherheit gegen Diebstahl und/oder Fahrzeugentführung sicher.In some examples, a CNN for facial recognition and vehicle owner identification may use data from camera sensors to identify the presence of an authorized driver and/or owner of the
In einem anderen Beispiel kann ein CNN zur Erfassung und Identifizierung von Notfallfahrzeugen Daten von Mikrofonen 1296 verwenden, um Sirenen von Notfallfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren zur Erfassung von Sirenen und zur manuellen Extraktion von Merkmalen verwenden, nutzt (nutzen) das (die) SoC(s) 1204 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird der CNN, der auf dem DLA läuft, darauf trainiert, die relative Annäherungsgeschwindigkeit des Notfallfahrzeugs zu erkennen (z. B. durch Verwendung des Dopplereffekts). Das CNN kann auch trainiert werden, um Einsatzfahrzeuge zu identifizieren, die spezifisch für den lokalen Bereich sind, in dem das Fahrzeug betrieben wird, wie von GNSS-Sensor(en) 1258 identifiziert. So wird das CNN beispielsweise versuchen, in Europa europäische Sirenen zu erfassen, während es in den Vereinigten Staaten versuchen wird, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Notfallfahrzeug erfasst wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Notfallfahrzeuge auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug im Leerlauf laufen zu lassen, mit Hilfe von Ultraschallsensoren 1262, bis das (die) Notfallfahrzeug(e) vorbeigefahren ist (sind).In another example, an emergency vehicle detection and identification CNN may use data from
Das Fahrzeug kann eine CPU(s) 1218 (z.B. diskrete CPU(s) oder dCPU(s)) aufweisen, die über eine Hochgeschwindigkeitsverbindung (z.B. PCIe) mit dem (den) SoC(s) 1204 gekoppelt sein kann. Die CPU(s) 1218 kann (können) zum Beispiel einen X86-Prozessor aufweisen. Die CPU(s) 1218 kann (können) verwendet werden, um eine Vielzahl von Funktionen auszuführen, einschließlich eines Abstimmens potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem (den) SoC(s) 1204 und/oder eines Überwachens des Status und des Zustands der Steuerung(en) 1236 und/oder des Infotainment-SoC 1230, zum Beispiel.The vehicle may include a CPU(s) 1218 (e.g., discrete CPU(s) or dCPU(s)) that may be coupled to the SoC(s) 1204 via a high-speed connection (e.g., PCIe). The CPU(s) 1218 may include, for example, an X86 processor. The CPU(s) 1218 may be used to perform a variety of functions, including reconciling potentially inconsistent results between ADAS sensors and the SoC(s) 1204 and/or monitoring status and condition the controller(s) 1236 and/or the
Das Fahrzeug 1200 kann eine GPU(s) 1220 (z.B. diskrete GPU(s) oder dGPU(s)) aufweisen, die mit dem (den) SoC(s) 1204 über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) gekoppelt sein kann. Der (die) GPU(s) 1220 kann (können) zusätzliche künstliche Intelligenzfunktionalität bereitstellen, zum Beispiel durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netze, und kann (können) verwendet werden, um neuronale Netze auf der Grundlage einer Eingabe (z. B. Sensordaten) von Sensoren des Fahrzeugs 1200 zu trainieren und/oder zu aktualisieren.The
Das Fahrzeug 1200 kann ferner die Netzschnittstelle 1224 aufweisen, die eine oder mehrere drahtlose Antennen 1226 aufweisen kann (z.B. eine oder mehrere drahtlose Antennen für unterschiedliche Kommunikationsprotokolle, wie z.B. eine Mobilfunkantenne, eine Bluetooth-Antenne, usw.). Die Netzschnittstelle 1224 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z. B. mit dem (den) Server(n) 1278 und/oder anderen Netzvorrichtungen), mit anderen Fahrzeugen und/oder mit Recheneinrichtungen (z. B. Client-Vorrichtungen der Fahrgäste) zu ermöglichen. Um mit anderen Fahrzeugen zu kommunizieren, kann eine direkte Verbindung zwischen den beiden Fahrzeugen und/oder eine indirekte Verbindung hergestellt werden (z. B. über Netze und über das Internet). Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung hergestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 1200 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1200 bereitstellen (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 1200). Diese Funktion kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 1200 sein.The
Die Netzschnittstelle 1224 kann über ein SoC verfügen, das Modulation und Demodulation bietet und es der Steuerung 1236 ermöglicht, über drahtlose Netze zu kommunizieren. Die Netzschnittstelle 1224 kann ein Hochfrequenz-Front-End für die Up-Konvertierung von Basisband zu Hochfrequenz und Down-Konvertierung von Hochfrequenz zu Basisband enthalten. Die Frequenzumwandlungen können durch bekannte Prozesse und/oder durch Super-Heterodyn-Prozesse durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Frontend-Funktion durch einen separaten Chip bereitgestellt werden. Die Netzschnittstelle kann drahtlose Funktionen für die Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle umfassen.The
Das Fahrzeug 1200 kann außerdem Datenspeicher 1228 enthalten, die auch Off-Chip-Speicher (z. B. Off-the-SoC 1204) umfassen können. Die Datenspeicher 1228 können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Geräte, die mindestens ein Bit von Daten speichern können, umfassen.The
Das Fahrzeug 1200 kann außerdem einen oder mehrere GNSS-Sensoren 1258 (z.B. GPS- und/oder assistierte GPS-Sensoren) enthalten, um bei der Kartierung, Wahrnehmung, Generierung von Belegungsrastern und/oder der Wegplanung zu unterstützen. Es kann eine beliebige Anzahl von GNSS-Sensoren 1258 verwendet werden, einschließlich z. B. eines GPS-Geräts, das einen USB-Anschluss mit einer Ethernet-zu-Seriell-Brücke (RS-232) verwendet.The
Das Fahrzeug 1200 kann außerdem einen oder mehrere RADAR-Sensoren 1260 enthalten. Der RADAR-Sensor 1260 kann vom Fahrzeug 1200 für die Fernerkennung von Fahrzeugen verwendet werden, selbst bei Dunkelheit und/oder bei Unwetter. Die funktionalen Sicherheitsstufen des RADARs können ASIL B sein. Der RADAR-Sensor 1260 kann den CAN und/oder den Bus 1202 (z. B. zur Übertragung der vom RADAR-Sensor 1260 generierten Daten) zur Steuerung und zum Zugriff auf Daten zur Objektverfolgung verwenden, wobei in einigen Beispielen auf Ethernet zugegriffen werden kann, um auf Rohdaten zuzugreifen. Es können eine Vielzahl von RADAR-Sensortypen verwendet werden. Beispielsweise können die RADAR-Sensoren 1260 uneingeschränkt als Front-, Heck- und Seiten-RADAR verwendet werden. In einigen Beispielen werden Pulse-Doppler-RADAR-Sensoren verwendet.The
Die RADAR-Sensoren 1260 können verschiedene Konfigurationen umfassen, z. B. große Reichweite mit engem Sichtfeld, kurze Reichweite mit großem Sichtfeld, kurze Seitenabdeckung usw. In einigen Beispielen kann ein Langstrecken-RADAR für die adaptive Geschwindigkeitsregelung verwendet werden. Die Langstrecken-RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld, das durch zwei oder mehr unabhängige Scans, z. B. innerhalb einer Reichweite von 250 m, realisiert wird, bieten. Die RADAR-Sensoren 1260 können bei der Unterscheidung zwischen statischen und sich bewegenden Objekten helfen und von ADAS-Systemen zur Notbremsunterstützung und Kollisionswarnung verwendet werden. Langstrecken-RADAR-Sensoren für große Reichweiten können monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle umfassen. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlmuster erzeugen, das entwickelt wurde, um die Umgebung des Fahrzeugs 1200 bei höheren Geschwindigkeiten mit minimaler Beeinträchtigung durch den Verkehr in benachbarten Fahrbahnen aufzuzeichnen. Die anderen beiden Antennen können das Sichtfeld erweitern, wodurch es möglich ist, schnell Fahrzeuge zu erkennen, die in die Fahrbahn des Fahrzeugs 1200 fahren oder diese verlassen.The
RADAR-Systeme mit mittlerer Reichweite können beispielsweise eine Reichweite von bis zu 160 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 150 Grad (hinten) umfassen. RADAR-Systeme mit kurzer Reichweite können, ohne Einschränkung, RADAR-Sensoren umfassen, die an beiden Enden des hinteren Stoßfängers installiert werden können. Bei Installation an beiden Enden des hinteren Stoßfängers kann ein solches RADAR-Sensorsystem zwei Strahlen erzeugen, die den toten Winkel im Heck und neben dem Fahrzeug ständig überwachen.For example, medium-range RADAR systems can include a range of up to 160 m (front) or 80 m (rear) and a field of view of up to 42 degrees (front) or 150 degrees (rear). Short range RADAR systems may include, without limitation, RADAR sensors that may be installed at either end of the rear bumper. When installed at both ends of the rear bumper, such a RADAR sensor system can produce two beams that constantly monitor the blind spot in the rear and alongside the vehicle.
RADAR-Systeme mit kurzer Reichweite können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Fahrbahnwechselunterstützung verwendet werden.Short-range RADAR systems can be used in an ADAS system for blind spot detection and/or lane change assistance.
Das Fahrzeug 1200 kann außerdem Ultraschallsensoren 1262 enthalten. Die Ultraschallsensoren 1262, die sich vorne, hinten und/oder an den Seiten des Fahrzeugs 1200 befinden können, können zum Einparken und/oder zum Erstellen und Aktualisieren eines Belegungsrasters verwendet werden. Es können eine Vielzahl von Ultraschallsensoren 1262 und verschiedene Ultraschallsensoren 1262 für verschiedene Detektionsbereiche (z. B. 2,5 m, 4 m) verwendet werden. Die Ultraschallsensoren 1262 können mit der Funktionssicherheitsstufe ASIL B arbeiten.The
Das Fahrzeug 1200 kann LIDAR-Sensoren 1264 enthalten. Die LIDAR Sensoren 1264 können für die Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. Die LIDAR-Sensoren 1264 können die funktionale Sicherheitsstufe ASIL B erfüllen. In einigen Beispielen kann das Fahrzeug 1200 mehrere LIDAR-Sensoren 1264 (z. B. zwei, vier, sechs usw.) enthalten, die Ethernet verwenden können (z. B. zur Bereitstellung von Daten an einen Gigabit-Ethernet-Switch).The
In einigen Beispielen können die LIDAR-Sensoren 1264 eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitstellen. Im Handel erhältliche LIDAR-Sensoren 1264 können eine angekündigte Reichweite von etwa 1200 m, eine Genauigkeit von 2 cm bis 3 cm und beispielsweise eine Unterstützung für eine 100-Mbit/s-Ethernet-Verbindung aufweisen. In einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 1264 verwendet werden. In solchen Beispielen können die LIDAR-Sensoren 1264 als kleines Gerät implementiert werden, das in die Front-, Heck-, Seiten- und/oder Ecken des Fahrzeugs 1200 eingebettet werden kann. Die LIDAR-Sensoren 1264 können in solchen Beispielen ein bis zu 120 Grad horizontales und 35 Grad vertikales Sichtfeld mit einer Reichweite von 200 m bieten, selbst bei Objekten mit geringer Reflexion. Front-montierte LIDAR-Sensoren 1264 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert werden.In some examples, the
In einigen Beispielen können auch LIDAR-Technologien wie 3D-Flash-LIDAR verwendet werden. 3D-Flash-LIDAR nutzt einen Laserblitz als Übertragungsquelle, um die Fahrzeugumgebung bis zu ca. 200 m zu beleuchten. Eine LIDAR-Blitzeinheit enthält einen Rezeptor, der die Übertragungszeit des Laserpulses und das reflektierte Licht auf jedem Pixel erfasst, was wiederum dem Bereich vom Fahrzeug bis zu den Objekten entspricht. Flash LIDAR kann die Erzeugung hochgenauer und verzerrungsfreier Bilder der Umgebung mit jedem Laserblitz ermöglichen. In einigen Beispielen können vier LIDAR-Blitzsensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1200. Zu den verfügbaren 3D-Flash-LIDAR-Systemen gehört eine Solid-State-3D-Staring-Array-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z. B. ein nicht-scannendes LIDAR-Gerät). Das Flash-LIDAR-Gerät kann einen Laserpuls der Klasse I (augensicher) mit 5 Nanosekunden pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Punktwolken und mitregistrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR ein Festkörpergerät ohne bewegliche Teile ist, ist der LIDAR-Sensor 1264 möglicherweise weniger anfällig für Bewegungsunschärfen, Vibrationen und/oder Stöße.In some examples, LIDAR technologies such as 3D flash LIDAR may also be used. 3D flash LIDAR uses a laser flash as a transmission source to illuminate the vehicle surroundings up to approximately 200 m. A LIDAR flash unit contains a receptor that detects the transmission time of the laser pulse and the reflected light on each pixel, which in turn corresponds to the range from the vehicle to the objects. Flash LIDAR can enable the creation of highly accurate and distortion-free images of the environment with each laser flash. In some examples, four LIDAR lightning sensors may be deployed, one on each side of the
Das Fahrzeug kann außerdem IMU-Sensoren 1266 enthalten. Die IMU-Sensoren 1266 können sich in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 1200 befinden. Die IMU-Sensoren 1266 können z. B. einen oder mehrere Beschleunigungsmesser, Magnetometer, Gyroskope, magnetische Kompasse und/oder andere Sensortypen umfassen. In einigen Beispielen, wie z. B. in sechs-Achsen-Anwendungen, können die IMU-Sensoren 1266 Beschleunigungsmesser und Gyroskope enthalten, während in neun-Achsen-Anwendungen die IMU-Sensoren 1266 Beschleunigungsmesser, Gyroskope und Magnetometer umfassen können.The vehicle may also include
In einigen Ausführungsformen können die IMU-Sensoren 1266 als Miniatur-GPS-Aided Inertial Navigation System (GPS/INS) implementiert werden, das Inertialsensoren mikroelektromechanischer Systeme (micro-electro-mechanical systems - MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Abschätzungen von Position, Geschwindigkeit und Neigung zu liefern. In einigen Beispielen können die IMU-Sensoren 1266 es dem Fahrzeug 1200 ermöglichen, den Kurs ohne Eingabe eines Magnetsensors zu schätzen, indem die Geschwindigkeitsänderungen vom GPS direkt auf den IMU-Sensoren 1266 beobachtet und korreliert werden. In einigen Beispielen können IMU-Sensoren 1266 und GNSS-Sensoren 1258 in einer einzigen integrierten Einheit kombiniert werden.In some embodiments, the
Das Fahrzeug kann mit Mikrofonen 1296 ausgestattet sein, die in und/oder um das Fahrzeug 1200 platziert sind. Die Mikrofone 1296 können unter anderem zur Erkennung und Identifizierung von Rettungsfahrzeugen verwendet werden.The vehicle may be equipped with
Das Fahrzeug kann außerdem eine beliebige Anzahl von Kameratypen umfassen, einschließlich Stereokameras 1268, Weitwinkelkameras 1270, Infrarotkameras 1272, Surround-Kameras 1274, Fernbereichs- und Mittelbereichskameras 1298 und/oder andere Kameratypen. Mit den Kameras können Bilddaten rund um eine gesamte Peripherie des Fahrzeugs 1200 herum erfasst werden. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen für das Fahrzeug 1200 ab, und jede Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 1200 herum zu gewährleisten. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform variieren. Zum Beispiel kann das Fahrzeug sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras umfassen. Die Kameras können beispielsweise und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede Kamera wird in diesem Dokument in Bezug auf
Das Fahrzeug 1200 kann außerdem Vibrationssensoren 1242 enthalten. Die Vibrationssensoren 1242 können Vibrationen von Komponenten des Fahrzeugs, z.B. den Achsen, messen. Veränderungen der Vibrationen können beispielsweise auf eine Veränderung der Straßenbeläge hindeuten. In einem anderen Beispiel können bei Verwendung von zwei oder mehr Vibrationssensoren 1242 die Unterschiede zwischen den Vibrationen zur Bestimmung der Reibung oder des Schlupfes der Fahrbahnoberfläche verwendet werden (z. B. wenn der Vibrationsunterschied zwischen einer elektrisch angetriebenen und einer frei drehenden Achse besteht).The
Das Fahrzeug 1200 kann ein ADAS-System 1238 enthalten. Das ADAS-System 1238 kann in einigen Beispielen ein SoC enthalten. Das ADAS-System 1238 kann autonome/adaptive/automatische Geschwindigkeitsregelung (autonomous/adaptive/automatic cruise control - ACC), kooperative adaptive Geschwindigkeitsregelung (cooperative adaptive cruise control - CACC), Aufprallwarnung (forward crash warning - FCW), automatische Notbremsung (automatic emergency braking - AEB), Spurerkennungssystem (lane departure warning - LDW), Spurhalteassistent (lane keep assistent - LKA), Totwinkel-Warner (blind spot warning - BSW), Heckbereichswarnung (rear cross-traffic warning - RCTW), Kollisionswarnsysteme (collision warning system - CWS), Fahrbahnzentrierung (lane centering - LC) und/oder andere Merkmale und Funktionalitäten umfassen.The
Die ACC-Systeme können RADAR-Sensoren 1260, LIDAR-Sensoren 1264 und/oder Kameras verwenden. Die ACC-Systeme können longitudinales ACC und/oder laterales ACC umfassen. Das ACC in Längsrichtung überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 1200 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu den vorausfahrenden Fahrzeugen einzuhalten. Das laterale ACC führt die Distanzmessung durch und rät dem Fahrzeug 1200, bei Bedarf die Fahrbahn zu wechseln. Das laterale ACC steht in Zusammenhang mit anderen ADAS-Anwendungen wie LC und CWS.The ACC systems may use
CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzschnittstelle 1224 und/oder die drahtlosen Antenne(n) 1226 von anderen Fahrzeugen über eine Wireless-Verbindung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. Direkte Verbindungen können über eine V2V-Kommunikationsverbindung (Vehicle-to-Vehicle) bereitgestellt werden, während indirekte Verbindungen I2V-Kommunikationsverbindungen (Infrastructure-to-Vehicle) sein können. Das Kommunikationskonzept V2V informiert in der Regel über die unmittelbar vorausfahrenden Fahrzeuge (z. B. Fahrzeuge unmittelbar vor und auf derselben Fahrbahn wie das Fahrzeug 1200), während das Kommunikationskonzept 12V Informationen über den weiter vorausfahrenden Verkehr liefert. CACC-Systeme können eine oder beide 12V- und V2V-Informationsquellen enthalten. Angesichts der Informationen über die Fahrzeuge vor dem Fahrzeug 1200 könnte CACC zuverlässiger sein und das Potenzial haben, die Verkehrsströme zu verbessern und Staus auf der Straße zu reduzieren.CACC uses information from other vehicles that can be received via
FCW-Systeme wurden entwickelt, um den Fahrer auf eine Gefahr aufmerksam zu machen, damit der Fahrer Korrekturmaßnahmen ergreifen kann. FCW-Systeme verwenden eine nach vorne gerichtete Kamera und/oder RADAR-Sensoren 1260 gekoppelt an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, Lautsprecher und/oder einer vibrierenden Komponente. FCW-Systeme können eine Warnung ausgeben, z. B. in Form eines Schalls, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.FCW systems are designed to alert the driver to a hazard so the driver can take corrective action. FCW systems use a forward-facing camera and/or
AEB-Systeme erkennen einen drohenden Aufprall mit einem anderen Fahrzeug oder einem anderen Objekt und können die Bremsen automatisch betätigen, wenn der Fahrer innerhalb eines bestimmten Zeit- oder Entfernungsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können nach vorne gerichtete Kameras und/oder RADAR-Sensoren 1260 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt es den Fahrer normalerweise zuerst, Korrekturmaßnahmen zu ergreifen, um die Kollision zu vermeiden. Wenn der Fahrer keine Korrekturmaßnahmen ergreift, kann das AEB-System die Bremsen automatisch betätigen, um die Auswirkungen der vorhergesagten Kollision zu verhindern, oder zumindest zu mildern. AEB-Systeme können Techniken wie dynamische Bremsunterstützung und/oder Notbremsung umfassen.AEB systems detect an impending collision with another vehicle or object and can automatically apply the brakes if the driver does not take corrective action within a certain time or distance parameter. AEB systems may use forward-facing cameras and/or
LDW-Systeme bieten optische, akustische und/oder taktile Warnungen, wie z. B. Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 1200 die Fahrbahnmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer durch Aktivieren eines Blinksignals einen absichtlichen Fahrbahnwechsel anzeigt. LDW-Systeme können nach vorne gerichtete Kameras verwenden, gekoppelt an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, Lautsprecher und/oder einer vibrierenden Komponente.LDW systems provide visual, audible and/or tactile warnings, such as: B. Steering wheel or seat vibrations to alert the driver when the
LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme bieten Lenkeingaben oder Bremsen, um das Fahrzeug 1200 zu korrigieren, wenn das Fahrzeug 1200 die Fahrbahn verlässt.LKA systems are a variant of LDW systems. LKA systems provide steering inputs or braking to correct the
BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel eines Automobils. BSW-Systeme können einen visuellen, akustischen und/oder taktilen Alarm ausgeben, der darauf hinweist, dass das Zusammenführen oder Wechseln von Fahrbahnen unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker verwendet. BSW-Systeme können rückseitig ausgerichtete Kameras und/oder RADAR-Sensoren 1260 verwenden, gekoppelt mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit einem Fahrer-Feedback gekoppelt ist, z. B. einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.BSW systems detect and warn the driver of vehicles in an automobile's blind spot. BSW systems can provide a visual, audible and/or tactile alarm indicating that merging or changing lanes is unsafe. The system can provide an additional warning if the driver uses a turn signal. BSW systems may use rear-facing cameras and/or
RCTW-Systeme können visuelle, akustische und/oder taktile Benachrichtigungen liefern, wenn ein Objekt außerhalb des Bereichs der Rückfahrkamera erkannt wird, wenn das Fahrzeug 1200 rückwärtsfährt. Einige RCTW-Systeme verfügen über AEB, um sicherzustellen, dass die Bremsen des Fahrzeugs aktiviert werden, um einen Unfall zu vermeiden. RCTW-Systeme können eine oder mehrere nach hinten gerichtete RADAR-Sensoren 1260 verwenden, gekoppelt mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.RCTW systems can provide visual, audible and/or tactile notifications when an object is detected outside the range of the rearview camera when the
Herkömmliche ADAS-Systeme können zu falsch positiven Ergebnissen neigen, die für den Fahrer störend und ablenkend sein können, aber in der Regel nicht katastrophal sind, da die ADAS-Systeme den Fahrer alarmieren und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung tatsächlich vorliegt, und entsprechend zu handeln. Bei einem autonomen Fahrzeug 1200 muss das Fahrzeug 1200 selbst jedoch bei widersprüchlichen Ergebnissen entscheiden, ob das Ergebnis eines primären oder eines sekundären Computers (z. B. einer ersten Steuerung 1236 oder einer zweiten Steuerung 1236) berücksichtigt werden soll. In einigen Ausführungsformen kann das ADAS-System 1238 beispielsweise ein Backup- und/oder Sekundärcomputer sein, um Wahrnehmungsinformationen für ein Rationalitätsmodul des Backup-Computers bereitzustellen. Auf dem Monitor zur Rationalität des Backup-Computers kann eine redundante, vielfältige Software auf Hardwarekomponenten ausgeführt werden, um Wahrnehmungsfehler und dynamische Fahraufgaben zu erkennen. Ausgaben von dem ADAS-System 1238 können an eine übergeordnete MCU geliefert werden. Wenn Ausgaben von dem primären Computer und von dem sekundären Computer in Konflikt geraten, muss die übergeordnete MCU bestimmen, wie der Konflikt abgeglichen werden kann, um einen sicheren Betrieb zu gewährleisten.Traditional ADAS systems can be prone to false positives, which can be disruptive and distracting to the driver, but are usually not catastrophic because the ADAS systems alert the driver and allow the driver to decide whether a safety condition actually exists exists and to act accordingly. However, in the case of an
In einigen Beispielen kann der primäre Computer konfiguriert werden, um der übergeordneten MCU einen Konfidenzwert bereitzustellen, der die Konfidenz des primären Computers in das ausgewählte Ergebnis angibt. Wenn der Konfidenzwert einen Schwellenwert überschreitet, kann die übergeordnete MCU der Richtung des primären Computers folgen, unabhängig davon, ob der sekundäre Computer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn der Konfidenzwert den Schwellenwert nicht erreicht und der primäre und der sekundäre Computer unterschiedliche Ergebnisse (z. B. den Konflikt) anzeigen, kann die übergeordnete MCU zwischen den Computern entscheiden, um das geeignete Ergebnis zu ermitteln.In some examples, the primary computer may be configured to provide the parent MCU with a confidence value indicating the primary computer's confidence in the selected result. If the confidence value exceeds a threshold, the parent MCU can follow the direction of the primary computer regardless of whether the secondary Com computer produces a contradictory or inconsistent result. If the confidence value does not reach the threshold and the primary and secondary computers show different results (such as the conflict), the higher-level MCU can decide between the computers to determine the appropriate result.
Die übergeordnete MCU kann konfiguriert sein, um ein neuronales Netz laufen zu lassen, das ausgebildet und konfiguriert ist, um basierend auf den Ausgaben des primären Computers und des sekundären Computers Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme ausgibt. So können die neuronalen Netze in der übergeordneten MCU lernen, wann die Ausgabe des sekundären Computers vertrauenswürdig ist und wann nicht. Wenn es sich bei dem sekundären Computer beispielsweise um ein RADAR-basiertes FCW-System handelt, können neuronale Netze in der übergeordneten MCU erkennen, wann das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren darstellen, wie z. B. ein Drainagerost oder eine Schachtabdeckung, die einen Alarm auslöst. Wenn es sich bei dem sekundären Computer um ein kamerabasiertes LDW-System handelt, kann ein neuronales Netz in der übergeordneten MCU lernen, das LDW zu überschreiben, wenn Radfahrer oder Fußgänger anwesend sind und ein Fahrbahnwechsel tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein neuronales Netz enthalten, das auf der übergeordneten MCU ausgeführt wird, kann die übergeordnete MCU mindestens eine DLA oder GPU enthalten, die für den Betrieb des neuronalen Netzes mit dem zugehörigen Speicher geeignet ist. In bevorzugten Ausführungsformen kann die übergeordnete MCU als Bestandteil des SoCs 1204 enthalten und/oder einbezogen werden.The higher-level MCU may be configured to run a neural network trained and configured to determine conditions under which the secondary computer issues false alarms based on the outputs of the primary computer and the secondary computer. This allows the neural networks in the parent MCU to learn when the output of the secondary computer is trustworthy and when it is not. For example, if the secondary computer is a RADAR-based FCW system, neural networks in the parent MCU can detect when the FCW system identifies metallic objects that actually do not pose threats, such as: B. a drainage grate or a manhole cover that triggers an alarm. If the secondary computer is a camera-based LDW system, a neural network in the parent MCU can learn to override the LDW when cyclists or pedestrians are present and changing lanes is actually the safest maneuver. In embodiments that include a neural network running on the parent MCU, the parent MCU may include at least one DLA or GPU capable of operating the neural network with associated memory. In preferred embodiments, the higher-level MCU may be included and/or incorporated as part of the
In anderen Beispielen kann das ADAS-System 1238 einen sekundären Computer umfassen, der die ADAS-Funktionalität mithilfe herkömmlicher Regeln der Computervision ausführt. Daher kann der sekundäre Computer klassische Computervision-Regeln (wenn-dann) verwenden und das Vorhandensein eines neuronalen Netzes in der übergeordneten MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. Die vielfältige Implementierung und die absichtliche Nichtidentität beispielsweise machen das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch die Funktionalität der Software (oder Software-Hardware-Schnittstelle) verursacht werden. Wenn beispielsweise ein Softwarefehler oder Fehler in der Software auf dem primären Computer vorliegt und der nicht identische Softwarecode auf dem sekundären Computer das gleiche Gesamtergebnis liefert, kann die übergeordnete MCU mehr Vertrauen in das Gesamtergebnis haben und der Fehler in der Software oder Hardware, die von dem primären Computer verwendet wird, verursacht keinen erheblichen Fehler.In other examples, the
In einigen Beispielen kann die Ausgabe des ADAS-Systems 1238 in den Wahrnehmungs-Block des primären Computers und/oder den dynamischen Fahraufgaben-Block des primären Computers eingespeist werden. Wenn das ADAS-System 1238 beispielsweise eine Aufprallwarnung aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann der Wahrnehmungs-Block diese Informationen bei der Identifizierung von Objekten verwenden. In anderen Beispielen kann der sekundäre Computer über ein eigenes ausgebildetes neuronales Netz verfügen und so das Risiko von falsch-positiven Ergebnissen reduzieren, wie hier beschrieben.In some examples, the output of the
Das Fahrzeug 1200 kann außerdem das Infotainment-SoC 1230 (z. B. ein Fahrzeug-Infotainment-System (in-vehicle infotainment, IVI)) enthalten. Obwohl das Infotainment-System als SoC dargestellt und beschrieben wird, handelt es sich möglicherweise nicht um ein SoC und kann zwei oder mehr separate Komponenten enthalten. Das Infotainment-SoC 1230 kann eine Kombination aus Hardware und Software umfassen, die verwendet werden kann, um dem Fahrzeug 1200 Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming usw.), Telefon (z. B. Freisprechfunktion), Netzwerkkonnektivität (z. B. LTE, Wi-Fi, Usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Einparkhilfe hinten, ein Funkdatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremsflüssigkeitsstand, Ölstand, Tür auf/zu, Luftfilterinformationen usw.) bereitzustellen. Zum Beispiel kann das Infotainment-SoC 1230 Radios, CD-Player, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Lenkrad-Audiosteuerungen, Freisprech-Sprachsteuerung, ein Heads-Up-Display (HUD), ein HMI-Anzeige 1234, ein Telematikgerät, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder anderen Komponenten umfassen. Das Infotainment-SoC 1230 kann außerdem dazu verwendet werden, Informationen (z. B. visuell und/oder hörbar) für Benutzer des Fahrzeugs bereitzustellen, z. B. Informationen aus dem ADAS-System 1238, Informationen zum autonomen Fahren wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsdaten (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.The
Das Infotainment-SoC 1230 kann GPU-Funktionalität enthalten. Das Infotainment-SoC 1230 kann über den Bus 1202 (z. B. CAN-Bus, Ethernet usw.) mit anderen Geräten, Systemen und/oder Komponenten des Fahrzeugs 1200 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 1230 mit einer übergeordneten MCU gekoppelt werden, sodass die GPU des Infotainment-Systems einige Selbstfahr-Funktionen ausführen kann, falls die primäre Steuerung 1236 (z. B. der primäre und/oder Backup-Computer des Fahrzeugs 1200) ausfällt. In einem solchen Beispiel kann das Infotainment-SoC 1230 das Fahrzeug 1200 in den sicheren Stopp-Modus versetzen, wie hier beschrieben.The
Das Fahrzeug 1200 kann außerdem ein Kombiinstrument 1232 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) enthalten. Das Kombiinstrument 1232 kann eine Steuerung und/oder Supercomputer (z. B. eine diskrete Steuerung oder Supercomputer) enthalten. Das Kombiinstrument 1232 kann eine Reihe von Instrumenten wie Tachometer, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Blinker, Schaltstellungsanzeige, Sicherheitsgurtwarnleuchte(n), Feststellbremse-Warnleuchte(n), Motorstörungsanzeige(n), Airbag (SRS)-Systeminformationen, Beleuchtungssteuerungen, Bedienelemente des Sicherheitssystems, Navigationsinformationen usw. umfassen. In einigen Beispielen können Informationen angezeigt und/oder zwischen dem Infotainment-SoC 1230 und dem Kombiinstrument 1232 geteilt werden. Mit anderen Worten kann das Kombiinstrument 1232 als Teil des Infotainment-SoC 1230 oder umgekehrt aufgenommen werden.The
Wie oben erwähnt ist, kann bei mindestens einer Ausführungsform die Fahrzeugplattform 100 (siehe
Die Server 1278 können über die Netze 1290 und von den Fahrzeugen Bilddaten empfangen, die für Bilder stehen, die unerwartete oder veränderte Straßenbedingungen zeigen, wie z. B. kürzlich begonnene Straßenarbeiten. Die Server 1278 können, über die Netze 1290 und an die Fahrzeuge, neuronale Netze 1292, aktualisierte neuronale Netze 1292 und/oder Karteninformationen 1294 übertragen, einschließlich Informationen über den Verkehr und die Straßenbedingungen. Die Aktualisierungen der Karteninformationen 1294 können Aktualisierungen für die HD-Karte 1222 enthalten, wie z. B. Informationen zu Baustellen, Schlaglöchern, Umwegen, Überschwemmungen und/oder anderen Hindernissen. In einigen Beispielen können die neuronalen Netze 1292, die aktualisierten neuronalen Netze 1292 und/oder die Karteninformationen 1294 aus neuen Trainings und/oder Erfahrungen resultieren, dargestellt in Daten aus einer beliebigen Anzahl von Fahrzeugen in der Umgebung, und/oder basierend auf Trainings, die in einem Rechenzentrum durchgeführt werden (z.B. unter Verwendung der Server 1278 und/oder anderer Server).The
Die Server 1278 können verwendet werden, um Machine-Learning-Modelle (z. B. neuronale Netzwerke) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen generiert und/oder in einer Simulation (z. B. mit einem Game Engine) generiert werden. In einigen Beispielen werden die Trainingsdaten markiert (z. B. wenn das neuronale Netz vom überwachten Lernen profitiert) und/oder unterliegen einer anderen Vorverarbeitung, während in anderen Beispielen die Trainingsdaten nicht markiert und/oder vorverarbeitet werden (z. B. wenn das neuronale Netz kein überwachtes Lernen erfordert). Trainings können nach einer oder mehreren Klassen von Machine-Learning-Techniken durchgeführt werden, einschließlich, aber nicht beschränkt auf Kurse wie: beaufsichtigtes Training, halb beaufsichtigtes Training, unbeaufsichtigtes Training, Selbstlernen, Verstärkungslernen, föderiertes Lernen, Transferlernen, Feature-Lernen (einschließlich Hauptkomponenten- und Cluster-Analysen), multilineares Subraumlernen, vielfältiges Lernen, Repräsentation-Lernen (einschließlich des Ersatzwörterbuchlernen), regelbasiertes maschinelles Lernen, Anomalieerkennung und alle Varianten oder Kombinationen davon. Nach dem Training der Machine-Learning-Modelle können die Machine-Learning-Modelle von den Fahrzeugen verwendet werden (z. B. über das Netz 1290 an die Fahrzeuge übertragen) und/oder die Machine-Learning-Modelle können von den Servern 1278 zur Fernüberwachung der Fahrzeuge verwendet werden.The
In einigen Beispielen kann der Server 1278 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netze anwenden, um intelligente Echtzeit-Inferenzen zu ermöglichen. Die Server 1278 können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer mit GPUs 1284 umfassen, wie z. B. DGX- und DGX-Stationsmaschinen, die von NVIDIA entwickelt wurden. In einigen Beispielen können die Server 1278 jedoch eine Deep-Learning-Infrastruktur enthalten, die nur CPU-betriebene Rechenzentren verwendet.In some examples, the
Die Deep-Learning-Infrastruktur der Server 1278 kann eine schnelle Echtzeit-Inferenz ermöglichen und diese Funktion nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 1200 zu bewerten und zu überprüfen. Beispielsweise kann die Deep-Learning-Infrastruktur regelmäßige Aktualisierungen vom Fahrzeug 1200 erhalten, wie z. B. eine Abfolge von Bildern und/oder Objekten, die das Fahrzeug 1200 in dieser Abfolge von Bildern lokalisiert hat (z. B. durch Computervision und/oder andere Techniken zur Klassifizierung von Machine-Learning-Objekten). Die Deep-Learning-Infrastruktur kann ein eigenes neuronales Netz betreiben, um die Objekte zu identifizieren und sie mit den vom Fahrzeug 1200 identifizierten Objekten zu vergleichen. Wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 1200 defekt ist, kann der Server 1278 ein Signal an das Fahrzeug 1200 senden, das einen ausfallsicheren Computer des Fahrzeugs 1200 anweist, die Kontrolle zu übernehmen, die Passagiere zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.The deep learning infrastructure of the
Für Inferencing können die Server 1278 die GPUs 1284 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. NVIDIA TensorRT) enthalten. Die Kombination aus GPU-basierten Servern und der Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. In anderen Beispielen, z. B. bei weniger kritischer Performance, können Server mit CPUs, FPGAs und anderen Prozessoren für die Inferenz verwendet werden.For inferencing, the
BEISPIELHAFTE RECHENEINRICHTUNGEXEMPLARY COMPUTING DEVICE
Obwohl die verschiedenen Blöcke der
Das Verbindungssystem 1602 kann einen oder mehrere Verbindungen oder Busse darstellen, z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Das Verbindungssystem 1602 kann einen oder mehrere Bus- oder Verbindungstypen umfassen, z. B. einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express) und/oder einen anderen Bus- oder Verbindungstyp. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen Komponenten. Als Beispiel kann die CPU 1606 direkt an den Speicher 1604 angeschlossen werden. Außerdem kann die CPU 1606 direkt an die GPU 1608 angeschlossen werden. Bei direkter oder Punkt-zu-Punkt-Verbindung zwischen Komponenten kann das Verbindungssystem 1602 eine PCIe-Verbindung zur Durchführung der Verbindung enthalten. In diesen Beispielen muss kein PCI-Bus in die Recheneinrichtung 1600 aufgenommen werden.The
Der Speicher 1604 kann über eine Vielzahl von computer-lesbaren Medien verfügen. Die computer-lesbaren Medien können alle verfügbaren Medien sein, auf die die Recheneinrichtung 1600 zugreifen kann. Die computer-lesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien sowie wechselbare und nicht wechselbare Medien enthalten. Als Beispiel und nicht als Einschränkung können die computer-lesbaren Medien Computer-Speichermedien und Kommunikationsmedien aufweisen.
Das Computerspeichermedium kann sowohl flüchtige als auch nichtflüchtige Medien und/oder wechselbare und nicht wechselbare Medien enthalten, die in jedem Verfahren oder Technologie zur Speicherung von Informationen wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder andere Datentypen implementiert sind. Im Speicher 1604 können beispielsweise computer-lesbare Anweisungen gespeichert werden (z. B., die ein oder mehrere Programme und/oder Programmelemente darstellen, z. B. ein Betriebssystem. Zu den Speichermedien für Computer gehören unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Datenträger, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichergeräte, oder jedes andere Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das die Recheneinrichtung 1600 zugreifen kann. Wie hier verwendet, weisen die Speichermedien für Computer nicht per se Signale auf.The computer storage medium may include both volatile and non-volatile media and/or removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules and/or other types of data.
Die Speichermedien des Computers können computer-lesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal enthalten, wie z. B. eine Trägerwelle oder einen anderen Transportmechanismus, und umfassen alle Informationsmedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, das eine oder mehrere seiner Eigenschaften so eingestellt oder geändert hat, dass Informationen im Signal kodiert werden. Als Beispiel und nicht als Einschränkung können die Speichermedien des Computers drahtgebundene Medien wie ein kabelgebundenes Netz oder eine direkte kabelgebundene Verbindung sowie drahtlose Medien wie akustische, HF-, Infrarot- und andere drahtlose Medien umfassen. Kombinationen der oben genannten Punkte sollten ebenfalls in den Umfang von computerlesbaren Medien aufgenommen werden.The computer's storage media may contain computer-readable instructions, data structures, program modules, and/or other types of data in a modulated data signal, such as: B. a carrier wave or other transport mechanism, and include all information media. The term “modulated data signal” can refer to a signal that has one or more of its properties adjusted or changed to encode information in the signal. By way of example, and not limitation, the computer's storage media may include wired media, such as a wired network or direct wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of the above should also be included within the scope of computer-readable media.
Die CPUs 1606 können so konfiguriert werden, dass sie mindestens einige der computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 1600 ausführen, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse auszuführen. Die CPUs 1606 können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPUs 1606 können jede Art von Prozessor enthalten und je nach Art der implementierten Recheneinrichtung 1600 verschiedene Typen von Prozessoren enthalten (z. B. Prozessoren mit weniger Kernen für Mobilgeräte und Prozessoren mit mehr Kernen für Server). Je nach Recheneinrichtung 1600 kann es sich beispielsweise um einen Advanced RISC Machine (ARM)-Prozessor mit reduziertem Instruction Set Computing (RISC) oder einen x86-Prozessor mit komplexem Instruction Set Computing (CISC) handeln. Die Recheneinrichtung 1600 kann zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Coprozessoren, wie z. B. mathematischen Coprozessoren, eine oder mehrere CPUs 1606 enthalten.The
Die GPUs 1608 können darüber hinaus oder alternativ von den CPUs 1606 so konfiguriert werden, dass sie mindestens einige computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 1600 ausführen, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse auszuführen. Eine oder mehrere GPUs 1608 können eine integrierte GPU (z. B. mit einer oder mehreren CPUs 1606) sein und/oder eine oder mehrere GPUs 1608 können eine separate GPU sein. In Ausführungsformen können eine oder mehrere GPUs 1608 ein Coprozessor einer oder mehrerer CPUs 1606 sein. Die GPUs 1608 können von der Recheneinrichtung 1600 zum Rendern von Grafiken (z. B. 3D-Grafiken) oder Durchführen allgemeiner Berechnungen verwendet werden. Beispielsweise können die GPUs 1608 zum General-Purpose Computing auf GPUs (GPGPU) verwendet werden. Die GPUs 1608 können Hunderte oder Tausende von Kernen umfassen, die Hunderte oder Tausende von Software-Threads gleichzeitig verarbeiten können. Die GPUs 1608 können als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von den CPUs 1606, die über eine Host-Schnittstelle empfangen wurde) Pixeldaten für Ausgabebilder generieren. Die GPUs 1608 können Grafikspeicher, wie z. B. Displayspeicher, zum Speichern von Pixeldaten oder anderen geeigneten Daten, wie GPGPU-Daten, enthalten. Der Displayspeicher kann als Teil des Speichers 1604 enthalten sein. Die GPUs 1608 können zwei oder mehr GPUs enthalten, die parallel arbeiten (z. B. über eine Verbindung). Die Verbindung kann die GPUs direkt verbinden (z. B. über NVLINK) oder die GPUs über einen Switch verbinden (z. B. über NVSwitch). Wenn sie zusammen kombiniert werden, kann jede GPU 1608 Pixeldaten oder GPGPU-Daten für verschiedene Teile einer Ausgabe oder für unterschiedliche Ausgaben generieren (z. B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher enthalten oder den Speicher mit anderen GPUs teilen.The
Die Logikeinheiten 1620 können darüber hinaus oder alternativ von den CPUs 1606 und/oder den GPUs 1608 so konfiguriert werden, dass sie mindestens einige computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 1600 ausführen, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse auszuführen. In Ausführungsformen können die CPUs 1606, die GPUs 1608 und/oder die Logikeinheiten 1620 diskret oder gemeinsam jede beliebige Kombination der Verfahren, Prozesse und/oder Teile davon durchführen. Eine oder mehrere der Logikeinheiten 1620 können Teil einer oder mehrerer CPUs 1606 und/oder GPUs 1608 sein und/oder eine oder mehrere der Logikeinheiten 1620 können diskrete Komponenten oder auf andere Weise außerhalb der CPUs 1606 und/oder der GPUs 1608 sein. In Ausführungsformen können eine oder mehrere Logikeinheiten 1620 ein Coprozessor einer oder mehrerer CPUs 1606 und/oder einer oder mehrerer GPUs 1608 sein.The
Beispiele für die Logikeinheiten 1620 enthalten einen oder mehrere Prozessorkerne und/oder Komponenten davon, wie Tensor Cores (TCs), Tensor Processing Units (TPUs), Pixel Visual Cores (PVCs), Vision Processing Units (VPUs), Graphics Processing Clusters (GPCs), Texture Processing Clusters (TPCs), Streaming Multiprozessoren (Streaming Multiprocessors - SMs), Tree Traversal Units (TTUs), Artificial Intelligence (AIAS), Accelerators (AIAS) Deep Learning Accelerators (DLAs), Arithmetic-Logic Units (ALUs), Application-Specific Integrated Circuits (ASICs), Floating Point Units (FPUs), I/O-Elemente (input/output - I/O), Peripheral Component Interconnect (PCI)- oder Peripheral Component Interconnect Express (PCIe)-Elemente und/oder ähnliches.Examples of the
Die Kommunikationsschnittstelle 1610 kann einen oder mehrere Empfänger, Sender und/oder Transceiver umfassen, die es der Recheneinrichtung 1600 ermöglichen, über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener und/oder drahtloser Kommunikation, mit anderen Recheneinrichtungen zu kommunizieren. Die Kommunikationsschnittstelle 1610 kann Komponenten und Funktionen enthalten, die die Kommunikation über eine Reihe verschiedener Netzwerke ermöglichen, z. B. drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), kabelgebundene Netzwerke (z. B. Kommunikation über Ethernet oder InfiniBand), Low-Power-Wide-Area-Netzwerke (z. B. LoRaWAN, Sigfox usw.) und/oder das Internet.The
Die I/O-Ports 1612 können ermöglichen, dass die Recheneinrichtung 1600 logisch mit anderen Einrichtungen gekoppelt wird, einschließlich der I/O-Komponenten 1614, der Darstellungskomponente(n) 1618 und/oder anderen Komponenten, von denen einige in die Recheneinrichtung 1600 eingebaut (z. B. integriert) sein können. Die I/O-Komponenten 1614 umfassen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, Gamecontroller, Satellitenschüssel, Scanner, Drucker, drahtloses Gerät, usw. Die I/O-Komponenten 1614 können eine natürliche Benutzeroberfläche (natural user interface, NUI) bereitstellen, die Luftgesten, Stimme oder andere physiologische Eingaben verarbeitet, die von einem Benutzer generiert werden. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Tasterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch in der Nähe des Bildschirms, Luftgesten, Kopf- und Augenverfolgung und Touch-Erkennung (wie unten näher beschrieben) implementieren, die mit einem Display der Recheneinrichtung 1600 verbunden ist. Die Recheneinrichtung 1600 kann Tiefenkameras umfassen, wie stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon, zur Gestendetektion und -erkennung. Darüber hinaus kann die Recheneinrichtung 1600 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) enthalten, die eine Bewegungserkennung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Recheneinrichtung 1600 verwendet werden, um immersive Augmented Reality oder Virtual Reality darzustellen.The I/O ports 1612 may enable the
Die Stromversorgung 1616 kann eine fest verdrahtete Stromversorgung, eine Batterie-Stromversorgung oder eine Kombination davon umfassen. Die Stromversorgung 1616 kann die Recheneinrichtung 1600 mit Strom versorgen, damit die Komponenten der Recheneinrichtung 1600 arbeiten können.The
Die Darstellungskomponenten 1618 können ein Display (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Heads-Up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), Lautsprecher und/oder andere Darstellungskomponenten umfassen. Die Darstellungskomponenten 1618 können Daten von anderen Komponenten (z. B. GPUs 1608, CPUs 1606 usw.) empfangen und die Daten ausgeben (z. B. als Bild, Video, Ton usw.).The display components 1618 may include a display (e.g., a monitor, a touch screen, a television screen, a heads-up display (HUD), other display types, or a combination thereof), speakers, and/or other display components. The presentation components 1618 may receive data from other components (e.g.,
Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinenverwendbaren Anweisungen beschrieben werden, einschließlich computerausführbarer Anweisungen wie etwa Programmmodulen, die von einem Computer oder einer anderen Maschine wie etwa einem Personal Data Assistant oder einem anderen Handgerät ausgeführt werden. Im Allgemeinen beziehen sich Programmmodule einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. auf Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielzahl von Systemkonfigurationen ausgeführt werden, einschließlich Handheld-Vorrichtungen, Unterhaltungselektronik, Allzweckcomputern, spezielleren Recheneinrichtungen usw. Die Offenbarung kann auch in verteilten Rechenumgebungen ausgeführt werden, in denen Aufgaben von entfernten Verarbeitungsvorrichtungen, die über ein Kommunikationsnetz verbunden sind, durchgeführt werden.The disclosure may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions such as program modules that are executed by a computer or other machine such as a personal data assistant or other handheld device. In general, program modules including routines, programs, objects, components, data structures, etc. refer to code that performs specific tasks or implements specific abstract data types. The disclosure may be embodied in a variety of system configurations, including handheld devices, consumer electronics, general purpose computers, more specialized computing devices, etc. The disclosure may also be embodied in distributed computing environments in which tasks are performed by remote processing devices connected via a communications network .
Zumindest eine Ausführung der Offenbarung kann mit Bezug zu den folgenden Sätzen beschrieben werden.
- 1. Integrierte Schaltung, umfassend:
- einen ersten Takt;
- einen zweiten Takt, der von dem ersten Takt isoliert ist;
- einen ersten Stromanschluss;
- einen zweiten Stromanschluss, der von dem ersten Stromanschluss isoliert ist; einen ersten Abschnitt, um Strom mittels des ersten Stromanschlusses und ein erstes Taktsignal mittels des ersten Takts zu empfangen; und einen zweiten Abschnitt, um Strom mittels des zweiten Stromanschlusses und ein zweites Taktsignal mittels des zweiten Takts zu empfangen, wobei der zweite Abschnitt eine Schnittstelle zur Kommunikation mit dem ersten Abschnitt, eine Schnittstellensteuerung und einen Prozessor zum Sperren und Entsperren der Schnittstellensteuerung umfasst, wobei die Schnittstellensteuerung eine Kommunikation über die Schnittstelle verhindert, wenn die Schnittstellensteuerung gesperrt ist, und wobei die Schnittstellensteuerung eine Kommunikation über die Schnittstelle zulässt, wenn die Schnittstellensteuerung entsperrt ist.
- 2. Integrierte
Schaltung nach Satz 1,- wobei der erste Abschnitt einen ersten Fehleraggregator umfasst, um an den zweiten Abschnitt Hinweise zu übermitteln, die einem oder mehreren Fehlern entsprechen, die in dem ersten Abschnitt auftreten,
- wobei der zweite Abschnitt einen zweiten Fehleraggregator umfasst, um die dem einen oder den mehreren Fehlern entsprechenden Hinweise zu empfangen und zu speichern,
- wobei die integrierte Schaltung eine Fehlerschnittstelle umfasst, die den ersten und den zweiten Fehleraggregator verbindet,
- wobei die Fehlerschnittstelle von der Schnittstelle getrennt ist, und wobei der Prozessor die Schnittstellensteuerung nur dann entsperrt, wenn der zweite Fehleraggregator keine Hinweise speichert, die irgendwelchen Fehlern entsprechen.
- 3. Integrierte
Schaltung nach Satz 1 oder 2, wobei der zweite Abschnitt einen Timer umfasst, der startet, wenn der Prozessor eine Kommunikation mit dem ersten Abschnitt über die Schnittstelle einleitet, und wobei der Timer einen Hinweis auf einen Fehler erzeugt, wenn der Timer anzeigt, dass mehr als eine vorbestimmte Zeitspanne verstrichen ist und der erste Abschnitt nicht auf die Kommunikation geantwortet hat. - 4. Integrierte Schaltung nach Satz 3, wobei der Timer zurückgesetzt wird, wenn der erste Abschnitt auf die Kommunikation antwortet, bevor der Timer anzeigt, dass mehr als die vorgegebene Zeitspanne verstrichen ist, und wobei der Prozessor die Schnittstelle sperrt, nachdem der Prozessor die Kommunikation mit dem ersten Abschnitt beendet hat.
- 5. Integrierte Schaltung nach einem der Sätze 1-4, die darüber hinaus umfasst:
- einen nichtflüchtigen Speicher, der von dem ersten und dem zweiten Abschnitt gemeinsam genutzt wird, wobei der zweite Abschnitt einen lokalen Speicher umfasst, wobei der Prozessor Anweisungen von dem nichtflüchtigen Speicher in den lokalen Speicher kopiert, wenn die integrierte Schaltung bootet, wobei die Anweisungen von dem Prozessor auszuführen sind, wenn die Schnittstelle gesperrt ist.
- 6. Integrierte Schaltung nach einem der Sätze 1-5, wobei der erste Abschnitt einen flüchtigen Speicher umfasst, und wobei der zweite Abschnitt mit dem flüchtigen Speicher über die Schnittstelle kommuniziert.
- 7. Integrierte Schaltung nach einem der Sätze 1-6, die sich auf einem zusammenhängenden Stück Halbleitermaterial befindet.
- 8. Integrierte Schaltung nach einem der Sätze 1-7, die einen Abschnitt eines System on a Chip („SoC“) für Fahrzeuge implementiert.
- 9. Integrierte Schaltung nach einem der Sätze 1-8, wobei der erste Abschnitt auf einer ersten Risikoklassifizierungsstufe arbeitet, wobei der zweite Abschnitt auf einer zweiten Risikoklassifizierungsstufe arbeitet, und wobei die zweite Risikoklassifizierungsstufe höher ist als die erste Risikoklassifizierungsstufe.
- 10. Verfahren umfassend:
- Bestimmen, durch einen ersten Abschnitt einer integrierten Schaltung, ob ein Fehleraggregator in dem ersten Abschnitt Daten enthält, die auf mindestens eine vorbestimmte Anzahl von Fehlern hinweisen;
- Entsperren einer Schnittstelle mit einem zweiten Abschnitt der integrierten Schaltung durch den ersten Abschnitt, wenn der erste Abschnitt feststellt, dass der Fehleraggregator keine Daten enthält, die auf zumindest die vorbestimmte Anzahl von Fehlern hinweisen;
- Einleiten eines Zugriffs auf den zweiten Abschnitt durch den ersten Abschnitt über die entsperrte Schnittstelle; und
- Sperren der Schnittstelle durch den ersten Abschnitt, nachdem der Zugriff eingeleitet wurde.
- 11. Verfahren nach Satz 10, wobei das Einleiten des Zugriffs einen Zugriffs-Timer startet, und wobei der erste Abschnitt die Schnittstelle sperrt, nachdem ein Erfassen des Zugriffs-Timers anzeigt, dass mehr als eine vorbestimmte Zeitspanne seit dem Start des Zugriffs-Timers verstrichen ist und eine Antwort von dem zweiten Abschnitt nicht empfangen worden ist.
- 12. Verfahren nach Satz 11, wobei der erste Abschnitt einen neuen Fehler erzeugt, nachdem ein Erfassen des Zugriffs-Timers anzeigt, dass mehr als eine vorbestimmte Zeitspanne seit dem Start des Zugriffs-Timers verstrichen ist und eine Antwort von dem zweiten Abschnitt nicht empfangen worden ist.
- 13. Verfahren nach einem der Sätze 10-12, wobei das Einleiten des Zugriffs einen Zugriffs-Timer startet und das Verfahren darüber hinaus umfasst: Empfangen einer Antwort von dem zweiten Abschnitt durch den ersten Abschnitt, bevor der Zugriffs-Timer anzeigt, dass mehr als eine vorbestimmte Zeitspanne seit dem Start des Zugriffs-Timers verstrichen ist, wobei das Empfangen der Antwort den Zugriffs-Timer stoppt, wobei der erste Abschnitt die Schnittstelle nach Beendigung des Zugriffs sperrt.
- 14. Verfahren nach einem der Sätze 10-13, das darüber hinaus umfasst: Durchführen einer oder mehrerer Korrekturmaßnahmen durch den ersten Abschnitt, wenn der erste Abschnitt feststellt, dass der Fehleraggregator Daten enthält, die auf zumindest die vorbestimmte Anzahl von Fehlern hinweisen.
- 15. Verfahren nach Satz 14, wobei die integrierte Schaltung einen Abschnitt eines System on a Chip („SoC“) für Fahrzeuge implementiert, und wobei die eine oder die mehreren Korrekturmaßnahmen ausgestaltet sind, um ein autonomes Fahrzeug in einen sicheren Zustand zu versetzen.
- 16. Verfahren nach einem der Sätze 10-15, wobei die integrierte Schaltung einen Abschnitt eines System on a Chip, „SoC“, für Fahrzeuge implementiert, wobei der erste Abschnitt Sicherheitsfunktionen für ein autonomes Fahrzeug durchführt, während das autonome Fahrzeug fährt, und wobei der zweite Abschnitt autonome Fahrfunktionen während des Fahrens des autonomen Fahrzeugs ausführt.
- 17. Verfahren nach einem der Sätze 10-16, wobei die Schnittstelle den ersten Abschnitt mit einem flüchtigen Speicher oder einem Steuer-Backbone des zweiten Abschnitts verbindet.
- 18. Verfahren nach einem der Sätze 10-17, wobei der erste Abschnitt in einem ersten Taktbereich arbeitet, wobei der zweite Abschnitt in einem zweiten Taktbereich arbeitet, der sich von dem ersten Taktbereich unterscheidet, und wobei die Schnittstelle eine Phasensynchronisationsschaltung umfasst, die ein von dem zweiten Abschnitt empfangenes Signal in den ersten Taktbereich konvertiert.
- 19. Integrierte Schaltung, umfassend:
- einen ersten Abschnitt, der mit einer ersten Risikostufe innerhalb eines ersten Bereichs arbeitet; und
- einen zweiten Abschnitt, der mit einer zweiten Risikostufe innerhalb eines zweiten Bereichs arbeitet, wobei die zweite Risikostufe größer als die erste Risikostufe ist,
- wobei der zweite Abschnitt einen Prozessor und eine Schnittstelle, die den ersten und den zweiten Abschnitt verbindet, umfasst, wobei der Prozessor die Schnittstelle selektiv sperrt, um eine Kommunikation über die Schnittstelle zu verhindern, wobei der Prozessor die Schnittstelle selektiv entsperrt, um eine Kommunikation über die Schnittstelle zu ermöglichen.
- 20. Integrierte Schaltung nach Satz 19, die darüber hinaus umfasst:
- einen ersten Stromanschluss, der den ersten Bereich mit Strom versorgt; und
- einen zweiten Stromanschluss, der von dem ersten Stromanschluss elektrisch isoliert ist und den zweiten Bereich mit Strom versorgt, wobei die Schnittstelle mindestens einen Spannungsschieber zum Einstellen einer Spannung für jegliche Kommunikation über die Schnittstelle umfasst.
- 21. Integrierte Schaltung nach Satz 19 oder 20, die darüber hinaus umfasst:
- einen ersten Takt, der den ersten Bereich mit einem ersten Taktsignal versorgt; und
- einen zweiten Takt, der von dem ersten Takt isoliert ist und den zweiten Bereich mit einem zweiten Taktsignal versorgt, wobei die Schnittstelle eine Phasensynchronisationsschaltung zum Einstellen einer Phase jeglicher Kommunikation über die Schnittstelle umfasst.
- 22. Integrierte Schaltung nach einem der Sätze 19-21, wobei die Schnittstelle eine Firewall umfasst, die eine oder mehrere Sicherheitsregeln implementiert, und wobei die Firewall eine Kommunikation über die Schnittstelle auf der Grundlage der einen oder der mehreren Sicherheitsregeln erlaubt oder blockiert.
- 23. Integrierte Schaltung nach einem der Sätze 19-22, wobei der erste Abschnitt einen ersten Fehleraggregator umfasst, um Daten, die einen in dem ersten Abschnitt auftretenden Fehler anzeigen, an den zweiten Abschnitt zu übermitteln, wobei der zweite Abschnitt einen zweiten Fehleraggregator umfasst, um die den Fehler anzeigende Daten zu empfangen und die den Fehler anzeigende Daten zu speichern, bis der Fehler durch den Prozessor gelöscht wird, wobei die integrierte Schaltung eine Fehlerschnittstelle umfasst, die den ersten und den zweiten Fehleraggregator verbindet, wobei die Fehlerschnittstelle von der Schnittstelle getrennt ist, und wobei der Prozessor die Schnittstelle erst dann entsperrt, wenn Fehler, die den Daten entsprechen, die auf irgendwelche von dem zweiten Fehleraggregator gespeicherten Fehler hinweisen, von dem Prozessor gelöscht worden sind.
- 24. Integrierte Schaltung nach einem der Sätze 19-23, wobei der zweite Abschnitt einen Timer umfasst, der startet, wenn der Prozessor die Schnittstelle entsperrt, und wobei der Timer einen neuen Fehler erzeugt, wenn der Timer anzeigt, dass mehr als eine vorbestimmte Zeitspanne verstrichen ist und der erste Abschnitt nicht auf eine an den ersten Abschnitt über die Schnittstelle gesendete Kommunikation geantwortet hat.
- 25. Integrierte Schaltung nach Satz 24, wobei der Timer zurückgesetzt wird, wenn der erste Abschnitt auf die Kommunikation antwortet, bevor der Timer anzeigt, dass mehr als die vorbestimmte Zeitspanne verstrichen ist, und wobei der Prozessor die Schnittstelle sperrt, nachdem der Prozessor die Kommunikation mit dem ersten Abschnitt beendet hat.
- 26. Integrierte Schaltung nach einem der Sätze 19-25, wobei der erste Abschnitt einen nichtflüchtigen Speicher umfasst, der von dem ersten und dem zweiten Abschnitt gemeinsam genutzt wird, wobei der zweite Abschnitt einen lokalen Speicher umfasst, wobei der Prozessor Anweisungen von dem nichtflüchtigen Speicher in den lokalen Speicher kopiert, wenn die integrierte Schaltung bootet, und wobei die Anweisungen von dem Prozessor ausgeführt werden, wenn die Schnittstelle gesperrt ist.
- 27. Integrierte Schaltung nach einem der Sätze 19-26, wobei der erste Abschnitt einen flüchtigen Speicher umfasst, und wobei der zweite Abschnitt mit dem flüchtigen Speicher über die Schnittstelle kommuniziert.
- 28. Integrierte Schaltung nach einem der Sätze 19-27, wobei der erste Abschnitt ein Steuer-Backbone umfasst, wobei die Schnittstelle mit dem Steuer-Backbone verbunden ist, und wobei der zweite Abschnitt mit mindestens einem Teil des ersten Abschnitts über die Schnittstelle und das Steuer-Backbone kommuniziert.
- 29. Integrierte Schaltung nach einem der Sätze 19-28, die sich auf einem zusammenhängenden Stück Halbleitermaterial befindet.
- 30. Integrierte Schaltung nach einem der Sätze 19-29, die einen Abschnitt eines System on a Chip, „SoC“, für Kraftfahrzeuge implementiert.
- 31. Integrierte Schaltung nach einem der Sätze 19-30, wobei der zweite Abschnitt eine Vielzahl von Schnittstellen umfasst, die die Schnittstelle umfassen, wobei jede der Vielzahl von Schnittstellen den zweiten Abschnitt mit einem entsprechenden Teil des ersten Abschnitts verbindet, wobei der Prozessor selektiv eine bestimmte der Vielzahl von Schnittstellen entsperrt, um eine Kommunikation über die bestimmte Schnittstelle mit dem entsprechenden Teil des ersten Abschnitts zu ermöglichen.
- 32. Integrierte Schaltung nach Satz 31, wobei der Prozessor selektiv eine beliebige der Vielzahl von Schnittstellen, die entsperrt ist, sperrt, um eine Kommunikation über die Vielzahl von Schnittstellen mit dem ersten Abschnitt zu verhindern.
- 1. Integrated circuit comprising:
- a first bar;
- a second clock isolated from the first clock;
- a first power connection;
- a second power terminal isolated from the first power terminal; a first section for receiving power via the first power terminal and a first clock signal via the first clock; and a second section for receiving power via the second power terminal and a second clock signal via the second clock, the second section comprising an interface for communicating with the first section, an interface controller and a processor for locking and unlocking the interface controller, the Interface control prevents communication over the interface when the interface control is locked, and wherein the interface control allows communication over the interface when the interface control is unlocked.
- 2. Integrated circuit according to
sentence 1,- wherein the first section includes a first error aggregator for transmitting to the second section indications corresponding to one or more errors occurring in the first section,
- wherein the second section includes a second error aggregator to receive and store the indications corresponding to the one or more errors,
- wherein the integrated circuit includes a fault interface connecting the first and second fault aggregators,
- wherein the error interface is separate from the interface, and wherein the processor unlocks the interface control only if the second error aggregator does not store indications corresponding to any errors.
- 3. Integrated circuit according to
sentence 1 or 2, wherein the second section comprises a timer that starts when the processor initiates communication with the first section via the interface, and wherein the timer generates an indication of an error when the timer indicates , that more than a predetermined amount of time has passed and the first section has not responded to the communication. - 4. Integrated circuit according to sentence 3, wherein the timer is reset if the first section responds to the communication before the timer indicates that more than the predetermined amount of time has elapsed, and wherein the processor blocks the interface after the processor has completed the communication finished with the first section.
- 5. Integrated circuit according to one of sentences 1-4, which also includes:
- a non-volatile memory shared by the first and second sections, the second section comprising a local memory, the processor copying instructions from the non-volatile memory to the local memory when the integrated circuit boots, the instructions from the Processor must be executed when the interface is blocked.
- 6. The integrated circuit of any one of sentences 1-5, wherein the first portion comprises a volatile memory, and wherein the second portion communicates with the volatile memory via the interface.
- 7. Integrated circuit according to one of sentences 1-6, which is located on a continuous piece of semiconductor material.
- 8. Integrated circuit according to one of sentences 1-7, which implements a portion of a system on a chip (“SoC”) for vehicles.
- 9. Integrated circuit according to one of sentences 1-8, wherein the first section operates at a first risk classification level, the second section operates at a second risk classification level, and wherein the second risk classification level is higher than the first risk classification level.
- 10. Procedure comprising:
- determining, by a first section of an integrated circuit, whether a fault aggregator in the first section contains data indicative of at least a predetermined number of faults;
- unlocking an interface with a second portion of the integrated circuit by the first portion when the first portion determines that the error aggregator does not contain data indicative of at least the predetermined number of errors;
- Initiating access to the second section by the first section via the unlocked interface; and
- Locking the interface through the first section after access is initiated.
- 11. The method of sentence 10, wherein initiating access starts an access timer, and wherein the first section disables the interface after detection of the access timer indicates that more than a predetermined amount of time has elapsed since the start of the access timer and a response from the second section has not been received.
- 12. The method of sentence 11, wherein the first section generates a new error after a detection of the access timer indicates that more than a predetermined period of time has elapsed since the start of the access timer and a response from the second section has not been received is.
- 13. The method of any of sentences 10-12, wherein initiating access starts an access timer and the method further comprises: receiving a response from the second section by the first section before the access timer indicates that more than a predetermined period of time has elapsed since the start of the access timer, receiving the response stops the access timer, the first section locking the interface after the access is completed.
- 14. The method of any of sentences 10-13, further comprising: performing one or more corrective actions by the first section when the first section determines that the error aggregator contains data indicating at least the predetermined number of errors.
- 15. The method according to sentence 14, wherein the integrated circuit implements a portion of a system on a chip (“SoC”) for vehicles, and wherein the one or more corrective measures are designed to place an autonomous vehicle in a safe state.
- 16. The method of any of sentences 10-15, wherein the integrated circuit implements a portion of a system on a chip, “SoC,” for vehicles, the first portion performing safety functions for an autonomous vehicle while the autonomous vehicle is driving, and wherein the second section carries out autonomous driving functions while driving the autonomous vehicle.
- 17. The method of any of sentences 10-16, wherein the interface connects the first section to a volatile memory or a control backbone of the second section.
- 18. The method of any of sentences 10-17, wherein the first section operates in a first clock range, the second section operates in a second clock range different from the first clock range, and wherein the interface comprises a phase synchronization circuit that includes one of The signal received in the second section is converted into the first clock range.
- 19. Integrated circuit comprising:
- a first section operating at a first level of risk within a first range; and
- a second section that operates with a second risk level within a second range, the second risk level being greater than the first risk level,
- wherein the second section includes a processor and an interface connecting the first and second sections, the processor selectively disabling the interface to prevent communication via the interface, the processor selectively unlocking the interface to enable communication via to enable the interface.
- 20. Integrated circuit according to sentence 19, which also includes:
- a first power connector that supplies power to the first region; and
- a second power port that is electrically isolated from the first power port and supplies power to the second region, the interface comprising at least one voltage slider for setting a voltage for any communication via the interface.
- 21. Integrated circuit according to sentence 19 or 20, which also includes:
- a first clock that supplies the first area with a first clock signal; and
- a second clock isolated from the first clock and providing the second region with a second clock signal, the interface comprising a phase synchronization circuit for adjusting a phase of any communication via the interface.
- 22. The integrated circuit of any of sentences 19-21, wherein the interface includes a firewall that implements one or more security rules, and wherein the firewall allows or blocks communication over the interface based on the one or more security rules.
- 23. Integrated circuit according to one of sentences 19-22, wherein the first section comprises a first error aggregator for transmitting data indicative of an error occurring in the first section to the second section, the second section comprising a second error aggregator, to receive the data indicating the error and to store the data indicating the error until the error is cleared by the processor, the integrated circuit comprising an error interface connecting the first and second error aggregators, the error interface being separate from the interface and wherein the processor unlocks the interface only after errors corresponding to the data indicative of any errors stored by the second error aggregator have been cleared by the processor.
- 24. The integrated circuit of any of sentences 19-23, wherein the second portion comprises a timer that starts when the processor unlocks the interface, and wherein the timer generates a new error if the timer indicates that more than a predetermined period of time has elapsed and the first section has not responded to a communication sent to the first section via the interface.
- 25. The integrated circuit of sentence 24, wherein the timer is reset if the first section responds to the communication before the timer indicates that more than the predetermined amount of time has elapsed, and wherein the processor disables the interface after the processor completes the communication finished with the first section.
- 26. The integrated circuit of any of sentences 19-25, wherein the first section comprises a non-volatile memory shared by the first and second sections, the second section comprising a local memory, the processor receiving instructions from the non-volatile memory copied to local memory when the integrated circuit boots, and the instructions are executed by the processor when the interface is locked.
- 27. The integrated circuit of any of sentences 19-26, wherein the first portion includes a volatile memory, and wherein the second portion communicates with the volatile memory via the interface.
- 28. Integrated circuit according to one of sentences 19-27, wherein the first section comprises a control backbone, the interface being connected to the control backbone, and wherein the second section is connected to at least a portion of the first section via the interface and the Control backbone communicates.
- 29. Integrated circuit according to one of sentences 19-28, which is located on a continuous piece of semiconductor material.
- 30. Integrated circuit according to any of sentences 19-29, which implements a portion of a system on a chip, “SoC”, for motor vehicles.
- 31. The integrated circuit of any one of sentences 19-30, wherein the second section comprises a plurality of interfaces comprising the interface, each of the plurality of interfaces connecting the second section to a corresponding part of the first section, the processor selectively one certain of the plurality of interfaces are unlocked to enable communication via the particular interface with the corresponding part of the first section.
- 32. The integrated circuit of sentence 31, wherein the processor selectively disables any of the plurality of interfaces that is unlocked to prevent communication via the plurality of interfaces with the first section.
Die Verwendung der Begriffe „ein“, „eine“ und „eines und „der“, „die“ und „das“ und ähnlicher Bezeichnungen im Zusammenhang mit der Beschreibung offengelegter Ausführungsformen (insbesondere im Zusammenhang mit den folgenden Ansprüchen) ist so auszulegen, dass sie sowohl die Einzahl als auch die Mehrzahl umfasst, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt ist, und ist nicht als Definition eines Begriffs zu verstehen. Die Begriffe „umfassend“, „aufweisend“, „einschließlich“ und „enthaltend“ sind, sofern nicht anders angegeben, als offene Begriffe zu verstehen (d.h. „einschließlich, aber nicht beschränkt auf‟). Der Begriff „verbunden“ ist, wenn er unverändert bleibt und sich auf physikalische Verbindungen bezieht, als teilweise oder ganz in einem Teil enthalten, an ihm befestigt oder mit ihm verbunden zu verstehen, auch wenn etwas dazwischen liegt. Die Aufzählung von Wertebereichen soll lediglich als Kurzform dienen, um sich individuell auf jeden einzelnen Wert zu beziehen, der in den Bereich fällt, sofern hier nichts anderes angegeben ist, und jeder einzelne Wert wird in die Spezifikation aufgenommen, als wäre er hier einzeln aufgeführt. Bei mindestens einer Ausführungsform ist die Verwendung des Begriffs „Menge“ oder „Satz“ (z. B. „eine Menge von Gegenständen“) oder „Teilmenge“, sofern nicht anders angegeben oder durch den Kontext widerlegt ist, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Darüber hinaus bezeichnet der Begriff „Teilmenge“ einer entsprechenden Menge, sofern nicht anders vermerkt oder durch den Kontext widerlegt, nicht notwendigerweise eine echte Teilmenge der entsprechenden Menge, sondern die Teilmenge und die entsprechende Menge können gleich sein.The use of the terms "a", "an" and "an and "the", "the" and "the" and similar terms in connection with the description of disclosed embodiments (particularly in connection with the following claims) are to be construed as meaning that it includes both the singular and the plural unless otherwise stated herein or clearly contradicted by the context and is not to be construed as a definition of a term. The terms “comprising,” “comprising,” “including,” and “containing” are intended to be open terms (i.e., “including, but not limited to”) unless otherwise specified. The term "connected", when left unchanged and referring to physical connections, is to be understood as being partly or wholly contained in, attached to or connected to a part, even if there is something in between. The enumeration of value ranges is intended solely as a shorthand to refer individually to each individual value falling within the range unless otherwise specified herein, and each individual value is included in the specification as if it were individually listed here. In at least one embodiment, use of the term "set" or "set" (e.g., "a set of items") or "subset" is intended to mean a non-empty collection unless otherwise indicated or contradicted by the context understand that includes one or more elements. Furthermore, unless otherwise noted or contradicted by the context, the term "subset" of a corresponding set does not necessarily mean a true subset of the corresponding set, but the subset and the corresponding set may be the same.
Wenn hier von „und/oder“ in Bezug auf zwei oder mehr Elemente die Rede ist, sollte dies als Mittel für nur ein Element oder eine Kombination von Elementen verstanden werden. Zum Beispiel kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder die Elemente A, B und C einschließne.When speaking of “and/or” in reference to two or more elements, this should be understood as meaning only one element or a combination of elements. For example, "Element A, Element B and/or Element C" can only contain element A, only element B, only element C, only element A and element B, element A and element C, element B and element C or the elements A, B and include C.
Konjunktivische Ausdrücke, wie z. B. Sätze der Form „mindestens eines von A, B, und C“ oder „mindestens eines von A, B und C“, werden, sofern nicht ausdrücklich anders angegeben oder durch den Kontext eindeutig widersprochen, im Kontext allgemein so verstanden, dass ein Element, ein Begriff usw, entweder A oder B oder C oder eine beliebige, nicht leere Teilmenge der Menge von A und B und C sein kann. So beziehen sich beispielsweise in dem anschaulichen Beispiel einer Menge mit drei Mitgliedern die konjunktiven Ausdrücke „mindestens eines von A, B, und C“ und „mindestens eines von A, B und C“ auf eine der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Derartige konjunktivische Formulierungen sind also nicht generell so zu verstehen, dass bei bestimmten Ausführungsformen jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. Sofern es nicht anders vermerkt oder durch den Kontext widerlegt ist, bezeichnet der Begriff „Mehrzahl“ bzw. „Vielzahl“ einen Zustand der Pluralität (z. B. „eine Mehrzahl von Gegenständen“ bezeichnet mehrere Gegenstände). Bei mindestens einer Ausführungsform beträgt die Anzahl der Gegenstände in einer Mehrzahl mindestens zwei, kann aber auch mehr sein, wenn dies entweder ausdrücklich oder durch den Kontext angegeben wird. Darüber hinaus bedeutet „basierend auf“, sofern nicht anders angegeben oder anderweitig aus dem Kontext klar, „zumindest teilweise basierend auf“ und nicht „ausschließlich basierend auf“.Subjunctival expressions, such as B. Sentences of the form “at least one of A, B, and C” or “at least one of A, B and C”, unless expressly stated otherwise or clearly contradicted by the context, are generally understood in the context to mean that a Element, a term, etc., can be either A or B or C or any non-empty subset of the set of A and B and C. For example, in the illustrative example of a set with three members, the conjunctive expressions “at least one of A, B, and C” and “at least one of A, B, and C” refer to one of the following sets: {A}, {B }, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Such conjunctival formulations are therefore not generally to be understood as meaning that in certain embodiments at least one of A, at least one of B and at least one of C must be present. Unless otherwise noted or contradicted by context, the term “plurality” or “multiplicity” refers to a state of plurality (e.g., “a plurality of items” refers to multiple items). In at least one embodiment, the number of items in a plurality is at least two, but may be more if indicated either explicitly or by the context. In addition, unless otherwise stated or otherwise clear from the context, “based on” means “based at least in part on” and not “based solely on.”
Die Operationen der hier beschriebenen Verfahren können in jeder geeigneten Reihenfolge durchgeführt werden, sofern dies hier nicht anders angegeben ist oder sich aus dem Kontext eindeutig ergibt. Bei mindestens einer Ausführungsform wird ein Verfahren, wie es hier beschrieben ist (oder Variationen und/oder Kombinationen davon), unter der Steuerung eines oder mehrerer Computersysteme durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind und als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. Bei mindestens einer Ausführungsform ist der Code auf einem computerlesbaren Speichermedium gespeichert. Bei mindestens einer Ausführungsform in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder mehreren Prozessoren ausgeführt werden können. Bei mindestens einer Ausführungsform handelt es sich bei einem computerlesbaren Speichermedium um ein nichtflüchtiges computerlesbares Speichermedium, das flüchtige Signale (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, jedoch nichtflüchtige Datenspeicherschaltungen (z. B. Puffer, Cache und Warteschlangen) innerhalb der Transceiver von flüchtigen Signalen aufweist. Bei mindestens einer Ausführungsform ist Code (z. B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichtflüchtigen, computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen (oder ein anderer Speicher zum Speichern ausführbarer Befehle) gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren eines Computersystems ausgeführt werden (d. h. als Ergebnis der Ausführung), das Computersystem veranlassen, die hier beschriebenen Operationen durchzuführen. Bei mindestens einer Ausführungsform umfasst ein Satz nicht-flüchtiger, computerlesbarer Speichermedien mehrere nicht-flüchtige, computerlesbare Speichermedien, wobei auf einem oder mehreren der einzelnen nicht-flüchtigen Speichermedien mehrerer nicht-flüchtiger, computerlesbarer Speichermedien der gesamte Code fehlt, während auf mehreren nicht-flüchtigen, computerlesbaren Speichermedien gemeinsam der gesamte Code gespeichert ist. Bei mindestens einer Ausführungsform werden ausführbare Anweisungen so ausgeführt, dass verschiedene Anweisungen von verschiedenen Prozessoren ausgeführt werden - bei mindestens einer Ausführungsform speichert ein nichtflüchtiges computerlesbares Speichermedium Anweisungen und eine Hauptzentraleinheit („CPU“) führt einige der Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) andere Anweisungen ausführt. Bei mindestens einer Ausführungsform haben verschiedene Komponenten eines Computersystems separate Prozessoren, und verschiedene Prozessoren führen verschiedene Teilmengen von Anweisungen aus.The operations of the methods described herein may be performed in any appropriate order unless otherwise specified herein or as is clear from the context. In at least one embodiment, a method as described herein (or variations and/or combinations thereof) is performed under the control of one or more computer systems configured with executable instructions and as code (e.g., executable instructions). or multiple computer programs or one or more applications) that are executed together on one or more processors, by hardware, or combinations thereof. In at least one embodiment, the code is stored on a computer-readable storage medium. In at least one embodiment, in the form of a computer program that includes a plurality of instructions that can be executed by one or more processors. In at least one embodiment, a computer-readable storage medium is a non-transitory computer-readable storage medium that excludes volatile signals (e.g., propagating transient electrical or electromagnetic transmission) but excludes non-volatile data storage circuits (e.g., buffers, cache, and queues). within the transceiver of volatile signals. In at least one embodiment, code (e.g., executable code or source code) is stored on a set of one or more non-transitory, computer-readable storage media on which executables Instructions (or other memory for storing executable instructions) are stored that, when executed by one or more processors of a computer system (ie, as a result of execution), cause the computer system to perform the operations described herein. In at least one embodiment, a set of non-transitory computer-readable storage media includes a plurality of non-transitory computer-readable storage media, wherein one or more of the individual non-transitory storage media of a plurality of non-transitory computer-readable storage media is missing all of the code while a plurality of non-transitory storage media are missing all code The entire code is stored together on computer-readable storage media. In at least one embodiment, executable instructions are executed such that different instructions are executed by different processors - in at least one embodiment, a non-transitory computer-readable storage medium stores instructions and a main central processing unit ("CPU") executes some of the instructions while a graphics processing unit ("GPU") ) executes other instructions. In at least one embodiment, different components of a computer system have separate processors, and different processors execute different subsets of instructions.
Dementsprechend sind Computersysteme gemäß mindestens einer Ausführungsform so ausgestaltet, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Operationen der hier beschriebenen Verfahren ausführen, und solche Computersysteme sind mit geeigneter Hardware ausgestaltet und/oder Software konfiguriert, die die Ausführung der Operationen ermöglichen. Darüber hinaus ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung implementiert, eine einzelne Einrichtung und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Einrichtungen umfasst, die unterschiedlich arbeiten, so dass das verteilte Computersystem die hier beschriebenen Operationen durchführt und dass eine einzelne Einrichtung nicht alle Operationen durchführt.Accordingly, according to at least one embodiment, computer systems are designed to implement one or more services that individually or collectively perform operations of the methods described herein, and such computer systems are designed with appropriate hardware and/or software that enable the operations to be performed. Furthermore, a computer system that implements at least one embodiment of the present disclosure is a single device, and in another embodiment, a distributed computer system that includes multiple devices that operate differently such that the distributed computer system performs the operations described herein and that a single one Facility does not perform all operations.
Die Verwendung von Beispielen oder beispielhafter Sprache (z.B. „wie z.B.“) dient lediglich der besseren Veranschaulichung von Ausführungsformen der Offenbarung und stellt keine Einschränkung des Umfangs der Offenbarung dar, sofern kein anderer Anspruch erhoben wird. Keine Formulierung in der Spezifikation sollte so ausgelegt werden, dass ein nicht beanspruchtes Element als wesentlich für die Praxis der Offenbarung angesehen wird.The use of examples or exemplary language (e.g., “such as.”) is intended solely to better illustrate embodiments of the disclosure and does not constitute a limitation on the scope of the disclosure, unless otherwise claimed. No language in the specification should be construed to deem any unclaimed element essential to the practice of the disclosure.
Alle Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, die hierin zitiert werden, werden hiermit durch Inbezugnahme in demselben Ausmaß einbezogen, als ob jede Referenz einzeln und ausdrücklich als durch Inbezugnahme einbezogen angegeben wäre und hier in ihrer Gesamtheit wiedergegeben würde.All references, including publications, patent applications and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and expressly stated to be incorporated by reference and reproduced herein in their entirety.
In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ sowie deren Ableitungen verwendet werden. Es ist klar, dass diese Begriffe nicht als Synonyme füreinander zu verstehen sind. Vielmehr kann in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt zueinanderstehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinanderstehen, aber dennoch zusammenarbeiten oder miteinander interagieren.The terms “coupled” and “connected” and their derivatives may be used in the description and claims. It is clear that these terms are not to be understood as synonyms for each other. Rather, in certain examples, “connected” or “coupled” may be used to indicate that two or more elements are in direct or indirect physical or electrical contact with one another. “Coupled” can also mean that two or more elements are not in direct contact with each other, but still work together or interact with each other.
Sofern nicht ausdrücklich etwas anderes angegeben ist, beziehen sich Begriffe wie „Verarbeiten“, „Rechnen“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Spezifikation auf Aktionen und/oder Verfahren bzw. Prozesse eines Computers oder eines Rechensystems oder einer ähnlichen elektronischen Recheneinrichtung, die Daten, die als physikalische, z. B. elektronische, Größen in den Registern und/oder Speichern des Rechensystems dargestellt werden, manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physikalische Größen in den Speichern, Registern oder anderen derartigen Einrichtungen zur Speicherung, Übertragung oder Anzeige von Informationen des Rechensystems dargestellt werden.Unless expressly stated otherwise, terms such as “processing”, “computing”, “computing”, “determining” or the like throughout the specification refer to actions and/or procedures of a computer or a computing system or similar electronic computing device, the data that is physical, e.g. B. electronic, quantities are represented in the registers and / or memories of the computing system, manipulate and / or convert them into other data, which are similarly represented as physical quantities in the memories, registers or other such devices for storing, transmitting or displaying information of the computing system can be displayed.
In ähnlicher Weise kann sich der Begriff „Prozessor“ auf eine Einrichtung oder einen Teil einer Einrichtung beziehen, die elektronische Daten aus Registern und/oder Speichern verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speichern gespeichert werden können. Als nicht einschränkende Beispiele kann der „Prozessor“ eine CPU oder eine GPU sein. Eine „Datenverarbeitungsplattform“ kann einen oder mehrere Prozessoren umfassen. Der Begriff „Software“-Prozesse bzw. „Software“-Verfahren kann bei mindestens einer Ausführungsform Software- und/oder Hardware-Einheiten einschließen, die im Laufe der Zeit Arbeit verrichten, wie z. B. Tasks, Threads und intelligente Agenten. Jedes Verfahren kann sich auch auf mehrere Verfahren beziehen, um Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. Die Begriffe „System“ und „Verfahren“ werden hier austauschbar verwendet, insofern ein System ein oder mehrere Verfahren umfassen kann und Verfahren als System betrachtet werden können.Similarly, the term “processor” may refer to a device or part of a device that processes electronic data from registers and/or memories and converts that electronic data into other electronic data that can be stored in registers and/or memories . As non-limiting examples, the “processor” may be a CPU or a GPU. A “computing platform” may include one or more processors. The term “software” processes or “software” methods may, in at least one embodiment, include software and/or hardware entities that perform work over time, such as: B. Tasks, threads and intelligent agents. Each method may also refer to multiple methods to execute instructions sequentially or in parallel, continuously or intermittently. The terms “system” and “procedure” are used interchangeably herein in that a system may include one or more procedures and procedures can be considered a system.
Bei mindestens einer Ausführungsform ist eine arithmetische Logikeinheit ein Satz kombinatorischer Logikschaltungen, der eine oder mehrere Eingaben verarbeitet, um ein Ergebnis zu erzeugen. Bei mindestens einer Ausführungsform wird eine arithmetische Logikeinheit von einem Prozessor verwendet, um mathematische Operationen wie Addition, Subtraktion oder Multiplikation durchzuführen. Bei mindestens einer Ausführungsform wird eine arithmetische Logikeinheit verwendet, um logische Operationen wie logisches UND/ODER oder XOR zu implementieren. Bei mindestens einer Ausführungsform ist eine arithmetische Logikeinheit zustandslos und besteht aus physikalischen Schaltkomponenten wie Halbleitertransistoren, die zur Bildung logischer Gatter angeordnet sind. Bei mindestens einer Ausführungsform kann eine arithmetische Logikeinheit intern als zustandsabhängige logische Schaltung mit einem zugehörigen Taktgeber arbeiten. Bei mindestens einer Ausführungsform kann eine arithmetische Logikeinheit als asynchrone logische Schaltung aufgebaut sein, deren interner Zustand nicht in einem zugehörigen Registersatz gehalten wird. Bei mindestens einer Ausführungsform wird eine arithmetische Logikeinheit von einem Prozessor verwendet, um in einem oder mehreren Registern des Prozessors gespeicherte Operanden zu kombinieren und eine Ausgabe zu erzeugen, die von dem Prozessor in einem anderen Register oder einem Speicherplatz gespeichert werden kann.In at least one embodiment, an arithmetic logic unit is a set of combinational logic circuits that processes one or more inputs to produce a result. In at least one embodiment, an arithmetic logic unit is used by a processor to perform mathematical operations such as addition, subtraction, or multiplication. In at least one embodiment, an arithmetic logic unit is used to implement logical operations such as logical AND/OR or XOR. In at least one embodiment, an arithmetic logic unit is stateless and consists of physical switching components such as semiconductor transistors arranged to form logic gates. In at least one embodiment, an arithmetic logic unit may operate internally as a state-dependent logic circuit with an associated clock. In at least one embodiment, an arithmetic logic unit may be constructed as an asynchronous logic circuit whose internal state is not held in an associated register set. In at least one embodiment, an arithmetic logic unit is used by a processor to combine operands stored in one or more registers of the processor and produce an output that can be stored by the processor in another register or a memory location.
Bei mindestens einer Ausführungsform übergibt der Prozessor als Ergebnis der Verarbeitung einer von dem Prozessor abgerufenen Anweisung eine oder mehrere Eingaben oder Operanden an eine arithmetische Logikeinheit, wodurch die arithmetische Logikeinheit veranlasst wird, ein Ergebnis zu erzeugen, das zumindest teilweise auf einem Anweisungscode bzw. Befehlscode basiert, der den Eingängen der arithmetischen Logikeinheit bereitgestellt wird. Bei mindestens einer Ausführungsform basieren die von dem Prozessor an die ALU gelieferten Befehlscodes zumindest teilweise auf einer von dem Prozessor ausgeführten Anweisung. Bei mindestens einer Ausführungsform verarbeitet die kombinatorische Logik in der ALU die Eingaben und erzeugt eine Ausgabe, die auf einen Bus innerhalb des Prozessors gelegt wird. Bei mindestens einer Ausführungsform wählt der Prozessor ein Zielregister, einen Speicherplatz, eine Ausgabeeinrichtung oder einen Ausgabespeicherplatz auf dem Ausgangsbus aus, so dass die Taktung des Prozessors bewirkt, dass die von der ALU erzeugten Ergebnisse an den gewünschten Ort gesendet werden.In at least one embodiment, as a result of processing an instruction fetched by the processor, the processor passes one or more inputs or operands to an arithmetic logic unit, causing the arithmetic logic unit to produce a result based at least in part on an instruction code , which is provided to the inputs of the arithmetic logic unit. In at least one embodiment, the instruction codes provided by the processor to the ALU are based at least in part on an instruction executed by the processor. In at least one embodiment, the combinational logic in the ALU processes the inputs and produces an output that is placed on a bus within the processor. In at least one embodiment, the processor selects a destination register, a memory location, an output device, or an output storage location on the output bus such that the clocking of the processor causes the results produced by the ALU to be sent to the desired location.
Im vorliegenden Dokument kann auf das Erhalten, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Subsystem, Computersystem oder eine computerimplementierte Maschine Bezug genommen werden. Bei mindestens einer Ausführungsform kann das Verfahren des Erhaltens, Erfassens, Empfangens oder Eingebens analoger und digitaler Daten auf verschiedene Weise erfolgen, z. B. durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In einigen Implementierungen kann das Verfahren des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch die Übertragung von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In einer anderen Implementierung kann das Verfahren des Erhaltens, Erfassens, Empfangens oder Eingebens analoger oder digitaler Daten durch die Übertragung von Daten über ein Computernetzwerk von der bereitstellenden Einheit zur erfassenden Einheit durchgeführt werden. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten Bezug genommen werden. In verschiedenen Beispielen kann das Verfahren des Bereitstellens, Ausgebens, Übertragens, Sendens oder Darstellens analoger oder digitaler Daten durch die Übertragung von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Interprozess-Kommunikationsmechanismus durchgeführt werden.This document may refer to obtaining, acquiring, receiving or inputting analog or digital data into a subsystem, computer system or computer-implemented machine. In at least one embodiment, the method of obtaining, acquiring, receiving, or inputting analog and digital data may be accomplished in various ways, e.g. B. by receiving data as a parameter of a function call or a call to an application programming interface. In some implementations, the method of obtaining, acquiring, receiving, or inputting analog or digital data may be performed by transmitting data over a serial or parallel interface. In another implementation, the method of obtaining, capturing, receiving or inputting analog or digital data may be performed by transmitting data over a computer network from the providing entity to the acquiring entity. It may also refer to providing, outputting, transmitting, sending or presenting analog or digital data. In various examples, the method of providing, outputting, transmitting, sending, or displaying analog or digital data may be performed by transmitting data as an input or output parameter of a function call, an application programming interface parameter, or an interprocess communication mechanism.
Obwohl die obige Diskussion beispielhafte Implementierungen der beschriebenen Verfahren darlegt, können andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und diese sollen auch in den Anwendungsbereich dieser Offenbarung fallen. Darüber hinaus können, obwohl spezifische Verteilungen von Verantwortlichkeiten oben zu Diskussionszwecken definiert sind, verschiedene Funktionen und Verantwortlichkeiten auf unterschiedliche Weise verteilt und aufgeteilt werden, abhängig von den Umständen.Although the above discussion sets forth example implementations of the described methods, other architectures may be used to implement the described functionality and are also intended to be within the scope of this disclosure. In addition, although specific distributions of responsibilities are defined above for discussion purposes, different functions and responsibilities may be distributed and divided in different ways depending on the circumstances.
Obwohl der Gegenstand in einer Sprache beschrieben wurde, die sich auf strukturelle Merkmale und/oder verfahrensspezifische Handlungen bezieht, ist zu verstehen, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht notwendigerweise auf die beschriebenen spezifischen Merkmale oder Aktionen bzw. Operationen beschränkt ist. Vielmehr sind bestimmte Merkmale und Aktionen als beispielhafte Formen der Umsetzung der Ansprüche offenbart.Although the subject matter has been described in language referring to structural features and/or method-specific actions, it is to be understood that the subject matter claimed in the appended claims is not necessarily limited to the specific features or actions or operations described. Rather, certain features and actions are disclosed as exemplary forms of implementing the claims.
Der Gegenstand der vorliegenden Offenbarung wird hier so genau beschrieben, dass er den gesetzlichen Anforderungen entspricht. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder in Betracht gezogen, dass der beanspruchte Gegenstand auch in anderen Ausführungsformen ausgestaltet werden kann, die andere Schritte oder Kombinationen von Schritten aufweisen, die den in diesem Dokument beschriebenen ähnlich sind, und zwar in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien. Obwohl die Begriffe „Schritt“ und/oder „Block“ hier verwendet werden können, um verschiedene Elemente der angewandten Verfahren zu bezeichnen, sollten die Begriffe nicht so ausgelegt werden, dass sie eine bestimmte Reihenfolge unter oder zwischen den verschiedenen hier offenbarten Schritten implizieren, es sei denn, die Reihenfolge der einzelnen Schritte wird ausdrücklich beschrieben.The subject matter of the present disclosure is described here in sufficient detail to meet legal requirements. However, the description itself is not intended to limit the scope of this disclosure. Rather, the inventors have considered that the claimed subject matter also exists in other embodiments may be designed to include other steps or combinations of steps similar to those described in this document in conjunction with other current or future technologies. Although the terms "step" and/or "block" may be used herein to refer to various elements of the methods employed, the terms should not be construed to imply any particular order among or between the various steps disclosed herein unless the sequence of the individual steps is expressly described.
Andere Variationen sind im Sinne der vorliegenden Offenbarung. Während die offengelegten Verfahren für verschiedene Modifikationen und alternative Konstruktionen anfällig sind, sind bestimmte dargestellte Ausführungsformen davon in den Zeichnungen gezeigt und oben im Detail beschrieben worden. Es sollte jedoch klar sein, dass nicht beabsichtigt ist, die Offenbarung auf eine bestimmte Form oder bestimmte Formen zu beschränken, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und den Umfang der Offenbarung fallen, wie es in den beigefügten Ansprüchen definiert ist.Other variations are within the meaning of the present disclosure. While the methods disclosed are susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof have been shown in the drawings and described in detail above. It should be understood, however, that the disclosure is not intended to be limited to any particular form or forms, but on the contrary is intended to cover all modifications, alternative constructions and equivalents that fall within the spirit and scope of the disclosure. as defined in the appended claims.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- US 17/477214 [0001]US 17/477214 [0001]
- US 16101232 [0194]US 16101232 [0194]
Claims (32)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202111034492 | 2021-07-30 | ||
IN202111034492 | 2021-07-30 | ||
US17/477,214 | 2021-09-16 | ||
US17/477,214 US11803668B2 (en) | 2021-07-30 | 2021-09-16 | Isolating a region of a system on a chip for safety critical operations |
PCT/US2022/038404 WO2023009559A1 (en) | 2021-07-30 | 2022-07-26 | Isolating a region of a system on a chip for safety critical operations |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112022001192T5 true DE112022001192T5 (en) | 2023-12-21 |
Family
ID=83192064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112022001192.0T Pending DE112022001192T5 (en) | 2021-07-30 | 2022-07-26 | Isolating an area of a system on a chip for safety-critical operations |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN116075810A (en) |
DE (1) | DE112022001192T5 (en) |
WO (1) | WO2023009559A1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3612425B1 (en) * | 2017-04-17 | 2023-01-04 | Mobileye Vision Technologies Ltd. | Secure system that includes driving related systems |
WO2019094843A1 (en) * | 2017-11-10 | 2019-05-16 | Nvidia Corporation | Systems and methods for safe and reliable autonomous vehicles |
KR102504660B1 (en) * | 2018-02-05 | 2023-03-02 | 삼성전자주식회사 | Application processor, automotive electronic processor, and computing device including application processor |
US11774487B2 (en) * | 2020-01-02 | 2023-10-03 | Texas Instruments Incorporated | Electrical and logic isolation for systems on a chip |
-
2022
- 2022-07-26 DE DE112022001192.0T patent/DE112022001192T5/en active Pending
- 2022-07-26 WO PCT/US2022/038404 patent/WO2023009559A1/en active Application Filing
- 2022-07-26 CN CN202280005746.4A patent/CN116075810A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116075810A (en) | 2023-05-05 |
WO2023009559A1 (en) | 2023-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112020002126T5 (en) | DETECTION OF CROSSING POSES IN AUTONOMOUS MACHINE APPLICATIONS | |
DE112020002602T5 (en) | MULTI-OBJECT TRACKING USING CORRELATION FILTERS IN VIDEO ANALYSIS APPLICATIONS | |
DE112020003043T5 (en) | DETECTION AND CLASSIFICATION OF CROSSROADS REGIONS FOR AUTONOMOUS MACHINE APPLICATIONS | |
DE112021000135T5 (en) | SENSOR FUSION FOR AUTONOMOUS MACHINE APPLICATIONS THROUGH MACHINE LEARNING | |
DE112020006410T5 (en) | THREE-DIMENSIONAL INTERSECTION STRUCTURE PREDICTION FOR AUTONOMOUS DRIVING APPLICATIONS | |
DE112020002166T5 (en) | SIMULATION OF REALISTIC TEST DATA FROM TRANSFORMED REAL WORLD SENSOR DATA FOR AUTONOMOUS MACHINE APPLICATIONS | |
DE112020000369T5 (en) | OBJECT DETECTION USING DISTORTED POLYGONS SUITABLE FOR PARKING DETECTION | |
DE102021121558A1 (en) | NEURAL NETWORK BASED GAZE DIRECTION DETERMINATION USING SPATIAL MODELS | |
DE102020117792A1 (en) | EFFECTIVE USE OF OBSTACLE AND TRACK DETECTION TO DETERMINE TRACK ALLOCATIONS FOR OBJECTS IN AN ENVIRONMENT | |
DE102021100065A1 (en) | USE OF NEURONAL NETWORKS FOR ERROR DETECTION IN APPLICATIONS FOR AUTONOMOUS DRIVING | |
DE102021123159A1 (en) | ADAPTIVE OBJECT TRACKING ALGORITHM FOR AUTONOMOUS MACHINE APPLICATIONS | |
DE112020001400T5 (en) | ITERATIVE GENERATION OF SPATIAL GRAPHS | |
DE102019113114A1 (en) | BEHAVIOR-CONTROLLED ROUTE PLANNING IN AUTONOMOUS MACHINE APPLICATIONS | |
DE112020006181T5 (en) | EYE DETERMINATION WITH GLARE AS INPUT | |
DE112021000104T5 (en) | PROJECTING IMAGES TAKEN WITH FISHEYE LENSES FOR FEATURE RECOGNITION IN AUTONOMOUS MACHINE APPLICATIONS | |
DE102022121121A1 (en) | Object tracking using LiDAR data for autonomous machine applications | |
DE102022123130A1 (en) | TRAINING OBJECT RECOGNITION MODELS USING TRANSFER LEARNERS | |
DE102021105245A1 (en) | USING IMAGE AUGMENTATION WITH SIMULATED OBJECTS TO TRAIN MACHINE LEARNING MODELS IN AUTONOMOUS DRIVING APPLICATIONS | |
DE102022114516A1 (en) | MULTI-FREQUENCY VOLTAGE MONITORING FOR AUTONOMOUS MACHINE APPLICATIONS | |
DE102022118649A1 (en) | Belief propagation for distance image mapping in autonomous machine applications | |
DE102022117298A1 (en) | COMBINATION QUALITY ASSESSMENT FOR ALL-ROUND VISION SYSTEMS | |
DE102021128559A1 (en) | SECURITY DECOMPOSITION FOR PATH DETERMINATION IN AUTONOMOUS SYSTEMS | |
DE102020130749A1 (en) | SYSTEM FOR MACHINE LEARNING FOR EYE DETERMINATION WITH ADAPTIVE WEIGHTING OF INPUTS | |
DE102020131353A1 (en) | FACIAL ANALYSIS BASED ON A NEURAL NETWORK USING FACE LANDMARKS AND RELATED TRUSTED VALUES | |
DE102022117475A1 (en) | TRANSMITTING ERRORS TO AN ISOLATED SECURITY AREA OF A SYSTEM ON A CHIP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |