Techniques for data management in vehicle-based computing platforms
By classifying and storing data in a hierarchical manner, the problem of VECD being unable to effectively process large amounts of data is solved, efficient data storage and rapid response are achieved, and the data management needs of transportation vehicles are met.
Patent Information
- Application Number
- CN201780091428.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2017-06-30
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2037-06-30
AI Technical Summary
Existing data management solutions cannot effectively handle the large amount of data generated by vehicle embedded computer devices (VECDs), especially high-quality video content, and existing storage solutions cannot meet the requirements of fast response time.
A tiered storage architecture is adopted to classify and store data in different storage devices based on its source, destination, expected usage, and processing requirements, including DRAM, 3D Xpoint or PCIe SSD, SATA SSD, and cloud storage, to optimize data storage and processing.
It achieves efficient local processing of large amounts of data generated by vehicles, meets the requirements of fast response time, and improves the efficiency and reliability of data storage.
Smart Images

Figure CN110692044B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of data storage systems and devices, and more particularly, to apparatus, methods, and storage media for managing data storage for vehicle-based computing platforms. Background Art
[0002] Many vehicle embedded computer devices (VECDs) (such as autonomous or semi-autonomous vehicle (hereinafter referred to as ADV) systems, engine / electronic control units (ECUs), on-board navigation systems, etc.) are network-enabled and can be connected to multiple vehicle embedded sensors. For various vehicle-related services, VECDs can obtain relatively large amounts of data from other VECDs, mobile devices, network infrastructure, cloud computing services, etc. Due to the influx of large amounts of sensor data and information from the vehicle cloud, it is expected that such VECDs can generate, obtain and process tens of terabytes of data per day. Due to the constraints on network usage and the expectation of fast response times for certain applications (e.g., V2X, etc.), the VECD may need to process the collected data locally. However, existing storage solutions for VECDs may not be able to handle such large amounts of data.
[0003] Existing data management solutions rely primarily on compression algorithms and timestamps. However, these solutions tend to favor recently acquired data and may not be sufficient to store some data types (such as high-quality video content). Existing hardware-based storage solutions include the use of solid-state drives (SSDs) and / or permanent memory rather than hard disk drives (HDs). However, for some vehicle-based services, such as vehicle-to-infrastructure (V2I) services, vehicle-to-vehicle (V2V) services, sensor-based safety systems, autonomous driving, etc., such solutions may still be too slow. In addition, existing cloud-based solutions rely on cloud storage and cloud-based data processing, with little use of local storage and processing. However, for some vehicle-based services, such as V2I services, V2V services, sensor-based safety systems, autonomous driving, etc., round-trip times may still be too slow. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The accompanying drawings are included for illustrative purposes and are used to provide examples of possible structures and operations of the disclosed embodiments. The accompanying drawings in no way limit any changes in form and details that may be made by those skilled in the art without departing from the spirit and scope of the disclosed concepts.
[0005] Figure 1 illustrates an environment in which various embodiments may be implemented;
[0006] Figure 2 Figure illustrates a process for hierarchical storage mapping performed by logic components of a VECD according to various embodiments;
[0007] Figure 3 illustrates an example implementation of a VECD according to various embodiments; and
[0008] Figure 4 The diagram illustrates a process for managing data storage according to various embodiments. DETAILED DESCRIPTION
[0009] Disclosed embodiments relate to managing data storage for vehicle-embedded computer devices (VECDs), such as ADV systems, engine / electronic control units (ECUs), in-vehicle navigation systems, and the like. Many VECDs are network-enabled and can connect to multiple vehicle-embedded sensors, which can result in the VECD acquiring relatively large amounts of data, particularly from other VECDs, mobile devices, network infrastructure, and the like. Due to constraints on network usage and expectations for fast response times for certain applications or services, such as vehicle-to-everything (V2X), the VECD may need to process the collected data locally. However, current storage solutions for VECDs may not be able to handle such large amounts of data.
[0010] To address such issues, an embodiment includes a data hierarchy that classifies data based on a data source, a data destination, an expected use of the data or a target application, data processing requirements for the data, and / or a delivery time requirement for the data. In an embodiment, the VECD may store the acquired data in different storage devices based on the classification of the data. For example, sensitive data, short-lived data, or buffered data may be stored in DRAM; entertainment data, navigation data, and sensor metadata may be stored in a first-tier data storage (e.g., 3D Xpoint or PCIe SSD); low-definition navigation data, vehicle setting data, vehicle maintenance history, sensor data dumps (e.g., sensor data not required for driving) may be stored in a second-tier data storage (e.g., SATA SSD or hard drive); and road condition data, vehicle diagnostic data, etc. may be stored in a third-tier data storage (e.g., cloud storage).
[0011] The following detailed description refers to the accompanying drawings. The same reference numerals may be used in different figures to identify the same or similar elements. In the following description, specific details such as particular structures, architectures, interfaces, technologies, etc. are set forth for purposes of explanation and not limitation in order to provide a thorough understanding of various aspects of the claimed invention. However, it will be apparent to those skilled in the art having the benefit of this disclosure that various aspects of the claimed invention may be implemented in other examples that depart from these specific details. In some instances, descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the invention with unnecessary detail.
[0012] Aspects of the illustrative embodiments will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternative embodiments may be implemented utilizing only some of the described aspects. For purposes of explanation, specific quantities, materials, and configurations are set forth to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to those skilled in the art that alternative embodiments may be implemented without these specific details. In other instances, well-known features have been omitted or simplified to avoid obscuring the illustrative embodiments.
[0013] Furthermore, each operation will be described as multiple discrete operations in a manner that is most helpful for understanding the illustrative embodiments; however, the order of description should not be construed as implying that these operations are necessarily order-dependent. Specifically, these operations do not have to be performed in the order shown.
[0014] The phrases "in various embodiments," "in some embodiments," and similar phrases are used repeatedly. The phrase generally does not refer to the same embodiment; however, it may refer to the same embodiment. The terms "including," "having," and "comprising" are synonymous unless the context dictates otherwise. The phrase "A and / or B" means (A), (B), or (A and B). The phrases "A / B" and "A or B" mean (A), (B), or (A and B), similar to the phrase "A and / or B." For the purposes of this disclosure, the phrase "at least one of A and B" means (A), (B), or (A and B). The specification may use the phrases "in an embodiment" or "in multiple embodiments," "in some embodiments," and / or "in various embodiments," which may each refer to one or more of the same or different embodiments. In addition, the terms "including," "comprising," "having," etc. as used with respect to the embodiments of the present disclosure are synonymous.
[0015] The example embodiments may be described as a process depicted as a flow chart, flow diagram, data flow diagram, structure diagram, or block diagram. Although a flow chart may describe the operations as a sequential process, many of these operations may be performed in parallel, concurrently, or simultaneously. In addition, the order of the operations may be rearranged. A process may terminate when its operations are completed, but may also have additional steps not included in the diagram(s). A process may correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, termination of the process may correspond to the function returning to the calling function and / or the main function.
[0016] Example embodiments may be described in the general context of computer-executable instructions, such as program codes, software modules, and / or functional processes, executed by one or more of the aforementioned circuit systems. These program codes, software modules, and / or functional processes may include routines, programs, objects, components, data structures, and the like that perform specific tasks or implement specific data types. The program codes, software modules, and / or functional processes described herein may be implemented in existing communication networks using existing hardware. For example, the program codes, software modules, and / or functional processes discussed herein may be implemented at existing network elements or control nodes using existing hardware.
[0017] As used herein, the term "circuitry" refers to, is part of, or includes hardware components configured to provide the described functionality, such as electronic circuits, logic circuits, processors (shared, dedicated, or group) and / or memories (shared, dedicated, or group), application specific integrated circuits (ASICs), field programmable devices (FPDs) (e.g., field programmable gate arrays (FPGAs), programmable logic devices (PLDs), complex PLDs (CPLDs), high density PLDs (HCPLDs), structured ASICs, or programmable systems on chip (SoCs), digital signal processors (DSPs), etc. In some embodiments, the circuitry may execute one or more software or firmware programs to provide at least some of the described functionality.
[0018] As used herein, the term "processor circuitry" may refer to circuitry that is capable of sequentially and automatically performing a sequence of arithmetic or logical operations, recording, storing, and / or transmitting digital data, is part of, or includes such circuitry. The term "processor circuitry" may refer to one or more application processors, one or more baseband processors, a physical central processing unit (CPU), a single-core processor, a dual-core processor, a triple-core processor, a quad-core processor, and / or any other device capable of executing or otherwise operating computer-executable instructions, such as program code, software modules, and / or functional processes.
[0019] As used herein, the term "interface circuitry" may refer to circuitry that provides for the exchange of information between two or more components or devices, is part of such circuitry, or includes such circuitry. The term "interface circuitry" may refer to one or more hardware interfaces (e.g., a bus, an input / output (I / O) interface, a peripheral component interface, a network interface card, and / or the like).
[0020] As used herein, the term "computer device" may describe any physical hardware device that is capable of sequentially and automatically performing a sequence of arithmetic or logical operations, is equipped for recording / storing data on a machine-readable medium, and transmits and receives data from one or more other devices in a communication network. A computer device may be considered synonymous with a computer, a computing platform, a computing device, etc., and may occasionally be referred to as a computer, a computing platform, a computing device, etc. hereinafter. The term "computer system" may include any type of interconnected electronic device, computer device, or components thereof. In addition, the terms "computer system" and / or "system" may refer to various components of a computer that are communicatively coupled to each other. Furthermore, the terms "computer system" and / or "system" may refer to a plurality of computer devices and / or a plurality of computing systems that are communicatively coupled to each other and configured to share computing and / or networking resources. Examples of “computer devices,” “computer systems,” and the like may include cellular or smart phones, feature phones, tablet personal computers, wearable computing devices, autonomous sensors, laptop computers, desktop personal computers, video game consoles, digital media players, handheld messaging devices, personal digital assistants, e-book readers, augmented reality devices, server computer devices (e.g., standalone, rack-mounted, blade, etc.), cloud computing services / systems, network elements, in-vehicle infotainment (IVI), in-car entertainment (ICE) devices, instrument clusters (ICs), heads-up display (HUD) devices, on-board diagnostic (OBD) devices, dashboard mobile equipment (DME), mobile data terminals (MDTs), electronic engine management systems (EEMS), electronic / engine control units (ECUs), electronic / engine control modules (ECMs), embedded systems, microcontrollers, control modules, engine management systems (EMS), connected or “smart” appliances, machine type communication (MTC) devices, machine-to-machine (M2M), Internet of Things (IoT) devices, and / or any other similar electronic devices. Furthermore, the term "vehicle embedded computer device" may refer to any computer device and / or computer system that is physically installed on, built into, or otherwise embedded in a vehicle.
[0021] As used herein, the term "network element" may be considered synonymous with, or referred to as, a networked computer, networking hardware, network equipment, routers, switches, hubs, bridges, radio network controllers, radio access network devices, gateways, servers, and / or other similar devices. The term "network element" may describe a physical computing device of a wired or wireless communication network and configured to host a virtual machine. Additionally, the term "network element" may be described as equipment that provides radio baseband functionality for data and / or voice connectivity between a network and one or more users. The term "network element" may be considered synonymous with, and / or referred to as, a "base station." As used herein, the term "base station" may be considered synonymous with, and / or referred to as, a node B, an enhanced or evolved node B (eNB), a next generation node B (gNB), a base transceiver station (BTS), an access point (AP), a roadside unit (RSU), and the like, and may be described as equipment that provides radio baseband functionality for data and / or voice connectivity between a network and one or more users. As used herein, the terms "vehicle-to-vehicle" and "V2V" may refer to any communication involving a vehicle as a message source or message destination. Additionally, "vehicle-to-vehicle" and "V2V" as used herein may also include or be equivalent to vehicle-to-infrastructure (V2I) communication, vehicle-to-network (V2N) communication, vehicle-to-pedestrian (V2P) communication, or V2X communication.
[0022] As used herein, the term "channel" may refer to any tangible or intangible transmission medium for transmitting data or data streams. The term "channel" may be synonymous with and / or equivalent to "communication channel," "data communication channel," "transmission channel," "data transmission channel," "access channel," "data access channel," "link," "data link," "carrier," "radio frequency carrier," and / or any other similar terms that represent a path or medium through which data is transmitted. Additionally, the term "link" may refer to a connection between two devices over a radio access technology (RAT) for the purpose of transmitting and receiving information.
[0023] With reference to the accompanying drawings, Figure 1The diagram illustrates an environment 100 in which various embodiments may be implemented. The environment 100 includes a vehicle 105, a wireless access node 110, and a cloud computing service 120 (also referred to as "cloud 120," "cloud 120," etc.). The vehicle 105 may be an ADV with a VECD that incorporates the disclosed hierarchical data storage technology for locally managing large amounts of data. For illustrative purposes, the following description is provided, including a deployment scenario of the ADV 105 in a two-dimensional (2D) highway / highway / road environment. However, the embodiments described herein are also applicable to any type of vehicle with data storage / management challenges, such as a truck, bus, motorcycle, boat or motorboat, and / or any other motorized device capable of transporting people or cargo. For example, water vehicles such as ships, ferries, barges, hovercraft, etc. can interact and / or communicate in the same or similar manner as ADV 105 (e.g., using V2X circuit systems and infrastructure), and such vehicles can also implement the data management, storage, and sharing techniques discussed herein, such as where such vehicles are relatively close to communication infrastructure (e.g., located at a dock and / or on land) or other water-based vehicle locations. The embodiments described herein may also be applicable to three-dimensional (3D) deployment scenarios in which ADV 105 is implemented as a flying object (such as an aircraft, drone, unmanned aerial vehicle (UAV), and / or any other similar mobile device). In addition, although the following description discusses scenarios related to vehicles, the embodiments discussed herein may also be applicable to any type of computer device or data storage system / device.
[0024] ADV 105 may be any type of motor vehicle or device used to transport people or cargo that may be equipped with controls for driving, parking, passenger comfort and / or safety, etc. As used herein, the terms "motor" and "motor" may refer to a device that converts one form of energy into mechanical energy and may include internal combustion engines (ICEs), compression combustion engines (CCEs), electric motors, and hybrids (e.g., including ICEs / CCEs and electric motor(s)). Although Figure 1 Only a single ADV 105 is shown, but ADV 105 may represent multiple separate motor vehicles of varying makes, models, trims, etc., which may be collectively referred to herein as "vehicle 105" or "ADV 105."
[0025] In an embodiment, the vehicle 105, as previously mentioned, may include a vehicle embedded computer device (VECD) (e.g., see Figure 3VECD 300 is shown and described. A VECD can be any type of computer device that is mounted on, built into, or otherwise embedded in a vehicle and is capable of recording, storing, and / or transmitting digital data to and from other computer devices. In some embodiments, the VECD can be a computer device used to control one or more systems of the vehicle 105, such as an ECU, ECM, embedded system, microcontroller, control module, EMS, OBD device, DME, MDT, etc.
[0026] The VECD may include one or more processors (having one or more processor cores and, optionally, one or more hardware accelerators), memory devices, communication devices, and the like that may be configured to perform various functions according to the various embodiments discussed herein. For example, the VECD may execute instructions stored in a computer-readable medium, or may be pre-configured with logic (e.g., in an appropriate bitstream, logic block, etc.) to monitor data or otherwise obtain data from various sources; operate / implement a classification engine to assign a classification to data based on the data source from which the data is obtained; and operate / implement a data storage controller to determine, based on the classification, a data storage among a plurality of data storages provided in the vehicle in which the data is stored, and store the data in the determined data storage. In some embodiments, the VECD may execute instructions stored in a computer-readable medium, or may be pre-configured with logic (e.g., in an appropriate bitstream, logic block, etc.) to monitor data or otherwise obtain data from various sources; operate the classification logic to assign a classification to data based on the data source from which the data is obtained; operate the decision logic to determine, based on the classification, a data storage among a plurality of data storages in which the data is stored; and operate the storage logic to control the storage of the data in the determined data storage. Reference is made below to Figure 2-Figure 4 Various methods, steps, processes, etc. for classifying data for storage are discussed.
[0027] The data obtained by the VECD may include sensor data from one or more sensors embedded in the vehicle 105, sensor data from sensors included in other vehicles 105 ( Figure 1 (not shown), data packets from other VECDs in the cloud 120 and / or network infrastructure (e.g., core network elements of a cellular communication network, etc.), navigation signaling / data from an onboard navigation system (e.g., a global navigation satellite system (GNSS), a global positioning system (GPS), etc.), etc. In an embodiment, the VECD may also include a communication circuit system (e.g., reference Figure 2 The communication circuitry 205 shown and described) and / or input / output (I / O) interface circuitry (e.g., with reference to Figure 2The I / O interface 318 shown and described herein operates in conjunction with communication circuitry and / or input / output (I / O) interface circuitry to obtain data for various sources.
[0028] The communication circuitry of the vehicle 105 can communicate with the cloud 120 via a wireless access node 110. The wireless access node 110 can be one or more hardware computer devices configured to provide wireless communication services to mobile devices (e.g., a VECD or some other suitable device in the vehicle 110) within a coverage area or cell associated with the wireless access node 110. The wireless access node 110 may include a transmitter / receiver (or alternatively, a transceiver) connected to one or more antennas, one or more memory devices, one or more processors, one or more network interface controllers, and / or other similar components. The one or more transmitters / receivers can be configured to transmit / receive data signals to / from one or more mobile devices via a link (e.g., link 135A). In addition, the one or more network interface controllers can be configured to transmit / receive data signals to / from various network elements (e.g., one or more servers within a core network, etc.) over another backhaul connection (not shown). In an embodiment, the VECD may generate data and transmit the data to the wireless access node 110 via link 135A, and the wireless access node 110 may provide the data to the cloud 120 via backhaul link 135B. Additionally, during operation of the vehicle 105, the wireless access node 110 may obtain data intended for the VECD from the cloud 120 via link 135B and may provide the data to the VECD via link 135A. The communication circuitry in the vehicle 105 may communicate with the wireless access node 110 according to one or more wireless communication protocols as discussed herein.
[0029] As an example, the wireless access node 110 can be a base station associated with a cellular network (e.g., an eNB in an LTE network, a gNB in a New Radio Access Technology (NR) network, a WiMAX base station, etc.), an RSU, a remote radio head, a relay radio device, a small cell base station (e.g., a femtocell, a picocell, a home evolved Node B (HeNB), etc.), or other similar network elements. In an embodiment where the wireless access node is a base station, the wireless access node 110 can be deployed outdoors to provide communications for the vehicle 105 when the vehicle 105 is operating untethered (e.g., when deployed on a public road, street, highway, etc.).
[0030] In some embodiments, the wireless access node 110 may be a gateway (GW) device, which may include one or more processors, a communication system (e.g., including a network interface controller, one or more transmitters / receivers connected to one or more antennas, etc.), and computer-readable media. In such embodiments, the GW may be a wireless access point (WAP), a home / business server (with or without radio frequency (RF) communication circuitry), a router, a switch, a hub, a radio beacon, and / or any other similar network device. In embodiments where the wireless access node 110 is a GW, the wireless access node 110 may be deployed in an indoor setting (such as a garage, factory, laboratory, or test facility) and may be used to provide communications while parked, before being sold on the open market, or otherwise not operating untethered.
[0031] In embodiments, cloud 120 may represent the Internet, one or more cellular networks, a local area network (LAN), or a wide area network (WAN), including proprietary and / or enterprise networks, a Transmission Control Protocol (TCP) / Internet Protocol (IP)-based network, or a combination thereof. In such embodiments, cloud 120 may be associated with a network operator that owns or controls the equipment and other elements necessary to provide network-related services, such as one or more base stations or access points (e.g., wireless access nodes 110), one or more servers for routing digital data or telephone calls (e.g., a core network or backbone network), etc. The implementations, components, and protocols used to communicate via such services may be known in the art and are omitted here for the sake of brevity.
[0032] In some embodiments, cloud 120 may be a system of computer devices (e.g., servers, storage devices, applications, etc. within or associated with a data center or data warehouse) that provides access to a pool of computing resources. The term "computing resources" may refer to physical or virtual components within a computing environment and / or within a specific computer device, such as memory space, processor time, electrical power, input / output operations, ports or network sockets, etc. In these embodiments, cloud 120 may be: a private cloud, which provides cloud services to a single organization; a public cloud, which provides computing resources to the public and shares them among all consumers / users; or a hybrid cloud or virtual private cloud, which uses some resources to provide public cloud services while using other dedicated resources to provide private cloud services. For example, a hybrid cloud may include private cloud services that also leverage one or more public cloud services for certain applications or users, such as providing data from various data stores or data sources. In some embodiments, a public cloud management platform (e.g., implemented as various virtual machines and applications hosted across cloud 120 and database systems) may coordinate data delivery to the VECD of vehicle 105. Implementations, components, and protocols for communicating via such services may be known in the art and are omitted here for the sake of brevity.
[0033] According to various embodiments, the VECD of vehicle 105 can obtain and / or process relatively large amounts of data for storage purposes by classifying the data, which can be used to direct the data to separate data storage devices or storage spaces within a plurality of data storage devices or storage spaces. The classification of data can be based on various parameters or criteria, such as how the data was created, its intended use or application, processing requirements, delivery or transmission / reception requirements, etc. In some embodiments, a three-tiered storage hierarchy can exist, optimized for speed, cost, and size, and can be based on the timeliness, type, and use of the data in question. Furthermore, the hierarchical storage management mechanism of the exemplary embodiments can allow for the integration of existing and future storage solutions.
[0034] In various embodiments, the obtained data may be classified into three categories based on the source of the data or the expected or desired destination of the data. An example of such classification is shown in Table 1.
[0035]
[0036]
[0037] Table 1: Example data classification for tiered storage.
[0038] As shown in Table 1, data may be identified and organized based on the source of the data, the intended / expected destination of the data, the intended use of the data, data access speed requirements and / or capabilities, timeliness requirements and / or capabilities, priority assigned to application categories, size, etc. Each field of Table 1 may be used as a basis for mapping data to a local storage device in the vehicle 105 or to the cloud 120. Figure 2 The logical components and interaction points involved in storage mapping are shown and described, and reference is made to Figure 3 The mapping of data categories to storage components at various levels in VECD is shown and described.
[0039] Figure 2 A process 200 for hierarchical storage mapping performed by logic components of a VECD is shown in accordance with various embodiments. For illustrative purposes, the operations of the process 200 are described as being performed by various components that may be implemented in a vehicle 105 (e.g., reference Figure 3 devices / components shown and described).
[0040] Process 200 may begin at node 205, where data may be obtained from various data input sources. For example, vehicle 105 may have a wide range of embedded sensors or access to remote sensors, which may allow various systems of vehicle 105 to sense the world outside and inside the cabin. Inputs from those sensors are represented as data inputs at node 205. Additionally or alternatively, vehicle 105 may be network-enabled and capable of obtaining data from various remote computing devices (such as network elements and / or computers / servers of cloud 120). Inputs from those remote devices are also represented as data inputs at node 205.
[0041] Node 210 may include data acquisition. Data acquisition may include coordinating how each sensor is accessed and how frequently sampling from each sensor occurs. Node 215 may include data processing. Data processing may include filtering and removing noise within the sampled data to prepare the sampled data for higher-order classification. Depending on the implementation, nodes 205-215 may be combined into fewer nodes / blocks or into a single node / block for efficiency or platform compatibility reasons.
[0042] Node 220 may include (e.g., using a classification engine) classifying the processed data. Classification may include sorting each set of sampled data according to a target application identifier (ID) and / or assigning a priority level to the sampled data depending on the type of application for which the data is intended. For example, temperature sensor data used for some applications (e.g., for ambient temperature reporting) may not be as time-critical as real-time camera data or Light Imaging Detection and Ranging (LIDAR) data, and thus, the temperature sensor data may be processed with a lower priority than the real-time camera data or LIDAR data. In another example, temperature sensor data used for some applications (e.g., for catalytic converters and / or fuel injection control systems) may be more time-critical than the real-time camera data or LIDAR data, and thus, the temperature sensor data may be processed with a higher priority than the real-time camera data or LIDAR data.
[0043] Other attributes assigned during the classification phase may include timeliness requirements, data size, and / or processing requirements for a high-level understanding of the sampled data. As used herein, the phrase "higher-level understanding" may refer to the use of raw data samples to create metadata. For example, raw visual data captured by a camera or image sensor may be used and grouped into unidentified objects (e.g., potholes). Sensor data from multiple sensors related to an event may be grouped and associated with the event for later analysis and (re)training of a machine learning model to identify potholes. In multimodal systems, multiple sensor inputs are often fused to achieve a similar high-level understanding of the data so that appropriate actions can be taken at the system level.
[0044] The output of the classification node 220 is fed into the decision algorithm of the decision engine at node 230. The decision algorithm may also accept input from the vehicle platform at node 225. The vehicle platform may include various components / equipment of the vehicle 105 (e.g., Figure 3 The input from node 225 may include status information related to those devices / components shown and described. Examples of status information may include radio link strength and / or quality of wireless connectivity, hardware workload and / or utilization, processor time, local and remote storage availability, and / or other information related to utilized computing / network resources.
[0045] The decision-making algorithm at node 230 can jointly evaluate how the classified data needs to be processed and the current state of the platform to determine the optimal course of action. For example, if wireless connectivity is unavailable when incoming video data needs to be transmitted and stored on cloud 120, the decision-making algorithm at node 230 can route this video data to temporary local storage until wireless connectivity becomes available. In another example, if wireless connectivity is unavailable or relatively weak when time-critical sensor data needs to be analyzed using algorithms stored and implemented by cloud 120, the decision-making algorithm at node 230 can use suboptimal algorithms and / or locally available processor resources instead of using cloud resources to avoid increasing latency.
[0046] The actions at node 235 (performed using, for example, a controller) may allocate the necessary hardware and / or software resources to complete the target task defined by the decision algorithm at node 230. Furthermore, further post-processing at node 240 may be required depending on the parameters, criteria, conditions, etc. required to perform the actions at node 235. Examples of such post-processing at node 240 may include data compression, deduplication, etc. to save storage space.
[0047] Figure 3 An example implementation of a VECD 300 is shown, in accordance with various embodiments. Figure 3 A block diagram illustrating examples of components that may be present in a vehicle 105 and a VECD 300 is shown. The VECD 300 may include Figure 2 These components may be implemented as integrated circuits (ICs) or portions thereof, discrete electronic devices, or other modules, logic, hardware, software, firmware, middleware, or combinations thereof adapted within VECD 300, or as components otherwise contained within a chassis of a larger system.
[0048] VECD 300 may be an embedded system or any other type of computer device as discussed herein. In one example, VECD 300 may be an EEMS, ECM, or ECU as discussed herein. In another example, VECD 300 may be an IVI or ICE device. In another example, VECD 300 may be a separate, dedicated, and / or special-purpose computer device specifically designed to execute the data management solutions of the embodiments discussed herein.
[0049] The VECD 300 may include a processor 302 (also referred to as "processor circuitry 302"), which may be one or more processing elements configured to perform basic arithmetic, logical, and input / output operations by executing instructions. The processor 302 may be implemented as a standalone system / device / package or as part of an existing system / device / package of the vehicle 105 (e.g., an ECU / ECM, an EEMS, etc.). The processor 302 may be one or more microprocessors, one or more single-core processors, one or more multi-core processors, one or more multi-threaded processors, one or more ultra-low voltage processors, one or more embedded processors, one or more DSPs, one or more FPDs (hardware accelerators) such as FPGAs, structured ASICs, programmable SoCs (PSoCs), etc.), and / or other processors or processing / control circuitry. The processor 302 may be part of a system on a chip (SoC) in which the processor 302 and other components discussed herein are formed as a single IC or a single package.
[0050] In embodiments, the processor 302 may include a sensor hub that can act as a co-processor by processing data obtained from the sensors 322. The sensor hub may include circuitry configured to integrate data obtained from each of the sensors 322 by performing arithmetic, logical, and input / output operations. In embodiments, the sensor hub may be capable of time-stamping obtained sensor data, providing such data to the processor 302 in response to queries for sensor data, buffering the sensor data, continuously streaming sensor data to the processor 302 (including a separate stream for each sensor 322), reporting sensor data based on predefined thresholds or conditions / triggers, and / or other similar data processing functionality.
[0051] Memory 304 may be circuitry configured to store data or logic used to operate VECD 300. Memory 304 may include a number of memory devices that can be used to provide a certain amount of system memory. For example, memory 304 may be any suitable type and number of volatile memory devices (e.g., random access memory (RAM), dynamic RAM (DRAM), static RAM (SRAM), etc.) and / or non-volatile memory devices (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, antifuses, etc.), configured in any suitable implementation manner as is known in the art, and / or combinations of such memory devices.
[0052] When using an FPD, the processor 302 and memory 304 (and / or storage device 308) may include logic blocks or logic structures, memory cells, input / output (I / O) blocks, and other interconnected resources that can be programmed to perform the various functions of the example embodiments discussed herein. The memory cells may be used to store data in lookup tables (LUTs) used by the processor 302 to implement various logic functions. The memory cells may include any combination of various levels of memory / storage, including but not limited to EPROM, EEPROM, flash memory, SRAM, antifuses, and the like.
[0053] Data storage devices 308, 309, and 310 (with shared or corresponding controllers) can provide persistent storage of information such as data, applications 330 and data 331, data 332, data 333, an operating system, etc. The storage devices 308, 309, and 310 can be implemented as: a solid-state drive (SSD); a solid-state disk drive (SSDD); a serial AT attached (SATA) storage device (e.g., a SATA SSD); a flash drive; a flash memory card such as an SD card, a microSD card, an xD picture card, etc., and a USB flash drive; a three-dimensional crosspoint (3D Xpoint) memory device; on-die memory or registers associated with the processor 302; a hard disk drive (HDD); a micro HDD; resistive memory; phase change memory; holographic memory; or chemical memory; etc. As shown, the storage devices 308 , 309 , 310 are included in the VECD 300 ; however, in other embodiments, any of the storage devices 308 , 309 , 310 may be implemented as separate devices installed in the vehicle 105 separately from the other elements of the VECD 300 .
[0054] According to various embodiments, the memory 304 and storage devices 308, 309, 310 may be categorized as a storage hierarchy (also referred to as a "non-volatile storage hierarchy") in the vehicle 105 that may be organized into two or more parts. Figure 3 In the example shown, the storage hierarchy is divided into three parts: first tier storage or storage 1 (e.g., storage device 308), second tier storage or storage 2 (e.g., storage device 309), and third tier storage or storage 3 (e.g., storage device 310). Each of the storage hierarchy parts may include one or more storage devices that vary in cost, durability, speed, and / or power characteristics. In addition, the memory 304 and / or the hardware accelerators of the processor 302 may include a classification engine, a decision engine, and a data storage driver for the data storage controller to perform operations related to the storage device, respectively. Figure 2 Operations associated with nodes 220, 230 and 235.
[0055] In an embodiment, sensor data from sensor 320 and / or status information from ECU 322 and / or EMC 324 may be processed prior to processing (e.g., see Figure 2 Nodes 205, 210, and 215 of the vehicle 105 are routed to memory 304 (e.g., volatile storage, DRAM, etc.). Memory 304 may also be organized into multiple blocks, depending on the acquisition speed from the different sensors 320, ECU 322, and / or EMC 324, and the availability (if any) of local volatile storage on the sensors / ECUs / EMCs themselves. After processing, certain types of data may be assigned to or retained in memory 304. Examples of data types that may be assigned for storage in memory 304 may include data that is intended to have a relatively short lifespan compared to other data types (e.g., cabin comfort settings for passengers who do not regularly use the vehicle 105 (e.g., guest passengers), temporary traffic notifications and warnings for specific routes, etc.); sensitive and / or personally identifiable data that should not be retained (e.g., photos, biometric data (e.g., voice or fingerprints), etc.); or data that is to be buffered before being routed to a longer-term destination (e.g., Storage 1, Storage 2, or Storage 3) or intermediately processed data required by or provided by one or more sensors 320.
[0056] In an embodiment, storage 1 (e.g., storage device 308) may be a more expensive but higher performance storage device than the other storage portions. Examples of storage 1 devices may include 3D Xpoint and / or Peripheral Component Interconnect Express (PCIe) SSDs. Storage 1 may be allocated for storing short-term data that may need to be retained for a longer period of time than the data stored in memory 304, but for a shorter period of time (e.g., a few days or less) than the data stored in storage 2 or storage 3 and / or for a shorter period of time than data that is required at a higher speed for local processing. Examples of the types of data stored in the storage 1 device may include text, audio, or video content data subject to digital rights management (DRM) protection, licensing, copyright, etc.; high-definition maps downloaded from a geographic map or navigation service (e.g., provided by cloud 120), which may be required for turn-by-turn navigation applications; metadata collected from sensors 320, ECU 322, EMC 324, which may be used to organize data in higher latency tiers (e.g., storage 2 and / or storage 3) to reduce the amount of data accessed from slower storage; etc. In some examples, the storage 1 device may act as a cache system for faster (slower) storage portions.
[0057] Compared to other storage components, the storage 2 device (e.g., storage device 309) may be a "mid-tier" storage device in terms of cost and performance capabilities (e.g., cheaper and lower performance than storage 1, but more expensive and higher performance capabilities than storage 3). Examples of storage 2 devices may include SATA SSDs or HDDs, which provide greater storage capacity than storage 1 devices but have relatively lower performance capabilities than storage 1 devices. Storage 2 may store data that needs to be retained for a relatively long period of time (e.g., one or more weeks to one or more months). Examples of the types of data that may be stored in storage 2 may include: maps for large areas / regions and / or for use with less graphics-intensive applications; comfort settings for the driver and regular passengers (e.g., seat position, mirror angle, cabin temperature setting, favorite radio stations, etc.); vehicle maintenance history to assist the owner (e.g., oil changes, filter changes, parts replacement, etc.); control system configuration data (such as configuration and / or related data specified by the AUTOSAR standard, etc.); data dumped from various sensors 320, ECU 322, EMC 324 that is not required for the current driving, or is otherwise relatively latency and / or time-insensitive data.
[0058] The storage 3 device (e.g., data storage 310) can be the cheapest device, the storage device with the lowest performance capabilities compared to the other storage components (e.g., cheaper and lower performance capabilities than storage 1 and storage 2), and / or the storage device with the highest latency (e.g., longest write and / or retrieval time, etc.) compared to the other storage components. In some embodiments, the storage 3 device can be a remote storage system, such as a storage system provided by cloud 120, which has the highest latency due to intervening network communications. Storage 3 can be considered an "opportunistic" storage area, where data will eventually be transferred elsewhere, but there is uncertainty as to when exactly such transfer will occur. During the intervening latency, data intended for storage 3 can be stored in storage 2. Examples of the types of data that may be stored in storage 3 may include: data associated with detected road conditions (e.g., potholes and their locations, accidents on the road, etc.); vehicle analysis data that may be stored on the cloud 120 (e.g., weekly diagnostic reports for various control systems of the vehicle 105, driver handling logs, "black box" accident or collision data, dashcam video or audio content, etc.); update information (e.g., the latest map or navigation information for sharing with other vehicles 105, information about traffic conditions for notifying other drivers, etc.); and the like.
[0059] In some embodiments, storage devices 308-310 may include an operating system (OS), which may be a general-purpose operating system or an operating system written and customized specifically for VECD 300. The OS may include one or more drivers, libraries, and / or application programming interfaces (APIs) that provide program code and / or software components for applications 330 and / or provide control system configuration to control and / or acquire / process data from one or more sensors 320, ECU 322, and / or EMC 324.
[0060] Application 330 may be a software module / component for performing various functions of VECD 300 and / or for performing the functions of the example embodiments discussed herein. For example, application 330 may include a software module / component for reference Figure 2 The logic of the corresponding nodes in question, namely, data acquisition logic 210, data processing logic 215, classification logic 220, vehicle status acquisition logic 225, decision logic 230 (also referred to as "data storage logic 230", etc.), action logic 235 and / or post-processing logic 240.
[0061] In embodiments where the processor 302 and memory 304 include a hardware accelerator (e.g., an FPGA unit) as well as a processor core, the hardware accelerator (e.g., an FPGA unit) may be pre-configured (e.g., with appropriate bitstreams, logic blocks / structures, etc.) for performing Figure 2 The logic for some functions of each node of the system (instead of using programmed instructions to be executed by (multiple) processor cores) may include, for example, a (FPGA-based) data acquisition engine 210, a (FPGA-based) hardware data processor 215, a (FPGA-based) classification engine 220, a (FPGA-based) vehicle state acquisition engine 225, a (FPGA-based) decision engine 230, a (FPGA-based) action or task engine 235 and / or a (FPGA-based) data storage controller 235 and / or a (FPGA-based) hardware data processor 240.
[0062] Components of the VECD 300 and / or vehicle 105 can communicate with each other via a bus 306. In various embodiments, the bus 306 can be a controller area network (CAN) bus system, a time-triggered protocol (TTP) system, or a FlexRay system, which can allow various devices (e.g., ECU 322, sensors 320, EMC 324, etc.) to communicate with each other using messages or frames. Suitable implementations and general functionality of CAN, TTP, and FlexRay bus systems are known and readily implemented by one of ordinary skill in the art. Additionally or alternatively, the bus 306 can include any number of technologies, such as a local interconnect network (LIN); an industry-standard architecture (ISA); extended ISA (EISA); PCI; PCI extension (PCIx); PCIe; an inter-integrated circuit (I2C) bus; a parallel small computer system interface (SPI) bus; a point-to-point interface; a power bus; a proprietary bus, such as used in SoC-based interfaces; or any number of other technologies.
[0063] The communication circuitry 305 may include circuitry for communicating with a wireless network or a wired network. For example, the communication system 205 may include a transceiver (Tx) 311 and a network interface controller (NIC) 312. The NIC 312 may be included to provide a wired communication link to the cloud 120 and / or other devices. The wired communication may provide an Ethernet connection, Ethernet over USB, and / or the like, or may be based on other types of networks, such as DeviceNet, ControlNet, Data Highway+, PROFIBUS, or PROFINET, among others. Additional NICs 312 may be included to allow connection to a second network (not shown) or other devices, for example, a first NIC 312 communicating to the cloud 120 via Ethernet, and a second NIC 212 providing communication to other devices via another type of network, such as a personal area network (PAN) including personal computer (PC) devices.
[0064] Tx 311 may include one or more radios for wirelessly communicating with cloud 120 and / or other devices. Tx 311 may include hardware devices that use modulated electromagnetic radiation through solid or non-solid media to enable communication with wired networks and / or other devices. Such hardware devices may include switches, filters, amplifiers, antenna elements, etc., for facilitating over-the-air (OTA) communication by generating or otherwise producing radio waves to transmit data to one or more other devices and converting received signals into usable information, such as digital data, that can be provided to one or more other components of VECD 300.
[0065] The communication circuit system 305 may include one or more processors (e.g., baseband processor, modem, etc.) dedicated to specific wireless communication protocols (e.g., Wi-Fi and / or IEEE802.11 protocols), cellular communication protocols (e.g., fifth generation (5G) communication systems, long term evolution (LTE), WiMAX, Specialty Mobile Association (GSMA)), etc.), wireless personal area network (WPAN) protocols (e.g., IEEE 802.15.4-802.15.5 protocols, Open Mobile Alliance (OMA) protocols, Bluetooth or Bluetooth Low Energy (BLE), etc.) and / or wired communication protocols (e.g., Ethernet, fiber distributed data interface (FDDI), point-to-point (PPP)), etc.).
[0066] Input / output (I / O) interface 318 may include circuitry for connecting VECD 300 to external components / devices such as sensors 320, electronic control units (ECUs) 322, and electromechanical components (EMCs) 324, such as an external expansion bus (e.g., a universal serial bus (USB), FireWire, etc.). I / O interface circuitry 318 may include any suitable interface controllers and connectors to interconnect one or more of processor circuitry 302, memory 304, storage 308-310, communication circuitry 305, and other components of VECD 300. Interface controllers may include, but are not limited to, memory controllers, storage controllers (e.g., redundant array of independent disks (RAID) controllers, baseboard management controllers (BMCs)), input / output controllers, host controllers, and the like. Connectors may include, for example, buses (e.g., bus 306), ports, slots, jumpers, interconnect modules, sockets, modular connectors, and the like.
[0067] The sensors 320 may be any device configured to detect an event or environmental change, convert the detected event into an electrical signal and / or a digital signal, and transmit / send these signals / data to the VECD 300 and / or one or more EMCs 322. Some of the sensors 320 may be sensors for various vehicle control systems, and may include, among other things, exhaust gas sensors including an exhaust gas oxygen sensor for obtaining oxygen data and a manifold absolute pressure (MAP) sensor for obtaining manifold pressure data; a mass air flow (MAF) sensor for obtaining intake air flow data; an intake air temperature (IAT) sensor for obtaining IAT data; an ambient air temperature (AAT) sensor for obtaining AAT data; an ambient air pressure (AAP) sensor for obtaining AAP data; and catalytic converter sensors including a catalytic converter temperature (CCT) sensor for obtaining catalytic converter temperature (CCT) data. a CCT sensor and a CCO sensor for obtaining catalytic converter oxygen (CCO) data; a vehicle speed sensor (VSS) for obtaining VSS data; an exhaust gas recirculation (EGR) sensor, including an EGR pressure sensor for obtaining EGR pressure data and an EGR position sensor for obtaining position / orientation data of an EGR valve pintle; a throttle position sensor (TPS) for obtaining throttle position / orientation / angle data; a crank / cam position sensor for obtaining crank / cam / piston position / orientation / angle data; a coolant temperature sensor; and / or other similar sensors embedded in the vehicle 105. The sensors 320 may include other sensors such as an accelerator pedal position sensor (APP), an accelerometer, a magnetometer, a level sensor, a flow / fluid sensor, an air pressure sensor, etc.
[0068] Some of the sensors 320 may be sensors for other systems of the vehicle, such as navigation, autonomous driving systems, object detection, and the like. Examples of such sensors 320 may include, among others, one or more MEMS with piezoelectric, piezoresistive, and / or capacitive components, which may be used to determine environmental conditions or location information related to the VECD 300. In embodiments, the one or more MEMS may include one or more 3-axis accelerometers, one or more 3-axis gyroscopes, and one or more magnetometers. In some embodiments, the sensors 320 may also include one or more gravity meters, altimeters, barometers, proximity sensors (e.g., infrared radiation detectors, etc.), depth sensors, ambient light sensors, thermal sensors, ultrasonic transceivers, and / or positioning circuitry. The positioning circuitry may also be part of or interact with the communication circuitry 305 to communicate with components of a positioning network, such as GNSS and / or GPS. In some embodiments, the positioning circuitry may be a micro-technology (Micro-PNT) IC for positioning, navigation, and timing that uses a master timing clock to perform position tracking / estimation without the need for GNSS and / or GPS.
[0069] Each ECU 322 may be an embedded system or other similar computer device that controls a corresponding system of the vehicle 105. In an embodiment, each ECU 322 may have the same or similar components as the VECD 300, such as a microcontroller or other similar processor device, memory device(s), communication interfaces, etc. In an embodiment, the ECU 322 may include, among other things, a drivetrain control unit (DCU), an engine control unit (ECU), an engine control module (ECM), an EEMS, a powertrain control module (PCM), a transmission control module (TCM), a brake control module (BCM) including an anti-lock braking system (ABS) module and / or an electronic stability control (ESC) system, a central control module (CCM), a central timing module (CTM), a general electronic module (GEM), a body control module (BCM), a suspension control module (SCM), a door control unit (DCU), a speed control unit (SCU), a human-machine interface (HMI) unit, a telematics control unit (TCU), a battery management system, and / or any other entity or node in a vehicle system. In some embodiments, one or more of the ECU 322 and / or the VECD 300 may be part of or included in a portable emissions measurement system (PEMS).
[0070] The EMC 324 may be a device that allows the VECD 300 to change state, position, orientation, movement, and / or control a mechanism or system. The EMC 324 may include one or more switches, actuators (e.g., valve actuators, fuel injectors, ignition coils, etc.), motors, thrusters, and / or other similar electromechanical components. In an embodiment, the VECD 300 and / or the ECU 322 may be configured to operate one or more EMCs 324 based on detected events by transmitting / sending instructions or control signals to the EMCs 324.
[0071] In an embodiment, each ECU 322 may be capable of reading or otherwise obtaining sensor data from one or more sensors 320, processing the sensor data to generate control system data, and providing the control system data to the VECD 300 for processing. The control system information may be of the type previously discussed. For example, the ECM or ECU may provide engine revolutions per minute (RPM) of the vehicle 105's engine, fuel injector activation timing data for one or more cylinders and / or one or more injectors of the engine, ignition spark timing data for one or more cylinders (e.g., an indication of a spark event relative to the crank angle of one or more cylinders), transmission gear ratio data and / or transmission status data (which may be provided by the TCU to the EMC / ECU), a real-time calculated engine load value from the ECM, etc.; the TCU may provide transmission gear ratio data, transmission status data, etc.; etc.
[0072] A battery 328 can power the VECD 300. In an embodiment, the battery 328 can be a typical lead-acid automotive battery, although in some embodiments, such as when the vehicle 105 is a hybrid vehicle, the battery 328 can be a lithium-ion battery, a metal-air battery (such as a zinc-air battery, an aluminum-air battery, a lithium-air battery), a lithium polymer battery, or the like. A battery monitor 326 can be included in the VECD 300 to track / monitor various parameters of the battery 328, such as the battery 328's state of charge (SoCh), state of health (SoH), and state of function (SoF). The battery monitor 326 can include a battery monitoring IC that can transmit battery information to the processor 302 via the bus 306.
[0073] Although not shown, various other devices may be present within or connected to VECD 300. For example, I / O devices such as a display, touch screen, or keyboard may be connected to VECD 300 via bus 306 to accept input and display output. In another example, GNSS and / or GPS circuitry and associated applications may be included in or connected to VECD 300 to determine the geographic location of vehicle 105. In another example, communication circuitry 305 may include a universal integrated circuit card (UICC), an embedded UICC (eUICC), and / or other elements / components that may be used to communicate over one or more wireless networks.
[0074] Figure 4 The diagram illustrates a process 400 for managing data storage according to various embodiments. For illustrative purposes, the operations of the above process are described as being performed by reference to Figure 1-3 However, it should be noted that in various implementations, arrangements, and / or environments, other computing devices (or components thereof) may operate process 400. In an embodiment, process 400 may be implemented as program code that, when executed by a processor, causes a computer system to perform the various operations of these processes. Figure 4 The figures illustrate specific examples and orders of operations, but in various embodiments, these operations may be reordered, divided into additional operations, combined, or omitted entirely.
[0075] refer to Figure 4Process 400 may begin at operation 405, where the interface circuitry (e.g., I / O interface 318) of VECD 300 may monitor and obtain data from multiple sources. The act of obtaining data may include capturing control system data (CSD) from one or more ECUs 322, hardware status information / data from one or more EMCs 324 and / or ECUs 322, sensor data from one or more sensors 320, and / or network-related information / data from communication circuitry 305. VECD 300 may also obtain data (e.g., data packets, etc.) from cloud 120 via communication circuitry 305. In embodiments, the act of monitoring may include polling (e.g., periodically, sequentially (roll-call), etc.) one or more sensors 320, one or more ECUs 322, and / or EMCs 324 for data during a specified / selected time period. In some embodiments, monitoring can include sending requests for data to various sensors / modules or remote systems (e.g., cloud 120) based on requests received from higher layers (e.g., when an infotainment application requests content from cloud 120). In some embodiments, monitoring can include waiting for sensor data / CSD from various sensors / modules based on triggers or events (e.g., when the vehicle 105 reaches a predetermined speed and / or distance within a predetermined amount of time (with or without intermittent stops). The event / trigger can be an implementation-specific and / or application-specific value. In addition to or in lieu of the previously discussed techniques, data can be obtained from the sensors / modules according to other known methods or procedures.
[0076] In an embodiment, at operation 405, the data acquisition engine (or data acquisition logic implemented by processor 302) may determine a data access procedure to acquire raw data from each data source and a sampling rate at which to access the raw data from each data source. The data access procedure and / or sampling rate may be based on the underlying hardware architecture and / or on the sensor / ECU / EMC from which the data is to be acquired. In such an embodiment, the interface circuitry may acquire data according to the determined sampling rate for each data source from which the data is to be acquired.
[0077] At operation 410, the data storage controller (or data processing logic implemented by processor 302) may control the storage of the acquired data in memory 304 prior to processing. At operation 415, the hardware data processor (or data processing logic implemented by processor 302) may process the acquired data. In embodiments, operation 410 may include normalizing the data (e.g., converting the data into a format that can be consumed by other devices / systems), timestamping the data, tagging the data with source information (e.g., an identifier of the specific sensor / ECU / EMC from which the data was acquired), tagging the data with tagging information, and so on. The term "tagging information" may refer to a reference or other similar indication that may indicate a specific event within the acquired data, which may be an example of importance for a particular application. In some embodiments, the data processing at operation 410 may include generating a log of the processed data as one or more data structures or database objects (tables), wherein the log may be tagged with source information. In some embodiments, different logs may be generated for different time / date ranges and / or based on different data samples. In addition, multiple separate logs may be generated for data acquired from specific / individual data sources. In other embodiments, a single log may be generated for all acquired data, regardless of when or where the data was acquired.
[0078] At operation 420, the classification engine (or classification logic implemented by the processor 302) may assign a classification to the data based on the classification parameters. In an embodiment, the classification parameters may include, among other things, a data source from which the data is obtained, an intended destination for the data, a target application associated with the data, processing requirements associated with the data, time delivery requirements for the data, and the like. Furthermore, the classification engine (or classification logic) may weight the various classification parameters in different ways based on known weighting algorithms so as to prioritize desired parameters over other parameters. Additionally, the classification may be applied to the obtained data for each parameter (or subset of parameters), and each parameter (or subset of parameters) may be averaged or otherwise used to determine a final classification for the obtained data.
[0079] At operation 425, the vehicle state acquisition engine (or state information acquisition logic implemented by the processor 302) may obtain various system state information from various sensors, ECUs, EMCs, applications, etc. As an example, the vehicle state acquisition engine (or state information acquisition logic) may obtain positioning or location information from the GPS circuitry of the vehicle 105. In another example, the vehicle state acquisition engine (or state information acquisition logic) may obtain position, orientation, and operating mode information from one or more EMCs 324. In another example, the vehicle state acquisition engine (or state information acquisition logic) may obtain memory utilization information from the storage devices 308-310. In another example, the vehicle state acquisition engine (or state information acquisition logic) may obtain communication link quality information from the communication circuitry 305 to determine the current load or level of network connectivity. The system state information may be obtained in the same or similar manner as previously discussed with respect to monitoring data at operation 405, and / or according to other known methods / processes.
[0080] At operation 430, the decision engine (or decision logic implemented by the processor 302) determines a desired course of action for the data. This may include determining an appropriate storage location for storing the data, which may be based on the assigned classification. In one example, the decision engine (or decision logic) may determine to store the data in a data storage tier based on the corresponding classification. When determining the appropriate course of action, the decision engine (or decision logic) may also consider the system status information obtained at operation 425. In such embodiments, the action may be based on the utilization or availability of storage devices; the current state of network resources or communication circuitry 305; upload or transfer requirements; access speed; timeliness requirements; the priority assigned to the application class of the target or intended application, and the size of the data; etc.
[0081] In one example, if the classification engine (or classification logic) assigns the first classification (e.g., the highest priority category / level) to the data, the decision engine (or decision logic) may determine to store the data in Storage 1. In another example, the action may include storing data with the lowest priority classification in Storage 1 or Storage 2 when Storage 3 is full or otherwise unavailable. In this example, Storage 3 may be storage provided by Cloud 120, which may be unavailable due to a lack of network resources, and the action may include storing the data in Storage 1 or Storage 2 for a predetermined period of time and determining whether the data can be transmitted to Cloud 120 at that time. In this example, the decision engine (or decision logic) may identify the current state of VECD 300 based on communication link quality information obtained from communication circuitry 305, and when the communication link quality information indicates that the link quality is below a predetermined threshold, the data may be stored in Storage 2 or Storage 1 regardless of the classification assigned to the data. In another example, the action may include instructing applications to process the data when the communication link is unreliable, weak, failed, or lacks sufficient bandwidth. As used herein, an unreliable communication link may be one that suffers from excessive noise or shadowing related issues, while a weak communication link may be one that has a threshold level that is too low or insufficient to provide connectivity or quality of service.
[0082] At operation 435, the action engine (or the action / task logic implemented by the processor 302) can execute the determined action process. In one example, the action engine (or action logic) can control the data storage controller (or the data storage logic implemented by the processor 302) to store the data in the corresponding storage device. In another example, the action engine (or action logic) can control the communication circuit system to transmit the data to a remote storage (e.g., storage provided by the cloud 120). In another example, the action engine (or action logic) can implement an API, middleware, software glue, etc. to provide the data to one or more applications for processing, etc. After performing operation 435, process 400 can be repeated or ended as necessary.
[0083] Some non-limiting examples follow.
[0084] Example 1 may include a vehicle embedded computer device (VECD) comprising: an interface circuit system for obtaining data from a data source among a plurality of data sources, wherein at least a subset of the data sources are disposed on a vehicle and the VECD is embedded in the vehicle; a classification engine coupled to the interface circuit system, the classification engine for assigning a classification to the data based on the data source from which the data was obtained; a decision engine for determining, based on the classification, a data store in which the data is to be stored among a plurality of data stores disposed in the vehicle; and a data storage controller for controlling the storage of the data in the determined data store.
[0085] Example 2 may include the VECD of Example 1 and / or some other examples herein, wherein the plurality of data stores include a first-tier data store and a second-tier data store, and wherein the decision engine is used to: when the data is assigned a first classification, determine to store the data in the first-tier data store; and when the data is assigned a second classification, determine to store the data in the second-tier data store.
[0086] Example 3 may include the VECD of Example 2 and / or some other examples herein, wherein the plurality of data stores further includes a third-tier data store, and wherein the decision engine is to determine to store the data in the third-tier data store when the data is assigned a third classification.
[0087] Example 4 may include the VECD of Example 2 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the classification engine is used to: assign a first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than priorities of other target applications; and assign a second classification to the second data based on a second target application associated with the second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
[0088] Example 5 may include the VECD of Example 4 and / or some other examples herein, wherein the classification engine is used to assign a third classification to the third data based on a third target application associated with the third data obtained from the first data source, wherein the third target application has a third priority that is lower than the second priority.
[0089] Example 6 may include the VECD of Example 2 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the classification engine is used to: assign a first classification to the first data based on a first processing requirement for the first data; and assign a second classification to the second data based on a second processing requirement for the second data obtained from the first data source, wherein the first processing requirement includes generating a first amount of metadata that is greater than a second amount of metadata generated according to the second processing requirement, and wherein the second data is obtained from the first data source or the second data source among a plurality of data sources.
[0090] Example 7 may include the VECD of Example 6 and / or some other examples herein, wherein the classification engine is used to: assign a third classification to the third data based on a third processing requirement of the third data obtained from the first data source, wherein the third processing requirement includes generating a third amount of metadata that is less than the second amount of metadata, and wherein the third data is obtained from the first data source, the second data source, or a third data source among the plurality of data sources.
[0091] Example 8 may include the VECD of Example 2 and / or some other examples herein, wherein the classification engine is configured to: assign a first classification to the data when the intended destination of the data is another VECD; and assign a second classification to the data when the intended destination of the data is a cloud computing service.
[0092] Example 9 may include the VECD of Example 8 and / or some other examples herein, wherein the classification engine is to assign a third classification to the data when the intended destination of the data is a third-party gateway device or storage provided by a cloud computing service.
[0093] Example 10 may include the VECD of Example 2 and / or some other examples herein, wherein the data is first data, the data source is the first data source, and wherein the classification engine is used to: assign a first classification to the first data based on a first time delivery requirement of the first data; and assign a second classification to the second data based on a second time delivery requirement of the second data, wherein the first time delivery requirement is a first amount of time that is less than a second amount of time of the second time delivery requirement.
[0094] Example 11 may include the VECD of Example 10 and / or some other examples herein, wherein the classification engine is to assign a third classification to the third data based on a third time delivery requirement of the third data, wherein the third time delivery requirement is a third amount of time greater than the second amount of time.
[0095] Example 12 may include the VECD of Example 2 and / or some other examples herein, wherein: the decision engine is used to identify a current state of the communication link based on communication link quality information, the communication link quality being obtained from a communication circuit system coupled to the interface circuit system; and when the communication link quality information indicates that the quality of the communication link is below a predetermined threshold, the data storage controller is used to: control the storage of the data in the second-tier data storage or the first-tier data storage regardless of the classification assigned to the data.
[0096] Example 13 may include the VECD of Example 12 and / or some other examples herein, further comprising a hardware data processor for: processing data stored in the second-tier data storage or the first-tier data storage when the data is associated with a time delivery requirement having a time amount that is less than other time delivery requirements of other data.
[0097] Example 14 may include the VECD of Example 2 and / or some other examples herein, wherein the plurality of data stores include a dynamic random access memory (DRAM) storage device, and the data storage controller is used to: control the storage of the obtained data in the DRAM storage device before the classification engine assigns the classification to the data; and maintain the data stored in the DRAM storage device when a classification with a higher priority than the first classification is assigned to the data.
[0098] Example 15 may include the VECD of Examples 1-14 and / or some other examples herein, further comprising: a data acquisition engine for determining data access steps for acquiring raw data from each of a plurality of data sources, and determining a sampling rate at which the raw data is accessed from each data source, wherein the interface circuit system is for acquiring data according to the sampling rate determined for the data source from which the data is to be acquired.
[0099] Example 16 may include the VECD of Example 15 and / or some other examples herein, wherein: the first tier of data storage is a three-dimensional crosspoint data storage device or a peripheral component interconnect express (PCIe) solid-state drive (SSD); and the second tier of data storage is a serial AT attachment (SATA) SSD, one or more hard disk drives, or storage provided by a cloud computing service.
[0100] Example 17 may include the VECD of Example 16 and / or some other examples herein, wherein the plurality of data stores further includes a third-tier data store, and wherein the third-tier data store is storage provided by a cloud computing service.
[0101] Example 18 may include one or more computer-readable media "CRM" comprising instructions that, when executed by a vehicle embedded computer device "VECD," cause the VECD to: obtain data from a data source among a plurality of data sources, wherein at least a subset of the data sources are disposed on a vehicle in which the VECD is embedded; assign a classification to the data based on the data source from which the data was obtained; and determine, based on the classification, a data store in which the data is to be stored among a plurality of data stores disposed in the vehicle, and store the data in the determined data store.
[0102] Example 19 may include one or more CRMs of Example 18 and / or some other examples herein, wherein the plurality of data stores include a first-tier data store and a second-tier data store, and wherein the VECD, in response to execution of the instruction, is used to: determine to store the data in the first-tier data store when the data is assigned a first classification; and determine to store the data in the second-tier data store when the data is assigned a second classification.
[0103] Example 20 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the plurality of data stores further include a third-tier data store, and wherein the VECD, in response to execution of the instruction, is configured to: determine to store the data in the third-tier data store when the data is assigned a third classification.
[0104] Example 21 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the VECD, in response to execution of the instruction, is used to: assign a first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than the priority of other target applications; and assign a second classification to the second data based on a second target application associated with the second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
[0105] Example 22 may include one or more CRMs of Example 21 and / or some other examples herein, wherein the VECD, in response to execution of the instruction, is configured to: assign a third classification to the third data based on a third target application associated with the third data obtained from the first data source, wherein the third target application has a third priority that is lower than the second priority.
[0106] Example 23 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the VECD, in response to execution of the instruction, is configured to: assign a first classification to the first data based on a first processing requirement for the first data; and assign a second classification to the second data based on a second processing requirement for the second data obtained from the first data source, wherein the first processing requirement includes generating a first amount of metadata that is greater than a second amount of metadata generated according to the second processing requirement, and wherein the second data is obtained from the first data source or the second data source among a plurality of data sources.
[0107] Example 24 may include one or more CRMs of Example 23 and / or some other examples herein, wherein the VECD, in response to execution of the instruction, is configured to: assign a third classification to the third data based on a third processing requirement of the third data obtained from the first data source, wherein the third processing requirement includes generating a third amount of metadata that is less than the second amount of metadata, and wherein the third data is obtained from the first data source, the second data source, or a third data source among the plurality of data sources.
[0108] Example 25 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the VECD, in response to execution of instructions, is configured to: assign a first classification to the data when the intended destination of the data is another VECD; and assign a second classification to the data when the intended destination of the data is a cloud computing service.
[0109] Example 26 may include one or more CRMs of Example 25 and / or some other examples herein, wherein the VECD, in response to execution of the instruction, is configured to: assign a third classification to the data when the intended destination of the data is a third-party gateway device or storage provided by a cloud computing service.
[0110] Example 27 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the VECD, in response to execution of the instruction, is used to: assign a first classification to the first data based on a first time delivery requirement of the first data; and assign a second classification to the second data based on a second time delivery requirement of the second data, wherein the first time delivery requirement is a first amount of time that is less than a second amount of time of the second time delivery requirement.
[0111] Example 28 may include one or more CRMs of Example 27 and / or some other examples herein, wherein the VECD, in response to execution of an instruction, is configured to: assign a third classification to the third data based on a third time delivery requirement of the third data, wherein the third time delivery requirement is a third amount of time greater than the second amount of time.
[0112] Example 29 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the VECD, in response to execution of instructions, is configured to: identify a current state of a communication link based on communication link quality information, the communication link quality information being obtained from a communication circuit system of the VECD; and control storage of the data in a second-tier data store or a first-tier data store, regardless of a classification assigned to the data, when the communication link quality information indicates that the quality of the communication link is below a predetermined threshold.
[0113] Example 30 may include one or more CRMs of Example 29 and / or some other examples herein, wherein the VECD, in response to execution of an instruction, is operable to: process data stored in the second-tier data store or the first-tier data store when the data is associated with a time delivery requirement having a time amount that is less than other time delivery requirements of other data.
[0114] Example 31 may include one or more CRMs of Example 19 and / or some other examples herein, wherein the plurality of data stores include a dynamic random access memory (DRAM) memory device, and wherein the VECD, in response to execution of the instruction, is configured to: control the storage of the obtained data in the DRAM memory device before assigning a classification to the data; and maintain the storage of the data in the DRAM memory device when a classification with a higher priority than the first classification is assigned to the data.
[0115] Example 32 may include one or more CRMs of Examples 18-31 and / or some other examples herein, wherein the VECD, in response to execution of instructions, is configured to: determine data access steps for obtaining raw data from each of a plurality of data sources; and determine a sampling rate at which the raw data is accessed from each data source, wherein the data is obtained according to the sampling rate determined for the data source from which the data is to be obtained.
[0116] Example 33 may include one or more CRMs of Example 32 and / or some other examples herein, wherein: the first tier of data storage is a three-dimensional crosspoint data storage device or a peripheral component interconnect express (PCIe) solid-state drive (SSD); and the second tier of data storage is a serial AT attachment (SATA) SSD or one or more hard disk drives.
[0117] Example 34 may include one or more CRMs of example 33 and / or some other examples herein, wherein the plurality of data stores further includes a third-tier data store, and wherein the third-tier data store is storage provided by a cloud computing service.
[0118] Example 35 may include a device used as a vehicle embedded computer device "VECD", the device comprising: a data acquisition device for obtaining data from a data source among a plurality of data sources, wherein at least a subset of the data sources are provided on a vehicle and the VECD is embedded in the vehicle; a classification device for assigning a classification to the data based on the data source from which the data was obtained; a decision device for determining a data store in which to store the data among a plurality of data stores provided in the vehicle based on the classification; and a data storage device for controlling the storage of the data in the determined data store.
[0119] Example 36 may include the apparatus of Example 35 and / or some other examples herein, wherein the plurality of data stores include a first-tier data store and a second-tier data store, and wherein the decision device is configured to: when the data is assigned a first classification, determine to store the data in the first-tier data store; and when the data is assigned a second classification, determine to store the data in the second-tier data store. Example 37 may include the apparatus of Example 36 and / or some other examples herein, wherein the plurality of data stores further include a third-tier data store, and wherein the decision device is configured to: when the data is assigned a third classification, determine to store the data in the third-tier data store.
[0120] Example 38 may include the apparatus of Example 36 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the classification device is used to: assign a first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than the priority of other target applications; and assign a second classification to the second data based on a second target application associated with the second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
[0121] Example 39 may include the apparatus of Example 38 and / or some other examples herein, wherein the classification device is used to assign a third classification to the third data based on a third target application associated with the third data obtained from the first data source, wherein the third target application has a third priority that is lower than the second priority.
[0122] Example 40 may include the apparatus of Example 36 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the classification device is used to: assign a first classification to the first data based on a first processing requirement for the first data; and assign a second classification to the second data based on a second processing requirement for the second data obtained from the first data source, wherein the first processing requirement includes generating a first amount of metadata that is greater than a second amount of metadata generated according to the second processing requirement, and wherein the second data is obtained from the first data source or the second data source among a plurality of data sources.
[0123] Example 41 may include the apparatus of Example 40 and / or some other examples herein, wherein the classification device is used to: assign a third classification to the third data based on a third processing requirement of the third data obtained from the first data source, wherein the third processing requirement includes generating a third metadata amount that is less than the second metadata amount, and wherein the third data is obtained from the first data source, the second data source, or the third data source among the multiple data sources.
[0124] Example 42 may include the apparatus of Example 36 and / or some other examples herein, wherein the classification device is used to: assign a first classification to the data when the intended destination of the data is another VECD; and assign a second classification to the data when the intended destination of the data is a cloud computing service.
[0125] Example 43 may include the apparatus of Example 42 and / or some other examples herein, wherein the classification device is configured to assign a third classification to the data when the intended destination of the data is a third-party gateway device or storage provided by a cloud computing service.
[0126] Example 44 may include the apparatus of Example 36 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and wherein the classification device is used to: assign a first classification to the first data based on a first time delivery requirement of the first data; and assign a second classification to the second data based on a second time delivery requirement of the second data, wherein the first time delivery requirement is a first amount of time that is less than a second amount of time of the second time delivery requirement.
[0127] Example 45 may include the apparatus of Example 44 and / or some other examples herein, wherein the classification device is used to: assign a third classification to the third data based on a third time delivery requirement of the third data, wherein the third time delivery requirement is a third time amount greater than the second time amount.
[0128] Example 46 may include the apparatus of Example 36 and / or some other examples herein, wherein: the decision device is used to identify the current state of the communication link based on communication link quality information, which communication link quality information is obtained from a communication device coupled to the device; and the data storage device is used to: when the communication link quality information indicates that the quality of the communication link is lower than a predetermined threshold, regardless of the classification assigned to the data, control the storage of the data in the second-tier data storage or the first-tier data storage.
[0129] Example 47 may include the apparatus of Example 46 and / or some other examples herein, further comprising a hardware data processing device for processing data stored in the second-tier data store or the first-tier data store when the data is associated with a time delivery requirement having a time amount that is less than other time delivery requirements of other data.
[0130] Example 48 may include the apparatus of Example 36 and / or some other examples herein, wherein the plurality of data stores include a volatile storage device, and the data storage device is used to: control the storage of the obtained data in the volatile storage device before the classification is assigned to the data by the classification device; and maintain the data stored in the volatile storage device when a classification with a higher priority than the first classification is assigned to the data.
[0131] Example 49 may include the apparatus of Examples 35-48 and / or some other examples herein, wherein the data acquisition device is further configured to: determine data access steps for acquiring raw data from each of a plurality of data sources; and determine a sampling rate at which the raw data is accessed from each data source, wherein the data acquisition device is configured to acquire data according to the sampling rate determined for the data source from which the data is to be acquired.
[0132] Example 50 may include the device of Example 49 and / or some other examples herein, wherein: the first tier data storage is a three-dimensional crosspoint data storage device or a peripheral component interconnect express (PCIe) solid-state drive (SSD); and the second tier data storage is a serial AT attachment (SATA) SSD, one or more hard disk drives, or storage provided by a cloud computing service, and wherein the plurality of data storages further includes a third tier data storage, and wherein the third tier data storage is storage provided by a cloud computing service.
[0133] Example 51 may include a method for execution by a vehicle embedded computer device "VECD", the method comprising: obtaining, by the VECD, data from a data source among a plurality of data sources, wherein at least a subset of the data sources are disposed on a vehicle in which the VECD is embedded; assigning, by the VECD, a classification to the data based on the data source from which the data was obtained; and determining, by the VECD, a data store among a plurality of data stores disposed in the vehicle in which the data is stored based on the classification, and storing the data in the determined data store; and storing, by the VECD, in the determined data store.
[0134] Example 52 may include the method of Example 51 and / or some other examples herein, wherein the plurality of data stores include a first-tier data store and a second-tier data store, and the method further includes: when the data is assigned a first classification, determining by the VECD to store the data in the first-tier data store; and when the data is assigned a second classification, determining by the VECD to store the data in the second-tier data store.
[0135] Example 53 may include the method of Example 52 and / or some other examples herein, wherein the plurality of data stores further includes a third-tier data store, and the method further includes: when the data is assigned a third classification, determining, by the VECD, to store the data in the third-tier data store.
[0136] Example 54 may include the method of Example 52 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and the method further includes: assigning, by the VECD, a first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than priorities of other target applications; and assigning, by the VECD, a second classification to the second data based on a second target application associated with the second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
[0137] Example 55 may include the method of Example 54 and / or some other examples herein, further including: assigning, by the VECD, a third classification to the third data based on a third target application associated with the third data obtained from the first data source, wherein the third target application has a third priority that is lower than the second priority.
[0138] Example 56 may include the method of Example 52 and / or some other examples herein, wherein the data is first data, the data source is a first data source, and the method further includes: assigning, by the VECD, a first classification to the first data based on a first processing requirement for the first data; and assigning, by the VECD, a second classification to the second data based on a second processing requirement for the second data obtained from the first data source, wherein the first processing requirement includes generating a first amount of metadata that is greater than a second amount of metadata generated according to the second processing requirement, and wherein the second data is obtained from the first data source or the second data source among a plurality of data sources.
[0139] Example 57 may include the method of Example 56 and / or some other examples herein, further including: assigning, by the VECD, a third classification to the third data based on a third processing requirement of the third data obtained from the first data source, wherein the third processing requirement includes generating a third amount of metadata, the third amount of metadata being less than the second amount of metadata, and wherein the third data is obtained from the first data source, the second data source, or the third data source among the plurality of data sources.
[0140] Example 58 may include the method of Example 52 and / or some other examples herein, further including: assigning, by the VECD, a first classification to the data when the intended destination of the data is another VECD; and assigning, by the VECD, a second classification to the data when the intended destination of the data is a cloud computing service.
[0141] Example 59 may include the method of Example 58 and / or some other examples herein, further comprising assigning, by the VECD, a third classification to the data when the intended destination of the data is a third-party gateway device or storage provided by a cloud computing service.
[0142] Example 60 may include the method of Example 52 and / or some other examples herein, wherein the data is first data, the data source is the first data source, and the method further includes: assigning, by the VECD, a first classification to the first data based on a first time delivery requirement of the first data; and assigning, by the VECD, a second classification to the second data based on a second time delivery requirement of the second data, wherein the first time delivery requirement is a first amount of time that is less than a second amount of time of the second time delivery requirement.
[0143] Example 61 may include the method of Example 60 and / or some other examples herein, further comprising: assigning, by the VECD, a third classification to the third data based on a third time delivery requirement for the third data, wherein the third time delivery requirement is a third amount of time greater than the second amount of time.
[0144] Example 62 may include the method of Example 52 and / or some other examples herein, further including: identifying, by the VECD, a current state of the communication link based on communication link quality information, the communication link quality information being obtained from a communication circuit system of the VECD; and storing, by the VECD, the data in a second-tier data store or a first-tier data store, regardless of the classification assigned to the data, when the communication link quality information indicates that the quality of the communication link is below a predetermined threshold.
[0145] Example 63 may include the method of Example 62 and / or some other examples herein, further including: processing, by the VECD, data stored in the second-tier data storage or the first-tier data storage when the data is associated with a time delivery requirement having a time amount that is less than other time delivery requirements of other data.
[0146] Example 64 may include the method of Example 52 and / or some other examples herein, wherein the plurality of data stores include a dynamic random access memory (DRAM) memory device, and wherein the VECD, in response to execution of the instruction, is configured to: store the obtained data in the DRAM memory device by the VECD before assigning a classification to the data; and maintain the data stored in the DRAM memory device when a classification with a higher priority than the first classification is assigned to the data.
[0147] Example 65 may include the methods of Examples 51-64 and / or some other examples herein, further comprising: determining, by the VECD, a data access step for obtaining raw data from each of a plurality of data sources; and determining, by the VECD, a sampling rate at which the raw data is accessed from each data source, and wherein obtaining data from the data source comprises obtaining data according to the sampling rate determined for the data source from which the data is to be obtained.
[0148] Example 66 may include the method of Example 65 and / or some other examples herein, wherein the first tier data storage is a three-dimensional crosspoint data storage device or a peripheral component interconnect express (PCIe) solid-state drive (SSD); and the second tier data storage is a serial AT attachment (SATA) SSD or one or more hard disk drives.
[0149] Example 67 may include the method of Example 66 and / or some other examples herein, wherein the plurality of data stores further includes a third-tier data store, and wherein the third-tier data store is storage provided by a cloud computing service.
[0150] As will be appreciated by those skilled in the art, aspects of the present disclosure may be embodied as methods or computer program products. Accordingly, in addition to being embodied as hardware as previously described, aspects of the present disclosure may also take the form of entirely software embodiments (including firmware, resident software, microcode, etc.) or embodiments combining all software and hardware aspects that may be collectively referred to as "circuits," "modules," or "systems." Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in any tangible or non-transitory medium of expression having computer-usable program code embodied in the medium.
[0151] The corresponding structures, materials, acts, and equivalents of all "means+function" elements or "step+function" elements in the appended claims are intended to include any structure, material, or act for performing that function in combination with other claimed elements to which rights are expressly claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the disclosure in the form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the disclosure. The embodiments were chosen and described in order to best explain the principles and practical application of the disclosure and to enable others of ordinary skill in the art to understand the disclosure of the embodiments with various modifications as are applicable to the particular use contemplated.
[0152] It will be apparent to those skilled in the art that various modifications and variations can be made in the disclosed embodiments of the disclosed apparatus and associated methods without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure is intended to cover modifications and variations of the above-disclosed embodiments if such modifications and variations come within the scope of any claims and their equivalents.
Claims
1. A vehicle embedded computer device (VECD), comprising: An interface circuit system is configured to: obtaining data from a data source of a plurality of data sources, wherein at least a subset of the plurality of data sources are disposed on a vehicle in which the VECD is embedded; and obtaining status information associated with one or more of at least one component of the VECD, at least one component of the vehicle, and at least one communication link; a classification engine coupled to the interface circuitry, the classification engine configured to assign a classification to the data based on the data source from which the data was obtained, the intended destination of the data, and the status information; a decision engine configured to determine, based on the classification and the status information, a data store among a plurality of data stores provided in the vehicle in which to store the data; as well as The data storage controller is configured to control the storage of the data in the determined data storage.
2. The VECD of claim 1 , wherein the plurality of data stores comprises a first tier data store and a second tier data store, and wherein the decision engine is configured to: When the data is assigned a first classification, determining to store the data in the first-tier data storage; and When the data is assigned the second classification, it is determined to store the data in the second-tier data storage.
3. The VECD of claim 2, wherein the data is first data, the data source is a first data source, and wherein the classification engine is configured to: assigning the first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than priorities of other target applications; and The second classification is assigned to second data based on a second target application associated with second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
4. The VECD of claim 2, wherein the data is first data, the data source is a first data source, and wherein the classification engine is configured to: assigning the first classification to the first data based on a first processing requirement of the first data; and assigning the second classification to the second data based on a second processing requirement of the second data obtained from the first data source; wherein the first processing requirement includes generating a first amount of metadata, the first amount of metadata being greater than a second amount of metadata generated according to the second processing requirement, and The second data is obtained from the first data source or the second data source among the multiple data sources.
5. The VECD of claim 2, wherein the classification engine is configured to: assigning the first classification to the data when the intended destination of the data is another VECD; and When the intended destination of the data is a cloud computing service, the second classification is assigned to the data.
6. The VECD of claim 2, wherein the data is first data, the data source is a first data source, and wherein the classification engine is configured to: assigning the first classification to the first data based on a first time delivery requirement of the first data; and assigning the second classification to the second data based on a second time delivery requirement of the second data, Wherein the first time delivery requirement is a first amount of time, the first amount of time being less than a second amount of time of the second time delivery requirement.
7. The VECD of claim 2, wherein: the decision engine being configured to identify a current state of a communication link based on communication link quality information obtained from communication circuitry coupled to the interface circuitry; and When the communication link quality information indicates that the quality of the communication link is lower than a predetermined threshold, the data storage controller is configured to control the data to be stored in the second-tier data storage or the first-tier data storage regardless of the classification assigned to the data.
8. The VECD of claim 7 further comprising a hardware data processor configured to process the data stored in the second tier data storage or the first tier data storage when the data is associated with a time delivery requirement having a time amount that is less than other time delivery requirements of other data.
9. The VECD of claim 2 , wherein the plurality of data stores comprises dynamic random access memory (DRAM) memory devices, and the data storage controller is configured to: controlling storing the obtained data in the DRAM memory device before the classification engine assigns the classification to the data; and When a class with a higher priority than the first class is assigned to the data, the data is kept stored in the DRAM memory device.
10. The VECD of any one of claims 1 to 9, further comprising: a data acquisition engine configured to determine data access steps for acquiring raw data from each of the plurality of data sources and to determine a sampling rate at which the raw data is accessed from each data source, wherein the interface circuitry is configured to acquire the data according to the sampling rate determined for the data source from which the data is to be acquired.
11. The VECD of claim 10, wherein: The first tier of data storage is a three-dimensional crosspoint data storage device or a Peripheral Component Interconnect Express (PCIe) solid-state drive (SSD); and The second tier of data storage is a Serial AT Attached (SATA) SSD, one or more hard disk drives, or storage provided by a cloud computing service.
12. One or more computer readable media (CRM) comprising instructions which, when executed by a vehicle embedded computer device (VECD), cause the VECD to: obtaining data from a data source of a plurality of data sources, wherein at least a subset of the plurality of data sources are disposed on a vehicle in which the VECD is embedded; obtaining status information associated with one or more of at least one component of the VECD, at least one component of the vehicle, and at least one communication link; assigning a classification to the data based on the data source from which the data was obtained, the intended destination of the data, and the status information; as well as A data storage in which the data is to be stored is determined among a plurality of data storages provided in the vehicle based on the classification and the status information, and stored in the determined data storage.
13. The one or more CRMs of claim 12, wherein the plurality of data stores comprises a first tier data store and a second tier data store, and wherein the VECD, in response to execution of the instructions, is to: When the data is assigned a first classification, determining to store the data in the first-tier data storage; and When the data is assigned the second classification, it is determined to store the data in the second-tier data storage.
14. One or more CRMs as recited in claim 13, wherein the data is first data, the data source is a first data source, and wherein the VECD, in response to execution of the instructions, is to: assigning the first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than priorities of other target applications; and The second classification is assigned to second data based on a second target application associated with second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
15. The one or more CRMs of claim 13, wherein the data is first data, the data source is a first data source, and wherein the VECD, in response to execution of the instructions, is to: assigning the first classification to the first data based on a first processing requirement of the first data; and assigning the second classification to the second data based on a second processing requirement of the second data obtained from the first data source; The first processing requirement includes generating a first amount of metadata, the first amount of metadata is greater than a second amount of metadata generated according to the second processing requirement, and the second data is obtained from the first data source or the second data source among the plurality of data sources.
16. The one or more CRMs of claim 13, wherein the VECD, in response to execution of the instructions, is operable to: assigning the first classification to the data when the intended destination of the data is another VECD; and When the intended destination of the data is a cloud computing service, the second classification is assigned to the data.
17. The one or more CRMs of claim 13, wherein the data is first data, the data source is a first data source, and wherein the VECD, in response to execution of the instructions, is to: assigning the first classification to the first data based on a first time delivery requirement of the first data; and assigning the second classification to the second data based on a second time delivery requirement of the second data, Wherein the first time delivery requirement is a first amount of time, the first amount of time being less than a second amount of time of the second time delivery requirement.
18. A vehicle embedded computer device (VECD), comprising: a data acquisition device for obtaining data from a data source of a plurality of data sources and obtaining status information related to one or more of at least one component of the VECD, at least one component of a vehicle, and at least one communication link, wherein at least a subset of the plurality of data sources are disposed on the vehicle and the VECD is embedded in the vehicle; classification means for assigning a classification to said data based on said data source from which said data was obtained, an intended destination of said data and said status information; a decision device for determining, based on the classification and the status information, a data store in which the data is to be stored among a plurality of data stores provided in the vehicle; as well as The data storage device is configured to store the data in the determined data storage.
19. The VECD of claim 18, wherein the plurality of data stores include a first layer of data stores and a second layer of data stores, and the decision making device is further configured to: When the data is assigned a first classification, determining to store the data in the first-tier data storage; and When the data is assigned the second classification, it is determined to store the data in the second-tier data storage.
20. The VECD of claim 19, wherein the data is first data, the data source is a first data source, and wherein the classification means is configured to: assigning the first classification to the first data based on a first target application associated with the first data, wherein the first target application has a first priority that is higher than priorities of other target applications; and The second classification is assigned to second data based on a second target application associated with second data obtained from the first data source, wherein the second target application has a second priority that is lower than the first priority.
21. The VECD of claim 19, wherein the data is first data, the data source is a first data source, and wherein the classification means is configured to: assigning the first classification to the first data based on a first processing requirement of the first data; and assigning the second classification to the second data based on a second processing requirement of the second data obtained from the first data source; The first processing requirement includes generating a first amount of metadata, the first amount of metadata is greater than a second amount of metadata generated according to the second processing requirement, and the second data is obtained from the first data source or the second data source among the plurality of data sources.
22. The VECD of claim 19, wherein the classification device is configured to: assigning the first classification to the data when the intended destination of the data is another VECD; and When the intended destination of the data is a cloud computing service, the second classification is assigned to the data.
23. The VECD of claim 19, wherein the data is first data, the data source is a first data source, and wherein the classification means is configured to: assigning the first classification to the first data based on a first time delivery requirement of the first data; and assigning the second classification to the second data based on a second time delivery requirement of the second data, Wherein the first time delivery requirement is a first amount of time, the first amount of time being less than a second amount of time of the second time delivery requirement.
24. A method for execution by a vehicle embedded computer device (VECD), the method comprising: obtaining, by the VECD, data from a data source of a plurality of data sources, wherein at least a subset of the plurality of data sources are disposed on a vehicle in which the VECD is embedded; obtaining, by the VECD, status information associated with one or more of at least one component of the VECD, at least one component of the vehicle, and at least one communication link; assigning, by the VECD, a classification to the data based on the data source from which the data was obtained, a target application associated with the data, processing requirements of the data, an intended destination of the data, time delivery requirements of the data, and the status information; determining, by the VECD, based on the classification and the status information, a data store in which to store the data from among a plurality of data stores provided in the vehicle; as well as The VECD is stored in the determined data storage.
25. The method of claim 24, wherein the plurality of data stores comprises a first tier data store and a second tier data store, and the method further comprises: When the data is assigned a first classification, the VECD determines to store the data in the first layer of data storage; as well as When the data is assigned the second classification, the VECD determines to store the data in the second-tier data storage.
Citation Information
Patent Citations
Method for reducing power consumption of a mobile device and mobile device
US20150351035A1
Policy-based storage of object fragments in a multi-tiered storage system
US8918586B1
Method and apparatus for providing vehicle sensor data access and storage
US9168882B1