Patent Description:
In general, a vehicle, such as an autonomous vehicle, may include various sensors for perceiving a surrounding of the vehicle. Data generated by these sensors may be provided to other devices in the vehicle, such as processing elements for processing the sensor data. However, the sensors may generate a high amount of data, which are streamed to the other devices, resulting in a high expenditure of time. Further, e.g. in autonomous driving, data processing is time-critical, so that a high expenditure of time may lead to the fact that the data are already outdated when processed. To handle the dissemination of the high amount data from the sensors to the processing elements, in order to ensure a real-time constraint of the processing, additional material costs may arise. Therefore, it may be necessary that a data throughput is increased and/or that material costs are reduced.

<CIT> discloses operating electronic controller units (ECUs) across multiple ECU domains in an automotive configuration. A first advanced driver-assistance system (ADAS) environmental sensor generates a first output, and a sensor connectivity switch directs the first output to a first ECU in one of the non-ADAS domains to generate a second output. A second ECU in a domain for ADAS uses the second output to perform an ADAS operation or autonomous driving in vehicular environments.

<CIT> discloses detecting an operating characteristic of an industrial machine using one or more sensors of a mobile data collector, transmitting data indicative of the operating characteristic to a server over a network, and using intelligent systems associated with the server to process the operating characteristic against pre-recorded data for the industrial machine. Other aspects include identifying, as a condition of the industrial machine, a characteristic indicated by the pre-recorded data for the industrial machine within the knowledge base, determining a severity of the condition, the severity representing an impact of the condition on the industrial machine, predicting a maintenance action to perform against the industrial machine based on the severity of the condition, and storing a transaction record of the predicted maintenance action within a ledger of service activity associated with the industrial machine.

<CIT> discloses aggregating and converting data in a vehicle network, where a plurality of streams of sensor data is received over two or more Camera Serial Interfaces. The plurality of streams may be a packetized aggregate stream that arranges transmission format bits at appropriate bit positions of the packet data stream for transmitting the packet data stream over a vehicle on-board packet data link.

The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the disclosure. In the following description, various aspects of the disclosure are described with reference to the following drawings, in which:.

The following detailed description refers to the accompanying drawings that show, by way of illustration, exemplary details and aspects in which the disclosure may be practiced.

The word "exemplary" is used herein to mean "serving as an example, instance, or illustration". Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs.

The terms "at least one" and "one or more" may be understood to include a numerical quantity greater than or equal to one (e.g., one, two, three, four, [. The term "a plurality" may be understood to include a numerical quantity greater than or equal to two (e.g., two, three, four, five, [.

The words "plural" and "multiple" in the description and in the claims expressly refer to a quantity greater than one. Accordingly, any phrases explicitly invoking the aforementioned words (e.g., "plural [elements]", "multiple [elements]") referring to a quantity of elements expressly refers to more than one of the said elements. The phrases "group (of)", "set (of)", "collection (of)", "series (of)", "sequence (of)", "grouping (of)", etc., and the like in the description and in the claims, if any, refer to a quantity equal to or greater than one, i.e., one or more. The phrases "proper subset", "reduced subset", and "lesser subset" refer to a subset of a set that is not equal to the set, illustratively, referring to a subset of a set that contains less elements than the set.

The phrase "at least one of" with regard to a group of elements may be used herein to mean at least one element from the group including the elements. For example, the phrase "at least one of" with regard to a group of elements may be used herein to mean a selection of: one of the listed elements, a plurality of one of the listed elements, a plurality of individual listed elements, or a plurality of a multiple of individual listed elements.

The term "data" as used herein may be understood to include information in any suitable analog or digital form, e.g., provided as a file, a portion of a file, a set of files, a signal or stream, a portion of a signal or stream, a set of signals or streams, and the like. Further, the term "data" may also be used to mean a reference to information, e.g., in form of a pointer. The term "data", however, is not limited to the aforementioned examples and may take various forms and represent any information as understood in the art.

The terms "processor" or "controller" as, for example, used herein may be understood as any kind of technological entity that allows handling of data. The data may be handled according to one or more specific functions executed by the processor or controller. Further, a processor or controller as used herein may be understood as any kind of circuit, e.g., any kind of analog or digital circuit, and may also be referred to as a "processing element", "processing elements", "processing circuit," "processing circuitry," among others. A processor or a controller may thus be or include an analog circuit, digital circuit, mixed-signal circuit, logic circuit, processor, microprocessor, Central Processing Unit (CPU), Graphics Processing Unit (GPU), Digital Signal Processor (DSP), Field Programmable Gate Array (FPGA), integrated circuit, Application Specific Integrated Circuit (ASIC), Artificial Intelligence (AI) processor, Artificial Intelligence (AI) accelerator module, etc., or any combination thereof. Any other kind of implementation of the respective functions, which will be described below in further detail, may also be understood as a processor, controller, or logic circuit. It is understood that any two (or more) of the processors, controllers, or logic circuits detailed herein may be realized as a single entity with equivalent functionality, among others, and conversely that any single processor, controller, or logic circuit detailed herein may be realized as two (or more) separate entities with equivalent functionality, among others.

The term "real-time" as used herein with respect to a processing (e.g., by a processor) may be understood as a time constraint to perform the processing. For example, a processor processing data in real-time may be understood as a time constraint (e.g., of less than a second, e.g., of less than a millisecond, e.g., of less than hundred microseconds, etc.) between receiving the data and providing an output for the data. For example, a vehicle processing data in real-time may be understood as a time constraint (e.g., of less than two seconds, e.g., of less than one second, e.g., of less than hundred milliseconds, etc.) between detecting data by one or more data ingestion devices and providing control instructions for controlling the vehicle (or performing the control of the vehicle). In some aspects, the time constraint between the detection of data by one or more data ingestion devices and a control of the vehicle based on the detected data may be referred to as reaction time of the vehicle.

As used herein, "memory" is understood as a computer-readable medium in which data or information can be stored for retrieval. References to "memory" included herein may thus be understood as referring to volatile or non-volatile memory, including random access memory (RAM), read-only memory (ROM), flash memory, solid-state storage, magnetic tape, hard disk drive, optical drive, among others, or any combination thereof. Registers, shift registers, processor registers, data buffers, among others, are also embraced herein by the term memory. References to a "memory" included herein may also be understood as a non-transitory memory. The term "software" refers to any type of executable instruction, including firmware.

Unless explicitly specified, the term "transmit" encompasses both direct (point-to-point) and indirect transmission (via one or more intermediary points). Similarly, the term "receive" encompasses both direct and indirect reception. Furthermore, the terms "transmit," "receive," "communicate," and other similar terms encompass both physical transmission (e.g., the transmission of radio signals) and logical transmission (e.g., the transmission of digital data over a logical software-level connection). For example, a processor or controller may transmit or receive data over a software-level connection with another processor or controller in the form of radio signals, where the physical transmission and reception is handled by radio-layer components such as RF transceivers and antennas, and the logical transmission and reception over the software-level connection is performed by the processors or controllers. For example, a processor or controller may transmit or receive data from other devices over a wireline link (in some aspects referred to as wired connection or as wireline connection), such as an Ethernet link, a MIPI (Mobile Industry Processor Interface Alliance) link, a Peripheral Component Interconnect Express (PCIe) link, etc. It is understood that a wireline link between a first device and a second device may include more than one type of link and may include a link via another device. Further, a connection between a first device and a second device may also include a combination of wireline and wireless link via other devices. A wireline link may use any kind of packet based protocol, such as high bandwidth protocols.

The term "communicate" encompasses one or both of transmitting and receiving, i.e., unidirectional or bidirectional communication in one or both of the incoming and outgoing directions. The term "calculate" encompasses both 'direct' calculations via a mathematical expression/formula/relationship and 'indirect' calculations via lookup or hash tables and other array indexing or searching operations.

The term "wireline interface" may also refer to a wireline data link layer interface. The data link layer may be layer <NUM> in the OSI model. A "wireline data link layer interface" may refer to a data link layer associated with a wireline protocol, such as Ethernet, MIPI CSI, SATA, PCIe, etc. Hence, a wireline data link layer may be associated with a wireline network.

A "vehicle" may be understood to include any type of driven or drivable object. By way of example, a vehicle may be a driven object with a combustion engine, a reaction engine, an electrically driven object, a hybrid driven object, or a combination thereof. A vehicle may be or may include an automobile, a bus, a mini bus, a van, a truck, a mobile home, a vehicle trailer, a motorcycle, a bicycle, a tricycle, a train locomotive, a train wagon, a moving robot, a personal transporter, a boat, a ship, a submersible, a submarine, a drone, an aircraft, a rocket, among others.

A "vehicle" may be, for example, a ground vehicle, an aerial vehicle, or an aquatic vehicle. A "ground vehicle" may be understood to include any type of vehicle, as described above, which is configured to traverse or be driven on the ground, e.g., on a street, on a road, on a track, on one or more rails, off-road, etc. An "aerial vehicle" may be understood to be any type of vehicle, as described above, which is capable of being maneuvered above the ground for any duration of time, e.g., a drone. Similar to a ground vehicle having wheels, belts, etc., for providing mobility on terrain, an "aerial vehicle" may have one or more propellers, wings, fans, among others, for providing the ability to maneuver in the air. An "aquatic vehicle" may be understood to be any type of vehicle, as described above, which is capable of being maneuvers on or below the surface of liquid, e.g., a boat on the surface of water or a submarine below the surface. It is appreciated that some vehicles may be configured to operate as one of more of a ground, an aerial, and/or an aquatic vehicle.

The term "autonomous vehicle" may describe a vehicle capable of implementing at least one navigational change without driver input. A navigational change may describe or include a change in one or more of steering, braking, or acceleration/deceleration of the vehicle. A vehicle may be described as autonomous even in case the vehicle is not fully automatic (e.g., fully operational with driver input or without driver input). Autonomous vehicles may include those vehicles that can operate under driver control during certain time periods and without driver control during other time periods. Autonomous vehicles may also include vehicles that control only some aspects of vehicle navigation, such as steering (e.g., to maintain a vehicle course between vehicle lane constraints) or some steering operations under certain circumstances (but not under all circumstances), but may leave other aspects of vehicle navigation to the driver (e.g., braking or braking under certain circumstances). Autonomous vehicles may also include vehicles that share the control of one or more aspects of vehicle navigation under certain circumstances (e.g., hands-on, such as responsive to a driver input) and vehicles that control one or more aspects of vehicle navigation under certain circumstances (e.g., hands-off, such as independent of driver input). Autonomous vehicles may also include vehicles that control one or more aspects of vehicle navigation under certain circumstances, such as under certain environmental conditions (e.g., spatial areas, roadway conditions). In some aspects, autonomous vehicles may handle some or all aspects of braking, speed control, velocity control, and/or steering of the vehicle. An autonomous vehicle may include those vehicles that can operate without a driver. The level of autonomy of a vehicle may be described or determined by the Society of Automotive Engineers (SAE) level of the vehicle (e.g., as defined by the SAE, for example in SAE J3016 <NUM>: Taxonomy and definitions for terms related to driving automation systems for on road motor vehicles) or by other relevant professional organizations. The SAE level may have a value ranging from a minimum level, e.g. level <NUM> (illustratively, substantially no driving automation), to a maximum level, e.g. level <NUM> (illustratively, full driving automation).

In the context of the present disclosure, "vehicle operation data" may be understood to describe any type of feature related to the operation of a vehicle. By way of example, "vehicle operation data" may describe the status of the vehicle, such as the type of propulsion unit(s), types of tires or propellers of the vehicle, the type of vehicle, and/or the age of the manufacturing of the vehicle. More generally, "vehicle operation data" may describe or include static features or static vehicle operation data (illustratively, features or data not changing over time). As another example, additionally or alternatively, "vehicle operation data" may describe or include features changing during the operation of the vehicle, for example, environmental conditions, such as weather conditions or road conditions during the operation of the vehicle, fuel levels, fluid levels, operational parameters of the driving source of the vehicle, etc. More generally, "vehicle operation data" may describe or include varying features or varying vehicle operation data (illustratively, time-varying features or data).

Various aspects herein may utilize one or more machine learning models to perform or control functions of the vehicle (or other functions described herein). The term "model" as, for example, used herein may be understood as any kind of algorithm, which provides output data from input data (e.g., any kind of algorithm generating or calculating output data from input data). A machine learning model may be executed by a computing system to progressively improve performance of a specific task. In some aspects, parameters of a machine learning model may be adjusted during a training phase based on training data. Various aspects may use a trained machine learning model during an inference phase to make predictions or decisions based on input data. Various aspects may use the trained machine learning model to generate additional training data. Various aspects may adjust an additional machine learning model during a second training phase based on the generated additional training data. Various aspects may use a trained additional machine learning model during an inference phase to make predictions or decisions based on input data.

The machine learning models described herein may take any suitable form or utilize any suitable technique (e.g., for training purposes). For example, any of the machine learning models may utilize supervised learning, semi-supervised learning, unsupervised learning, or reinforcement learning techniques.

In supervised learning, the model may be built using a training set of data including both the inputs and the corresponding desired outputs (illustratively, each input may be associated with a desired or expected output for that input). Each training instance may include one or more inputs and a desired output. Training may include iterating through training instances and using an objective function to teach the model to predict the output for new inputs (illustratively, for inputs not included in the training set). In semi-supervised learning, a portion of the inputs in the training set may be missing the respective desired outputs (e.g., one or more inputs may not be associated with any desired or expected output).

In unsupervised learning, the model may be built from a training set of data including only inputs and no desired outputs. Various aspects may use the unsupervised model to find structure in the data (e.g., grouping or clustering of data points), illustratively, by discovering patterns in the data. Techniques that may be implemented in an unsupervised learning model may include, e.g., self-organizing maps, nearest-neighbor mapping, k-means clustering, and singular value decomposition.

Reinforcement learning models may include positive or negative feedback to improve accuracy. A reinforcement learning model may attempt to maximize one or more objectives/rewards. Techniques that may be implemented in a reinforcement learning model may include, e.g., Q-learning, temporal difference (TD), and deep adversarial networks.

Various aspects described herein may utilize one or more classification models. In a classification model, the outputs may be restricted to a limited set of values (e.g., one or more classes). The classification model may output a class for an input set of one or more input values. An input set may include sensor data, such as image data, radar data, LIDAR data, among others. A classification model as described herein may, for example, classify certain driving conditions and/or environmental conditions, such as weather conditions, road conditions, among others. References herein to classification models may contemplate a model that implements, e.g., any one or more of the following techniques: linear classifiers (e.g., logistic regression or naive Bayes classifier), support vector machines, decision trees, boosted trees, random forest, neural networks, or nearest neighbor.

Various aspects described herein may utilize one or more regression models. A regression model may output a numerical value from a continuous range based on an input set of one or more values (illustratively, starting from or using an input set of one or more values). References herein to regression models may contemplate a model that implements, e.g., any one or more of the following techniques (or other suitable techniques): linear regression, decision trees, random forest, or neural networks.

A machine learning model described herein may be or may include a neural network. The neural network may be any kind of neural network, such as a convolutional neural network, an autoencoder network, a variational autoencoder network, a sparse autoencoder network, a recurrent neural network, a deconvolutional network, a generative adversarial network, a forward-thinking neural network, a sum-product neural network, among others. The neural network may include any number of layers. The training of the neural network (e.g., adapting the layers of the neural network) may use or may be based on any kind of training principle, such as backpropagation (e.g., using the backpropagation algorithm).

Throughout the disclosure, the following terms may be used as synonyms: data, sensor data, sensor information, detected information, measured information, parameter. These terms may correspond to groups of values generated by a sensor and used to implement one or more models for directing a vehicle to operate according to the manners described herein.

Furthermore, throughout the disclosure, the following terms may be used as synonyms: data ingestion device, data ingestion unit, data acquisition device, data acquisition unit and may correspond to an entity (e.g., device, e.g., unit) configured to obtain (e.g., to ingest, to acquire, to sense, and/or to detect) data.

Furthermore, throughout the disclosure, the following terms may be used as synonyms: wireline link, wireline connection, wired connection, wired link, hardwired connection, hardwired link and may correspond to a transmission medium different from air (e.g., different from wireless communication, such as WIFI, Bluetooth, <NUM>, <NUM>, <NUM>, etc.). For example, a physical wire may be used to establish a wireline link.

Furthermore, throughout the disclosure, the following terms may be used as synonyms: memory device, storage device, data storage device, data logger, content logger and may correspond to a device for storing data.

In order to control an autonomous vehicle, a high amount of data (e.g., up to <NUM> terabytes per hour) may be streamed from a plurality of sensors to processors (e.g., to an AI accelerator module) and (real-time) processed by the processors. Further, the data may be streamed to a memory in the vehicle for storage. However, the data processing is time-critical, so that a high expenditure of time may lead to the fact that the data are already outdated when processed. Therefore, it may be necessary that a data throughput from the plurality of sensors to the processors and/or the memory is increased. Further, it may be desirable to achieve the increased data throughput without an increase in material cost. According to various aspects of the disclosure, a device is provided, which is capable to increase the data throughput in a (wireline) network without an increase in material cost. For example, the device may, in at least one aspect, generate a coded packet including a plurality of data streams from various sensors and transmit the coded packet to the processors and/or the memory.

<FIG> shows a vehicle <NUM> including a mobility system <NUM> and a control system <NUM> (see also <FIG>) in accordance with various aspects of the disclosure. It is appreciated that vehicle <NUM> and control system <NUM> are exemplary in nature and may thus be simplified for explanatory purposes. For example, while vehicle <NUM> is depicted as a ground vehicle, aspects of this disclosure may be equally or analogously applied to aerial vehicles (such as drones) or aquatic vehicles (such as boats). Furthermore, the quantities and locations of elements, as well as relational distances (as discussed above, the figures are not to scale) are provided as examples and are not limited thereto. The components of vehicle <NUM> may be arranged around a vehicular housing of vehicle <NUM>, mounted on or outside of the vehicular housing, enclosed within the vehicular housing, or any other arrangement relative to the vehicular housing where the components move with vehicle <NUM> as it travels. The vehicular housing, such as, an automobile body, drone body, plane or helicopter fuselage, boat hull, or similar type of vehicular body is dependent on the type of vehicle implemented as vehicle <NUM>.

In addition to including a control system <NUM>, vehicle <NUM> may also include a mobility system <NUM>. Mobility system <NUM> may include components of vehicle <NUM> related to steering and movement of vehicle <NUM>. In some aspects, where vehicle <NUM> is an automobile, for example, mobility system <NUM> may include wheels and axles, a suspension, an engine, a transmission, brakes, a steering wheel, associated electrical circuitry and wiring, and any other components used in the driving of an automobile. In some aspects, where vehicle <NUM> is an aerial vehicle, mobility system <NUM> may include one or more of rotors, propellers, jet engines, wings, rudders or wing flaps, air brakes, a yoke or cyclic, associated electrical circuitry and wiring, and any other components used in the flying of an aerial vehicle. In some aspects, where vehicle <NUM> is an aquatic or sub-aquatic vehicle, mobility system <NUM> may include any one or more of rudders, engines, propellers, a steering wheel, associated electrical circuitry and wiring, and any other components used in the steering or movement of an aquatic vehicle. In some aspects, mobility system <NUM> may also include autonomous driving functionality, and accordingly may include an interface with one or more processors <NUM> (e.g., a processing circuitry) configured to perform autonomous driving computations and decisions and an array of sensors for movement and obstacle sensing. In this sense, the mobility system <NUM> may be provided with instructions to direct the navigation and/or mobility of vehicle <NUM> from one or more components of the control system <NUM> (in some aspects referred to as autonomous vehicle platform). The autonomous driving components of mobility system <NUM> may also interface with one or more radio frequency (RF) transceivers <NUM> to facilitate mobility coordination with other nearby vehicular communication devices and/or central networking components that perform decisions and/or computations related to autonomous driving.

The control system <NUM> may include various components depending on the particular implementation. As shown in <FIG> and <FIG>, the control system <NUM> may include one or more processors <NUM>, one or more memories <NUM>, an antenna system <NUM> which may include one or more antenna arrays at different locations on the vehicle for radio frequency (RF) coverage, one or more radio frequency (RF) transceivers <NUM>, one or more data ingestion devices <NUM> (in some aspects referred to as data acquisition devices), one or more position devices <NUM> which may include components and circuitry for receiving and determining a position based on a Global Navigation Satellite System (GNSS) and/or a Global Positioning System (GPS), and one or more measurement sensors <NUM>, e.g. speedometer, altimeter, gyroscope, velocity sensors, etc..

The control system <NUM> may be configured to control the vehicle's <NUM> mobility via mobility system <NUM> and/or interactions with its environment, e.g. communications with other devices or network infrastructure elements (NIEs) such as base stations, via data ingestion devices <NUM> and the radio frequency communication arrangement including the one or more RF transceivers <NUM> and antenna system <NUM>.

The one or more processors <NUM> may include a data ingestion processor <NUM>, an application processor <NUM>, a communication processor <NUM>, and/or any other suitable processing device. Each processor <NUM>, <NUM>, <NUM> of the one or more processors <NUM> may include various types of hardware-based processing devices. By way of example, each processor <NUM>, <NUM>, <NUM> may include a microprocessor, pre-processors (such as an image pre-processor), graphics processors, a central processing unit (CPU), support circuits, digital signal processors, integrated circuits, memory, or any other types of devices suitable for running applications and for image processing and analysis. In some aspects, each processor <NUM>, <NUM>, <NUM> may include any type of single or multi-core processor, mobile device microcontroller, central processing unit, etc. These processor types may each include multiple processing units with local memory and instruction sets. Such processors may include video inputs for receiving image data from multiple image sensors and may also include video out capabilities.

Any of the processors <NUM>, <NUM>, <NUM> disclosed herein may be configured to perform certain functions in accordance with program instructions which may be stored in a memory of the one or more memories <NUM>. In other words, a memory of the one or more memories <NUM> may store software that, when executed by a processor (e.g., by the one or more processors <NUM>), controls the operation of the system, e.g., a driving and/or safety system. A memory of the one or more memories <NUM> may store one or more databases and image processing software, as well as a trained system, such as a neural network, or a deep neural network, for example. The one or more memories <NUM> may include any number of random-access memories, read only memories, flash memories, disk drives, optical storage, tape storage, removable storage and other types of storage. Alternatively, each of processors <NUM>, <NUM>, <NUM> may include an internal memory for such storage.

The data ingestion processor <NUM> may include processing circuity, such as a CPU, for processing data acquired by data ingestion devices <NUM>. For example, if one or more data ingestion devices are implemented as image acquisition units, e.g. one or more cameras, then the data ingestion processor may include image processors for processing image data using the information obtained from the image acquisition units as an input. The data ingestion processor <NUM> may, therefore, be configured to create voxel maps detailing the surrounding of the vehicle <NUM> based on the data input from the data ingestion devices <NUM> (e.g., cameras). According to various aspects, the data ingestion processor <NUM> may include one or more artificial intelligence (AI) accelerator modules.

An AI accelerator module, as used herein, may be a module configured to perform one or more machine learning tasks, such as employing neural networks. An AI accelerator module may refer to a specialized hardware accelerator or computer system designed to accelerate artificial intelligence (AI) applications, such as artificial neural networks, recurrent neural network, machine vision, and/or machine learning. An AI accelerator module may employ algorithms for robotics, internet of things, and/or other data-intensive or sensor-driven tasks. An AI accelerator module may refer to a system on module. An AI accelerator module may be configured to provide a hardware acceleration for neural networks (e.g., deep neural networks). An AI accelerator module may include one or more interfaces and a plurality of AI chips. An AI accelerator module may include a system on chip (SOC) including the plurality of AI chips. The AI accelerator module may be a multi-core accelerator and each of the plurality of AI chips may refer to a core of the multi-core accelerator. According to various aspects, an AI accelerator module may include further parts or components, such as one or more of a fan for cooling, a monitoring sensor, a control sensor, a housing, etc..

The control system <NUM> may include one or more (network) devices <NUM>, such as one or more (network) switches. Each of the devices <NUM> may be connected to one or more of the data ingestion devices <NUM> via a respective wireline link and may configured to transmit data received from the one or more data ingestion devices <NUM> to the one or more processors <NUM> (e.g., to the data ingestion processor <NUM>) via a corresponding wireline link. The device <NUM> may be configured to transmit data received from the one or more data ingestion devices <NUM> to the memory <NUM> via a corresponding wireline connection. For example, if the one or more data ingestion devices are implemented as image acquisition units, e.g. one or more cameras, then the device <NUM> may receive the data generated by the one or more data ingestion devices via a Mobile Industry Processor Interface Camera Serial Interface (MIPI CSI, i.e., a Camera Serial Interface in accordance with the Mobile Industry Processor Interface Alliance), such as MIPI CSI, MIPI CSI-<NUM>, and/or MIPI CSI-<NUM>, etc. For example, if the one or more data ingestion devices are implemented as proximity acquisition units, e.g. one or more LIDAR sensors and/or radar sensors, then the device <NUM> may receive the data generated by the one or more data ingestion devices via an Ethernet link. The device <NUM> may be configured to transmit data to the one or more processors <NUM> via any kind of suitable wireline link, such as Peripheral Component Interconnect Express (PCIe), MIPI CSI, etc. The device <NUM> may be configured to transmit data to the memory <NUM> via any kind of suitable wireline link, such as Ethernet, Serial AT Attachment (SATA), etc..

Application processor <NUM> may be a CPU, and may be configured to handle the layers above the protocol stack, including the transport and application layers. Application processor <NUM> may be configured to execute various applications and/or programs of vehicle <NUM> at an application layer of vehicle <NUM>, such as an operating system (OS), a user interfaces (UI) <NUM> for supporting user interaction with vehicle <NUM>, and/or various user applications. Application processor <NUM> may interface with communication processor <NUM> and act as a source (in the transmit path) and a sink (in the receive path) for data (e.g., user data), such as voice data, audio/video/image data, messaging data, application data, basic Internet/web access data, etc. In the transmit path, communication processor <NUM> may therefore receive and process outgoing data provided by application processor <NUM> according to the layer-specific functions of the protocol stack, and provide the resulting data to digital signal processor <NUM>. Communication processor <NUM> may then perform physical layer processing on the received data to produce digital baseband samples, which digital signal processor may provide to RF transceiver(s) <NUM>. RF transceiver(s) <NUM> may then process the digital baseband samples to convert the digital baseband samples to analog RF signals, which RF transceiver(s) <NUM> may wirelessly transmit via antenna system <NUM>. In the receive path, RF transceiver(s) <NUM> may receive analog RF signals from antenna system <NUM> and process the analog RF signals to obtain digital baseband samples. RF transceiver(s) <NUM> may provide the digital baseband samples to communication processor <NUM>, which may perform physical layer processing on the digital baseband samples. Communication processor <NUM> may then provide the resulting data to other processors of the one or more processors <NUM>, which may process the resulting data according to the layer-specific functions of the protocol stack and provide the resulting incoming data to application processor <NUM>. Application processor <NUM> may then handle the incoming data at the application layer, which can include execution of one or more application programs with the data and/or presentation of the data to a user via one or more user interfaces <NUM>. User interfaces <NUM> may include one or more screens, microphones, mice, touchpads, keyboards, or any other interface providing a mechanism for user input.

The communication processor <NUM> may include a digital signal processor and/or a controller which may direct such communication functionality of vehicle <NUM> according to the communication protocols associated with one or more radio access networks, and may execute control over antenna system <NUM> and RF transceiver(s) <NUM> to transmit and receive radio signals according to the formatting and scheduling parameters defined by each communication protocol. Although various practical designs may include separate communication components for each supported radio communication technology (e.g., a separate antenna, RF transceiver, digital signal processor, and controller), for purposes of conciseness, the configuration of vehicle <NUM> shown in <FIG> and <FIG> may depict only a single instance of such components.

Vehicle <NUM> may transmit and receive wireless signals with antenna system <NUM>, which may be a single antenna or an antenna array that includes multiple antenna elements. In some aspects, antenna system <NUM> may additionally include analog antenna combination and/or beamforming circuitry. In the receive (RX) path, RF transceiver(s) <NUM> may receive analog radio frequency signals from antenna system <NUM> and perform analog and digital RF front-end processing on the analog radio frequency signals to produce digital baseband samples (e.g., In-Phase/Quadrature (IQ) samples) to provide to communication processor <NUM>. RF transceiver(s) <NUM> may include analog and digital reception components including amplifiers (e.g., Low Noise Amplifiers (LNAs)), filters, RF demodulators (e.g., RF IQ demodulators)), and analog-to-digital converters (ADCs), which RF transceiver(s) <NUM> may utilize to convert the received radio frequency signals to digital baseband samples. In the transmit (TX) path, RF transceiver(s) <NUM> may receive digital baseband samples from communication processor <NUM> and perform analog and digital RF front-end processing on the digital baseband samples to produce analog radio frequency signals to provide to antenna system <NUM> for wireless transmission. RF transceiver(s) <NUM> may thus include analog and digital transmission components including amplifiers (e.g., Power Amplifiers (PAs), filters, RF modulators (e.g., RF IQ modulators), and digital-to-analog converters (DACs), which RF transceiver(s) <NUM> may utilize to mix the digital baseband samples received from communication processor <NUM> and produce the analog radio frequency signals for wireless transmission by antenna system <NUM>. In some aspects, communication processor <NUM> may control the radio transmission and reception of RF transceiver(s) <NUM>, including specifying the transmit and receive radio frequencies for operation of RF transceiver(s) <NUM>.

According to some aspects, communication processor <NUM> includes a baseband modem configured to perform physical layer (PHY, Layer <NUM>) transmission and reception processing to, in the transmit path, prepare outgoing transmit data provided by communication processor <NUM> for transmission via RF transceiver(s) <NUM>, and, in the receive path, prepare incoming received data provided by RF transceiver(s) <NUM> for processing by communication processor <NUM>. The baseband modem may include a digital signal processor and/or a controller. The digital signal processor may be configured to perform one or more of error detection, forward error correction encoding/decoding, channel coding and interleaving, channel modulation/demodulation, physical channel mapping, radio measurement and search, frequency and time synchronization, antenna diversity processing, power control and weighting, rate matching/de-matching, retransmission processing, interference cancelation, and any other physical layer processing functions. The digital signal processor may be structurally realized as hardware components (e.g., as one or more digitally-configured hardware circuits or FPGAs), software-defined components (e.g., one or more processors configured to execute program code defining arithmetic, control, and I/O instructions (e.g., software and/or firmware) stored in a non-transitory computer-readable storage medium), or as a combination of hardware and software components. In some aspects, the digital signal processor may include one or more processors configured to retrieve and execute program code that defines control and processing logic for physical layer processing operations. In some aspects, the digital signal processor may execute processing functions with software via the execution of executable instructions. In some aspects, the digital signal processor may include one or more dedicated hardware circuits (e.g., ASICs, FPGAs, and other hardware) that are digitally configured to specific execute processing functions, where the one or more processors of digital signal processor may offload certain processing tasks to these dedicated hardware circuits, which are known as hardware accelerators. Exemplary hardware accelerators can include Fast Fourier Transform (FFT) circuits and encoder/decoder circuits. In some aspects, the processor and hardware accelerator components of the digital signal processor may be realized as a coupled integrated circuit.

Vehicle <NUM> may be configured to operate according to one or more radio communication technologies. The digital signal processor of the communication processor <NUM> may be responsible for lower-layer processing functions (e.g., Layer <NUM>/PHY) of the radio communication technologies, while a controller of the communication processor <NUM> may be responsible for upper-layer protocol stack functions (e.g., Data Link Layer/Layer <NUM> and/or Network Layer/Layer <NUM>). The controller may thus be responsible for controlling the radio communication components of vehicle <NUM> (antenna system <NUM>, RF transceiver(s) <NUM>, position device <NUM>, etc.) in accordance with the communication protocols of each supported radio communication technology, and accordingly may represent the Access Stratum and Non-Access Stratum (NAS) (also encompassing Layer <NUM> and Layer <NUM>) of each supported radio communication technology. The controller may be structurally embodied as a protocol processor configured to execute protocol stack software (retrieved from a controller memory) and subsequently control the radio communication components of vehicle <NUM> to transmit and receive communication signals in accordance with the corresponding protocol stack control logic defined in the protocol stack software. The controller may include one or more processors configured to retrieve and execute program code that defines the upper-layer protocol stack logic for one or more radio communication technologies, which can include Data Link Layer/Layer <NUM> and Network Layer/Layer <NUM> functions. The controller may be configured to perform both user-plane and control-plane functions to facilitate the transfer of application layer data to and from vehicle <NUM> according to the specific protocols of the supported radio communication technology. User-plane functions can include header compression and encapsulation, security, error checking and correction, channel multiplexing, scheduling and priority, while control-plane functions may include setup and maintenance of radio bearers. The program code retrieved and executed by the controller of communication processor <NUM> may include executable instructions that define the logic of such functions.

In some aspects, vehicle <NUM> may be configured to transmit and receive data according to multiple radio communication technologies. Accordingly, in some aspects one or more of antenna system <NUM>, RF transceiver(s) <NUM>, and communication processor <NUM> may include separate components or instances dedicated to different radio communication technologies and/or unified components that are shared between different radio communication technologies. For example, in some aspects, multiple controllers of communication processor <NUM> may be configured to execute multiple protocol stacks, each dedicated to a different radio communication technology and either at the same processor or different processors. In some aspects, multiple digital signal processors of communication processor <NUM> may include separate processors and/or hardware accelerators that are dedicated to different respective radio communication technologies, and/or one or more processors and/or hardware accelerators that are shared between multiple radio communication technologies. In some aspects, RF transceiver(s) <NUM> may include separate RF circuitry sections dedicated to different respective radio communication technologies, and/or RF circuitry sections shared between multiple radio communication technologies. In some aspects, antenna system <NUM> may include separate antennas dedicated to different respective radio communication technologies, and/or antennas shared between multiple radio communication technologies. Accordingly, antenna system <NUM>, RF transceiver(s) <NUM>, and communication processor <NUM> can encompass separate and/or shared components dedicated to multiple radio communication technologies.

Communication processor <NUM> may be configured to implement one or more vehicle-to-everything (V2X) communication protocols, which may include vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), vehicle-to-network (V2N), vehicle-to-pedestrian (V2P), vehicle-to-device (V2D), vehicle-to-grid (V2G), and other protocols. Communication processor <NUM> may be configured to transmit communications including communications (one-way or two-way) between the vehicle <NUM> and one or more other (target) vehicles in an environment of the vehicle <NUM> (e.g., to facilitate coordination of navigation of the vehicle <NUM> in view of or together with other (target) vehicles in the environment of the vehicle <NUM>), or even a broadcast transmission to unspecified recipients in a vicinity of the transmitting vehicle <NUM>.

Communication processor <NUM> may be configured to operate via a first RF transceiver of the one or more RF transceivers(s) <NUM> according to different desired radio communication protocols or standards. By way of example, communication processor <NUM> may be configured in accordance with a Short-Range mobile radio communication standard, such as Bluetooth, Zigbee, among others, and the first RF transceiver may correspond to the corresponding Short-Range mobile radio communication standard. As another example, communication processor <NUM> may be configured to operate via a second RF transceiver of the one or more RF transceivers(s) <NUM> in accordance with a Medium or Wide Range mobile radio communication standard such as a <NUM> (e.g. Universal Mobile Telecommunications System - UMTS), a <NUM> (e.g. Long Term Evolution - LTE), a <NUM> mobile radio communication standard in accordance with corresponding 3GPP (<NUM>rd Generation Partnership Project) standards, among others. As a further example, communication processor <NUM> may be configured to operate via a third RF transceiver of the one or more RF transceivers(s) <NUM> in accordance with a Wireless Local Area Network communication protocol or standard, such as in accordance with IEEE <NUM> (e.g. <NUM>, <NUM>. 11a, <NUM>. 11b, <NUM>, <NUM>. 11n, <NUM>. 11p, <NUM>-<NUM>,. 11ac, <NUM>. 11ad, <NUM>. 11ah, among others). The one or more RF transceiver(s) <NUM> may be configured to transmit signals via antenna system <NUM> over an air interface. The RF transceivers <NUM> may each have a corresponding antenna element of antenna system <NUM>, or may share an antenna element of the antenna system <NUM>.

Memory <NUM> may embody a memory component of vehicle <NUM>, such as a hard drive or another such permanent memory device. Although not explicitly depicted in <FIG> and <FIG>, the various other components of vehicle <NUM>, e.g. one or more processors <NUM>, shown in <FIG> and <FIG> may additionally each include integrated permanent and non-permanent memory components, such as for storing software program code, buffering data, etc..

The antenna system <NUM> may include a single antenna or multiple antennas. In some aspects, each of the one or more antennas of antenna system <NUM> may be placed at a plurality of locations on the vehicle <NUM> in order to increase RF coverage. The antennas may include a phased antenna array, a switch-beam antenna array with multiple antenna elements, etc. Antenna system <NUM> may be configured to operate according to analog and/or digital beamforming schemes in order to signal gains and/or provide levels of information privacy. Antenna system <NUM> may include separate antennas dedicated to different respective radio communication technologies, and/or antennas shared between multiple radio communication technologies. While shown as a single element in <FIG>, antenna system <NUM> may include a plurality of antenna elements (e.g., antenna arrays) positioned at different locations on vehicle <NUM>. The placement of the plurality of antenna elements may be strategically chosen in order to ensure a desired degree of RF coverage. For example, additional antennas may be placed at the front, back, corner(s), and/or on the side(s) of the vehicle <NUM>.

Data ingestion devices <NUM> may include any number of data ingestion devices and components depending on the requirements of a particular application. This may include: image acquisition devices, proximity detectors, acoustic sensors, infrared sensors, piezoelectric sensors, etc., for providing data about the vehicle's environment. Image acquisition devices may include cameras (e.g., standard cameras, digital cameras, video cameras, single-lens reflex cameras, infrared cameras, stereo cameras, etc.), charge coupling devices (CCDs) or any type of image sensor. Proximity detectors may include radar sensors, light detection and ranging (LIDAR) sensors, mmWave radar sensors, etc. Acoustic sensors may include: microphones, sonar sensors, ultrasonic sensors, etc. Accordingly, each of the data ingestion devices may be configured to observe a particular type of data of the vehicle's <NUM> environment and forward the data to the data ingestion processor <NUM> in order to provide the vehicle with an accurate portrayal of the vehicle's environment. The data ingestion devices <NUM> may be configured to implement pre-processed sensor data, such as radar target lists or LIDAR target lists, in conjunction with acquired data.

The term "raw sensor data" may be understood as sensor data as outputted by a sensor. For example, "raw sensor data" may refer to unprocessed data generated by a data ingestion device <NUM>. A data ingestion device <NUM>, as used herein, may be configured to pre-process detected data and to output the pre-processed data. For example, a data ingestion device <NUM> may include a smart sensor configured to pre-process sensed data and the "raw sensor data" may refer to the pre-processed data (e.g., target lists in the case of a radar sensor) outputted by the data ingestion device <NUM>.

Measurement devices <NUM> may include other devices for measuring vehicle-state parameters, such as a velocity sensor (e.g., a speedometer) for measuring a velocity of the vehicle <NUM>, one or more accelerometers (either single axis or multi-axis) for measuring accelerations of the vehicle <NUM> along one or more axes, a gyroscope for measuring orientation and/or angular velocity, odometers, altimeters, thermometers, a humidity sensor (e.g., a hygrometer) for measuring a humidity, a distance meter to measure a roughness of a ground, a pressure sensor for measuring a pressure in the surround of the vehicle <NUM>, a torque sensor for measuring a torque of the vehicle <NUM>, a steering angle sensor for measuring a steering angle or a turning angle of the vehicle <NUM>, etc. It is appreciated that vehicle <NUM> may have different measurement devices <NUM> depending on the vehicle type, e.g., car vs. drone vs. boat.

Position devices <NUM> may include components for determining a position of the vehicle <NUM>. For example, this may include global position system (GPS) or other global navigation satellite system (GNSS) circuitry configured to receive signals from a satellite system and determine a position of the vehicle <NUM>. Position devices <NUM>, accordingly, may provide vehicle <NUM> with satellite navigation features.

The one or more memories <NUM> may store data, e.g., in a database or in any different format, that may correspond to a map. For example, the map may indicate a location of known landmarks, roads, paths, network infrastructure elements, or other elements of the vehicle's <NUM> environment. The one or more processors <NUM> may process sensory information (such as images, radar signals, depth information from LIDAR, stereo processing of two or more images, etc.) of the environment of the vehicle <NUM> together with position information (such as a GPS coordinate, a vehicle's ego-motion, etc.) to determine a current location of the vehicle <NUM> relative to the known landmarks, and refine the determination of the vehicle's location. Certain aspects of this technology may be included in a localization technology such as a mapping and routing model.

The map database (DB) <NUM> may include any type of database storing (digital) map data for the vehicle <NUM>, e.g., for the control system <NUM>. The map database <NUM> may include data relating to the position, in a reference coordinate system, of various items, including roads, water features, geographic features, businesses, points of interest, restaurants, gas stations, etc. The map database <NUM> may store not only the locations of such items, but also descriptors relating to those items, including, for example, names associated with any of the stored features. In some aspects, a processor of the one or more processors <NUM> may download information from the map database <NUM> over a wired or wireless data connection to a communication network (e.g., over a cellular network and/or the Internet, etc.). In some cases, the map database <NUM> may store a sparse data model including polynomial representations of certain road features (e.g., lane markings) or target trajectories for the vehicle <NUM>. The map database <NUM> may also include stored representations of various recognized landmarks that may be provided to determine or update a known position of the vehicle <NUM> with respect to a target trajectory. The landmark representations may include data fields, such as landmark type, landmark location, among other potential identifiers.

Furthermore, the control system <NUM> may include a driving model, e.g., implemented in an advanced driving assistance system (ADAS) and/or a driving assistance and automated driving system. By way of example, the control system <NUM> may include (e.g., as part of the driving model) a computer implementation of a formal model, such as a safety driving model. The control system <NUM> may be or may include a safety system <NUM> and may include (e.g., as part of the driving model) a computer implementation of a safety driving model. A safety driving model may be or include a mathematical model formalizing an interpretation of applicable laws, standards, policies, etc. that are applicable to self-driving vehicles. A safety driving model may be designed to achieve, e.g., three goals: first, the interpretation of the law should be sound in the sense that it complies with how humans interpret the law; second, the interpretation should lead to a useful driving policy, meaning it will lead to an agile driving policy rather than an overly-defensive driving which inevitably would confuse other human drivers and will block traffic and in turn limit the scalability of system deployment; and third, the interpretation should be efficiently verifiable in the sense that it can be rigorously proven that the self-driving (autonomous) vehicle correctly implements the interpretation of the law. A safety driving model, illustratively, may be or include a mathematical model for safety assurance that enables identification and performance of proper responses to dangerous situations such that self-perpetrated accidents can be avoided.

As described above, the vehicle <NUM> may include the control system <NUM> as also described with reference to <FIG>. The vehicle <NUM> may include the one or more processors <NUM> integrated with or separate from an engine control unit (ECU) which may be included in the mobility system <NUM> of the vehicle <NUM>. The control system <NUM> may, in general, generate data to control or assist to control the ECU and/or other components of the vehicle <NUM> to directly or indirectly control the movement of the vehicle <NUM> via mobility system <NUM>. The one or more processors <NUM> of the vehicle <NUM> may be configured to implement the aspects and methods described herein.

The components illustrated in <FIG> and <FIG> may be operatively connected to one another via any appropriate interfaces. Furthermore, it is appreciated that not all the connections between the components are explicitly shown, and other interfaces between components may be covered within the scope of this disclosure.

<FIG> each show an exemplary device <NUM> for a vehicle (e.g., the vehicle <NUM>), in accordance with various aspects of the disclosure. The one or more data ingestion devices <NUM> may include a first sensor 112A and a second sensor 112B. The second sensor 112B may be different from the first sensor 112A. The first sensor 112A may have a first sensor type for perceiving a surrounding of the vehicle <NUM>. For example, the first sensor 112A may be an image acquisition device, such as a camera (e.g., a standard camera, a digital camera, a video camera, a single-lens reflex camera, an infrared camera, a stereo camera, etc.), a charge coupling device (CCDs) or any type of image sensor, a proximity detector, such as a radar sensor, a LIDAR sensor, a mmWave radar sensor, etc., or an acoustic sensor, such as a microphone, a sonar sensor, an ultrasonic sensor, etc. The second sensor 112B may have a second sensor type for perceiving a surrounding of the vehicle <NUM>. By way of example, the first sensor 112A may be an image acquisition device, such as a camera (e.g., a standard camera, a digital camera, a video camera, a single-lens reflex camera, an infrared camera, a stereo camera, etc.), a charge coupling device (CCDs) or any type of image sensor, a proximity detector, such as a radar sensor, a LIDAR sensor, a mmWave radar sensor, etc., or an acoustic sensor, such as a microphone, a sonar sensor, an ultrasonic sensor, etc. The first sensor 112A may be configured to provide a first data stream <NUM> (e.g., to transmit the first data stream <NUM> to the device <NUM>). The first data stream <NUM> may include raw sensor data detected by the first sensor 112A representing the surrounding of the vehicle <NUM>. According to various aspects, the first sensor 112A may be configured to provide the first data stream <NUM> (e.g. as a raw data stream, e.g., as an unencrypted data stream) to the device <NUM>. The second sensor 112B may be configured to provide a second data stream <NUM> (e.g., to transmit the second data stream <NUM> to the device <NUM>). The second data stream <NUM> may include raw sensor data detected by the second sensor 112B representing the surrounding of the vehicle <NUM>. According to various aspects, the second sensor 112B may be configured to provide the second data stream <NUM> (e.g. as a raw data stream, e.g., as an unencrypted data stream) to the device <NUM>. For example, the data streams provided by the first sensor <NUM> and/or the second sensor <NUM> may not be channel coded and/or source coded. The data streams provided by the first sensor <NUM> and/or the second sensor <NUM> may be vehicle operation data.

The device <NUM> may be a network device. The device <NUM> may include a first wireline interface <NUM> (in some aspects referred to as first wireline data link layer interface). The first wireline interface <NUM> may be configured to receive the first data stream <NUM> from the first sensor 112A. The first wireline interface <NUM> may be configured to receive the first data stream <NUM> from the first sensor 112A via a first wireline link (in some aspects referred to as first wired connection or as first wireline connection), such as a cable or fiber. The device <NUM> may include a second wireline interface <NUM> (in some aspects referred to as second wireline data link layer interface). The second wireline interface <NUM> may be configured to receive the second data stream <NUM> from the second sensor 112B. The second wireline interface <NUM> may be configured to receive the second data stream <NUM> from the second sensor 112B via a second wireline link (in some aspects referred to as second wired connection or as second wireline connection), such as a cable or fiber.

According to various aspects, the first wireline link and the second wireline link may be of the same type. For example, the first wireline link and the second wireline link may each be associated with a respective Ethernet link. In this case, the device <NUM> may include an Ethernet interface having a plurality of ports and the first wireline interface <NUM> and the second wireline interface <NUM> may each be associated with a corresponding port of the plurality of ports of the Ethernet interface. For example, the first wireline link and the second wireline link may each be associated with a respective MIPI CSI link. In this case, the device <NUM> may include a MIPI CSI having a plurality of ports and the first wireline interface <NUM> and the second wireline interface <NUM> may each be associated with a corresponding port of the plurality of ports of the MIPI CSI. The first sensor type of the first sensor 112A and the second sensor type of the second sensor 112B may be of a similar sensor type. For example, the first sensor 112A and the second sensor 112B may each be a camera sensor connected to the device <NUM> via a respective wireline link, such as a MIPI CSI link. The first sensor type of the first sensor 112A and the second sensor type of the second sensor 112B may be different from one another. For example, the first sensor 112A may be a LIDAR sensor and the second sensor 112B may be a radar sensor. The LIDAR sensor and the radar sensor may each be connected to the device <NUM> via a respective wireline link, such as an Ethernet link.

According to various aspects, the first wireline link and the second wireline link may be of different types. In this case, the first wireline interface <NUM> and the second wireline interface <NUM> may refer to different types of network interfaces. For example, the first wireline link may be a MIPI CSI link and the second wireline link may be an Ethernet link. In this case, the first wireline interface <NUM> may be a MIPI CSI and the second wireline interface <NUM> may be an Ethernet interface. The first sensor type of the first sensor 112A and the second sensor type of the second sensor 112B may be different from one another. For example, the first sensor 112A may be a camera sensor and the second sensor 112B may be a LIDAR sensor. The camera sensor may be connected to the device <NUM> via the MIPI CSI link and the LIDAR sensor may be connected to the device <NUM> via the Ethernet link.

The vehicle <NUM> may include a plurality of data ingestion devices <NUM> configured to provide a respective data stream to the device <NUM>. The device <NUM> may receive each data stream from the plurality of data ingestion devices <NUM> via respective wireline interface, as described above. For example, the first wireline interface <NUM> may include a plurality of ports and the first wireline interface <NUM> may be configured to receive the respective data stream from a first group of the plurality of data ingestion devices <NUM> via a corresponding port of the plurality of ports. For example, the second wireline interface <NUM> may include a plurality of ports and the second wireline interface <NUM> may be configured to receive the respective data stream from a first group of the plurality of data ingestion devices <NUM> via a corresponding port of the plurality of ports. As exemplarily shown in <FIG>, the device <NUM> may further include a third sensor 112C configured to provide a third data stream <NUM>. The third sensor 112C may have a third sensor type for perceiving the surrounding of the vehicle <NUM>. As described herein with reference to the first sensor 112A and the second sensor 112B, the third sensor 112C may be connected to the second wireline interface <NUM> via an associated wireline link equal to or different from the wireline links associated with the first sensor 112A and the second sensor 112B. The second wireline interface <NUM> may be configured to receive the third data stream <NUM> (e.g., via a respective port). An exemplary configuration is shown in <FIG>. In this example, the first sensor 112A may be a camera sensor configured to provide a camera data stream as the first data stream <NUM>, the second sensor 112B may be a LIDAR sensor configured to provide a LIDAR data stream as the second data stream <NUM>, and the third sensor 112B may be a radar sensor configured to provide a radar data stream as the third data stream <NUM>. The first wireline interface <NUM> may be a MIPI CSI configured to receive the camera data stream and the second wireline interface <NUM> may be an Ethernet interface configured to receive the LIDAR data stream and the radar data stream (e.g., via a respective port of the Ethernet interface). It is understood that the device <NUM> may include a plurality of wireline interfaces configured to receive data streams from one or more data ingestion devices <NUM> and that each of the plurality of wireline interfaces may include a plurality of ports such that a data stream from a respective data ingestion device <NUM> may be received via each of the plurality of ports.

The device <NUM> may include one or more processors <NUM> (e.g., one or more processing elements, e.g., one or more of the one or more processors <NUM>). The one or more processors <NUM> may be configured to process the data streams received via the first wireline interface <NUM> and the second wireline interface <NUM>. The one or more processors <NUM> may be configured to generate a coded packet including the received first data stream <NUM> and the received second data stream <NUM> (see, for example, <FIG>). The one or more processors <NUM> may be configured to generate the coded packet including the received first data stream <NUM> and the received second data stream <NUM> by employing vector packet coding on the first data stream <NUM> and the second data stream <NUM>. In vector packet coding (in some aspects referred to as network coding), data packets of a data stream may be linked (e.g., associated with) to respective symbols, as exemplarily shown in equation (<NUM>): <MAT>.

According to various aspects, each symbol of the symbol vector x may have a size of one byte. Illustratively, the symbol vector x may define an equation symbol and decoding the coded vector y may include solving the equation system to determine the data streams included in the coded vector y. The coded packet may include a packet identification (e.g., a group number), an encoding vector (in some aspects referred to as global encoding vector), and the coded vector y. The encoding vector may describe the coding operation performed. Hence, a decoding may employ the encoding vector to solve the equation system given by the coded vector y.

Illustratively, data streams are fused (to a coded packet) independent of the data type. Illustratively, the amount of information per transmission may be increased.

With reference to equation (<NUM>), the one or more processors <NUM> may be configured to generate a coded packet including a number of h data streams. For example, the coded packet may include the first data stream <NUM>, the second data stream <NUM>, and the third data stream <NUM> (see, for example, <FIG> and/or <FIG>).

According to various aspects, each data ingestion device <NUM> of the plurality of data ingestion devices <NUM> may be configured to provide a plurality of data streams to the device <NUM>. Each data stream may include raw sensor data detected by the respective data ingestion device <NUM>. The one or more processors <NUM> may be configured to generated the coded packet such that the generated coded packet includes one or more data streams of the plurality of data streams provided by one or more of the plurality of data ingestion devices <NUM> (e.g., such that the coded packet includes a total number of h data streams as described with reference to equation (<NUM>)). As exemplarily shown in <FIG>, the first sensor 112A may be configured to provide a plurality of first data streams <NUM> and the second sensor 112B may be configured to provide a plurality of second data streams <NUM>. The one or more processors <NUM> may be configured to generated the coded packet such that the generated coded packet includes one or more first data streams of the plurality of first data streams <NUM> and/or one or more second data streams of the plurality of second data streams <NUM>.

Although various aspects exemplarily describe data ingestion devices to provide the data streams it is noted that any type of sensor or detector may be configured to sense or detect data descriptive of the surrounding of the vehicle and/or a state of the vehicle and to provide the sensed or detected data as data streams to the device <NUM>. The device <NUM> may include any suitable wireline interface to receive the sensed or detected data from the respective sensor or detector.

The device <NUM> may include an output wireline interface <NUM> (in some aspects referred to as output wireline data link layer interface). The output wireline interface <NUM> may be configured to transmit the generated coded packet to one or more target units <NUM> of the vehicle <NUM>. The output wireline interface <NUM> may be configured to transmit the generated coded packet to the one or more target units <NUM> via a respective wireline link. Each of the one or more target units <NUM> may be configured to decode the coded packet to obtain the data streams included in the coded packet. According to various aspects, a target unit <NUM> may be configured to decode the coded packet using the encoding vector included in the data packet, as described with reference to equation (<NUM>).

For example, the one or more target units <NUM> may include at least one artificial intelligence (AI) accelerator module and the output wireline interface <NUM> may be configured to transmit the generated coded packet to the AI accelerator module (see, for example, <FIG>). According to various aspects, the output wireline interface <NUM> may be configured to transmit the generated coded packet to the AI accelerator module via a MIPI CSI link and/or a PCIe link. In this case, the output wireline interface <NUM> may be or may include a MIPI CSI and/or a PCIe interface. For example, the one or more target units <NUM> may include at least one memory device and the output wireline interface <NUM> may be configured to transmit the generated coded packet to the memory device (see, for example, <FIG>). According to various aspects, the output wireline interface <NUM> may be configured to transmit the generated coded packet to the memory device via an Ethernet link and/or a SATA link. In this case, the output wireline interface <NUM> may be or may include an Ethernet interface and/or a SATA interface. According to various aspects, the one or more target units <NUM> may include the at least one AI accelerator module and the at least one memory device (see, for example, <FIG>).

According to various aspects, the control system <NUM> described herein may be part of or may be an Intel Autonomous Vehicles Platform (e.g., including one or more Intel vehicle OEM Tier1 devices).

According to various aspects, the AI accelerator module described herein may be or may include an Intel Edge AI Chipset.

According to various aspects, the one or more processors <NUM> may be configured to determine the one or more target units <NUM> associated with the coded packet to be generated. The one or more processors <NUM> are configured to determine a number of data streams to be coded to a coded packet (i.e., h in equation (<NUM>)). According to various aspects, the one or more processors <NUM> may be configured to determine the number of data streams to be coded to the coded packet using a machine learning model. The machine learning model may employ a maximum utility function. Various aspects employ dynamic machine learning. The machine learning model is configured to determine the number of data streams to be coded by learning a link capacity at the time of transmission and a chunk size of each data stream. The link capacity may refer to the capacity of the link (e.g., Ethernet link, e.g., PCIe link, e.g., SATA link, e.g., MIPI CSI link) between the output wireline interface <NUM> and the respective target unit of the one or more target units <NUM> or to a capacity of a virtual channel associated with the link. According to various aspects, the maximum utility function may be applied for packet to be coded given by: max Σj Uj (xj) such that Σj x j<= C; C may be the link capacity, Uj may be the utility function associated with each coded stream upon the addition of a j-th stream, and a maximum number of stream, N, to meet C may be described by <NUM> < j < N+<NUM>. Ilustratively, the packet size of the coded packet that is function of the number of coded streams is optimized by employing the machine learning model. Ilustratively, an online learning of the machine learning model may be performed. According to various aspects, the machine learning model may be trained such that the trained machine learning model is capable to pause or discard some data streams for other higher prioritized data streams to meet a required data throughput to the one or more target units. According to various aspects, the number of data streams included in a coded packet may be determined such that no latency for coding and/or decoding is added. With reference to <FIG>, the one or more processors <NUM> are configured to select one or more of the plurality of first data streams <NUM> and one or more of the plurality of second data streams <NUM> such that a sum of a number of first data streams and a number of second data streams is equal to the determined number of data streams to be coded. The one or more processors <NUM> are configured to generate the coded packet by employing vector packet coding on the selected one or more first data streams and the selected one or more second data streams.

<FIG> each show an exemplary device <NUM> for transmitting data to an AI accelerator module 314A, in accordance with various aspects of the disclosure. In this example, the output wireline interface <NUM> may be or may include a MIPI CSI or a PCIe interface. In the case that the output wireline interface <NUM> is or includes the MIPI CSI, the wireline link between the MIPI CSI and the AI accelerator module 314A may be a MIPI CSI link. In the case that the output wireline interface <NUM> is or includes the PCIe interface, the wireline link between the PCIe interface and the AI accelerator module 314A may be a PCIe link. According to various aspects, the the device <NUM> may be configured to transmit the coded packet to the AI accelerator module 314A via a MIPI CSI link in the case that an image signal processing functionality is part of the AI accelerator module 314A and may transmit the coded packet to the AI accelerator module 314A via a PCIe link in the case that the AI accelerator module 314A is or is part of a separate accelerator card.

For illustration, the coded packet is described as being generated for one or more first data streams of the plurality of first data streams <NUM> and/or one or more second data streams of the plurality of second data streams <NUM>, as described with reference to <FIG>. It is noted that each generated coded packet may include a plurality of data streams provided by a plurality of data ingestion devices <NUM>, as described herein.

With reference to <FIG>, the one or more processors <NUM> may be configured to generate a first coded packet <NUM> and a second coded packet <NUM>. The first coded packet <NUM> may include one or more first data streams of the plurality of first data streams <NUM> and one or more second data streams of the plurality of second data streams <NUM>. The second coded packet <NUM> may include one or more first data streams of the plurality of first data streams <NUM> and one or more second data streams of the plurality of second data streams <NUM>. The one or more first data streams included in the first coded packet <NUM> may be different from the one or more first data streams included in the second coded packet <NUM>. The one or more second data streams included in the first coded packet <NUM> may be different from the one or more second data streams included in the second coded packet <NUM>. The output wireline interface <NUM> may be configured to transmit (e.g., simultaneously or concurrently transmit) the first coded packet <NUM> and/or the second coded packet via virtual channels VC associated with the wireline link <NUM> (e.g., the PCIe link, e.g., the MIPI CSI link).

According to various aspects, the AI accelerator module 314A may include a plurality of artificial intelligence (AI) chips, such as the AI chip <NUM>, the AI chip <NUM>, the AI chip <NUM>, and the AI chip <NUM>. The AI chips of the plurality of AI chips may be chips for redundancy/safety purpose and/or parallel processing. A total number of data ingestion devices <NUM> providing respective data streams to the device <NUM> may be greater than a number of AI accelerator modules. The AI chips may be configured to decode the coded packets and to process the data streams included in the coded packets. For example, the AI chips may be configured to employ a machine learning model using the data streams included in a received coded packet as input to the machine learning model and may be configured to provide control instructions for controlling the vehicle <NUM>. For example, the AI chips may be configured to perform an objection detection, an image segementation, an image classification, distance detection, etc. based on the data streams which represent the surrounding of the vehicle <NUM>. According to various aspects, the mobility system <NUM> may be configured to control the vehcile <NUM> to operate in accordance with the provided control instructions.

The output wireline interface <NUM> may be configured to transmit a generated coded packet substantially simultaneously or concurrently to at least two AI chips of the plurality of AI chips. According to various aspects, the one or more processors <NUM> may be configured to select the at least two AI chips from the plurality of AI chips. Illustratively, a selective broadcast of coded packets may be performed. The at least two AI chips may be, for example, redundancy chips or workload shared chips. For example, the output wireline interface <NUM> may be configured to transmit the generated first coded packet <NUM> simultaneously or concurrently to the AI chip <NUM> and the AI chip <NUM>. For example, the output wireline interface <NUM> may be configured to transmit the generated second coded packet <NUM> simultaneously or concurrently to the AI chip <NUM> and the AI chip <NUM>. The AI accelerator module 314A may include at least one redundancy AI chip associated with an AI chip of the plurality of AI chips included in the AI accelerator module 314A. For example, the AI chip <NUM> may be a redundancy AI chip for AI chip <NUM> and AI chip <NUM> may be a redundancy AI chip for AI chip <NUM>. Acording to various aspects, the output wireline interface <NUM> may be configured to transmit a generated second coded packet simultaneously or concurrently to an AI chip (e.g., AI chip <NUM>) and an associated redundancy AI chip (e.g., AI chip <NUM>).

The output wireline interface <NUM> may be configured to transmit a generated coded packet substantially simultaneously or concurrently to the at least two AI chips of the plurality of AI chips via a coresponding virtual channel VC of a plurality of virtual channels associated with the wireline link <NUM>. For example, the output wireline interface <NUM> may be configured to transmit the first coded packet <NUM> simultaneously or concurrently to the AI chip <NUM> via a first virtual channel VC1 and the AI chip <NUM> via a third virtual channel VC3. For example, the output wireline interface <NUM> may be configured to transmit the second coded packet <NUM> simultaneously or concurrently to the AI chip <NUM> via a second virtual channel VC2 and the AI chip <NUM> via a fourth virtual channel VC4. According to various aspects, in the case that the wireline link <NUM> is a MIPI CSI link, each coded packet may be assigned to a virtual channel VC and a unique channel identifiaction number (VCID) in a header of the respective coded packet. According to various aspects, in the case that the wireline link <NUM> is a PCIe link, a traffic class (TC) to virtual channel VC mapping may be applied. Here, each coded packet may be assigned to a traffic class. A traffic class may allow for a priority differentiation.

With reference to <FIG>, the one or more processors <NUM> may be configured to generate a third coded packet <NUM> and a fourth coded packet <NUM>. The third coded packet <NUM> may include one or more first data streams of the plurality of first data streams <NUM> and one or more second data streams of the plurality of second data streams <NUM>. The fourth coded packet <NUM> may include one or more first data streams of the plurality of first data streams <NUM> and one or more second data streams of the plurality of second data streams <NUM>. The output wireline interface <NUM> may be configured to transmit each of the first coded packet <NUM>, the second coded packet <NUM>, the third coded packet <NUM>, and/or the fourth coded packet <NUM> simultaneously or concurrently to a respectively assigned AI chip. The output wireline interface <NUM> may be configured to transmit each of the first coded packet <NUM>, the second coded packet <NUM>, the third coded packet <NUM>, and/or the fourth coded packet <NUM> simultaneously or concurrently to the respectively assigned AI chip via a corresponding virtual channel VC. For example, the output wireline interface <NUM> may be configured to transmit the first coded packet <NUM> to the AI chip <NUM> via the first virtual channel VC1, the second coded packet <NUM> to the AI chip <NUM> via the second virtual channel VC2, the third coded packet <NUM> to the AI chip <NUM> via the third virtual channel VC3, and/or the fourth coded packet <NUM> to the AI chip <NUM> via the fourth virtual channel VC4.

<FIG> each show an exemplary device <NUM> for transmitting data to a memory device 314B, in accordance with various aspects of the disclosure. In this example, the output wireline interface <NUM> may be or may include an Ethernet interface or a SATA interface. In the case that the output wireline interface <NUM> is or includes the Ethernet interface, the wireline link between the Ethernet interface and the memory device 314B may be an Ethernet link. In the case that the output wireline interface <NUM> is or includes the SATA interface, the wireline link between the SATA interface and the memory device 314B may be a SATA link. Even though the output wireline interface <NUM> is in this example described as being an Ethernet interface or a SATA interface, it is understood that the output wireline interface <NUM> may be or may include any other type of interface suitable for a wireline data transmission to a memory device.

According to various aspects, the Ethernet or SATA interface <NUM> and the memory device 314B may be connected via a single Ethernet or SATA link (see, for example, <FIG>). In this case, the output wireline interface may be configured to transmit the generated coded packets sequentially to the memory device 314B.

According to various aspects, the Ethernet or SATA interface <NUM> and the memory device 314B may be connected via a plurality of Ethernet or SATA links (see, for example, <FIG>). In this case, the Ethernet or SATA interface <NUM> may include a plurality of ports <NUM> and the memory device 314B may include a plurality of ports <NUM>. The Ethernet or SATA interface <NUM> and the memory device 314B may be connected via the plurality of Ethernet or SATA links and each of the plurality of Ethernet or SATA links may be associated with a port of the plurality of ports <NUM> of the Ethernet or SATA interface <NUM> and with a port of the plurality of ports <NUM> of the memory device 314B. According to various aspects, the one or more processors <NUM> may be configured to generated a plurality of coded packets and the Ethernet or SATA interface <NUM> may be configured to transmit the generated plurality of coded packets simultaneously or concurently to the memory device 314B via a respectively assigned Ethernet or SATA link of the plurality of Ethernet or SATA links.

Each data ingestion device <NUM> may be configured to provide the respective data streams such that each data stream associated with the respective data ingestion device <NUM> may include a destination port address indicating the sensor type of the data ingestion device <NUM>. As an example, the TCP/IP protocol may be used including a <NUM>-bit destination port address; the <NUM>-bit destination port address may include a user programmable bit and the user programmable bit may indicate the sensor type of the data ingestion device <NUM>.

For example, the first sensor 112A may have a first sensor type and the second sensor 112B may have a second sensor type different from the first sensor type. In this case, the first sensor 112A may be configured to provide first data streams <NUM> including a destination port address indicating the first sensor type and the second sensor 112B may be configured to provide second data streams <NUM> including a destination port address indicating the second sensor type.

With reference to <FIG>, the memory device 314B may include a network interface card (NIC) <NUM> configured to receive the coded packets from the device <NUM>. The NIC <NUM> may be configured to decode the received coded packets to obtain the data streams included in the coded packets. The NIC <NUM> may be configured to store the first data streams <NUM> in a first queue and the second data streams <NUM> in a second queue using the respective destination port addresses. The memory device 314B may further include a listener <NUM>. The memory device 314B may include a first memory <NUM> and a second memory <NUM>. The listener <NUM> may be configured to store the first data streams <NUM> included in the first queue in the first memory <NUM> and the second data streams <NUM> included in the second queue in the second memory <NUM>. For example, the memory evice 314B may include a first listener and a second listener; the first listener may be configured to store the first data streams <NUM> included in the first queue in the first memory <NUM> and the second listener may be configured to store the second data streams <NUM> included in the second queue in the second memory <NUM>.

With reference to <FIG>, the data ingestion devices <NUM> may be grouped in a first group of data ingestion devices 112A and a second group of data ingestion devices 112B depending on the sensor type of the data ingestion devices <NUM>. For example, the data ingestion devices <NUM> may include a number of N image acquisition devices (e.g., cameras) and a number of M proximity acquisition units (e.g., LIDAR sensors, e.g., radar sensors), and the image acquisition devices may be associated with the first group of data ingestion devices 112A and the proximity acquisition devices may be associated with the second group of data ingestion devices 112B. The number N may be any integer number equal to or greater than <NUM>. The number M may be any integer number equal to or greater than <NUM>. According to various aspects, each data ingestion device 112A(n) of the first group of data ingestion devices 112A(n=<NUM>-N) may be configured to provide data streams including a destination port address indicating the first group of data ingestion devices 112A. According to various aspects, each data ingestion device 112B(m) of the second group of data ingestion devices 112B(m=<NUM>-M) may be configured to provide data streams including a destination port address indicating the second group of data ingestion devices 112B. Hence, the first group of data ingestion devices 112A(<NUM>-N) may provide the plurality of first data streams <NUM>(<NUM>-N) and the second group of data ingestion devices 112A(<NUM>-M) may provide the plurality of second data streams <NUM>(<NUM>-M). Each coded packet generated by the one or more processors <NUM> may include one or more of the plurality of first data streams <NUM>(n=<NUM>-N) and/or one or more of the plurality of second data streams <NUM>(m=<NUM>-M). The listener <NUM> may be configured to read the destination port address of each data stream received by the memory device 314B and may be configured to store the received first data streams <NUM>(n) of the plurality of first data streams <NUM>(n=<NUM>-N) in the first memory <NUM> and to store the received second data streams <NUM>(m) of the plurality of second data streams <NUM>(m=<NUM>-M) in the second memory <NUM>.

Illustratively, the system may be configured to perform a sensor-type specific memory (or another resource) allocation. This may enable an efficient handling of sensor-type specific memory (or resource) requirements.

<FIG> shows an exemplary device <NUM> for transmitting data to the AI accelerator module 314A and to the memory device 314B, in accordance with various aspects of the disclosure. Acording to various aspects, the device <NUM> may include a first output wireline interface 312A configured to transmit coded packets to the AI accelerator module 314A. The first output wireline interface (e.g., the MIPI CSI or PCIe interface) and the AI accelerator module 314A may be configured as described with reference to <FIG>. Acording to various aspects, the device <NUM> may include a second output wireline interface 312B configured to transmit coded packets to the memory device 314B. The second output wireline interface (e.g., the Ethernet or SATA interface) and the memory device 314B may be configured as described with reference to <FIG>.

According to various aspects, the one or more processors <NUM> may be configured to determine, for each generated coded packet, one or more AI chips of the AI accelerator module and/or the memory device 314B as a transmission target. The one or more processors <NUM> may be configured to assign a first priority class to a generated coded packet in the case that one or more AI chips are determined as the transmission target and to assign a second priority class to the generated coded packet in the case that the memory device 314B is determined as the transmission target. According to various aspects, the device <NUM> may be configured to prioritize the transmission of coded packets to which the first priority class is assinged over coded packets to which the second priority class is assigned. For example, the device <NUM> may include a local memory configured to store the generated coded packets for transmission to the respective transmission target and a read out of the memory may be prioritzied for coded packets to which the first priority class is assinged. Illustratively, a data transmission to the AI accelerator module 314A may be time-critical, whereas a data transmission to the memory device 314B may not be time-ciritcal, which is why the data transmission of coded packets to the AI accelerator module 314A may be prioritized over the data transmission of coded packets to the memory device 314B.

According to various aspects, a time constraint of a transmission to the memory 314B may depend on a real-time time constraint of the AI accelerator module 314A since the device <NUM> needs to cope with the real-time ingestions of the data streams from the data ingestion devices <NUM>.

According to various aspects, the AI chips of the AI accelerator module 314A may be configured to employ a machine learning model and one or more of the data streams stored in the memory device 314B may be used to train (e.g., to further train, e.g., to retrain) the machine learning model.

According to various aspects, the coded packets generated as described herein may be compress by any kind of compression method (e.g., loss-free compression method) and the compressed coded packets may be transmitted. A lossy compression method may reduce the quality of the data and if the data with reduced quality are processed by the AI accelerator module 314B, the accuracy of the output of the AI chips may be reduced. This may reduced the safety of the vehicle <NUM>. In an example, the compression of coded packets may be performed for coded packets to be transmitted to the memory device 314B and may not be performed for coded packets to be transmitted to the AI accelerator module 314A.

Various aspects described herein relate to the generation of coded packets including a plurality of data streams and the transmission of the coded packets. The transmission of the plurality of data streams as a single coded packet may significantly reduce the transmission cost and, thus, may increase the data throughput to the one or more target units (e.g., the AI chips, e.g., the memory device). Further, as an example, a <NUM> GBit Ethernet cable may not be capable to transmit the high amount of data streamed from the data ingestion devices <NUM> to the AI accelerator module 314A in real-time and the use of a <NUM> GBit Ethernet cable may increase the material cost significantly. According to various aspects, the generation of coded packets including a plurality of data streams, as described herein, and the resulting increased data throughput may allow the use of the <NUM> GBit Ethernet cable in the above example and, thus, reduces the material cost. Hence, according to various aspects, transmission time cost and/or connectivity link cost may be reduced. Illustratively, an ingestion of a high amount of (multi-model) data for Tera Operations (real-time) processing is optimized.

Various aspects described herein relate to a transmission of generated coded packets to selected target units <NUM> (e.g., the memory device 314B, e.g., one or more AI chips of the AI accelerator module 314A). Illustratively, a selective or targeted transmission (in some aspects referred to as selective or targeted broadcasting) of coded packets is performed.

Various aspects described herein relate to a system capable to store data streams in different memories depending on the sensor type of the sensor, which generated the data streams. The data generated by a sensor may have specific storage requirements depending on the sensor type of the sensor. For example, camera data (e.g., an image) provided by a camera sensor may have different storage requirements than LIDAR data (e.g., a point cloud) provided by a LIDAR sensor. The system described herein is capable to satisfy the specific requirements by storing the data in a respective memory which meets the requirements.

An example of eight cameras providing respective data streams to an AI accerlator module is shown in Table <NUM>. A required number of PCIe links and/or MIPI links to disseminate a workload of the data streams provided by the eight cameras (having <NUM> Mpixels, a frame rate of <NUM> fps, and three exposures) to the AI accerlator module may be given or predefined.

This example shows that, in the case that no network coding is performed, about <NUM> MIPI lanes (e.g., MIPI CSI links) are neceassary in the case of a MIPI CSI interface and that about <NUM>-<NUM> PCIe lanes (e.g., PCIe links) are neceassary in the case of a PCIe interface to cope with the workload. The example shows that, in the case that network coding is performed by combining two data streams to a coded packet, about <NUM> MIPI lanes (e.g., MIPI CSI links) are neceassary in the case of a MIPI CSI interface and that about <NUM>-<NUM> PCIe lanes (e.g., PCIe links) are neceassary in the case of a PCIe interface to cope with the workload.

The example shows that, in the case that network coding is performed by combining four data streams to a coded packet, about <NUM> MIPI lanes (e.g., MIPI CSI links) are neceassary in the case of a MIPI CSI interface and that about <NUM>-<NUM> PCIe lanes (e.g., PCIe links) are neceassary in the case of a PCIe interface to cope with the workload.

Illustratively, this examples shows that a number of wireline links needed to disseminate data streams to the AI accelerator module 314A is reduced and, thus, material cost may be reduced. Further, a power consumption may also be reduced. This example also shows, that more data streams may be transmitted at a time by emplyoing the vector packet coding, as described herein.

<FIG> shows a data transmission method <NUM> in accordance with various aspects of the disclosure.

The method <NUM> may include receiving a first data stream from a first sensor having a first sensor type for perceiving a surrounding of a vehicle (in <NUM>). The first data stream may include raw sensor data detected by the first sensor representing the surrounding of the vehicle.

The method <NUM> may include receiving a second data stream from a second sensor having a second sensor type for perceiving the surrounding of the vehicle (in <NUM>). The second data stream may include raw sensor data detected by the second sensor representing the surrounding of the vehicle. The second sensor may be different from the first sensor. The second sensor type may be different from the first sensor type.

The method <NUM> may include generating a coded packet including the first data stream and the second data stream by employing vector packet coding on the first data stream and the second data stream (in <NUM>).

The method <NUM> may include transmitting the generated coded packet to one or more target units of the vehicle (in <NUM>).

According to various aspects, the one or more target units may include at least one AI accelerator module. The at least one AI accelerator module may include a plurality of AI chips and transmitting the generated coded packet to one or more target units of the vehicle may include transmitting the generated coded packet to one or more AI chips of the plurality of AI chips.

According to various aspects, the one or more target units may include at least one memory device. The at least one memory device may include a first memory and a second memory. The first data stream may include a destination port address indicating the first sensor type and the second data stream may include a destination port address indicating the second sensor type. The method may optionally further include: the memory device receiving the generated coded packet and storing the first data stream included in the received coded packet in the first memory and the second data stream included in the received coded packet in the second memory using the respective destination port addresses.

Although the device <NUM> is described as a device for a vehicle, it is noted that the device <NUM> may be used in a similar manner in any kind of wireline network which requires or desires a high data throughput, such as a server cluster, server farm, data centers, robot platforms (e.g., autonomous robot platforms, e.g., mobile robot platforms), etc..

While the above descriptions and connected figures may depict electronic device components as separate elements, skilled persons will appreciate the various possibilities to combine or integrate discrete elements into a single element. Such may include combining two or more circuits for form a single circuit, mounting two or more circuits onto a common chip or chassis to form an integrated element, executing discrete software components on a common processor core, etc. Conversely, skilled persons will recognize the possibility to separate a single element into two or more discrete elements, such as splitting a single circuit into two or more separate circuits, separating a chip or chassis into discrete elements originally provided thereon, separating a software component into two or more sections and executing each on a separate processor core, etc..

It is appreciated that implementations of methods detailed herein are demonstrative in nature, and are thus understood as capable of being implemented in a corresponding device. Likewise, it is appreciated that implementations of devices detailed herein are understood as capable of being implemented as a corresponding method. It is thus understood that a device corresponding to a method detailed herein may include one or more components configured to perform each aspect of the related method.

Claim 1:
A device for a vehicle, the device comprising:
a first wireline interface (<NUM>) configured to receive a first number of first data streams (<NUM>) from a first sensor (112A) having a first sensor type for perceiving a surrounding of the vehicle, wherein the first data streams (<NUM>) comprise raw sensor data detected by the first sensor (112A) representing the surrounding of the vehicle;
a second wireline interface (<NUM>) configured to receive a second number of second data streams (<NUM>) from a second sensor (112B) having a second sensor type for perceiving the surrounding of the vehicle, wherein the second data streams (<NUM>) comprise raw sensor data detected by the second sensor (112B) representing the surrounding of the vehicle;
one or more processors (<NUM>) configured to generate a coded packet comprising the first number of received first data streams (<NUM>) and the second number of received second data streams (<NUM>) by employing vector packet coding on the first number of first data streams (<NUM>) and the second number of second data streams (<NUM>); and
an output wireline interface (<NUM>) configured to transmit on a transmission channel with a link capacity the generated coded packet to one or more target units (<NUM>) of the vehicle, wherein the one or more processors (<NUM>) is further configured to determine the first number and the second number based on a capacity of the link as learned by a machine learning model at the time of transmission.