Sliding Window Buffer for Memory-Constrained IoT Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementations of data buffers using the sliding window protocol on memory-constrained devices are resource intensive due to their asynchronous nature, making it difficult for devices with limited resources to efficiently transmit data without storing full content or awaiting acknowledgments.

Innovation Solution

An owner-free buffer interface is implemented on a local computing device that utilizes a local buffer to receive and transmit chunks of data from a data source, allowing for reuse of memory portions and re-transmission of unacknowledged data chunks without storing full content, using inner and logical positions for identification and retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a local buffer stores full content for transmission, then data transmission reliability is improved, but memory usage increases

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the buffer into multiple portions (first buffer portion, second buffer portion, etc.) that can be independently reused. Each portion stores data chunks temporarily, and when a portion is freed, it can be reallocated for new data without requiring the entire buffer to be large enough to hold all data simultaneously. This segmentation allows reliable transmission while reducing peak memory usage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a mechanism where buffer portions are discarded (freed) after their data is successfully transmitted or acknowledged, and then recovered (reallocated) for storing new data chunks. The buffer management system tracks which portions are available and reallocates them efficiently, enabling continuous transmission with minimal memory footprint by constantly recycling buffer space.

Inventive Principle:
Principle #34Discarding and recovering

2Reliability

If the device awaits acknowledgements before replacing buffer memory, then data transmission reliability is improved, but transmission speed decreases

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoidtransmission speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic buffer management where the allocation and reuse of buffer portions is flexible rather than static. Buffer portions can be freed and reallocated based on transmission state, allowing the system to optimize between reliability and speed by freeing buffers for acknowledged data while maintaining buffers for unacknowledged data. This dynamic approach enables continuous transmission without waiting for all acknowledgements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent prepares buffer portions in advance for potential reuse. When a buffer portion is freed, it is immediately made available for reallocation rather than waiting idle for acknowledgements. The buffer management system proactively manages the pool of available buffer portions, ensuring that new data chunks can be loaded into freed portions without delay, thus maintaining transmission speed while preserving reliability through selective buffer retention.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If memory portions are reused for new data chunks, then memory efficiency is improved, but data retrieval complexity increases

Engineering Contradiction:
Improvememory efficiencyVSAvoiddata retrieval complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements a buffer management system that provides feedback about the state of each buffer portion (allocated, freed, available). This feedback mechanism tracks which portions are in use and which are available for reallocation, managing the complexity of reused memory portions through systematic state tracking and coordination.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent creates a universal buffer management system that handles multiple buffer portions with a single coordinated interface. The buffer management system provides a unified view and control mechanism for all buffer portions, allowing them to be reused efficiently while managing the inherent complexity through a multi-functional management layer that handles allocation, deallocation, and reallocation across all portions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3949321B1Sliding window buffer for minimum local resource requirements
Publication Date: 2023.04.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3949321B1 patent drawingFigure 1
  • EP3949321B1 patent drawingFigure 2
  • EP3949321B1 patent drawingFigure 3~5

AI summary

A sliding window buffer is implemented on a local computing device that places chunks of content from a data source into a local buffer for transmission on a per-chunk basis. A portion of memory in the local buffer can be re-used for a single data transmission operation until the content is fully transmitted to a remote computing device. Logical positions on the local buffer which correlate to inner positions on the data source are utilized to enable the sliding window buffer to retrieve and retransmit chunks of data, if necessary. An inner position indicates a byte location in the data source and a logical position indicates a corresponding byte position in the local buffer. The local computing device can utilize byte positions to retrieve and re-transmit chunks of data if, for example, the device fails to receive an acknowledgement from the remote computing device for any of the data.