Data storage system, data storage device, and data storage method
The data storage system prioritizes access requests using predefined rules to prevent data loss in vehicles, particularly during conflicts with external devices, ensuring safe and reliable storage of critical safety-related data.
Patent Information
- Application Number
- JP2024226972
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-12-24
- Publication Date
- 2026-07-06
Smart Images

Figure 2026111638000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a data storage system, a data storage device, and a data storage method.
Background Art
[0002] Conventionally, in a vehicle, when a predetermined event such as a collision or sudden braking occurs, and data such as logs and videos acquired during normal times are stored in a data storage unit (memory device). When the vehicle is a vehicle equipped with an automatic driving function, the amount of data to be stored becomes enormous. Therefore, Patent Document 1 discloses a technique for reducing the data storage amount by changing the data recording target to the data storage unit according to the level of the automatic driving mode.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] By the way, there are vehicles that can communicate with external devices such as servers. In such vehicles, data from external devices can be stored in the vehicle. In a data storage system that stores data in a moving object such as such a vehicle, it is desirable to suppress the disappearance of desired data such as data related to vehicle travel.
[0005] Therefore, the present disclosure provides a data storage system, a data storage device, and a data storage method in which the disappearance of desired data is suppressed.
Means for Solving the Problems
[0006] A data storage system according to one aspect of the present disclosure is a data storage system mounted on a mobile body, comprising a shared memory device and a first control unit that controls writing and reading data to the shared memory device, wherein when the first control unit obtains a first access request to the shared memory device, it determines whether the first access request is an access request from a device outside the mobile body, and if the first access request is an access request from the external device, it updates the priority information included in the first access request, which is used as the priority for accessing the shared memory device, based on rules held by the mobile body.
[0007] A data storage device according to one aspect of the present disclosure is a data storage device mounted on a mobile body having a shared memory device, wherein when the data storage device receives an access request to the shared memory device, it determines whether the access request is from a device outside the mobile body, and if the access request is from an external device, it updates priority information, which is included in the access request and used as information indicating the priority of access to the shared memory device, based on rules held by the mobile body.
[0008] A data storage method according to one aspect of the present disclosure is a data storage method performed by a data storage system mounted on a mobile body having a shared memory device, wherein when an access request to the shared memory device is obtained, it is determined whether the access request is from a device outside the mobile body, and if the access request is from the external device, priority information included in the access request and used as information indicating the priority of access to the shared memory device is updated based on rules held by the mobile body. [Effects of the Invention]
[0009] According to one aspect of this disclosure, it is possible to realize a data storage system, etc., in which the loss of desired data is suppressed. [Brief explanation of the drawing]
[0010] [Figure 1] Figure 1 is a block diagram showing the functional configuration of a data storage system according to an embodiment. [Figure 2] Figure 2 shows an example of a VC setting table according to the embodiment. [Figure 3] Figure 3 is a flowchart showing the operation of the fourth switch unit when downloading from an external server according to the embodiment. [Figure 4] Figure 4 is a flowchart showing the operation of the fourth switch unit when uploading to an external server according to the embodiment. [Figure 5] Figure 5 is a flowchart showing the operation of the third switch unit when uploading to an external server according to the embodiment. [Modes for carrying out the invention]
[0011] (Background leading to this disclosure) In vehicles, it is being considered to provide a shared memory device that can store data in common among multiple host devices and other devices. Furthermore, if the vehicle can communicate with external devices (e.g., multiple servers), data from these external devices will also be stored in the shared memory device. In such a vehicle, if a conflict occurs in access requests to the shared memory device from multiple host devices, devices, and servers (e.g., data write access (memory write access)), there is a risk that data related to vehicle operation may be lost. Data related to vehicle operation includes data acquired within the vehicle, such as sensing results from sensors mounted on the vehicle and various logs. This data also includes, for example, data that poses a high safety risk during vehicle operation. Data that poses a high safety risk during vehicle operation may include, for example, data necessary for the vehicle to operate safely, or data required for external analysts to analyze the vehicle's condition.
[0012] A conflict in access requests means that two or more devices among multiple host devices, multiple devices, and multiple servers simultaneously submit access requests to a shared memory device. "Simultaneous" includes not only being completely simultaneous, but also having a time difference of up to a specified period (e.g., substantially simultaneous).
[0013] In response to this, the applicant has filed Japanese Patent Application No. 2024-104845 as a prior patent application relating to the inventor's invention, which provides a technology to suppress the loss of data that poses a high safety risk during vehicle operation when there is a collision of access requests to a shared memory device from multiple devices, and when there is a collision of access requests to a shared memory device from devices and host devices. This prior patent application discloses a technology to suppress the loss of data that poses a high safety risk during vehicle operation when there is a collision of write access requests to a shared memory device from multiple devices, and when there is a collision of write access requests to a shared memory device from devices and host devices.
[0014] Therefore, this disclosure primarily describes a technology to prevent the loss of desired data, such as data posing a high safety risk during vehicle operation, when a conflict occurs between access requests to a shared memory device from multiple (or one or more) external devices and other access requests. Such conflicts may include, for example, a conflict between an external device and at least one of a device and a host device, and a conflict between access requests from multiple external devices. Furthermore, this disclosure also describes a technology to prevent the loss of data posing a high safety risk during vehicle operation, such as data posing a high safety risk during vehicle operation, when a conflict occurs in data transmission requests from a vehicle to an external device. Such conflicts may include, for example, a conflict between transmission requests between data from the shared memory device and data from at least one of a device and a host device, and a conflict between transmission requests between data from a device and data from a host device.
[0015] Furthermore, Patent Document 1 does not disclose any technology to suppress data loss in the event of a collision of access requests.
[0016] Hereinafter, embodiments and the like will be specifically described with reference to the drawings.
[0017] Note that all of the embodiments and the like described below show comprehensive or specific examples. The numerical values, shapes, components, arrangement positions and connection forms of the components, steps, order of steps, etc. shown in the following embodiments are merely examples and are not intended to limit the present disclosure. In addition, among the components in the following embodiments, the components not described in the independent claims are described as optional components.
[0018] In addition, in each figure, substantially the same configurations are denoted by the same reference numerals, and overlapping descriptions are omitted or simplified.
[0019] In addition, in this specification, terms indicating the relationship between elements such as the same, as well as numerical values and numerical ranges, are not expressions representing only strict meanings, but are expressions meaning that they include substantially equivalent ranges, for example, a difference of about several% (or about 10%).
[0020] In addition, in this specification, ordinal numbers such as "first" and "second" do not mean the number or order of components unless otherwise specified, and are used for the purpose of avoiding confusion and distinguishing between components of the same kind.
[0021] (Embodiment) Hereinafter, the data storage system, data storage device, and data storage method according to the present embodiment will be described with reference to FIGS. 1 to 5.
[0022] [1. Configuration of Data Storage System] First, the configurations of the data storage system and the data storage device will be described with reference to FIGS. 1 and 2. FIG. 1 is a block diagram showing the functional configuration of a data storage system 1 according to the present embodiment.
[0023] Data storage system 1 is a system for storing data related to the movement of mobile objects such as vehicles, aircraft (e.g., drones), ships, and railways. The following description will explain an example of data storage system 1 being installed in a vehicle.
[0024] As shown in Figure 1, the data storage system 1 is mounted on vehicle M and comprises a first host device 10A and a second host device 10B, a switch 20, a shared memory device 70, a TCU (Telematics Control Unit) 80, and a NIC (Network Interface Card) 90. Vehicle M is also connected to a network N to communicate with an example of an external device, a first external server 2 and a second external server 3. Note that the first host device 10A and the second host device 10B are referred to as "each host device," and either of the first host device 10A and the second host device 10B is also referred to as "the host device." Similarly, the first external server 2 and the second external server 3 are referred to as "each external server," and either of the first external server 2 and the second external server 3 is also referred to as "the external server."
[0025] The following describes an example in data storage system 1 where PCIe (Peripheral Component Interconnect express) (registered trademark) is used as the interface, for example, where communication between each external server and NIC 90 and the shared memory device 70 is performed in accordance with the PCI Express standard. Alternatively, CXL (Compute Express Link) (registered trademark) may be used as the interface. For example, communication between each external server and NIC 90 and the shared memory device 70 may be performed in accordance with the CXL standard.
[0026] The first host device 10A and the second host device 10B are examples of control devices, and are components (e.g., circuits) that function as hosts in data communication via the PCIe bus (i.e., PCIe communication), and correspond to root complex (RC) devices in the PCIe standard. The first host device 10A and the second host device 10B are configured to include, for example, functional components realized by a CPU (Central Processing Unit) or MPU (Micro Processor Unit) that executes processing, and memory sections such as ROM (Read Only Memory) and RAM (Random Access Memory) that store programs for causing each functional component to execute various processes. The first host device 10A and the second host device 10B may be realized by, for example, an ECU (Electronic Control Unit) mounted on a vehicle M.
[0027] The number of host devices provided by the data storage system 1 is not particularly limited; it may be provided with at least one of the first host device 10A and the second host device 10B (i.e., only one host device), or it may be provided with three or more host devices.
[0028] The first host device 10A is connected to the first UP31 of the switch 20 and has one or more master units (not shown) which are processing units that perform processing to write different data to the shared memory device 70. Examples of data include event logs related to events in the vehicle M, video information related to events in the vehicle M, and download information. In other words, examples of processing performed by each of the one or more master units include recording event logs, recording video, and downloading (recording downloaded information).
[0029] The second host device 10B is connected to the second UP41 of the switch 20 and has one or more master units (not shown) which are processing units that perform processing to write different data to the shared memory device 70. Examples of data include event logs related to events in vehicle M, video information related to events in vehicle M, and download information. In other words, examples of processing performed by each of the one or more master units include recording event logs, recording video, and downloading.
[0030] When the first host device 10A and the second host device 10B write data to the shared memory device 70, they store the VC (Virtual Channel) value set on the host device (or connected DP) in the TC (Traffic Class) storage section (TC field) of the data header (for example, the TLP (Transaction Layer Packet) header) and output data including the VC value. In this way, the data storage system 1 uses the VC value associated with the TC storage section (or TC) of the header. The VC value is an example of priority information used within the data storage system 1 to indicate the priority of access to the shared memory device 70.
[0031] In the example shown in Figure 1, the data storage system 1 is described as a multi-host system, but the number of host devices may be one or three or more.
[0032] Switch 20, also known as a PCIe switch, has the function of distributing data output from the first host device 10A and the second host device 10B to downstream endpoint devices (shared memory device 70 and NIC 90 in the example in Figure 1). Switch 20 also has the function of distributing data received from the first external server 2 or the second external server 3 to the first host device 10A, the second host device 10B, and endpoint devices (shared memory device 70 in the example in Figure 1). Switch 20 also has the function of transmitting (uploading) data from the first host device 10A, the second host device 10B, and the shared memory device 70 to the first external server 2 or the second external server 3.
[0033] The switch 20 comprises a first switch section 30, a second switch section 40, a third switch section 50, a fourth switch section 60, a first UP 31, a second UP 41, a first DP 51, a second DP 61, a first EP bridge 32, a second EP bridge 42, a first RC bridge 52, and a second RC bridge 62. Each of the first switch section 30, the second switch section 40, the third switch section 50, and the fourth switch section 60 has multiple ports and is connected to other switch sections, etc.
[0034] The first switch unit 30 is a switch for outputting data to the first host device 10A. The first switch unit 30 has a priority control unit 30a.
[0035] The priority control unit 30a is connected between the shared memory device 70 and each external server and the first host device 10A (specifically, between the third switch unit 50, the fourth switch unit 60, the first RC bridge 52, and the second RC bridge 62 and the first host device 10A), and controls the output order (priority order) of data output from the shared memory device 70 and each external server to the first host device 10A. Specifically, the priority control unit 30a performs priority control, which prioritizes the output of one data selected according to the VC value to the first host device 10A. In this embodiment, for example, the priority control unit 30a performs round-robin control to output data from the shared memory device 70 and each external server to the first host device 10A.
[0036] UP131 is an upstream port of EP1Bridge32.
[0037] The first EP bridge 32 is connected to the first host device 10A and the first switch unit 30 (e.g., the priority control unit 30a), and outputs (i.e., distributes) the incoming data (e.g., packets) to the appropriate device based on its destination. The first EP bridge 32 functions as an endpoint device when data is communicated.
[0038] The second switch unit 40 is a switch for outputting data to the second host device 10B. The second switch unit 40 has a priority control unit 40a.
[0039] The priority control unit 40a is connected between the shared memory device 70 and each external server and the second host device 10B (specifically, between the third switch unit 50, the fourth switch unit 60, the first RC bridge 52, and the second RC bridge 62 and the second host device 10B), and controls the output order (priority order) of data output from the shared memory device 70 and each external server to the second host device 10B. Specifically, the priority control unit 40a performs priority control, which prioritizes the output of one data selected according to the VC value to the second host device 10B. In this embodiment, for example, the priority control unit 40a performs round-robin control to output data from the shared memory device 70 and each external server to the second host device 10B.
[0040] The second UP41 is an upstream port of the second EP bridge 42. The second UP41 is capable of performing NTB (Non-Transparent Bridge) processing for host-to-host communication between the first EP bridge 32 and the second EP bridge 42. In other words, the switch 20 may have NTB functionality.
[0041] The second EP bridge 42 is connected to the second host device 10B and the second switch unit 40 (for example, the priority control unit 40a), and outputs (i.e., distributes) the incoming data (e.g., packets) to the appropriate device based on its destination. The second EP bridge 42 functions as an endpoint device when data is communicated.
[0042] The third switch unit 50 is a switch for outputting data to each external server. The third switch unit 50 has a priority control unit 50a.
[0043] The priority control unit 50a is connected between the shared memory device 70 and each host device and each external server (specifically, between the first switch unit 30, the second switch unit 40, the fourth switch unit 60, the first EP bridge 32, the second EP bridge 42, the first RC bridge 52, and the second RC bridge 62 and each of them and the NIC 90), and controls the output order (priority order) of data transmitted from within the vehicle M to each external server. Specifically, the priority control unit 50a performs control (priority control) to output one data selected according to the VC value to the external server as the priority. In other words, the priority control unit 50a controls the transmission of data to external devices. In this embodiment, for example, the priority control unit 50a performs control to output data from within the vehicle M to the external server using round-robin control. The priority control unit 50a is an example of a second control unit.
[0044] DP51 is a downstream port of RC Bridge 52.
[0045] The first RC bridge 52 is connected to the NIC 90 and the second switch unit 40 (for example, the priority control unit 40a), and outputs the incoming data (for example, packets) to the appropriate device based on its destination (i.e., distributes it). The first RC bridge 52 functions as a route complex when communicating data.
[0046] The fourth switch unit 60 is a switch for outputting data to the shared memory device 70. The fourth switch unit 60 has a priority control unit 60a.
[0047] The priority control unit 60a controls access requests for writing and reading data to the shared memory device 70. The priority control unit 60a is connected between the NIC 90 and each host device and the shared memory device 70 (specifically, between the first switch unit 30, the second switch unit 40, the third switch unit 50, the first EP bridge 32, the second EP bridge 42, the first RC bridge 52, and the second RC bridge 62 and the shared memory device 70) and controls the output order (priority order) of data stored in the shared memory device 70. Specifically, the priority control unit 60a performs priority control, outputting one data selected according to the VC value to the shared memory device 70 with priority over other data. In this embodiment, for example, the priority control unit 60a controls the output of data from the first host device 10A, the second host device 10B, and each external server to the shared memory device 70 using round-robin control.
[0048] Furthermore, in this embodiment, when an access request is received from an external server, the priority control unit 60a automatically resets the VC value, which is arbitrarily set on the external server, to a VC value that conforms to the VC value assignment rules set on the vehicle. The priority control unit 60a is an example of a control unit, a first control unit, and a data storage device.
[0049] Here, an example of a VC setting table used by the priority control unit 60a when resetting the VC value will be described with reference to Figure 2. Figure 2 is a diagram showing an example of a VC setting table according to this embodiment. The VC setting table shown in Figure 2 is, for example, a VC setting table commonly used for setting VC in the data storage system 1, and may be stored in the storage unit (not shown) of each host device, or it may be stored in the shared memory device 70. In the data storage system 1, the level of priority in executing access requests is defined by the VC value. The VC setting table shown in Figure 2 is an example of a rule that vehicle M has.
[0050] As shown in Figure 2, the VC configuration table is a table that associates VCs, priorities, access classifications, processing classifications, and example processing content. Note that Figure 2 shows the VC configuration table when the access request is a write access.
[0051] VC is information used in the priority control unit 60a to determine priority, and in the example shown in Figure 2, eight levels from 0 to 7 are set. 0 to 7 are examples of VC values.
[0052] The priority indicates the priority level (e.g., high, low) for writing data to the shared memory device 70 for each access classification. Figure 2 shows an example where a larger VC value indicates higher priority. It also indicates that, for example, if data in the ASIL (Automotive Safety Integrity Level) light category conflicts with data in the non-ASIL category, the ASIL light data will be written to the shared memory device 70 with priority. Furthermore, it indicates that data that is more important to the safety of vehicle M will be assigned a higher priority.
[0053] Access classification indicates the classification of data writing processes and includes ASIL writes, non-ASIL writes, and communication (communication writes). ASIL writes indicate security-related access (writing of security-related data), non-ASIL writes indicate non-security-related access (writing of non-security-related data), and communication indicates download access from various external servers outside of vehicle M (writing of downloaded data).
[0054] The processing classification indicates the processing classification for data for each access classification, and includes event log recording, event video recording, continuous video recording, continuous log recording, download, etc.
[0055] Event log recording and event video recording are included in the ASIL WITE access classification. Event log recording involves recording logs related to vehicle safety events in the shared memory device 70, and includes, for example, recording logs before and after risk detection occurs in obstacle detection, as shown in the example processing content. Event video recording involves recording video and other images related to vehicle safety events, and includes, for example, recording video and detection analysis images before and after risk detection occurs in obstacle detection, as shown in the example processing content.
[0056] Continuous recording and continuous logging are included in the access classification of non-ASIL light. Continuous recording is the continuous recording of non-safety related video, such as driving video recording. Continuous logging is the continuous recording of non-safety related logs, such as driving logs (location information, etc.), vehicle information (vehicle status, etc.), and occupant status (blood pressure, etc.).
[0057] Downloads are included in the communication. Downloads involve downloading information from external servers (e.g., the first external server 2 and the second external server 3) of the vehicle M, and include, for example, software updates such as OTA (Over The Air) and management data from the servers, as shown in the example processing content.
[0058] Note that the VC setting table shown in Figure 2 is an example, and for example, the access classification may also include "Entertainment" and "HW (Hardware) Function". Since "Entertainment" poses a low safety risk during vehicle operation, the VC value may be set to 0 to 1 depending on the processing content. Similarly, for "HW Function", the VC may be set according to the processing content. Furthermore, when the access classification is communication, the processing classification may include upload in addition to download. Note that Figure 2 shows an example where the VC value is set to 0 or 1 whether the processing classification is download or upload.
[0059] Thus, the VC value, or priority level, is set for each processing category, not for each access category. For example, in the VC setting table shown in Figure 2, if a write access for event log recording and a write access for event video recording conflict, the write access for event log recording, which has a larger VC value (higher priority), will take precedence.
[0060] Furthermore, the TC storage section of the data header from the first host device 10A and the second host device 10B also stores the VC value set based on Figure 2 above.
[0061] Note that the VC setting table shown in Figure 2 may be a setting table used when the vehicle M is in a normal state. A normal state is a state in which vehicle M is running normally, and is exemplified, but not limited to, a state in which no accidents have occurred.
[0062] Referring again to Figure 1, the second DP61 is a downstream port of the second RC bridge 62.
[0063] The second RC bridge 62 is connected to the shared memory device 70 and the fourth switch unit 60 (for example, the priority control unit 60a), and outputs (i.e., distributes) the incoming data (e.g., packets) to the appropriate device based on its destination. The second RC bridge 62 functions as a route complex when communicating data.
[0064] The shared memory device 70 is an example of a device that is communicatively connected to each host device and each external server via the switch 20, and is a storage device that can write and read data from each host device, each device, and each external server. The shared memory device 70 corresponds to, for example, an endpoint (EP) device in the PCIe standard. In this embodiment, the shared memory device 70 is a non-volatile storage device. The shared memory device 70 is configured, for example, to include a substrate and a plurality of non-volatile semiconductor memories arranged on the substrate.
[0065] The TCU80 is equipped with a communication interface to a network N (external network) outside the vehicle M, and performs wireless communication between the vehicle M and the first external server 2 and the second external server 3 via the network N. The TCU80 receives data to be stored in the shared memory device 70 (e.g., update programs, weather information, etc.) from the first external server 2 or the second external server 3 via wireless communication, and transmits data to be sent to the first external server 2 or the second external server 3 (e.g., video from the in-vehicle camera, speed and location data, etc.) via wireless communication.
[0066] NIC90 is an example of a device, a device for vehicle M to connect to network N, and is an expansion card that incorporates, for example, a connector and a communication IC. NIC90 also outputs data to the shared memory device 70 via P2P. In this case, the TC storage section of the data header contains unnecessary information. As will be described in detail later, the priority control unit 60a stores the VC value in the TC storage section of the header, which is unnecessary information for outputting data to the shared memory device 70 via Peer to Peer (P2P) (overwriting the original value in the TC storage section).
[0067] NIC90 can write data to the shared memory device 70 without going through the first host device 10A and the second host device 10B. In other words, the data storage system 1 has a mechanism that allows endpoint devices connected to the PCIe bus to communicate directly with each other. Direct communication here means that endpoint devices communicate with each other without going through each host device.
[0068] Thus, data can be transferred via P2P from NIC90 to the shared memory device 70 without going through each host device. In other words, NIC90 performs data transfer using a method that does not require VC values. For example, NIC90 may transfer data to the shared memory device 70 using DMA (Direct Memory Access).
[0069] The data storage system 1 may also include one or more memories (e.g., temporary memories) (not shown) to suppress the loss of data that has been delayed in access by each priority control unit (data that was not selected). Each priority control unit may temporarily store the unselected data in the memory, write the selected data to the shared memory device 70, and then write the data stored in the memory to the shared memory device 70. The data written to the shared memory device 70 is deleted from the memory. The memory is implemented, for example, by a volatile semiconductor memory.
[0070] The data storage system 1 may also include other devices as endpoint devices besides the shared memory device 70 and NIC 90. Examples of other devices include, but are not limited to, a processing unit that performs predetermined preprocessing on data from sensors for driving or occupant monitoring (e.g., cameras), and a processing unit that performs graphics processing for graphics display or to extend functionality. The processing unit includes various functional components such as a CPU, MPU, and GPU (Graphics Processing Unit), and a memory unit that allows each functional component to perform various processes. Furthermore, the number of devices included in the data storage system 1 is not particularly limited; it may be just one or three or more.
[0071] The first external server 2 and the second external server 3 are servers that have a PCIe (or CXL) space separate from the data storage system 1. The following describes an example in which the first external server 2 and the second external server 3 are servers that have a PCIe space.
[0072] The first external server 2 and the second external server 3 are not particularly limited, but examples include servers that manage information used in the operation of vehicle M, the operating status of vehicle M, and services provided to vehicle M. Examples of such information include the version of the software used in the operation of vehicle M, weather information, and traffic information. Examples of the operating status of vehicle M include the speed, position, and obstacle detection results of vehicle M. Examples of services include navigation services and music distribution services.
[0073] The first external server 2 comprises a host device 210 and a NIC 220. The second external server 3 comprises a host device 310 and a NIC 320.
[0074] The host devices 210 and 310 are components (e.g., circuits) that function as hosts in data communication via the PCIe bus (i.e., PCIe communication), and correspond to the root complex (RC) devices in the PCIe standard. The host devices 210 and 310 may include, for example, functional components realized by a CPU or MPU that executes processing, and memory components such as ROM and RAM that store programs for causing each functional component to execute various processes.
[0075] NIC220 and 320 are devices that allow external servers to connect to network N, and are expansion cards that incorporate components such as connectors and communication ICs.
[0076] Furthermore, the external device is not limited to an external server; it may also be an information terminal such as a smartphone or tablet.
[0077] Network N is a communication network that enables communication between the vehicle M and external devices (in the example in Figure 1, each external server). For example, a communication network such as the Internet may be used, but is not limited to this.
[0078] [2. Operation of the data storage system] Next, the operation of the data storage system 1 configured as described above will be explained with reference to Figures 3 to 5. First, the operation of the priority control unit 60a of the fourth switch unit 60 when downloading from an external server will be explained with reference to Figure 3. Figure 3 is a flowchart showing the operation of the fourth switch unit 60 (data storage method) when downloading from an external server according to this embodiment.
[0079] As shown in Figure 3, the priority control unit 60a determines whether or not it has received an input (in this case, an access request) to the fourth switch unit 60 (S10). For example, if the fourth switch unit 60 has received an access request, the priority control unit 60a determines that it has received an input. The following describes an example in which the access request is a write access. The access request includes a header and data. The data may include a command.
[0080] Next, if the priority control unit 60a determines that the fourth switch unit 60 has acquired an input (Yes in S10), it executes a process to determine whether or not the input is a download from an external server (S20-S80).
[0081] If it is determined that no input has been received to the fourth switch unit 60 (No in S10), the process returns to step S10 and the fourth switch unit 60 continues to wait for input.
[0082] Next, the priority control unit 60a obtains PCIe address map information from the first host device 10A (S20). PCIe address map information is address space information in PCIe, and for example, it shows the correspondence between addresses and devices. PCIe address map information is set by, for example, the first host device 10A, but is not limited to this.
[0083] Next, the priority control unit 60a obtains the destination and source addresses from the TC storage section of the access request header (S30), and confirms the device of the source address based on the PCIe address map information (S40). In step S40, the priority control unit 60a identifies the device of the source address of the access request based on the PCIe address map information.
[0084] Next, the priority control unit 60a determines whether the source address is NIC90 (S50). This corresponds to the priority control unit 60a determining whether the access request is for writing data from an external server to the shared memory device 70.
[0085] Next, if the source address is NIC90 (Yes in S50), the priority control unit 60a checks the device at the destination address (S60). In step S60, the priority control unit 60a identifies the device at the destination address based on the PCIe address map information.
[0086] Next, the priority control unit 60a determines whether the destination address is the shared memory device 70 (S70). This corresponds to the priority control unit 60a determining whether the access request is for access to the shared memory device 70.
[0087] Next, the priority control unit 60a determines whether the command included in the access request data is a memory write command (i.e., a write access) if the destination address is the shared memory device 70 (Yes in S70) (S80). This corresponds to the priority control unit 60a determining whether the access request is a write access to the shared memory device 70.
[0088] A determination of Yes in step S80 means that the access request is for writing data from an external server to the shared memory device 70. When the access request is for writing data from an external server to the shared memory device 70, the TC storage section of the header contains the VC value set by the sending external server. Furthermore, when the access request is for writing data from each host device to the shared memory device 70, the VC value based on the VC setting table shown in Figure 2 is stored in the TC storage section of the header, for example, by each bridge. Therefore, if the determination of No in step S80 is true, no VC value modification process is necessary.
[0089] Steps S20 to S80 correspond to determining whether an access request to the shared memory device 70 is an access request from a device outside the vehicle M (in this case, a write access).
[0090] Next, if the priority control unit 60a determines that it is a memory access command (Yes in S80), it changes the VC value included in the TC storage section of the header of the access request using the VC setting table shown in Figure 2 (S90). In the case of the VC setting table in Figure 2, in step S90, the VC value is changed to 0 or 1. Step S90 corresponds to updating the VC value, which indicates the priority of access to the shared memory device 70 included in the access request, based on the rules held by the vehicle M.
[0091] In this way, when a write access to the shared memory device 70 occurs from an external server, the VC value corresponding to the VC setting table held by the vehicle M is written to the TC storage section of the access request header. This allows the VC value set for write access to the shared memory device 70 from the external server to be updated to the value corresponding to the VC setting table set in the vehicle M. The originally set VC value, that is, the VC value set by the external server, is erased, for example. For example, the priority control unit 60a overwrites the VC value in the TC storage section of the header with a value based on the VC setting table.
[0092] Note that the VC value may be changed by the host device. For example, the first host device 10A may change the VC value on behalf of the priority control unit 60a when the vehicle state of vehicle M reaches a predetermined state. In this case, the first host device 10A changes the VC value of the access request based on a different VC setting table corresponding to the vehicle state of vehicle M, or a pre-set VC value (fixed value), without using the VC setting table shown in Figure 2. For example, in the event of an emergency such as an accident, the need to send data to an external server increases, so a higher value than the value shown in Figure 2 (for example, 7) may be used as the VC value for the access classification. Also, the first host device 10A may change the VC value to any arbitrary value when the vehicle state of vehicle M reaches a predetermined state. In this way, the entity that changes the VC value and the set VC value may be switched based on the vehicle state of vehicle M.
[0093] Next, the priority control unit 60a determines whether simultaneous access has occurred (S100). If it determines that simultaneous access has occurred (Yes in S100), it compares the VC values of the conflicting access requests and outputs the input with the maximum VC value (in this case, one of the access requests) to the shared memory device 70 (S110). If it determines that simultaneous access has not occurred (No in S100), it outputs the input (in this case, the access request obtained in step S10) to the shared memory device 70 (S120).
[0094] In step S110, the priority control unit 60a prioritizes the access request with the highest VC value among two or more access requests that have occurred simultaneously, and outputs the data corresponding to that access request to the shared memory device 70, thereby writing the data to the shared memory device 70. The priority control unit 60a obtains the VC value stored in the TC storage section of the header of each access request that has occurred simultaneously, and selects the data from the data that has occurred simultaneously to be written to the shared memory device 70 with priority.
[0095] In step S110, if there are multiple access requests with the maximum VC value, the access request to be output may be determined based on a pre-configured priority order (for example, a priority order according to the source address). In this case, for two or more access requests with the maximum VC value among the multiple conflicting access requests, each access request will be output in the order of priority according to the source address. For example, if the pre-configured priority order is first host device 10A, second host device 10B, and NIC90 (where the first host device 10A has the highest priority), and access requests from the first host device 10A, second host device 10B, and NIC90 conflict, and each has the maximum VC value, the priority control unit 60a may output the access request from the first host device 10A, the access request from the second host device 10B, and the access request from NIC90 to the shared memory device 70 in that order.
[0096] In step S110, if an access request from the NIC 90 (first access request) and another access request to the shared memory device 70 (second access request) occur simultaneously, the priority control unit 60a selects one of the access requests based on the VC value (first priority information) included in the first access request and the VC value (second priority information) included in the second access request, and outputs the selected access request to the shared memory device 70 with priority.
[0097] In step S120, since there is only one access request to the shared memory device 70, the data corresponding to that access request is output to the shared memory device 70. As a result, a write access is performed.
[0098] In steps S110 and S120, the VC value set in step S90 (specifically, the header containing the VC value) may or may not be output to the shared memory device 70 along with the data.
[0099] Furthermore, the priority control unit 60a proceeds to step S110 if the destination address is not NIC90 (No in S50), if the destination address is not the shared memory device 70 (No in S70), or if it is not a memory write command (No in S80). For example, if the source address is not NIC90 (not an access request from an external server), or if the destination address is not the shared memory device 70 (not an access request to the shared memory device 70), the VC value is not changed.
[0100] Next, the operation of the data storage system 1 when uploading to an external server will be explained with reference to Figures 4 and 5. Figure 4 is a flowchart showing the operation of the fourth switch unit 60 (data storage method) when uploading to an external server according to this embodiment. Figure 4 explains the processing when the fourth switch unit 60 receives an access request (read access) from the external server. Note that the same reference numerals as in Figure 3 are used for processing similar to that in Figure 3, and the explanation is omitted or simplified.
[0101] As shown in Figure 4, when the priority control unit 60a receives an input (in this case, an access request) (Yes in S10), it performs a process to determine whether or not it is an upload from an external server (S20-S70, S210).
[0102] Next, after executing steps S20 to S70, the priority control unit 60a determines whether the command included in the access request data is a memory read command (i.e., a read access) (S210).
[0103] A determination of Yes in step S210 corresponds to an access request for sending data from the shared memory device 70 to an external server. Note that if the read access is for sending data from the shared memory device 70 to an external server, the TC storage section of the header stores the VC value set on the external server. Also, if the access request is for sending data from the shared memory device 70 to each host device, for example, each bridge stores the VC value in the TC storage section of the header based on the VC setting table shown in Figure 2. Therefore, if a determination of No is made in step S210, no VC value modification process is necessary.
[0104] Next, if the priority control unit 60a determines that the command included in the data of the access request is a memory read command (Yes in S210), it changes the VC value included in the TC storage section of the header of the access request using the VC setting table shown in Figure 2 (S90). In the case of the VC setting table in Figure 2, in step S90, the VC value is changed to 0 or 1.
[0105] Next, the priority control unit 60a determines whether or not simultaneous access has occurred (S100). If it determines that simultaneous access has occurred (Yes in S100), it outputs the input with the maximum VC value (in this case, any of the access requests) to the shared memory device 70 (S110). If it determines that simultaneous access has not occurred (No in S100), it outputs the input (in this case, the access request obtained in step S10) to the shared memory device 70 (S120).
[0106] Next, the operation of the third switch unit 50 when uploading data from the shared memory device 70 to an external server will be explained with reference to Figure 5. Figure 5 is a flowchart showing the operation of the third switch unit 50 (data storage method) when uploading to an external server according to this embodiment. The data transmission flow when uploading data to the first external server 2 is as follows: shared memory device 70, second RC bridge 62, third switch unit 50, first RC bridge 52, NIC 90, TCU 80, network N, NIC 220, and host device 210. The following describes the operation of the third switch unit 50 from when data is input to the third switch unit 50 until the data is output to the NIC 90 (specifically, to the first RC bridge 52).
[0107] As shown in Figure 5, the priority control unit 50a determines whether or not it has received an input (in this case, an access request) to the third switch unit 50 (S310). For example, if the third switch unit 50 receives an access request, the priority control unit 50a determines that it has received an input.
[0108] Next, if the priority control unit 50a determines that the third switch unit 50 has acquired an input (Yes in S310), it executes a process to determine whether or not the input is an upload to an external server (S320-S380).
[0109] If it is determined that no input has been received to the third switch unit 50 (No in S310), the process returns to step S310 and the third switch unit 50 continues to wait for input.
[0110] Next, the priority control unit 50a acquires PCIe address map information from the first host device 10A (S320). The PCIe address map information is the same information acquired in step S20 of Figure 3.
[0111] Next, the priority control unit 50a obtains the destination and source addresses from the access request header (S330) and confirms the device of the source address based on the PCIe address map information (S340). In step S340, the priority control unit 50a identifies the device of the source address based on the PCIe address map information.
[0112] Next, the priority control unit 50a determines whether the source address is the shared memory device 70 (S350). In step S350, when the priority control unit 50a receives an access request that includes data to be sent to an external device, it determines, based on the source address, whether the data was read from the shared memory device 70. It is assumed that the data read from the shared memory device 70 does not have a VC value set.
[0113] Next, if the source address is the shared memory device 70 (Yes in S350), the priority control unit 50a checks the device at the destination address (S360). In step S360, the priority control unit 50a identifies the device at the destination address based on the PCIe address map information.
[0114] Next, the priority control unit 50a determines whether the destination address is NIC90 (S370). Step S370 corresponds to determining whether the data is to be uploaded to an external server.
[0115] Next, the priority control unit 50a determines whether the command included in the data is a memory write command if the destination address is NIC90 (Yes in S370) (S380).
[0116] A determination of Yes in step S380 means that the acquired access request contains data to be written to the memory of the external server.
[0117] Next, if the priority control unit 50a determines that it is a memory write command (Yes in S380), it changes the VC value stored in the TC storage section of the header of the access request using the VC setting table shown in Figure 2 (S390). Step S390 corresponds to updating the VC value (an example of priority information) that indicates the priority of sending data to an external device contained in the data, based on the rules held by the vehicle M.
[0118] In this way, when an upload occurs from the shared memory device 70 to an external server, the VC value corresponding to the VC setting table held by the vehicle M is written to the TC storage section of the access request header. This allows the VC value corresponding to the data uploaded from the shared memory device 70 to the external server to be set to the value corresponding to the VC setting table set in the vehicle M.
[0119] If a VC value corresponding to the data acquired from the shared memory device 70 has already been set (for example, if a VC value has already been stored in the TC storage section of the header corresponding to the data), the processing in step S390 may be omitted. Here, the already stored VC value means a VC value different from the VC value set as the initial value (for example, a VC value set by the priority control unit 60a).
[0120] Note that, similar to step S90 in Figure 3, the VC value may be changed by the host device.
[0121] Furthermore, if the source address is other than the shared memory device 70 (No in S350), for example, if the source address is a host device, the priority control unit 50a does not perform the process of changing the VC value.
[0122] Next, the priority control unit 50a determines whether or not simultaneous access has occurred (S400). If it determines that simultaneous access has occurred (Yes in S400), it outputs the input with the maximum VC value (in this case, any of the access requests) to the NIC90 (S410). If it determines that simultaneous access has not occurred (No in S400), it outputs the input (in this case, the access request obtained in step S300) to the NIC90 (S420).
[0123] In step S410, the priority control unit 50a prioritizes the access request with the highest VC value among the two or more access requests that have occurred simultaneously, and outputs the data corresponding to that access request to the NIC90 with priority, thereby causing that data to be sent to the external server with priority. The priority control unit 50a obtains the VC value stored in the TC storage section of the header of each access request that has occurred simultaneously, and selects the data to be sent to the external server with priority from among the access requests that have occurred simultaneously.
[0124] In step S410, if there are multiple access requests with the maximum VC value, the priority order for outputting the access request may be determined based on a pre-configured priority order (for example, a priority order according to the source address). In this case, for two or more access requests with the maximum VC value among the multiple conflicting access requests, the data for each access request is output in the order of priority according to the source address. For example, if the pre-configured priority order is shared memory device 70, first host device 10A, and second host device 10B (where the shared memory device 70 has the highest priority), and access requests from the first host device 10A, second host device 10B, and shared memory device 70 conflict, the priority control unit 50a may output data to the NIC 90 in the order of access request from shared memory device 70, access request from first host device 10A, and access request from second host device 10B.
[0125] In step S420, since there is only one piece of data to be sent to the external server, that data is output to NIC90.
[0126] In steps S410 and S420, the VC value set in step S390 may or may not be output to NIC90 along with the data.
[0127] Furthermore, the priority control unit 50a proceeds to step S410 if the destination address is not the shared memory device 70 (No in S350), if the destination address is not the NIC90 (No in S370), or if it is not a memory write command (No in S380). For example, if the source address is not the shared memory device 70, or if the destination address is not the NIC90 (i.e., it is not an upload to an external server), the VC value is not changed.
[0128] (Other embodiments) Although data storage systems, data storage devices, and data storage methods relating to one or more embodiments have been described above based on embodiments, this disclosure is not limited to these embodiments. Without departing from the spirit of this disclosure, various modifications to these embodiments that a person skilled in the art could conceive of, or forms constructed by combining components from different embodiments, may also be included in this disclosure.
[0129] For example, although PCIe is exemplified as the interface in the above embodiment, the invention is not limited to this, and other interfaces such as CXL or Ethernet may be used as interfaces. When CXL is used as the interface, priority information indicating the priority of the data may be included in the TC storage section (TC field) in the data header. In this case, the first host device 10A and the second host device 10B are components (e.g., circuits) that function as hosts in data communication via the CXL bus (i.e., CXL communication), and correspond to the root complex devices in the CXL standard, while the shared memory device 70 and NIC90 correspond to the endpoint devices in the CXL standard. For example, when communication between the first host device 10A and the second host device 10B and the shared memory device 70, and communication between the shared memory device 70 and the NIC90 are performed in accordance with the CXL standard, the VC value is stored in the TC storage section of the data header, and the priority control unit 60a may control access to the shared memory device 70 (e.g., writing data) based on a comparison of the VC values stored in the TC storage section of the data. Furthermore, even when, for example, communication between the first host device 10A and the second host device 10B and the shared memory device 70, and communication between the NIC 90 and the shared memory device 70 are performed in accordance with the PCI Express standard, the VC value is stored in the TC storage section of the data header, and the priority control unit 60a may control access to the shared memory device 70 (e.g., writing data) based on the VC value stored in the TC storage section of the data. In addition, when Ethernet is used as the interface, the PCP (Priority Code Point), IP Precedence, or DSCP (Differentiated Services Code Point) of the Virtual LAN (VLAN) included in the header of the Ethernet frame may contain information indicating the VC value of the data.
[0130] Furthermore, while a server was used as an example of an external device in the above embodiment, other information terminals that use PCIe, CXL, Ethernet, etc. as interfaces (i.e., use the same interface as the mobile device) may also be considered external devices.
[0131] Furthermore, although the above embodiment described an example in which the VC value is stored in the TC storage unit, the VC value only needs to be stored in the header storage unit corresponding to the communication standard used.
[0132] Furthermore, in the above embodiments, each component may be implemented by being composed of dedicated hardware or by executing a software program suitable for each component. Each component may also be implemented by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
[0133] Furthermore, the order in which each step in the flowchart is performed is illustrative for the purpose of specifically illustrating this disclosure, and may be in a different order. Also, some of the above steps may be performed simultaneously (in parallel) with other steps, and some of the above steps may not be performed.
[0134] Furthermore, the division of functional blocks in the block diagram is just one example; multiple functional blocks can be implemented as a single functional block, a single functional block can be divided into multiple parts, or some functions can be moved to other functional blocks. In addition, the functions of multiple functional blocks with similar functions can be processed in parallel or time-sharing by a single piece of hardware or software.
[0135] Furthermore, the data storage system according to the above embodiments may be implemented as a single device or as a plurality of devices. When the data storage system is implemented as a plurality of devices, the individual components of the data storage system may be distributed among the plurality of devices in any manner. When the data storage system is implemented as a plurality of devices, the method of communication between the plurality of devices is not particularly limited and may be wireless communication or wired communication. In addition, wireless communication and wired communication may be combined between the devices.
[0136] Furthermore, each component described in the above embodiments may be implemented as software, or typically as an integrated circuit (LSI). These may be individually integrated onto a single chip, or some or all of them may be integrated onto a single chip. Here, we refer to them as LSIs, but depending on the degree of integration, they may also be called ICs, system LSIs, super LSIs, or ultra LSIs. Moreover, the method of integrated circuit implementation is not limited to LSIs; it may also be implemented using dedicated circuits (general-purpose circuits that execute dedicated programs) or general-purpose processors. After LSI manufacturing, a programmable FPGA (Field Programmable Gate Array) or a reconfigurable processor that allows for the reconfiguration of the connections or settings of circuit cells inside the LSI may be used. Furthermore, if an integrated circuit implementation technology that replaces LSIs emerges due to advances in semiconductor technology or other derived technologies, it is naturally possible to integrate the components using that technology.
[0137] A system LSI is a highly functional LSI manufactured by integrating multiple processing units onto a single chip. Specifically, it is a computer system composed of components such as a microprocessor, ROM, and RAM. The ROM stores the computer program. The system LSI achieves its function by operating according to the computer program, with the microprocessor working accordingly.
[0138] Furthermore, one aspect of this disclosure may be a computer program that causes a computer to perform each characteristic step included in the data storage method shown in any of Figures 3 to 5.
[0139] Furthermore, for example, the program may be a program to be executed by a computer. Also, in one aspect of this disclosure, such a program may be recorded on a computer-readable non-temporary recording medium. For example, such a program may be recorded on a recording medium and distributed or made available. For example, by installing the distributed program on a device having another processor and having that processor execute the program, it becomes possible to have that device perform the above-mentioned processes.
[0140] (Note) (Technology 1) A data storage system mounted on a mobile body, comprising a shared memory device and a first control unit that controls the writing and reading of data to the shared memory device, wherein when the first control unit obtains a first access request to the shared memory device, it determines whether the first access request is an access request from a device outside the mobile body, and if the first access request is an access request from the external device, it updates the priority information included in the first access request and used as the priority for accessing the shared memory device, based on rules held by the mobile body.
[0141] This allows priority information to be set according to the mobile device in response to access requests from external devices to the shared memory device, making it possible to determine which access request should be prioritized and output to the shared memory device. Therefore, the data storage system can prevent the loss of desired data in the event of a conflict between the access request and other access requests.
[0142] (Technology 2) The first control unit is a data storage system of Technology 1, which, when the first access request and the second access request, which is another access request to the shared memory device, occur simultaneously, selects one of the access requests based on the first priority information included in the first access request and the second priority information included in the second access request, and outputs the selected access request to the shared memory device with priority.
[0143] This allows the system to determine which request takes priority in the event of a conflict when access requests to the shared memory device conflict, using the updated primary priority information. Therefore, the data storage system can make decisions using priority information specific to the mobile device, thus more reliably preventing the loss of desired data.
[0144] (Technology 3) A data storage system of Technology 2 which does not update the first priority information included in the first access request if the first access request is not an access request from the external device.
[0145] This prevents priority information that does not need to be updated from being updated, thus suppressing an increase in the processing load of the data storage system.
[0146] (Technology 4) A data storage system of Technology 2 or 3, comprising a device for communicating with the external device, wherein the device transfers data to the shared memory device using DMA (Direct Memory Access).
[0147] This ensures that even when the NIC uses a transfer method that does not utilize VC (Virtual Controller) in communication, such as DMA transfer, priority information is set, thus more reliably preventing the loss of desired data.
[0148] (Technical 5) Furthermore, the data storage system of Technical 4 is provided, which is mounted on the mobile body and is capable of writing to the shared memory device, and communication is performed between the control device and the device and the shared memory device in accordance with the PCI Express standard, the first priority information is stored in the TC storage section of the data header of the first access request, the second priority information is stored in the TC storage section of the data header of the second access request, and the first control unit controls the writing and reading of data to the shared memory device based on the first priority information and the second priority information stored in the TC storage section.
[0149] This helps to prevent data loss when an access request from an external device conflicts with another access request while communication is being conducted according to the PCI Express standard.
[0150] (Technical 6) Furthermore, the system includes a control device mounted on the mobile body and capable of writing to the shared memory device, the control device and the device and the shared memory device communicate in accordance with the CXL (Compute Express Link) standard, the first priority information is stored in the TC storage section of the data header of the first access request, the second priority information is stored in the TC storage section of the data header of the second access request, and the first control unit controls the writing and reading of data to the shared memory device based on the first priority information and the second priority information stored in the TC storage section, which is the data storage system of Technical 4.
[0151] This helps to prevent data loss when an access request from an external device conflicts with another access request while communication is being conducted according to the CXL standard.
[0152] (Technology 7) Furthermore, the data storage system is one of the technologies 1 to 6, comprising a second control unit that controls the transmission of data to the external device, wherein the priority information is also used as information indicating the priority of the transmission of data to the external device, and when the second control unit acquires data to be transmitted to the external device, it determines whether the data is from the shared memory device, and if the data is from the shared memory device, it updates the priority information contained in the data based on the rule.
[0153] This allows data from the shared memory device to be transmitted to an external device in an order according to priority information. In other words, it is possible to suppress the loss of data from the shared memory device.
[0154] (Technology 8) The external device is a server, or one of the data storage systems described in Technologies 1 to 7.
[0155] This makes it possible to assign appropriate priority information even if the server has a separate PCIe or CXL space from the data storage system.
[0156] (Technology 9) A data storage system from any of Technologies 1 to 8, comprising a memory unit for storing the aforementioned rules.
[0157] This allows the priority information for access requests from external devices to be updated using rules pre-stored in the memory unit.
[0158] (Technical 10) A data storage device mounted on a mobile body having a shared memory device, wherein when the data storage device receives an access request to the shared memory device, it determines whether the access request is from a device outside the mobile body, and if the access request is from an external device, it updates priority information, which is included in the access request and used as information indicating the priority of access to the shared memory device, based on rules held by the mobile body.
[0159] This achieves the same effect as the data storage system described above.
[0160] (Technical 11) A data storage method performed by a data storage system mounted on a mobile body having a shared memory device, wherein when an access request to the shared memory device is obtained, it is determined whether the access request is from a device outside the mobile body, and if the access request is from the external device, priority information included in the access request and used as information indicating the priority of access to the shared memory device is updated based on rules held by the mobile body.
[0161] This achieves the same effect as the data storage system described above. [Industrial applicability]
[0162] This disclosure is useful for data storage systems and the like that which store data acquired from moving objects such as vehicles. [Explanation of symbols]
[0163] 1. Data storage system 2. First external server (external device) 3. Second external server (external device) 10A First Host Device (Control Device) 10B Second Host Device (Control Device) 20 switches 30. First switch section 30a, 40a Priority control unit 31 1st UP 32. First EP Bridge 40. Second switch section 41 2nd UP 42. Second EP Bridge 50 Third switch section 50a Priority Control Unit (Second Control Unit) 51 1st DP 52. 1st RC Bridge 60. Fourth switch section 60a Priority control unit (control unit, first control unit, data storage device) 61 2nd DP 62. Second RC Bridge 70 Shared memory device 80 TCU 90, 220, 320 NICs (devices) 210, 310 Host devices M Vehicle (mobile) N Network
Claims
1. A data storage system mounted on a mobile vehicle, A shared memory device, The system includes a first control unit that controls the writing and reading of data to the shared memory device, The first control unit is, Upon receiving a first access request to the shared memory device, it is determined whether the first access request is an access request from a device outside the mobile body. If the first access request is an access request from the external device, the priority information included in the first access request and used as the priority for accessing the shared memory device is updated based on the rules held by the mobile device. Data storage block.
2. When the first access request and the second access request, which is another access request to the shared memory device, occur simultaneously, the first control unit selects one of the access requests based on the first priority information included in the first access request and the second priority information included in the second access request, and outputs the selected access request to the shared memory device with priority. The data storage system according to claim 1.
3. If the first access request is not an access request from the external device, the first priority information included in the first access request will not be updated. The data storage system according to claim 2.
4. It includes a device for communicating with the aforementioned external device, The device transfers data to the shared memory device via DMA (Direct Memory Access). The data storage system according to claim 2 or 3.
5. Furthermore, the mobile body is equipped with a control device that is mounted on the mobile body and capable of writing to the shared memory device, Communication between the control device and the device and the shared memory device is performed in accordance with the PCI Express standard. The first priority information is stored in the TC storage section of the header of the data of the first access request. The second priority information is stored in the TC storage section of the data header of the second access request. The first control unit controls the writing and reading of data to the shared memory device based on the first priority information and the second priority information stored in the TC storage unit. The data storage system according to claim 4.
6. Furthermore, the mobile body is equipped with a control device that is mounted on the mobile body and capable of writing to the shared memory device, Communication between the control device and the device and the shared memory device is performed in accordance with the CXL (Compute Express Link) standard. The first priority information is stored in the TC storage section of the header of the data of the first access request. The second priority information is stored in the TC storage section of the data header of the second access request. The first control unit controls the writing and reading of data to the shared memory device based on the first priority information and the second priority information stored in the TC storage unit. The data storage system according to claim 4.
7. Furthermore, it includes a second control unit that controls the transmission of data to the external device, The aforementioned priority information is also used as information indicating the priority of data transmission to the external device. The second control unit is, When data transmitted to the external device is acquired, it is determined whether or not the data originates from the shared memory device. If the data is from the shared memory device, update the priority information contained in the data based on the rule. A data storage system according to any one of claims 1 to 3.
8. The aforementioned external device is a server. A data storage system according to any one of claims 1 to 3.
9. The system includes a storage unit for storing the aforementioned rules. A data storage system according to any one of claims 1 to 3.
10. A data storage device mounted on a mobile vehicle having a shared memory device, The aforementioned data storage device is When an access request to the shared memory device is received, it is determined whether the access request is from a device outside the mobile unit. If the access request is an access request from the external device, the priority information included in the access request, which is used as information indicating the priority of access to the shared memory device, is updated based on the rules held by the mobile device. Data storage device.
11. A data storage method performed by a data storage system mounted on a mobile device having a shared memory device, When an access request to the shared memory device is received, it is determined whether the access request is from a device outside the mobile unit. If the access request is an access request from the external device, the priority information included in the access request, which is used as information indicating the priority of access to the shared memory device, is updated based on the rules held by the mobile device. Data storage method.
Citation Information
Patent Citations
Vehicle recording device and information recording method
JP2021174413A
