Concurrent FSM Gesture Recognition With Low-RAM Program Loading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing gesture recognition systems for devices like smartphones and smartwatches are limited by their ability to manage multiple finite state machines (FSMs) concurrently, resource management, and sensor compatibility, making it difficult to recognize a variable number of gestures with different resource thresholds and sensor types efficiently.
Innovation Solution
A method and circuit structure that allows for multiple FSMs to run concurrently, with a flexible data and instruction structure that includes a fixed and variable data section, enabling efficient management of resources and sensor inputs, and supporting various sensor types like accelerometers and gyroscopes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple FSM programs are loaded into RAM for concurrent gesture recognition, then the system can recognize more gestures simultaneously, but the RAM occupation increases
Solution Approach 1:
The patent segments FSM programs into fixed-size blocks (e.g., 32-byte blocks) that can be independently managed and loaded into RAM. This segmentation allows the system to load only the necessary number of gesture recognition programs rather than loading all possible programs, thereby reducing RAM occupation while maintaining the ability to recognize multiple gestures concurrently.
Solution Approach 2:
The patent implements dynamic loading and unloading of FSM programs based on current gesture recognition needs. The system can dynamically allocate RAM resources by loading only the required FSM programs into memory and unloading unused ones, enabling flexible RAM management that adapts to varying gesture recognition requirements without wasting memory resources.
2Ease of manufacture
If a fixed-size data structure is used for each FSM program, then memory allocation is simplified, but the system cannot efficiently accommodate FSM programs with different resource requirements
Solution Approach 1:
The patent merges multiple fixed-size data structures into a unified variable-size data structure that can accommodate different resource requirements. By combining the advantages of fixed-size allocation (simplicity) with variable-size capabilities (flexibility), the system can efficiently manage FSM programs with different thresholds, counters, and timeouts while maintaining straightforward memory allocation through a standardized interface.
3Speed
If an assembly interpreter runs on a small microcontroller to decode FSM programs in real-time, then processing speed is improved, but the system complexity increases
Solution Approach 1:
The patent implements a self-service mechanism where the microcontroller's assembly interpreter automatically decodes and executes FSM programs without requiring complex external processing. The standardized block structure of FSM programs enables the interpreter to efficiently parse and execute gestures recognition logic using simple, deterministic instructions, achieving real-time processing while keeping the system architecture relatively simple.
4Adaptability or versatility
If the system supports an indefinite number of concurrent FSM programs, then gesture recognition versatility is enhanced, but the management and coordination of multiple programs becomes more complex
Solution Approach 1:
The patent creates a universal FSM program structure that can handle multiple gesture recognition tasks through a standardized interface. Each FSM program follows the same block format with consistent data structures for thresholds, counters, and timeouts, allowing the system to manage an indefinite number of concurrent programs through a single, unified management mechanism rather than requiring separate handling logic for each program.
Data Source
AI summary
A programmable data processing circuit is configured for receiving sensor signals indicative of gestures for identification by the processing circuit. The processing circuit applies to the sensor signals finite state machine processing resources to provide identification output signals indicative of gestures identified as a function of the sensor signals. A plurality of finite state machine processing programs loaded into the processing circuit include a data section and an instruction section. The data section including a fixed size part specifying respective processing resources used by the programs in the plurality of finite state machine processing programs and a variable size part with respective sizes for allocating the respective processing resources used by the programs in the plurality of finite state machine processing programs. The instruction section including conditions and commands for execution by the respective processing resources used by the programs by operating on data located in the respective data sections.

