Encoded Data Block Headers for Predictable Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for storing encoded blocks of data in memory lack predictability and efficiency, particularly in scenarios where encoded blocks are of varying sizes and need to be accessed randomly, leading to increased memory bandwidth and power consumption.

Innovation Solution

The method involves generating headers for encoded blocks that indicate their memory locations, with these headers stored in a tiled layout based on tiles of adjacent blocks, allowing for efficient access and reducing the number of memory accesses needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If encoded blocks of data are stored at arbitrary locations in memory to improve flexibility and memory reuse, then memory utilization is improved, but the predictability of encoded block locations deteriorates

Engineering Contradiction:
Improvememory flexibilityVSAvoidlocation predictability
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent introduces headers as intermediary data structures that are stored at predictable scan-line locations and contain pointers to the actual encoded blocks. This mediator allows the system to maintain both flexibility in block placement and predictability in header access, resolving the contradiction between adaptability and measurement precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the data structure into two parts: headers stored in a predictable scan-line order and encoded blocks stored at arbitrary locations. This segmentation allows each part to serve its specific function - headers provide predictability while blocks provide flexibility - thereby resolving the contradiction.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If headers are stored contiguously in scan-line order to enable easy header location, then header access efficiency is improved, but memory bandwidth consumption deteriorates due to increased number of memory accesses

Engineering Contradiction:
Improveheader access efficiencyVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent merges multiple headers into a single continuous header buffer stored in scan-line order. This allows the system to access multiple headers in a single memory operation rather than multiple separate operations, reducing memory bandwidth consumption while maintaining ease of header location through the contiguous structure.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If encoded blocks are accessed randomly without predictable locations, then partial updating capability is improved, but the number of memory accesses increases leading to higher power consumption

Engineering Contradiction:
Improvepartial updating capabilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent performs preliminary action by pre-calculating and storing header information in scan-line order before actual data access. This allows the system to quickly locate and access only the necessary encoded blocks for partial updates without scanning through entire memory regions, thereby reducing the number of memory accesses and power consumption while maintaining random access capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10466915B2Accessing encoded blocks of data in memory
Publication Date: 2019.11.05 ARM LTD
  • US10466915B2 patent drawing
  • US10466915B2 patent drawing
  • US10466915B2 patent drawing

AI summary

A method of storing encoded blocks of data in memory comprises generating headers for the encoded blocks of data. The headers are stored in memory according to a tiled layout based on tiles of plural adjacent blocks of data elements of the array of data elements. Respective sets of the encoded blocks of data are also stored in respective distinct regions of memory locations that have been allocated to those sets. The method provides an efficient way to access headers and corresponding encoded blocks of data in memory.