Prioritized storage and transmission tool for optimized telemetry unit memory allocation

JP2023178205A5Pending Publication Date: 2026-03-17THE BOEING CO
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-03-31
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

Conventional storage buffer allocation processes in vehicles fail to allocate memory efficiently, leading to data loss and inefficiency due to insufficient storage space for different data types, resulting in incomplete data transmission.

Method used

A PST tool that analyzes storage buffer allocation on a fine-grained level, predicting data requirements and allocating storage space based on transmission priorities and bandwidth, ensuring each data source has appropriate memory allocation.

Benefits of technology

Enhances data transmission efficiency by reducing data loss and resource utilization, allowing all data to be transmitted without exceeding buffer limits.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a storage medium and system for identifying transmission priorities for a plurality of streamed data sources.SOLUTION: A method of storing and transmitting data causes a system to execute the steps of: identifying transmission priorities indicating a transmission order associated with a plurality of streamed data sources; generating a first permutation that is a first assignment of the plurality of streamed data sources to a plurality of transmitters for transmission; generating a first prediction of whether data from the plurality of streamed data sources needs to be stored prior to transmission based on the first permutation, the transmission priorities and bandwidths of the plurality of transmitters; and generating a first allocation of storage space sizes that the plurality of streamed data sources will need based on the first permutation and the first prediction.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001]

[0001] Embodiments generally relate to a prioritized storage and transmission (PST) tool that generates enhanced memory allocations for storage buffers of a telemetry unit. The PST tool generates a granular storage model based on the priority of data to be transmitted and / or stored to identify how each storage buffer will change during a mission and allocate the size of the storage buffer accordingly. [Background technology]

[0002] Vehicles (e.g., airplanes, spacecraft, helicopters, ships, ground vehicles, etc.) generate data during operation. The data may relate to various aspects of the vehicle and may be transmitted by a telemetry unit. The telemetry unit has a finite amount of storage space for storing the data. Furthermore, the storage in the telemetry unit may be a single storage buffer (e.g., one large shared buffer) for all data types, or alternatively, multiple buffers, each dedicated to different data sources (e.g., sensors) and data types. Summary of the Invention

[0003] According to one or more embodiments, at least one computer-readable storage medium is provided that includes a set of executable program instructions that, when executed by a computing system, cause the computing system to: identify transmission priorities for a plurality of streamed data sources, the transmission priorities indicating a transmission order associated with the plurality of streamed data sources; generate a first permutation that is a first allocation of the plurality of streamed data sources to a plurality of transmitters for transmission; generate a first prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the first permutation, the transmission priorities, and bandwidths of the plurality of transmitters; and generate a first allocation of storage space size that will be required by the plurality of streamed data sources based on the first permutation and the first prediction.

[0004] According to one or more embodiments, a system is provided that includes a processor and a memory having a set of instructions that, when executed by the processor, cause the system to: identify transmission priorities for a plurality of streamed data sources, the transmission priorities indicating a transmission order associated with the plurality of streamed data sources; generate a first permutation that is a first allocation of the plurality of streamed data sources to a plurality of transmitters for transmission; generate a first prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the first permutation, the transmission priorities, and bandwidths of the plurality of transmitters; and generate a first allocation of storage space size that will be required by the plurality of streamed data sources based on the first permutation and the first prediction.

[0005] According to one or more embodiments, a method is provided that includes identifying a transmission priority for a plurality of streamed data sources, where the transmission priority indicates a transmission order associated with the plurality of streamed data sources. The method further includes generating a first permutation that is a first allocation of the plurality of streamed data sources to a plurality of transmitters for transmission, generating a first prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the first permutation, the transmission priority, and bandwidths of the plurality of transmitters, and generating a first allocation of storage space size that will be required by the plurality of streamed data sources based on the first permutation and the first prediction.

[0006]

[0006] The above-described features, functions, and advantages may be realized individually in various embodiments or may be combined into further embodiments, further details of which may be understood by reference to the following description and drawings.

[0007]

[0007] Various advantages of the embodiments will become apparent to those skilled in the art upon reading the following specification and appended claims and upon reviewing the drawings. [Brief explanation of the drawings]

[0008] [Figure 1A-1] 1A and 1B are diagrams of one embodiment of a conventional storage buffer allocation process and an enhanced storage allocation process. [Figure 1A-2] 1A and 1B are diagrams of one embodiment of a conventional storage buffer allocation process and an enhanced storage allocation process. [Figure 1B] 1A and 1B are diagrams of one embodiment of a conventional storage buffer allocation process and an enhanced storage allocation process. [Figure 2]

[0009] FIG. 10 is a diagram of various permutations of data sources relative to a transmitter. [Figure 3]

[0010] FIG. 1 is a diagram of a method for storing and transmitting data. [Figure 4]

[0011] FIG. 1 is a diagram of a method for generating allocations. [Figure 5]

[0012] FIG. 1 is a diagram of a method for generating permutations. [Figure 6]

[0013] FIG. 1 is a diagram of one embodiment of a telemetry architecture. DETAILED DESCRIPTION OF THE INVENTION

[0009]

[0014] Referring back to FIG. 1A , a conventional storage buffer allocation process 100 and an enhanced storage buffer allocation process 120 are shown. In the conventional storage buffer allocation process 100, storage is only analyzed from a global perspective rather than on a buffer-by-buffer basis, leading to inefficiencies, data loss, and insufficient memory allocation. The enhanced storage buffer allocation process 120 is executed on a PST tool (e.g., a computing system, computing device, non-transitory computer-readable storage medium, etc.). As will be described in further detail below, the enhanced storage buffer allocation process 120 provides granular analysis of storage capacity as required by various data sources. For example, some vehicles (e.g., aircraft, ground vehicles, ships, spacecraft such as satellites, space telescopes, or space vehicles, etc.) transmit information to a base station while in motion. The information may be stored on the vehicle before transmission for various reasons (e.g., bandwidth limitations). Embodiments relating to the enhanced storage buffer allocation process 120 identify the individual amount of storage space required by each data source (e.g., one or more sensors) to buffer information in transit. For example, the enhanced storage buffer allocation process 120 may include simulating the data sources to predict the amount of data storage each of the data sources will individually utilize. The storage space is divided into buffers based on the predicted amount. Each respective data source thereby has an appropriate amount of data storage associated with it. That is, granular storage amounts are set to avoid situations where a data source generates an amount of data that exceeds its buffer storage limit. Doing so reduces data loss in transit and efficiently allocates resources to reduce data storage overhead.

[0010]

[0015] Some embodiments related to the enhanced storage buffer allocation process 120 include live data failure detection, where the PST tool detects when live data is predicted not to be transmitted in its entirety. This allows the PST tool and / or user to identify such instances and further enables automated selection of data storage characteristics to prevent and / or reduce data leakage. Thus, even if some live data (e.g., live imagery) does not buffer (e.g., live imagery is not allocated any buffer memory because the live imagery is always transmitted or immediately transmitted), the PST tool still considers the live data as part of the following modeling process. If the PST tool indicates that live data is dropping in the model, the PST tool detects that the current (or predicted) data rate for the mission is failing, and the data rate needs to be changed to prevent live data from being dropped.

[0011]

[0016] Referring now back to the conventional storage buffer allocation process 100, a conventional data storage graph 102 is illustrated. The conventional data storage graph 102 represents the overall data storage pattern throughout the movement of a vehicle (e.g., an aircraft, a ground vehicle, a watercraft, a spacecraft such as a satellite, a space telescope, or a space vehicle, etc.). The conventional data storage graph 102 may be a predicted amount (e.g., an estimate, a simulation, etc.) of data that will be generated. Data that cannot be transmitted will be stored in the conventional buffer 104 unless the conventional buffer 104 is fully utilized. In such an event, when data cannot be stored or transmitted, the data is dropped and therefore discarded.

[0012]

[0017] In a conventional storage buffer allocation process 100, there are three different types of data. Specifically, there is first data, second data, and third data. Each of the three different types of data originates from a different data source (e.g., a sensor, a computing device, etc.). For example, a camera may generate second data (e.g., live image data), while a global positioning satellite system may generate first data.

[0013]

[0018] Based on the conventional data storage graph 102, the conventional storage buffer allocation process 100 allocates 1 GB of storage to each of the first data, the second data, and the third data. The first, second, and third conventional storage buffers 104 a, 104 b, and 104 c each have 1 gigabyte of allocated storage space. The first, second, and third conventional storage buffers 104 a, 104 b, and 104 c may be part of the same storage. Thus, the same storage space is equally distributed among the first, second, and third conventional storage buffers 104 a, 104 b, and 104 c.

[0014]

[0019] The transmitter 106 transmits data from the conventional buffer 104 to the ground station 108. The transmitter 106 transmits data while the vehicle is moving (e.g., on a flight, mission, etc.) and completes transmission of all data before the movement ends. Any data that cannot be immediately transmitted is stored in the conventional buffer 104 until the transmitter 106 is available. When the transmitter 106 is available, the data is transmitted and deleted from storage in the conventional buffer 104. Data that is not transmitted is stored in the conventional buffer 104.

[0015]

[0020] The transmitter 106 transmits data according to the priority table 106a. The first data has a priority of 1, meaning that the first data is transmitted first. The second data has a priority of 2, meaning that the second data is transmitted second after all of the first data has been transmitted, or, in some cases, simultaneously with the first data if sufficient bandwidth exists for simultaneous transmission. Sufficient bandwidth exists when the second data and the first data have a combined transmission amount less than or equal to the maximum available bandwidth of the transmitter 106. The third data has a priority of 3, meaning that the third data is transmitted last after the first and second data have been transmitted (or, in some cases, simultaneously with them if sufficient bandwidth exists). Thus, data is transmitted based on the priority assigned to the data and / or the data source generating the data.

[0016]

[0021] At approximately the two-hour point shown on the conventional data storage graph 102, the third data cannot be stored in the third conventional storage buffer 104c. Specifically, the third conventional storage buffer 104c is fully occupied, as indicated by the "occupied space." That is, the transmitter 106's bandwidth is consumed by transmitting the first data and / or the second data. Therefore, the transmitter 106 does not have available bandwidth to transmit the third data to alleviate the congestion in the third conventional storage buffer 104c. Therefore, the third data accumulates in the third conventional storage buffer 104c until the third conventional storage buffer 104c is fully occupied. When the third conventional storage buffer 104c is fully occupied, incoming third data can no longer be stored in the third conventional storage buffer 104c unless other third data is removed from the third conventional storage buffer 104c.

[0017]

[0022] Therefore, the conventional storage buffer allocation process 100 is unable to transmit all of the data because some of the third data is not stored in the third conventional storage buffer 104c. Therefore, the conventional storage buffer allocation process 100 results in incomplete data transmission. Furthermore, the conventional storage buffer allocation process 100 allocates excess storage space in both the first conventional storage buffer 104a and the second conventional storage buffer 104b, as illustrated by the free space. In contrast, the third conventional storage buffer 104c is not allocated enough space and therefore cannot store all of the data. That is, the conventional storage buffer allocation process 100 does not allocate storage in a realistic and usage-based manner. Consequently, the conventional storage buffer allocation process 100 is unable to transmit all of the data.

[0018]

[0023] That is, the conventional data storage graph 102 is based on all data (the sum of all data types, including first data, second data, and third data) versus permutation (e.g., the placement of data sources relative to the particular transmitters that will transmit the data from the data sources). For example, the conventional storage buffer allocation process 100 assigns the first data, second data, and third data to the transmitter 106 as one permutation. Other permutations, not shown, exist (e.g., the first data is assigned to a different transmitter), along with other transmitters and data sources, not shown. The conventional data storage graph 102 implies that there is only one value for storage at a given time. Such a generalized analysis fails to identify the fine-grained storage space required by a data source. For example, utilized storage will increase if the transmitter 106's bandwidth is insufficient to transmit some of the stored data and decrease if the transmitter 106 has enough data to transmit both real-time data and storage data.

[0019]

[0024] Referring now back to the enhanced storage buffer allocation process 120, efficient storage allocation is illustrated. In the enhanced storage buffer allocation process 120, the first data, the second data, and the third data are illustrated at a granular level with respect to time and storage size in the enhanced data storage graph 128. Each of the first data, the second data, and the third data originates from a different data source (e.g., a sensor) as described above. The enhanced data storage graph 128 can be a simulation (e.g., a prediction) of data storage and is based on the bandwidth of the transmitter 124, the different data types (e.g., the first data, the second data, and the third data), and the predicted amount of each data type.

[0020]

[0025] The exact amount of data storage for each data type over time is illustrated in enhanced data storage graph 128. For example, it can be seen that at a time equal to 2 hours, over 1 GB of storage space is required by the third data. Furthermore, it can be seen that at around 2.7 hours, approximately 2 GB of storage space is required for the third data. In contrast, throughout the entire time period, less than 0.5 GB of data is required for the first data, and less than 0.1 GB of data is required for the second data. The second data is illustrated in more detail in area 140, which is shown in more detail in FIG. 1B. In FIG. 1B, it can be seen that the second data requires less than 0.1 GB of storage space.

[0021]

[0026] The enhanced data storage graph 128 is generated based on the priority of the data, the bandwidth of the transmitter 124, and the predicted amount of data that will be generated during transit. That is, the enhanced storage buffer allocation process 120 predicts how much of the first data, second data, and third data will be generated during transit, and predicts how efficiently the transmitter 124 can transmit the generated data to identify how much data will not be transmitted immediately and therefore will be stored.

[0022]

[0027] In some embodiments of the enhanced storage buffer allocation process 120, the PST data includes live data failure detection. Specifically, the second data is live data that should not be stored and should always be transmitted immediately. In such a case, the transmitter 124 may transmit the first data and the second data simultaneously. If the second data is depicted in the enhanced data storage graph 128, the PST tool may determine that the current bandwidth allocation of the transmitter 124 is inefficient for meeting the requirement that the live data be transmitted immediately and may modify the parameters. For example, the parameters may include the bandwidth allocation of the transmitter 124 and / or the storage allocation of the enhanced storage buffer 122. After modification, the PST tool may generate the enhanced data storage graph 128 based on the modified parameters and determine whether the modified parameters result in meeting the requirement that the live data be transferred immediately.

[0023]

[0028] The transmitter 124 transmits data to the ground station 126 based on the priority table 124a. In the enhanced storage buffer allocation process 120, the second data (associated with the first data source) has a priority of 1 and is transmitted first, the first data (associated with the second data source) has a priority of 2 and is transmitted second, and the third data has a priority of 3 and is transmitted third.

[0024]

[0029] Allocation of data storage space (e.g., storage space size) is determined based on the enhanced storage graph 128. The first enhanced storage buffer 122a will store the first data, the second enhanced storage buffer 122b will store the second data, and the third enhanced storage buffer 122c will store the third data. Thus, the first enhanced storage buffer 122a has a total storage capacity of 0.5 gigabytes, the second enhanced storage buffer 122b has a total storage capacity of 0.1 gigabytes, while the third enhanced storage buffer 122c has a storage capacity of 2.5 gigabytes. Thus, even at a time equal to two hours, the third data can be stored in the third enhanced storage buffer 122c. In the conventional storage buffer allocation process 100, the third data cannot be stored in the third conventional storage buffer 104c at a time equal to two hours. In fact, throughout the enhanced data storage graph 128, the third enhanced storage buffer 122c is able to store enough of the third data to avoid dropping any data.

[0025]

[0030] Furthermore, the total storage required by the first enhanced storage buffer 122a, the second enhanced storage buffer 122b, and the third enhanced storage buffer 122c is less than the total space required by the first conventional storage buffer 104a, the second conventional storage buffer 104b, and the third conventional storage buffer 104c. Thus, the enhanced storage buffer allocation process 120 not only allocates resources efficiently to reduce information drops, but also utilizes fewer resources to do so. Thus, the enhanced storage buffer allocation process 120 described herein enhances computational efficiency and resource utilization for efficiently transmitting data in transit.

[0026]

[0031] Some implementations of the enhanced storage buffer allocation process 120 use the maximum storage values ​​of the first data, second data, and third data from the enhanced data storage graph 128 to provide a classification index and select a permutation based on the maximum value and other parameters. Thus, the enhanced storage buffer allocation process 120 may include different combinations of data with different transmitters. The enhanced storage buffer allocation process 120, the enhanced storage buffer 122, and the transmitter 124 form a telemetry unit. The enhanced storage buffer allocation process 120 allows a user to optimize buffer allocation for each type of data based on each permutation, which may be uniformly or non-uniformly distributed, based on hardware and design capabilities.

[0027]

[0032] 2 illustrates various permutations 200. The vehicle includes first, second, third, and fourth data sources 214, 204, 206, 208, a first telemetry unit 210, and a second telemetry unit 212. The first permutation 202a assigns the first data source 214 and the second data source 204 to the first telemetry unit 210 (including a buffer and a transmitter) and assigns the third data source 206 and the fourth data source 208 to the second telemetry unit 212 (including a buffer and a transmitter). The second permutation 202b assigns the first data source 202 and the third data source 206 to the first telemetry unit 210 and assigns the second data source 204 and the fourth data source 208 to the second telemetry unit 212. The third permutation 202c assigns the fourth data source 208 and the third data source 206 to the first telemetry unit 210, and assigns the second data source 204 and the first data source 214 to the second telemetry unit 212. The fourth permutation 202d assigns the second data source 204, the first data source 214, and the third data source 206 to the first telemetry unit 210, and assigns the fourth data source 208 to the second telemetry unit 212.

[0028]

[0033] Each respective permutation of first through fourth permutations (hereinafter “first through fourth”) 202a-202d may be analyzed according to the enhanced storage buffer allocation process 120 to determine whether the respective permutation meets certain metrics. The metrics include whether all data will be transmitted before the vehicle's movement (e.g., mission) is completed. If not, the respective permutation is discarded and not utilized. If the data completes transmission before the end of the movement, each transmission is further analyzed to determine how much storage space will be utilized by the respective permutation. The permutation that requires the least storage space and completes before transit completion is selected as the final permutation, and a storage space size is allocated to match the storage space size of the permutation as determined by the enhanced storage buffer allocation process 120.

[0029]

[0034] In some embodiments, permutations that result in the amount of data from the multiple streamed data sources being greater than the maximum available size of the buffer associated with the first or second telemetry unit 210, 212 are discarded. For example, assume that the fourth permutation 202d results in one or more of the first, second, and third data sources 214, 204, 206 having a storage size greater than the maximum available size of the buffer of the first telemetry unit 210. The fourth permutation 202d may be discarded. In contrast, the first through fourth permutations 202a-202d are retained when the amount of data from the multiple streamed data sources is less than the available size of the buffer associated with the first and second telemetry units 210, 212.

[0030]

[0035] 3 illustrates a method 300 for storing and transmitting data. Method 300 may generally be implemented by any of the embodiments described herein, for example, enhanced storage buffer allocation process 120 (FIG. 1A) and / or various permutations 200 (FIG. 2) may be performed in conjunction with method 400.

[0031]

[0036] In one embodiment, method 300 is implemented at least in part in one or more modules as a set of logic instructions stored in a non-transitory machine- or computer-readable storage medium, such as random access memory (RAM), read-only memory (ROM), programmable ROM (PROM), firmware, flash memory, etc.; in configurable logic, such as a programmable logic array (PLA), field programmable gate array (FPGA), complex programmable logic device (CPLD), etc.; in fixed-function logic hardware using circuit technology, such as application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS), or transistor-transistor (TTL) technology, or any combination thereof.

[0032]

[0037] Illustrated processing block 302 initializes all memory buffers to zero. Illustrated processing block 304 populates the buffers with all data for an iteration (corresponding to a moving slice of time). Illustrated processing block 306 determines whether bandwidth is sufficient for the highest priority data. The bandwidth corresponds to the transmitter that will transmit the data. If not, illustrated processing block 310 transmits a portion of the highest priority data and stores the remainder of the highest priority data, for example, in a corresponding buffer. If bandwidth is sufficient for the highest priority data, illustrated processing block 308 transmits all of the highest priority data. Illustrated processing block 312 increases the current priority (e.g., increases the priority by one). Illustrated processing block 314 determines whether bandwidth is sufficient for the current priority data. If not, illustrated processing block 318 transmits as much of the current priority data as possible, as long as bandwidth allows. Illustrated processing block 320 then determines whether the current iteration is the last iteration. If not, illustrated processing block 304 is executed again. If so, method 300 ends. If processing block 314 determines that the bandwidth is sufficient for the current priority data, illustrated processing block 316 transmits all of the current priority data (in addition to the highest priority data), and illustrated processing block 312 is executed again to increase the current priority by one and analyze whether further lower priority data can be transmitted in the following processing block.

[0033]

[0038] 4 illustrates a method 400 for generating allocations. Method 400 may generally be implemented by any of the embodiments described herein, and may be performed, for example, in conjunction with enhanced storage buffer allocation process 120 (FIG. 1A), various permutations 200 (FIG. 2), and / or method 300 (FIG. 3).

[0034]

[0039] Illustrated processing block 402 identifies transmission priorities for multiple streamed data sources, where the transmission priorities indicate a transmission order associated with the multiple streamed data sources. Illustrated processing block 404 generates a first permutation, which is a first allocation of the multiple streamed data sources to the multiple transmitters for transmission. Illustrated processing block 406 generates a first prediction of whether data from the multiple streamed data sources needs to be stored before transmission based on the first permutation, the transmission priorities, and the bandwidths of the multiple transmitters. Illustrated processing block 408 generates a first allocation of storage space size that will be required by the multiple streamed data sources based on the first priorities and the first prediction.

[0035]

[0040] In a first embodiment of method 400, multiple streamed data sources are associated with a vehicle. Method 400 further includes determining whether to maintain or discard a first allocation of storage space size based on whether data generated by the multiple streamed data sources will be transmitted before completion of vehicle operation. In a second embodiment, method 400 assigns a first and a second streamed data source from the multiple streamed data sources to a first transmitter from the multiple transmitters. The second embodiment can be combined with a third embodiment. In the third embodiment, method 400 identifies a first amount of data that a first streamed data source will generate, identifies a second amount of data that a second streamed data source will generate, and determines a first allocation of storage space size based on the first and second amounts. In a fourth example, which may be combined with the second and third examples, method 400 determines that a first streamed data source is associated with a first transmission priority from the transmission priorities, determines that a second streamed data source is associated with a second transmission priority from the transmission priorities, determines based on the first and second transmission priorities that the first streamed data source should have data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter, and determines a first allocation of storage space size based on the first streamed data source having data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter.

[0036]

[0041] In a fifth example that may be combined with any of the embodiments of method 400, method 400 generates a second permutation that is a second allocation of the plurality of streamed data sources to the plurality of transmitters for transmission, generates a second prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the second permutation, the transmission priorities, and the bandwidths of the plurality of transmitters, generates a second allocation of storage space sizes that the plurality of streamed data sources will require based on the second permutation and the second prediction, and determines whether to retain the first permutation or the second permutation based on the first and second allocations. In a sixth example that may be combined with any of the embodiments of method 400, method 400 determines whether to retain or discard the first permutation based on whether the amount of data from the plurality of streamed data sources is smaller than the available size of buffers associated with the plurality of transmitters.

[0037]

[0042] 5 illustrates a method 500 for generating permutations. Method 500 may generally be implemented by any of the embodiments described herein. Method 500 may generally be implemented by any of the embodiments described herein and may be performed in conjunction with enhanced storage buffer allocation process 120 (FIG. 1A), various permutations 200 (FIG. 2), method 300 (FIG. 3), and / or method 400 (FIG. 4).

[0038]

[0043] Illustrated process block 502 generates a new permutation, which is an allocation of multiple streamed data sources to multiple transmitters for transmission. Illustrated process block 504 generates a prediction of whether data from the multiple streamed data sources needs to be stored before transmission based on the first permutation, the transmission priority, and the bandwidth of the multiple transmitters. Illustrated process block 506 predicts the allocation of storage space size that the multiple streamed data sources will require based on the first priority and the first prediction. Illustrated process block 508 determines whether another new permutation is possible. If so, illustrated process block 502 is executed again. Otherwise, illustrated process block 510 selects one of the permutations as the final permutation, e.g., based on the enhanced storage buffer allocation process 120, and allocates buffers accordingly. For example, process block 510 selects the most efficient permutation (e.g., utilizes the least amount of memory, completes before completion of transfers).

[0039]

[0044] 6 shows a telemetry architecture 600. Multiple data sources 602 are coupled to a telemetry unit 604. The telemetry unit 604 includes a telemetry processor and controller, buffers assigned to different priorities, and a multiplexer. The telemetry unit transmits data to a ground station via a radio frequency transmitter 606.

[0040]

[0045] Furthermore, the present disclosure includes further embodiments that are described in detail in the following paragraphs.

[0041]

[0046] Article 1. At least one computer-readable storage medium containing a set of executable program instructions that, when executed by a computing system, cause the computing system to: identifying a transmission priority for a plurality of streamed data sources, the transmission priority indicating a transmission order associated with the plurality of streamed data sources; generating a first permutation that is a first allocation of the plurality of streamed data sources to a plurality of transmitters for transmission; generating a first prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the first permutation, the transmission priority, and bandwidths of the plurality of transmitters; and generating a first allocation of storage space size that will be required by the plurality of streamed data sources based on the first permutation and the first prediction.

[0042]

[0047] Article 2. The plurality of streamed data sources are associated with a vehicle, and the instructions, when executed, cause the computing system to: At least one computer-readable storage medium as described in clause 1, causing the computer to determine whether to maintain or discard the first allocation of storage space size based on whether data generated by the multiple streamed data sources will be transmitted before completion of operation by the vehicle.

[0043]

[0048] Article 3. The instructions, when executed, cause the computing system to: At least one computer-readable storage medium as described in clause 1, causing a first streamed data source and a second streamed data source from the plurality of streamed data sources to be assigned to a first transmitter from the plurality of transmitters.

[0044]

[0049] Article 4. The instructions, when executed, cause the computing system to: identifying a first amount of data to be generated by the first streamed data source; identifying a second amount of data to be generated by the second streamed data source; and and determining the first allocation of the storage space size based on the first amount and the second amount.

[0045]

[0050] Article 5. The instructions, when executed, cause the computing system to: determining that the first streamed data source is associated with a first transmission priority from the transmission priorities; determining that the second streamed data source is associated with a second transmission priority from the transmission priorities; determining, based on the first transmission priority and the second transmission priority, that the first streamed data source should have data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter; and and determining the first allocation of storage space size based on the first streamed data source having data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter.

[0046]

[0051] Article 6. The instructions, when executed, cause the computing system to: generating a second permutation that is a second allocation of the plurality of streamed data sources to the plurality of transmitters for transmission; generating a second prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the second permutation, the transmission priority, and bandwidths of the plurality of transmitters; generating a second allocation of storage space sizes that will be required by the plurality of streamed data sources based on the second permutation and the second prediction; and and determining whether to retain the first permutation or the second permutation based on the first assignment and the second assignment.

[0047]

[0052] Article 7. The instructions, when executed, cause the computing system to: At least one computer-readable storage medium described in any one of clauses 1 to 6, causing the computer to execute determining whether to keep or discard the first permutation based on whether the amount of data from the multiple streamed data sources is less than the available size of a buffer associated with the multiple transmitters.

[0048]

[0053] Article 8. processor, and 1. A system comprising: a memory having a set of instructions that, when executed by the processor, cause the system to: identifying a transmission priority for a plurality of streamed data sources, the transmission priority indicating a transmission order associated with the plurality of streamed data sources; generating a first permutation that is a first allocation of the plurality of streamed data sources to a plurality of transmitters for transmission; generating a first prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the first permutation, the transmission priority, and bandwidths of the plurality of transmitters; and generating a first allocation of storage space size that will be required by the plurality of streamed data sources based on the first permutation and the first prediction.

[0049]

[0054] Article 9. The plurality of streamed data sources are associated with a vehicle, and the set of instructions in the memory, when executed, cause the system to: The system described in clause 8, further comprising determining whether to maintain or discard the first allocation of storage space size based on whether data generated by the plurality of streamed data sources will be transmitted before completion of operation by the vehicle.

[0050]

[0055] Article 10. The set of instructions in the memory, when executed, cause the system to: 9. The system of claim 8, further comprising: allocating a first streamed data source and a second streamed data source from the plurality of streamed data sources to a first transmitter from the plurality of transmitters.

[0051]

[0056] Article 11. The set of instructions in the memory, when executed, cause the system to: identifying a first amount of data to be generated by the first streamed data source; identifying a second amount of data to be generated by the second streamed data source; and 11. The system of claim 10, further comprising: determining the first allocation of the storage space size based on the first amount and the second amount.

[0052]

[0057] Article 12. The set of instructions in the memory, when executed, cause the system to: determining that the first streamed data source is associated with a first transmission priority from the transmission priorities; determining that the second streamed data source is associated with a second transmission priority from the transmission priorities; determining, based on the first transmission priority and the second transmission priority, that the first streamed data source should have data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter; and 12. The system of claim 10 or 11, further comprising: determining the first allocation of storage space size based on the first streamed data source having data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter.

[0053]

[0058] Article 13. The set of instructions in the memory, when executed, cause the system to: generating a second permutation that is a second allocation of the plurality of streamed data sources to the plurality of transmitters for transmission; generating a second prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the second permutation, the transmission priority, and bandwidths of the plurality of transmitters; generating a second allocation of storage space sizes that will be required by the plurality of streamed data sources based on the second permutation and the second prediction; and 13. The system of any one of clauses 8 to 12, further comprising: determining whether to retain the first permutation or the second permutation based on the first assignment and the second assignment.

[0054]

[0059] Article 14. The set of instructions in the memory, when executed, cause the system to: 14. The system of any one of clauses 8 to 13, further comprising determining whether to keep or discard the first permutation based on whether the amount of data from the plurality of streamed data sources is less than the available size of a buffer associated with the plurality of transmitters.

[0055]

[0060] Article 15. identifying a transmission priority for a plurality of streamed data sources, the transmission priority indicating a transmission order associated with the plurality of streamed data sources; generating a first permutation that is a first allocation of the plurality of streamed data sources to a plurality of transmitters for transmission; generating a first prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the first permutation, the transmission priority, and bandwidths of the plurality of transmitters; and generating a first allocation of storage space size that will be required by the plurality of streamed data sources based on the first permutation and the first prediction.

[0056]

[0061] Article 16. The plurality of streamed data sources are associated with a vehicle, and the method further comprises: 16. The method of claim 15, comprising determining whether to retain or discard the first allocation of storage space size based on whether data generated by the plurality of streamed data sources will be transmitted before completion of operation by the vehicle.

[0057]

[0062] Article 17. 17. The method of clause 15 or 16, further comprising assigning a first streamed data source and a second streamed data source from the plurality of streamed data sources to a first transmitter from the plurality of transmitters.

[0058]

[0063] Article 18. identifying a first amount of data to be generated by the first streamed data source; identifying a second amount of data to be generated by the second streamed data source; and 18. The method of clause 17, further comprising determining the first allocation of the storage space size based on the first amount and the second amount.

[0059]

[0064] Article 19. determining that the first streamed data source is associated with a first transmission priority from the transmission priorities; determining that the second streamed data source is associated with a second transmission priority from the transmission priorities; determining, based on the first transmission priority and the second transmission priority, that the first streamed data source should have data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter; and 19. The method of clause 17 or 18, further comprising determining the first allocation of storage space size based on the first streamed data source having data to be transmitted by the first transmitter before data from the second streamed data source is transmitted by the first transmitter.

[0060]

[0065] Article 20. generating a second permutation that is a second allocation of the plurality of streamed data sources to the plurality of transmitters for transmission; generating a second prediction of whether data from the plurality of streamed data sources needs to be stored before transmission based on the second permutation, the transmission priority, and bandwidths of the plurality of transmitters; generating a second allocation of storage space sizes that will be required by the plurality of streamed data sources based on the second permutation and the second prediction; and 20. The method of any one of clauses 15 to 19, further comprising determining whether to retain the first permutation or the second permutation based on the first assignment and the second assignment.

[0061]

[0066] Although example sizes / models / values / ranges may be given, examples are not limited thereto. Arrangements may be illustrated in block diagram form to avoid unclear embodiments and to take into account the fact that specific details regarding the implementation of such block diagram arrangements are highly dependent on the computer system in which the embodiment may be implemented. That is, such details should be well within the purview of those skilled in the art. The term "coupled" may be used to refer to any type of direct or indirect relationship between the components in question, and may apply to electrical, mechanical, fluid, optical, electromagnetic, electromechanical, or other connections. In addition, terms such as "first," "second," etc. may be used only for ease of description and may not have any particular temporal or chronological significance unless otherwise specified.

[0062]

[0067] As used in the specification and claims, a list of items joined by the term "one or more of" may mean any combination of the listed items. For example, the phrase "one or more of A, B, or C" may mean A, B, C, A and B, A and C, B and C, or A, B, and C.

[0063]

[0068] Those skilled in the art will appreciate from the foregoing description that the broad techniques of the embodiments can be implemented in a variety of forms. Thus, although the embodiments have been described in the context of specific embodiments thereof, the true scope of the embodiments should not be so limited, as other variations will be apparent to those skilled in the art upon review of the drawings, the specification, and the following claims.

Claims

1. A computer-readable storage medium containing a set of executable program instructions, wherein, when the instructions are executed by a computing system, the computing system... Identifying transmission priorities for multiple streamed data sources, wherein the transmission priorities indicate the transmission order associated with the multiple streamed data sources. To generate a first permutation which is a first assignment of the multiple streamed data sources to multiple transmitters for transmission, Based on the first permutation, the transmission priority, and the bandwidth of the multiple transmitters, a first prediction is generated of whether the data from the multiple streamed data sources needs to be stored before transmission, and A computer-readable storage medium that causes to generate a first allocation of storage space size that the plurality of streamed data sources will require, based on the first permutation and the first prediction.

2. The aforementioned multiple streamed data sources are associated with the vehicle, and furthermore, when the instruction is executed, the computing system... The at least one computer-readable storage medium according to claim 1, which causes it to determine whether to maintain or discard the first allocation of the storage space size based on whether the data generated by the plurality of streamed data sources will be transmitted before the completion of the operation by the vehicle.

3. When the aforementioned instruction is executed, the calculation system will: The at least one computer-readable storage medium according to claim 1, which causes the system to assign a first streamed data source and a second streamed data source from the plurality of streamed data sources to the first transmitter from the plurality of transmitters.

4. When the instruction command is executed, the calculation system shall Identifying a first amount of data that the first streamed data source will generate, Identifying a second amount of data that the second streamed data source will generate, and The at least one computer-readable storage medium according to claim 3, which causes the system to perform a determination of the first allocation of the storage space size based on the first amount and the second amount.

5. When the instruction command is executed, the calculation system shall Determining that the first streamed data source is associated with a first transmission priority from the transmission priority, Determining that the second streamed data source is associated with a second transmission priority from the transmission priority, Based on the first transmission priority and the second transmission priority, it is determined that the first streamed data source should have data to be transmitted by the first transmitter before the data from the second streamed data source is transmitted by the first transmitter, and The at least one computer-readable storage medium according to claim 3 or 4, wherein the first streamed data source determines the first allocation of the storage space size based on the data to be transmitted by the first transmitter, before the data from the second streamed data source is transmitted by the first transmitter.

6. When the aforementioned instruction is executed, the calculation system will: To generate a second permutation which is a second assignment of the multiple streamed data sources to the multiple transmitters for transmission, Based on the second permutation, the transmission priority, and the bandwidth of the multiple transmitters, a second prediction is generated of whether the data from the multiple streamed data sources needs to be stored before transmission. Based on the second permutation and the second prediction, generate a second allocation of the storage space size that the multiple streamed data sources will require, and The at least one computer-readable storage medium according to claim 1, which is configured to determine whether to retain the first permutation or the second permutation based on the first assignment and the second assignment.

7. When the aforementioned instruction is executed, the calculation system will: The at least one computer-readable storage medium according to claim 1, which causes it to determine whether to maintain or discard the first permutation based on whether the amount of data from the plurality of streamed data sources is less than the available size of the buffer associated with the plurality of transmitters.

8. Processor, and A system comprising a memory having a set of instruction commands, wherein when the instruction commands are executed by the processor, the system Identifying transmission priorities for multiple streamed data sources, wherein the transmission priorities indicate the transmission order associated with the multiple streamed data sources. To generate a first permutation which is a first assignment of the multiple streamed data sources to multiple transmitters for transmission, Based on the first permutation, the transmission priority, and the bandwidth of the multiple transmitters, a first prediction is generated of whether the data from the multiple streamed data sources needs to be stored before transmission, and A system that generates a first allocation of storage space size that the multiple streamed data sources will require, based on the first permutation and the first prediction.

9. The plurality of streamed data sources are associated with the vehicle, and furthermore, the set of instruction commands in the memory, when executed, are transmitted to the system. The system according to claim 8, which determines whether to maintain or discard the first allocation of storage space size based on whether the data generated by the plurality of streamed data sources will be transmitted before the completion of the operation by the vehicle.

10. When the set of instruction commands in the memory is executed, the system will, The system according to claim 8, which causes the system to assign a first streamed data source and a second streamed data source from the plurality of streamed data sources to the first transmitter from the plurality of transmitters.

11. When the set of instruction commands of the memory is executed, the system will: Identifying a first amount of data that the first streamed data source will generate, Identifying a second amount of data that the second streamed data source will generate, and The system according to claim 10, which causes the system to determine the first allocation of the storage space size based on the first amount and the second amount.

12. When the set of instruction commands of the memory is executed, the system will: Determining that the first streamed data source is associated with a first transmission priority from the transmission priority, Determining that the second streamed data source is associated with a second transmission priority from the transmission priority, Based on the first transmission priority and the second transmission priority, it is determined that the first streamed data source should have data to be transmitted by the first transmitter before the data from the second streamed data source is transmitted by the first transmitter, and The system according to claim 10 or 11, wherein, before the data from the second streamed data source is transmitted by the first transmitter, the system determines the first allocation of the storage space size based on the fact that the first streamed data source has data to be transmitted by the first transmitter.

13. When the set of instruction commands in the memory is executed, the system will, To generate a second permutation which is a second assignment of the multiple streamed data sources to the multiple transmitters for transmission, Based on the second permutation, the transmission priority, and the bandwidth of the multiple transmitters, a second prediction is generated of whether the data from the multiple streamed data sources needs to be stored before transmission. Based on the second permutation and the second prediction, generate a second allocation of the storage space size that the multiple streamed data sources will require, and The system according to claim 8, which causes the system to determine whether to retain the first permutation or the second permutation based on the first assignment and the second assignment.

14. When the set of instruction commands in the memory is executed, the system will, The system according to claim 8, which determines whether to maintain or discard the first permutation based on whether the amount of data from the plurality of streamed data sources is less than the available size of the buffers associated with the plurality of transmitters.

15. Identifying transmission priorities for multiple streamed data sources, wherein the transmission priorities indicate the transmission order associated with the multiple streamed data sources. To generate a first permutation which is a first assignment of the multiple streamed data sources to multiple transmitters for transmission, Based on the first permutation, the transmission priority, and the bandwidth of the multiple transmitters, a first prediction is generated of whether the data from the multiple streamed data sources needs to be stored before transmission, and A method comprising generating a first allocation of storage space size that the plurality of streamed data sources will require, based on the first permutation and the first prediction.

16. The aforementioned multiple streamed data sources are associated with the vehicle, and furthermore, the method The method of claim 15, comprising determining whether to retain or discard the first allocation of storage space size based on whether the data generated by the plurality of streamed data sources will be transmitted before the completion of the operation by the vehicle.

17. The method according to claim 15 or 16, further comprising assigning a first streamed data source and a second streamed data source from the plurality of streamed data sources to the first transmitter from the plurality of transmitters.

18. Identifying a first amount of data that the first streamed data source will generate, Identifying a second amount of data that the second streamed data source will generate, and The method according to claim 17, further comprising determining the first allocation of the storage space size based on the first amount and the second amount.

19. Determining that the first streamed data source is associated with a first transmission priority from the transmission priority, Determining that the second streamed data source is associated with a second transmission priority from the transmission priority, Based on the first transmission priority and the second transmission priority, it is determined that the first streamed data source should have data to be transmitted by the first transmitter before the data from the second streamed data source is transmitted by the first transmitter, and The method according to claim 17, further comprising determining the first allocation of the storage space size based on the fact that the first streamed data source has data to be transmitted by the first transmitter, before the data from the second streamed data source is transmitted by the first transmitter.

20. To generate a second permutation which is a second assignment of the multiple streamed data sources to the multiple transmitters for transmission, Based on the second permutation, the transmission priority, and the bandwidth of the multiple transmitters, a second prediction is generated of whether the data from the multiple streamed data sources needs to be stored before transmission. Based on the second permutation and the second prediction, generate a second allocation of the storage space size that the multiple streamed data sources will require, and The method according to claim 15, further comprising determining whether to retain the first permutation or the second permutation based on the first assignment and the second assignment.