Initializable Array Boundary Management for Constant-Time Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional initializable arrays require additional space to store management information indicating whether each index has been written to, which increases storage requirements and initialization time proportional to the array size.

Innovation Solution

The array is divided into two areas with a boundary that maintains an integer ratio of unwritten and written blocks, using bidirectional links to manage this information, allowing the array to be initialized and written to in constant time without the need for extra space proportional to the array size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional initializable arrays store management information for each index to track written status, then write operations can be efficiently managed, but the extra space required increases proportionally with array size

Engineering Contradiction:
Improvewrite operation managementVSAvoidextra space for management information
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The array is divided into multiple blocks, each containing a small fixed number of words (e.g., 2-64 words). Instead of managing each individual index, the system manages blocks as units. This segmentation reduces the number of management entries from N (number of indices) to N/B (number of blocks), where B is the block size, thereby reducing the extra space required for management information while maintaining efficient write operation tracking.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If conventional initializable arrays initialize all elements in fixed time independent of array size, then real-time application requirements are met, but the initialization process still requires proportional extra space for management information

Engineering Contradiction:
Improveinitialization timeVSAvoidextra space for management information
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

By segmenting the array into blocks and using a boundary pointer to track the division between initialized and uninitialized blocks, the system achieves constant-time initialization without requiring management information for each individual index. The boundary pointer alone (not proportional to array size) suffices to manage the initialization state of all blocks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention introduces a new dimensional approach by organizing data in blocks with address words and data words, and using a boundary pointer that operates at the block level rather than the index level. This dimensional shift from index-level management to block-level management enables constant-time initialization with reduced space requirements.

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

3Productivity

If the array uses bidirectional links between blocks to manage written and unwritten blocks, then the boundary can be efficiently shifted to extend initialized areas, but the link management adds structural complexity

Engineering Contradiction:
Improveboundary shifting efficiencyVSAvoidlink management structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The array is segmented into blocks with standardized internal structure (address word + data words). This uniform segmentation simplifies the link management because each block follows the same pattern, making the bidirectional links predictable and easy to manage. The regular structure reduces the complexity that would otherwise arise from handling irregular block formats.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each block contains an address word that automatically stores the link to the next block, and the boundary pointer automatically indicates the division point. When the boundary shifts, the blocks self-adjust their links through the extend process, reducing the need for complex external management logic. The structure serves itself through its inherent design.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10331369B2Array control program, array control method, and array control apparatus
Publication Date: 2019.06.25 FUJITSU LTD
  • US10331369B2 patent drawing
  • US10331369B2 patent drawing
  • US10331369B2 patent drawing

AI summary

An initializable array has a plurality of blocks each having an address word and a data word, a boundary indicative of a two-division position where the plurality of blocks is divided into two divided areas and an initial value for each element of the array is stored, the boundary is a position where a ratio for the number of unwritten blocks in a first area and the number of written blocks in a second area is an integer ratio. An array control program causes a computer to execute shifting the boundary to extend the first area and generating an initialized written block in the first area; in a case where a write destination block is an unwritten block in the second area, forming a link between the initialized written block in the first area and the write destination block; and writing a write value to the write destination block.