Computing device for uncertainty tracking

CN122996413APending Publication Date: 2026-10-27SIGNEUDER GMBH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202580023296.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-20
Filing Date
2025-02-22
Publication Date
2026-10-27

AI Technical Summary

Technical Problem

不确定性跟踪的独特需求通常需要定制的技术方案,例如蒙特卡罗方法,这些方案可能无法与常规的、现成可用的系统无缝对齐

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122996413A_ABST
    Figure CN122996413A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a computing device for uncertainty tracking. The computing device comprises an interface module configured for data communication with a host; and a computing module configured to process uncertainty information contained in input data received from the host via the interface module.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a computing device for uncertainty tracking, a data processing system for uncertainty tracking, a computer-implemented method for uncertainty tracking, a computer program including instructions for performing the computer-implemented method for uncertainty tracking, and a computer-readable storage medium including instructions for performing the computer-implemented method for uncertainty tracking. More particularly, this disclosure relates to a computing device for offloading uncertainty computation through a data storage interface. Background Technology

[0002] Today, computers are used for data processing in almost every aspect of life. Data that can be processed by computers can include, but is not limited to, readings from sensors, stock market data, or measurements output by quantum computers. While uncertainty is common in such data, conventional computing platforms can only handle deterministic and unambiguous integer and floating-point values. Therefore, conventional computing platforms typically attempt to eliminate uncertainty by averaging the variations between readings into a single number, or by performing some other statistical analysis to reduce the readings, allowing operations such as ADD, SUBTRACT, MULTIPLY, and XOR to be performed on this data. The result of these operations is other integer or floating-point values.

[0003] In many use cases, the accuracy of the processed results is critical. For example, sensor data feeding the autonomous control algorithm of an autonomous vehicle contains variations between the vehicle's various sensors. The quality of the autonomous control algorithm's decisions may depend on the accuracy of the processed results. For instance, if the autonomous control algorithm must perform an emergency stop, uncertainties in the sensor data may affect whether the emergency stop is performed safely.

[0004] In such use cases, the so-called Monte Carlo method can be employed, which involves rerunning the software millions of times with slightly different inputs, based on the distribution of input uncertainty, to understand how the uncertainty in the input affects the results. Because modern computers can only perform calculations on numbers, not on distributions of uncertainty, the Monte Carlo method is slow, expensive, and only suitable for offline analysis.

[0005] Furthermore, performing computations on uncertainty distributions typically requires high-performance hardware and specialized software. This presents challenges when attempting to integrate uncertainty tracking into existing systems, making it a challenging or even impossible task. The unique requirements of uncertainty tracking often necessitate custom-designed techniques, such as Monte Carlo methods, which may not seamlessly align with conventional, off-the-shelf systems. Summary of the Invention

[0006] In view of the above, a computing device for uncertainty tracking, a data processing system for uncertainty tracking, a computer-implemented method for uncertainty tracking, a computer program including instructions for executing the computer-implemented method for uncertainty tracking, and a computer-readable storage medium including instructions for executing the computer-implemented method for uncertainty tracking are provided.

[0007] The purpose of this disclosure is to enable computations on uncertain distributions, particularly without requiring modifications on the host side. Another purpose of this disclosure is to minimize the time and / or resources required to compute uncertain distributions.

[0008] These objectives are addressed by the features of the independent claims. Preferred embodiments are defined in the dependent claims.

[0009] According to an independent aspect of this disclosure, a computing device for uncertainty tracking is provided. The computing device includes an interface module configured to communicate data with a host; and a computing module configured to process uncertainty information contained in input data received from the host via the interface module.

[0010] Throughout this disclosure, the term "host" refers to a computer system or device that provides resources, services, and / or data to other connected devices, particularly computing devices. A host can interact and collaborate with computing devices to perform tasks within the context of this disclosure.

[0011] As used throughout this disclosure, the term "computing module" refers to a hardware component or unit designed for computing tasks. A computing module includes at least one processor and optionally includes other components necessary to perform a particular computation, such as at least one memory.

[0012] According to some embodiments, it can be combined with other embodiments described herein, wherein the uncertainty information contained in the input data received from the host via the interface module includes or relates to uncertainty distribution information and / or probability distribution. Probability distribution is generally understood as a phenomenon based on its sample space and event probabilities.

[0013] According to some embodiments, it can be combined with other embodiments described herein, whereby input data received from the host via the interface module is based on an empirical sample set, an analytical distribution, or a set of sensor readings.

[0014] The computation module is configured to process uncertainty information by using an uncertainty tracking function. According to some embodiments, it can be combined with other embodiments described herein. The uncertainty tracking function includes one or more operations. Preferably, the one or more operations are performed on distributed values. Preferably, the one or more operations include arithmetic operations, more preferably addition, subtraction, multiplication, division, and / or exponentiation, or other such operations typically included in the microprocessor instruction set.

[0015] The computing device according to embodiments of the present invention allows the representation and propagation of uncertainties in measurement data from a measuring device (e.g., a sensor) as distribution information (e.g., probability distribution, frequency distribution, etc.). Through an interface with a host, the uncertainty in the measurement data (e.g., from a sensor) input to the host is quantified and represented as distribution information by the computing device. This enables general-purpose computing systems to transparently extend their uncertainty tracking capabilities without requiring changes to their hardware design.

[0016] The term “uncertainty tracking” (or uncertainty propagation) used throughout this disclosure generally refers to the process of quantifying and managing the uncertainty or variation associated with input data and the uncertainty of the results of each operation (e.g., ADD, SUB, etc.) as input data is processed by a computing device / computing module. The term “uncertainty tracking” (or uncertainty propagation) specifically refers to the process of monitoring how uncertainty in data affects the output of a sequence of arithmetic operations acting on the data. For a given data item, such as a measurement, the term uncertainty quantification (UQ) is generally used to refer to the process of quantifying the uncertainty of that individual data item. Uncertainty tracking aims to provide a more comprehensive understanding of the constraints and potential errors associated with computational results. It involves techniques and methods for representing, propagating, and in some cases mitigating uncertainty to enhance the reliability and robustness of computational results. This becomes particularly critical when dealing with real-world data, complex models, or situations where precise information is difficult to obtain. Non-limiting exemplary methods for handling uncertainty information are explained in WO2022248719.

[0017] Operating on probability distributions may involve representing uncertainty. This can be done by processing datasets, such as empirical samples or analytical distributions, to generate a representation of the uncertainty. This representation can be a representation of probability mass / density function / distribution and allows computational operations to be performed on the uncertainty. The representation generation algorithm can use parameters such as location and probability to generate this uncertainty representation. In a preferred embodiment, this is implemented using Dirac delta, where each real number in the domain is represented by a delta function with associated probability mass.

[0018] It should be noted that the distribution representation of Dirac deltas within its domain differs from the probability mass function (PMF). In the PMF, the domain of the distribution is discrete by definition, and the integral can be replaced by summation. Because the Dirac delta distribution is not a function but a distribution, representing the distribution as a set of Dirac deltas is also different from the concept of the probability density function (PDF). Generally, the representation of Dirac deltas that integrates to 1.0 (i.e., its probability mass sums to 1.0) can be called the probability density distribution (PDD), which is a generalization of the probability density function (PDF) (i.e., PDF is PDD, but PDD is not necessarily PDF).

[0019] The so-called stretching torque representation (TTR) is an example of an uncertainty representation based on the distribution of the Dirac delta. It should be understood that this disclosure is not limited thereto, and other methods may be used to construct the representation, such as the moment quantization histogram representation (MQHR) described in WO 2022 / 248714 A1.

[0020] According to some embodiments, it can be combined with other embodiments described herein, and the interface module is configured to communicate with the host based on the SD (Secure Digital) protocol, CXL (Compute Fast Link) protocol, PCIe (Peripheral Component Interconnect Fast) protocol, NVME (Non-Volatile Memory Fast) protocol and / or USB (Universal Serial Bus) protocol.

[0021] According to some embodiments, it can be combined with other embodiments described herein, and the computing device includes at least one storage module.

[0022] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to allow a host to write data to and read data from the at least one storage module via an addressing interface module.

[0023] According to some embodiments, it can be combined with other embodiments described herein, wherein the computing module is configured to process uncertainty information contained in input data received from the host via an interface module and stored in the at least one storage module.

[0024] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured as a simulated block storage device.

[0025] According to some embodiments, it can be combined with other embodiments described herein, and the computing device is configured to emulate the original block device.

[0026] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to allow a host to write data to and read data from the at least one storage module using a predefined set of storage I / O addresses.

[0027] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured as a block storage device emulating FAT32 format.

[0028] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to allow a host to use a synthetic file system to write data to and read data from the at least one storage module.

[0029] As used throughout this disclosure, the term "simulation" refers to the process of replicating the behavior, functionality, or characteristics of a system, device, or software application using another system or instruction set. This can be used to achieve compatibility between different technologies or to simulate the behavior of specific hardware or software on different platforms. Simulation allows a system to mimic the operation of another system, typically intended to run software or applications originally designed for different architectures or environments.

[0030] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to be removably connected to an interface device of a host to establish data communication via an interface module.

[0031] The term “removably” as used throughout this disclosure refers to a releasable mechanical connection between objects. It specifically refers to the ability or manner in which something can be removed or detached without causing damage or permanent alteration. When an object is described as removably attached or connected, it means that it can be separated from or removed from its connection point without causing damage to the object itself or introducing changes to its immediate environment.

[0032] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to be removably inserted into an interface device of the host to establish data communication via an interface module.

[0033] According to some embodiments, which can be combined with other embodiments described herein, the host's interface device is a slot, and the computing device is configured to be removably inserted into the slot.

[0034] According to some embodiments, it can be combined with other embodiments described herein, and the computing device has or is compatible with a Secure Digital form factor, such as a microSD or full-size SD form factor.

[0035] Preferably, the computing device, such as a full-size SD form factor computing device, has dimensions of 32mm × 24mm × 2.1mm.

[0036] Preferably, the computing device, such as a full-size SD form factor computing device, has dimensions of 32mm × 24mm × 1.4mm.

[0037] Preferably, the computing device, such as a microSD computing device, has dimensions of 15mm × 11mm × 1mm.

[0038] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to behave as an SD device, enabling a host to communicate with the computing device using, for example, the SD protocol or the SD-over-SPI protocol.

[0039] According to some embodiments, which can be combined with other embodiments described herein, the computing device includes a main module and a connector connected to the main module via a flexible connection.

[0040] According to some embodiments, it can be combined with other embodiments described herein, and the main module includes at least a computing module. Optionally, the main module may also include the at least one storage module.

[0041] According to some embodiments, which can be combined with other embodiments described herein, the connector is configured to be removably inserted into the host's interface device to establish data communication via the interface module.

[0042] According to some embodiments, it can be combined with other embodiments described herein, and the connector has a secure digital form factor, such as microSD or full-size SD form factor.

[0043] According to some embodiments, it can be combined with other embodiments described herein, and the main module includes at least one power port for supplying power to the computing device.

[0044] Alternatively or additionally, the main module may include at least one wireless communication module.

[0045] Alternatively or additionally, the main module may include at least one interface unit for connecting to an external storage medium.

[0046] According to some embodiments, it can be combined with other embodiments described herein, and the computing module includes one or more field-programmable gate arrays (FPGAs), or is composed of one or more field-programmable gate arrays (FPGAs).

[0047] According to some embodiments, it can be combined with other embodiments described herein, and the computing module is configured to receive instructions from the host one at a time.

[0048] According to some embodiments, which can be combined with other embodiments described herein, the computing device is configured to send a program counter value for the next instruction to the host in response to each instruction sent by the host.

[0049] According to some embodiments, it can be combined with other embodiments described herein, and the computing module is configured to receive instructions from the host in the form of a complete program.

[0050] Preferably, the computing module is configured to receive instructions from the host in the form of a complete program via a bootloader. A bootloader is generally understood as a dedicated program or code that initiates the computer system boot process. The bootloader typically performs tasks such as hardware initialization, checking system integrity, and loading the operating system into memory. It ensures a smooth transition from a hardware power-off state to the operating system's ability to control and manage system resources.

[0051] According to some embodiments, it can be combined with other embodiments described herein, and the computing module is configured to be reprogrammable.

[0052] Preferably, the computing module of the computing device is configured to be reprogrammable via a bootloader and / or a dedicated connector. This allows the computing module to be rewritten directly from the host computer without requiring an external bootloader.

[0053] Additionally or alternatively, the computing module of the computing device may be configured to have reprogrammability via a dedicated connector.

[0054] According to some embodiments, which can be combined with other embodiments described herein, the computing device also includes at least one wireless communication module for transmitting data (e.g., the result of uncertainty tracking performed by the computing module) to one or more external entities.

[0055] According to some embodiments, it can be combined with other embodiments described herein, wherein the one or more external entities include workstations and / or cloud computing engines.

[0056] According to another independent aspect of this disclosure, a data processing system for uncertainty tracking is provided. The data processing system includes a computing device according to embodiments of this disclosure and a host having an interface device.

[0057] According to another independent aspect of this disclosure, a computer-implemented method for uncertainty tracking is provided. The method includes: establishing data communication between a computing device and a host; receiving input data from the host at an interface module of the computing device; processing uncertainty information contained in the input data by a computing module of the computing device to perform uncertainty tracking; and outputting the processing result of the uncertainty tracking.

[0058] According to some embodiments, it can be combined with other embodiments described herein, wherein the interface module of the computing device is removably connected to the interface device of the host to enable data communication.

[0059] According to another independent aspect of this disclosure, a computer program is provided. This computer program has instructions that, when executed by a computer, cause the computer to perform a method for uncertainty tracking according to embodiments described herein.

[0060] According to another independent aspect of this disclosure, a computer-readable storage medium is provided. The computer-readable storage medium has instructions that, when executed by a computer, cause the computer to perform a method for uncertainty tracking according to embodiments described herein.

[0061] Preferably, the computer-readable storage medium is a non-transitory computer-readable storage (or memory) medium. The term "non-transitory computer-readable storage (or memory) medium" includes, but is not limited to, magnetic or optical media, such as magnetic disks, hard disks, or DVD / CD-ROMs, and volatile or non-volatile media, such as RAM (e.g., SDRAM, DDR, RDRAM, SRAM, etc.), ROM, flash memory, etc. Non-transitory computer-readable storage (or memory) media may also include other types of non-transitory memory or combinations thereof.

[0062] According to another independent aspect of this disclosure, a data processing system for uncertainty tracking is provided. The data processing system includes one or more processors configured to establish data communication between a computing device and a host; receive input data from the host; process uncertainty information contained in the input data to perform uncertainty tracking; and output the processing result of the uncertainty tracking.

[0063] According to some embodiments, it can be combined with other embodiments described herein, wherein the interface module of the computing device is removably connected to the interface device of the host to enable data communication. Attached Figure Description

[0064] To enable a detailed understanding of the features of this disclosure described above, a more specific description of the disclosure, which has been briefly summarized above, can be obtained by referring to the embodiments. The accompanying drawings illustrate embodiments of this disclosure and are described below: Figure 1 A schematic diagram of a conventional processor unit is shown; Figure 2 A schematic diagram of a processor unit according to an embodiment of the present disclosure is shown; Figure 3 A data processing system for uncertainty tracking according to an embodiment of the present disclosure is shown; Figure 4 A computing device according to an embodiment of the present disclosure is shown; Figure 5 A computing device according to other embodiments of the present disclosure is shown; Figure 6 A computing device according to other embodiments of the present disclosure is shown; and Figure 7 A flowchart illustrating a computer-implemented method for uncertainty tracking according to an embodiment of this disclosure is shown. Detailed Implementation

[0065] Reference will now be made in detail to various embodiments of the present disclosure, one or more examples of which are illustrated in the accompanying drawings. In the following description of the drawings, the same reference numerals refer to the same components. Generally, only differences between the various embodiments are described. Each example is provided by way of interpretation of the present disclosure and is not intended to limit the present disclosure. Furthermore, features shown or described as part of one embodiment may be used in or in combination with other embodiments to produce yet another embodiment. It is intended that this description include such modifications and variations.

[0066] This document includes references to "one embodiment" or "an embodiment". The appearance of the phrase "in one embodiment" or "in an embodiment" does not necessarily refer to the same embodiment. Specific features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure.

[0067] The term "comprising" is open-ended. As used in the appended claims, it does not exclude additional structures or steps.

[0068] Various units, circuits, or other components can be described or claimed as being "configured to" perform one or more tasks. In such a context, "configured to" is used to imply a structure by indicating that the unit / circuit / component includes a structure (e.g., a circuit) that performs those tasks during operation. Thus, even if the specified unit / circuit / component is not currently operational (e.g., not turned on), it can be said that the unit / circuit / component is configured to perform a task. Units / circuits / components used with the "configured to" language include hardware such as circuits, memory storing instructions executable to perform the operation, etc. Additionally, "configured to" can include general structures (e.g., general-purpose circuits) manipulated by software and / or firmware (e.g., FPGAs or general-purpose processors executing software) to operate in a manner capable of performing the tasks in question.

[0069] As used in this article, the terms “first,” “second,” etc., are used as labels for the nouns that precede them and do not imply any type of order (e.g., spatial, temporal, logical, etc.).

[0070] As used herein, the term "based on" is used to describe one or more factors that influence a determination. This term does not exclude other factors that may influence the determination. That is, a determination may be based solely on those factors, or at least partially on those factors. Consider the phrase "A is determined based on B." While B is a factor influencing the determination of A in this case, this phrase does not exclude the possibility that the determination of A is also based on C. In other cases, A may be determined solely on B.

[0071] Figure 1 A schematic diagram of a conventional processor unit 100 is shown.

[0072] The conventional processor unit 100 takes integer and floating-point values ​​as input and performs operations on these data (such as ADD, SUBTRACT, MULTIPLY, XOR, etc.). The result of these operations is another integer or floating-point value.

[0073] Uncertainty in input data (such as readings from sensors or stock market data) is not uncommon, but conventional processor unit 100 can only process deterministic and unambiguous integer and floating-point values. Therefore, software running on conventional processor unit 100 eliminates uncertainty by transforming the data into a form that conventional processor unit 100 can process through averaging the variations between readings into a single number, or by performing some other statistical analysis to reduce the number of readings, and then feeding the averaged data into subsequent steps.

[0074] However, in many cases, the accuracy of the processing results is crucial. For example, if the autonomous control algorithm of a self-driving car must perform an emergency stop, uncertainties in the sensor data can affect whether the emergency stop is performed safely. Because today's computers can only perform calculations on numbers, not on distributions of uncertainty, the accuracy of the processing results may be insufficient, at least for some applications.

[0075] For example, measuring devices (such as sensors) are ubiquitous in almost every aspect of modern life. In all measuring devices, no matter how complex, "measurement" is never the same as "the measurand." Following standard metrological terminology, the true value of the input signal measured by the measuring device is called the "measurand." Similarly, the estimate of the measurand obtained by the measuring device as a result of the measurement process is called the "measurement result."

[0076] This difference between the value of the "measurand" and the value of the "measurement result" is attributed either to interference in the measuring instrument / sensor or to the characteristics of the environment in which the measurement or sensing takes place. Noise in the measuring instrument / sensor, as well as measurement errors caused by environmental or other non-instrument factors, can be collectively referred to as "measurement uncertainty".

[0077] All measurements are inherently uncertain, and this uncertainty is typically characterized statistically and forms random uncertainty. However, today's general-purpose computer architectures still perform arithmetic on point-value numbers: uncertain values ​​are represented only by single-point values ​​or "particle" values ​​(i.e., data without an associated uncertainty distribution), usually by taking repeated measurements and then calculating the mean as a representation for subsequent calculations.

[0078] This does not allow for the efficient representation of the uncertainty of its accidental form, let alone the arithmetic and control flow performed on accidental values.

[0079] Figure 2 A schematic diagram of a processor unit 200 according to an embodiment of the present disclosure is shown.

[0080] The processor unit 200 of this disclosure can take on integer and floating-point values ​​of the same kind as a conventional processor unit and perform the same kind of operations (e.g., ADD, SUBTRACT, MULTIPLY, XOR, etc.). In addition, the input values ​​include additional information about the distribution associated with each value, and in some embodiments, the processor unit 200 can also implement many additional operations that manipulate the distribution information (e.g., BAYESLAPLACE, DISTFROMSAMPLES, etc.).

[0081] Embodiments for implementing uncertainty tracking technology are described in detail below. Specifically, the computing device described below allows the representation and propagation of uncertainties in measurement data from a measuring device (e.g., a sensor) as distribution information (e.g., probability distribution, frequency distribution, etc.). Through an interface with a host, the uncertainty in the measurement data (e.g., from a sensor) provided as input to the host is quantized and represented as distribution information by the computing module. This enables general-purpose computing systems to transparently extend their uncertainty tracking capabilities without requiring changes to their hardware design.

[0082] Figure 3 A data processing system 300 for uncertainty tracking according to an embodiment of the present disclosure is shown.

[0083] The data processing system 300 includes a computing device 310 with uncertainty tracking capabilities and a host 320. The host 320 can interact and collaborate with the computing device 310 to perform the tasks outlined in the context of this disclosure. In particular, the host 320 can supply input data IDs to the computing device 310 for uncertainty tracking.

[0084] The computing device 310 includes an interface module 312 configured to communicate data with a host 320; and a computing module 314 configured to process uncertainty information contained in input data ID received from the host 320 via the interface module 312. The uncertainty information contained in the input data ID may include or relate to uncertainty distribution information and / or probability distribution.

[0085] Interface module 312 can be configured to communicate with host 320 based on SD (Secure Digital) protocol, CXL (Compute Fast Link) protocol, PCIe (Peripheral Component Interconnect Fast) protocol, NVME (Non-Volatile Memory Fast) protocol and / or USB (Universal Serial Bus) protocol.

[0086] The computation module 314 is configured to use its uncertainty tracking function to process uncertainty information contained in the input data ID received via the interface module 312. In some embodiments, the uncertainty tracking function implemented on the computation module 314 includes one or more operations. Preferably, the one or more operations are performed on distributed values. Preferably, the one or more operations include arithmetic operations, more preferably addition, subtraction, multiplication, division and / or exponentiation, or other such operations typically included in the microprocessor instruction set.

[0087] Optionally, the computing device 310 includes at least one storage module 316. The host 320 can write data (e.g., input data ID) to the at least one storage module 316 for processing by the computing module 314, and read data (e.g., processing results of uncertainty tracking) from the at least one storage module 316 by addressing the interface module 316 in an appropriate manner.

[0088] The computing device 310 can be configured to be removably connected to an interface device of the host 320 to establish data communication via the interface module 312. For example, the computing device 310 can be configured to be removably inserted into an interface device of the host 320, such as a slot, to establish data communication.

[0089] According to some embodiments, computing device 310 has a secure digital form factor, such as microSD or full-size SD form factor. However, this disclosure is not limited to SD and microSD, and can be applied to other storage interfaces such as CXL, PCIe, NVMe, or USB.

[0090] The computing device 310 disclosed herein provides uncertainty tracking computation and optional data storage capabilities. The computing device 310 can be used to track uncertainty through algorithmic computation to convert sensor data into distribution values, etc., for storage. The computing device 310 with uncertainty tracking capabilities has the ability to interface with existing hardware, such as microSD or full-size SD card slots for data recording, without requiring modifications or any additional drivers on the host side.

[0091] Computing device 310 can simultaneously provide the ability to stream data (logs, images, etc.) to nearby workstations or cloud platforms. For example, computing device 310 can have WiFi or BLE capabilities to send data to nearby workstations or directly to cloud computing engines via an HTTP API. To achieve this, the computing module (processor) can communicate with a wireless chip (such as an ESP32) via memory-mapped I / O. Using a wireless module like the ESP32, which also includes a microcontroller, allows most wireless I / O operations to be offloaded, so the computing module (processor) does not need to implement wireless protocols (such as BLE, WiFi, or HTTP).

[0092] In some embodiments, the computing device can package and send data to a nearby workstation via BLE. This can be raw data sent by the host or pre-processed packets. For example, the computing device can buffer a set number of data samples and generate strings to be sent to the workstation. The workstation can log the data, send it to a cloud computing engine for further processing, or process it locally.

[0093] In another embodiment, the computing device may instruct the WiFi module to connect to a specific access point to grant internet access. The WiFi module can then use HTTP requests to send data to a cloud computing engine. The computing device may act as a gateway or run specific tasks.

[0094] In the following sections, a detailed explanation of exemplary and non-limiting examples of computing devices, including their components and functions, is provided.

[0095] Physical implementation In some embodiments, the computing device may be a microSD or full-size SD form factor, compatible with most microSD and full-size SD slots on the market. Electrical and data interface protocols for interacting with the computing device may be implemented in a field-programmable gate array (FPGA), but are not limited thereto.

[0096] Figure 4This illustrates an implementation of a microSD form factor version of a computing device, where the interface with the SD host device is a 4-bit SD protocol that uses four data signals (DAT0 to DAT3).

[0097] Figure 5 This illustrates an implementation of a microSD form factor version of a computing device, where the interface with the host device is an SD-over-SPI (Serial Peripheral Interface) interface that uses only the DAT0 signal from the four DATx lines.

[0098] Figure 6 This illustrates a full-size SD version of the computing device. The full-size SD version of the computing device can utilize multiple interconnected FPGAs to gain additional processing power, rather than... Figure 4 and Figure 5 The single FPGA shown.

[0099] For Figures 4 to 6 Possible FPGAs for the illustrated embodiments are Lattice ice40, CertusNX-40, CertusNX-17, or CrosslinkNX-17. In an exemplary embodiment, the FPGA implements part or all of the SD protocol interface and emulates the communication behavior of an SD card via an SD or SD-over-SPI interface.

[0100] In another embodiment, the computing device can be implemented as an external computing device, for example, powered by an external USB-C power supply. The computing device in this embodiment may have connectors, such as small FFC connectors (e.g., Hirose FH33-9S-0.5SH(10)). These flexible cables may have microSD or full-size SD device connectors at their ends, allowing the computing device to interface with the host's microSD and full-size SD slots. This embodiment with an external computing module can support WiFi or BLE via an ESP32 microcontroller (or the like) to send data to remote machines and / or cloud computing engines. Optionally, such an external module may have a microSD slot for removable data storage.

[0101] In some embodiments, the host can issue a specific command to put the computing device into deep sleep. This will cause the processor clock to be gated, non-volatile memory to be set to a low-power state, and, depending on the implementation, any additional wireless communication chips to switch to deep sleep. The computing device's SD device emulation components will remain active, awaiting a wake-up command.

[0102] Device Interface Example 1: Implementation as a raw block device When a computing device is plugged into a host, it can be configured to appear as a block storage device to the host. All communication between the host and the computing device can be achieved using block reads and writes to a predefined set of storage I / O addresses. The host does not need to format the computing device to read and write data to it. Table 1 below shows examples of I / O addresses as offsets starting from the block storage device, which enable data and command exchange from the host to the computing device.

[0103]

[0104] Table 1: Registers (small address range) and buffers (large address range) used for interfacing with computing devices In the example above, the host can send commands, transmit data, probe the status of the computing device, and retrieve data from a predetermined set of offsets. The size of the input and output packets can vary in each computing device implementation and can depend on the physical implementation.

[0105] Typically, writing to and reading from the SD interface can be done in blocks of a specific number of bytes (e.g., b=512). The status register, device commands, input buffers, and output buffers, defined in the SD protocol interface, will be accessible by the uncertainty tracking functionality embedded behind the SD protocol interface (i.e., the system used to quantify the uncertainty of stored data values ​​and perform uncertainty tracking calculations on the data written to them). Uncertainty quantization and uncertainty tracking components implemented within the FPGA will be able to read device commands and input buffers and write to the status register and output buffers. Uncertainty data can be sent to the computing device via the input buffers either as a set of samples or encoded as a string.

[0106] In one embodiment, the uncertainty tracking computation and uncertainty analysis components can be implemented as a program running on a processor, wherein the processor is implemented using an FPGA.

[0107] Example 2: Implementing a FAT32 formatted device Computing devices can be configured to appear as FAT32-formatted block storage devices to their inserted host. This allows the computing device to be accessed like a regular FAT32-formatted external disk, visible to all programs on the host capable of reading and writing files from the host computer's file system. Computing devices that appear as FAT32-formatted disks to the host can also be accessed by capability-limited computing systems (such as microcontrollers) using existing libraries on the microcontroller for reading / writing the standard FAT32 file system format.

[0108] In this embodiment, communication is not performed via read and write operations at fixed offsets, but rather through a system commonly referred to as a synthetic file system, utilizing a series of predetermined files. When writing to or reading from these predetermined files, the communication results in the exchange of data being written or read with uncertainty quantization and uncertainty tracking components implemented within the FPGA. An example of a synthetic file system that can be exposed is as follows:

[0109] Table 2: Composite File System In the example above, the host can send commands, transmit data, probe the status of the computing device, and retrieve data from a predetermined set of files. The size of the input and output data files can vary in each computing device implementation and can depend on the physical implementation (the type of non-volatile memory used in the FPGA and / or the device). Writes and reads will be in blocks of a specific number of bytes (e.g., b=512).

[0110] In some embodiments, the computing device may acquire data written to a composite file “data.csv” and provide a paired composite file “data.csd” that, when read, returns a comma-separated collection of strings.

[0111] In some embodiments, the "cmd" file can be used to specify how data written to "data.csv" should be parsed and converted into distributions. For example, writing "type: uint32_t ',' string ',' uint64_t newlinebatching:32" will cause the synthetic file system to continuously parse the data written to data.csv, assuming the data is newline-separated with three fields per line, and batch the 32-line set into distributions. The read-only file "data.csd" can then be read to obtain the distribution (e.g., comma-separated string) data. The interface can also support treating file overwriting as new distribution entries by replacing "newline" with "seekstart" in the cmd command. Similarly, more granular "cmd" commands can be used to convert video streams as a single repeated write from file offset 0, or as a write sequence increasing at offsets. In one example application, commands written to the "cmd" file can also be used to apply computations to the data. A user of the computing device can write a CSV of raw bytes, for example, read from a sensor, to the input "data.csv" and read back the computation results from "results.csd".

[0112] In some embodiments, the "cmd" file can be used to allow users to also specify firmware updates for the SD accelerator module implementation.

[0113] processor In one embodiment, the uncertainty tracking computation and uncertainty analysis components can be implemented as a program running on a processor, wherein the processor is implemented using an FPGA. The processor may have uncertainty tracking capabilities implemented directly in hardware and / or via binary translation.

[0114] Example 1: Inputting instructions into the processor (the host writes one instruction to the device at a time) By defining additional sets of registers (small address range) and buffers (large address range) for interfacing with the computing device (see, for example, those listed in Table 1 or one of the composite files in Table 2), the computing device defines a protocol for loading program instructions (or sequences of instructions) (e.g., via an “instruction register” to be written).

[0115] In one embodiment, the instructions sent to the computing device can simply be the transmission of binary instructions: in response to each instruction sent by the host computer, the host retrieves the program counter (PC) value for the next instruction to be sent, allowing the computing device to guide the host when branches or similar events occur. A simple driver capable of using the low-level SD card protocol used by the computing device can use registers (extended as described above) to feed instructions one at a time, retrieving the PC value for the next instruction from the return value each time.

[0116] Example 2: Loading instructions into the processor (the host writes the complete program to the device via a bootloader for storage in the device's non-volatile memory). The host can switch the computing device to bootloader mode by issuing a specific command to one of the registers listed in, for example, Table 1 (or one of the composite files in Table 2). The host can then write the complete program to that address for the processor to execute. The bootloader can then switch back to the computing device's normal functions, either by a command from the host or after a predetermined timeout.

[0117] Reprogrammability In some embodiments, the host can switch the computing device to bootloader mode by issuing a specific command. The bootloader exposes a specific address or filename, depending on the implementation. The host can then use this interface to write new bitstream configurations for the FPGA chip. The host can overwrite existing application bitstreams or existing bootloaders. This allows the computing device to be rewritten directly by the host without requiring an external bootloader.

[0118] In another embodiment, the new configuration can be written via a dedicated DFU connector. For example, a small mezzanine connector can be provided to expose the SPI port. Using this port, the configuration bitstream of the computing device can be updated.

[0119] Application Examples Example 1: Implementing a sensor switching routine using uncertainty tracking In this example, the computing device can be connected to a microcontroller-based host device (e.g., the Adafruit M0Adalogger). Additionally, a sensor like the BME680 can be connected to the host microcontroller. This particular sensor requires a set of routines implemented in the microcontroller to convert raw ADC data into temperature values. Instead, the microcontroller sends the raw ADC values ​​to the computing device to calculate the converted temperature. The computing device can perform these conversions while also modeling the ADC quantization error as an uncertainty, converting multiple ADC samples into a single distributed input, or injecting other uncertainty parameters into the conversion routines based on the sensor's physical characteristics.

[0120] Example 2: Compressing data logs into distributed values In this example, an embodiment of a computing device providing high-capacity non-volatile storage or a removable microSD card is connected to a data logging machine, such as a weather station or a PLC central processing unit. The computing device can be configured to present itself as a FAT32-formatted block storage device. The data logging system can be configured to save its logs to an input file of a synthetic file system or a specific directory. The computing device consumes the stored logs and converts them into distributed values ​​before storing them in its non-volatile memory or removable microSD card. The user can then retrieve this data either by removing the microSD card or by connecting the computing device to a PC.

[0121] Example 3: Streaming data logs to nearby workstations or cloud computing platforms In this example, an embodiment of a computing device providing wireless communication via WiFi or BLE can connect to a data logging machine, such as a weather station or a PLC central processing unit. The computing device is configured to present itself as a FAT32 formatted block storage device. The data logging system can be configured to save its logs to an input file in a synthetic file system or a specific directory. The computing device consumes the stored logs and streams them to a nearby workstation (via BLE) or to a cloud computing platform via WiFi. The computing device can send raw data logs or convert multiple samples into distribution values ​​and send them as strings for further processing.

[0122] Example 4: Running an uncertainty tracking application on a personal computer In this example, the computing device can be inserted into a personal computer's SD card slot (built-in or via an SD-to-USB adapter). Libraries used to build and run applications on the computing module can be provided by the service provider. Additionally, the service provider can provide plugins for VS Code for natively developing uncertainty tracking applications and running them on the computing device.

[0123] Figure 7 A flowchart illustrating a computer-implemented method 700 for uncertainty tracking according to an embodiment of the present disclosure is shown.

[0124] Method 700 includes: at block 710, establishing data communication between a computing device and a host; at block 720, receiving input data from the host at an interface module of the computing device; at block 730, having the computing module of the computing device process the uncertainty information contained in the input data to perform uncertainty tracking; and at block 740, outputting the processing result of uncertainty tracking.

[0125] The methods described herein can be implemented in software, hardware, or a combination thereof in different embodiments. Furthermore, the order of the blocks of the method can be changed, and various elements can be added, reordered, combined, omitted, modified, etc. Various modifications and changes can be made, as will be apparent to those skilled in the art who benefit from this disclosure. The various embodiments described herein are intended to be illustrative and not restrictive. Many variations, modifications, additions, and improvements are possible. Thus, a component described herein as a single instance may provide multiple instances. The boundaries between various components, operations, and data storage are somewhat arbitrary, and specific operations are shown in the context of a particular illustrative configuration. Other functional assignments are contemplated and may fall within the scope of the appended claims. Finally, the structures and functions presented as discrete components in the example configuration can be implemented as composite structures or components. These and other variations, modifications, additions, and improvements may fall within the scope of the various embodiments as defined in the appended claims.

Claims

1. A computing device for uncertainty tracking, comprising: - Interface module, configured for data communication with the host; as well as - The computation module is configured to process the uncertainty information contained in the input data received from the host via the interface module. The computing device is configured as an interface device that can be removably connected to the host to establish data communication via an interface module.

2. The computing device according to claim 1, wherein, The interface module is configured to communicate with the host based on the SD protocol, SD-over-SPI protocol, CXL protocol, PCIe protocol, NVME protocol, or USB protocol.

3. The computing device according to claim 1 or 2, further comprising at least one storage module, wherein, The computing device is configured to allow a host to write data to and read data from the at least one storage module via an addressing interface module. The computing module is configured to process uncertainty information contained in input data received from the host via the interface module and stored in the at least one storage module.

4. The computing device according to any one of claims 1 to 3, wherein, The computing device is configured as a simulated block storage device.

5. The computing device according to claim 4, wherein, - The computing device is configured to emulate a raw block device, specifically wherein the computing device is configured to allow a host to write data to and read data from the at least one storage module using a predefined set of storage I / O addresses, or - The computing device is configured to emulate a FAT32 formatted block storage device, and in particular, the computing device is configured to allow a host to write data to and read data from the at least one storage module using a synthetic file system.

6. The computing device according to any one of claims 1 to 5, wherein, - The computing device is configured to be removably inserted into an interface device of a host to establish data communication via an interface module, specifically wherein the host's interface device is a slot, and the computing device is configured to be removably inserted into said slot; and / or - The computing device has a secure digital form factor, particularly a microSD or full-size SD form factor.

7. The computing device according to any one of claims 1 to 5, wherein, The computing device includes a main module and a connector connected to the main module via a flexible connection, wherein the main module includes at least a computing module, and wherein the connector is configured to be removably inserted into an interface device of the host to establish data communication via the interface module, particularly wherein... - The connector has a secure digital form factor specification; and / or - The main module includes at least one power port for supplying power to the computing device; and / or - The main module includes at least one wireless communication module; and / or - At least one interface unit for connecting to an external storage medium.

8. The computing device according to any one of claims 1 to 7, wherein, The computing module includes one or more field-programmable gate arrays (FPGAs).

9. The computing device according to any one of claims 1 to 8, wherein, - The computing module is configured to receive instructions from the host one at a time, and in particular, the computing device is configured to send a program counter value for the next instruction to the host in response to each instruction sent by the host; and / or - The computing module is configured to receive instructions from the host in the form of a complete program, particularly via a bootloader; and / or - The computing module is configured for reprogrammability, particularly via a bootloader and / or a dedicated connector.

10. The computing device according to any one of claims 1 to 9 further includes at least one wireless communication module for transmitting data to one or more external entities, particularly wherein the one or more external entities include workstations and / or cloud computing engines.

11. A data processing system for uncertainty tracking, comprising: - A computing device according to any one of claims 1 to 10; as well as - A host with interface devices.

12. A computer-implemented method for uncertainty tracking, comprising: - Establish data communication between computing devices and the host; - Receive input data from the host at the interface module of the computing device; - The computing module of the computing device processes the uncertainty information contained in the input data to perform uncertainty tracking; as well as - Output the processing results of uncertainty tracking.

13. A computer program comprising instructions that, when executed by a computer, cause the computer to perform the method of claim 12.

14. A computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform the method of claim 12.

15. A data processing system for uncertainty tracking, comprising one or more processors configured to: - Establish data communication between computing devices and the host; - Receive input data from the host; - Process the uncertainty information contained in the input data to perform uncertainty tracking; as well as - Output the processing results of uncertainty tracking.

Citation Information

Patent Citations

  • Improvements in and relating to encoding and computation on distributions of data

    WO2022248714A1

  • Improvements in and relating to encoding and computation on distributions of data

    WO2022248719A1