Shared Buffer Data Format Transformation via Instruction Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing systems face challenges in integrating applications that process data in different formats, such as one-byte-per-pixel and four-bytes-per-pixel formats, or little endian and big endian formats, within a shared buffer, leading to data corruption and performance issues.

Innovation Solution

The system employs a patch generator and exception handler to dynamically transform data between formats before writing to or after reading from the shared buffer, ensuring data is converted efficiently without modifying the accessing applications, using techniques like byte rearrangement and instruction replacement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is stored in a shared buffer in a native format for one application, then that application can access data efficiently, but other applications with different data formats experience data corruption or performance degradation

Engineering Contradiction:
Improvedata access efficiencyVSAvoidformat compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a shared buffer that acts as an intermediary between applications with different data formats. The buffer includes format identification fields and transformation logic that mediates between the native format of one application and the requirements of another application, enabling seamless data exchange without direct format conversion between applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameters of the data storage system by introducing format identification fields (e.g., format tags, byte order indicators) and transformation capabilities within the shared buffer. This allows the same buffer to accommodate multiple data formats (e.g., little-endian vs. big-endian, different pixel formats) by dynamically adjusting the interpretation and transformation of stored data.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If data format conversion is performed before writing to or after reading from the shared buffer, then applications with different formats can share the buffer, but additional processing time is required

Engineering Contradiction:
Improveformat compatibilityVSAvoiddata conversion time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs format conversion in advance by including format identification and transformation capabilities in the shared buffer structure itself. Data is pre-formatted with identification fields when written to the buffer, so that subsequent reads can quickly identify and transform the data to the appropriate format without requiring extensive post-read conversion processing.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the shared buffer stores data in a standardized format, then multiple applications can access it, but applications that require native format processing experience performance loss

Engineering Contradiction:
Improvebuffer sharing capabilityVSAvoidapplication processing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the shared buffer into distinct data regions, each associated with specific format identification fields. This segmentation allows different portions of the buffer to store data in different formats simultaneously, enabling applications to access data in their native format while sharing the same buffer resource, thus maintaining both versatility and processing speed.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8159497B2Sharing a data buffer
Publication Date: 2012.04.17 APPLE INC
  • US8159497B2 patent drawing
  • US8159497B2 patent drawing
  • US8159497B2 patent drawing

AI summary

A computer-program product may have instructions that, when executed, cause a processor to perform operations including managing execution of application functions that access data in a shared buffer; determining if a first instruction that is stored at a first memory location causes, upon execution, data to be read from or written to the shared buffer; and when it is determined that the first instruction causes data to be read from or written to the shared buffer, 1) identify one or more replacement instructions to execute in place of the first instruction; 2) store the one or more replacement instructions; and 3) replace the first instruction at the first memory location with a second instruction that, when executed, causes the stored one or more replacement instructions to be executed.