File I/O Scheduler with Tree-Based Chunk Dependency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current file input/output (I/O) management in computer gaming applications is inefficient due to lack of determination of data dependencies between chunks, leading to unnecessary decryption and decompression of entire files before processing, and inefficient handling of I/O requests from multiple media sources, resulting in slowed game performance and increased overseeking.

Innovation Solution

A centralized file I/O system that creates a tree structure to determine data dependencies and optimize the order of processing for each I/O request, allowing simultaneous processing of chunks across different layers and media devices, and interleaving of I/O requests to improve scheduling efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If chunking occurs during execution of I/O request without determining data dependencies prior to execution, then the I/O system can process requests in a simple manner, but the entire file must be decrypted before decompression can begin, leading to increased processing time

Engineering Contradiction:
ImproveI/O processing complexityVSAvoidProcessing time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by determining data dependencies between chunks before I/O request execution. The system creates a chunking plan that identifies which chunks need to be decrypted and which need decompression, and establishes the dependency relationships between them in advance. This allows the I/O system to begin decompression of chunks whose decryption dependencies are already satisfied, rather than waiting for entire files to be processed sequentially.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the file processing into discrete chunks with identified dependencies. Instead of treating the entire file as a single processing unit, the system divides it into smaller chunks that can be independently processed once their dependencies are met. This segmentation enables parallel processing of multiple chunks across different media devices, reducing overall processing time while maintaining data integrity.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If data dependencies between chunks are not determined prior to execution, then the I/O system structure remains simple, but media devices must wait idle while data from other media devices is processed, reducing productivity

Engineering Contradiction:
ImproveI/O system structureVSAvoidData retrieval efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system performs preliminary determination of data dependencies between chunks from multiple media sources before execution. By creating a comprehensive chunking plan that maps dependencies across different media devices, the system can coordinate simultaneous processing from multiple sources, eliminating idle waiting time and maximizing productivity of all media devices involved.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a new dimension of dependency tracking across multiple media devices. Instead of processing each media device independently in sequence, the system creates a multi-dimensional view of data dependencies that spans across different media sources, enabling coordinated parallel processing and optimizing the use of multiple I/O channels simultaneously.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Adaptability or versatility

If I/O requests from multiple components are processed without centralized coordination, then component independence is maintained, but overseeking increases and I/O patterns become inefficient, worsening game performance

Engineering Contradiction:
ImproveComponent independenceVSAvoidI/O efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges the I/O request processing of multiple independent components through a centralized coordinator that collects and analyzes dependencies across all components. This coordinator creates a unified chunking plan that optimizes I/O patterns for the entire system while preserving component independence in their processing logic. The merging occurs at the planning and coordination level, not at the component implementation level.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system implements a universal chunking plan that serves multiple components simultaneously. Instead of each component having its own separate I/O processing logic, the patent creates a multi-functional coordination mechanism that can optimize I/O patterns for any number of components while maintaining their individual requirements. This universal approach eliminates overseeking by coordinating all components' I/O activities through a single optimized plan.

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

Data Source

PatentEP2353079B1File input/output scheduler using immediate data chunking
Publication Date: 2018.12.05 SONY COMP ENTERTAINMENT AMERICA LLC
  • EP2353079B1 patent drawingFigure 1
  • EP2353079B1 patent drawingFigure 2
  • EP2353079B1 patent drawingFigure 3

AI summary

An incoming I/O request is received from an application running on a processor. A tree structure including processor-executable instructions defines one or more layers of processing associated with the I/O request. The instructions divide the data in the I/O request into one or more chunks at each of the one or more layers of processing. Each instruction has an associated data dependency to one or more corresponding instructions in a previous layer. The instructions are sorted into an order of processing by determining a location of each chunk and data dependencies between chunks of different layers of processing. One or more instructions are inserted into a schedule that depends at least partly on the order of processing. The I/O request is serviced by executing the instructions according to the schedule with the processor according to the order of processing.