Bit Vector Address Generator for Sparse Data Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems face inefficiencies in accessing data from memory, particularly in sparse vectors or arrays, as they require multiple processor cycles and consume power due to the need for multiple program instructions to calculate addresses for each data element.

Innovation Solution

A bit vector-based address generator circuit and method that stores a bit vector with ordered elements, allowing for efficient identification of populated data elements and calculation of addresses, reducing the number of program instructions needed and power consumption by using a bit vector unit to determine which elements in a vector or array are populated and need to be accessed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional program instructions are used to calculate addresses for each data element in sparse vectors or arrays, then data access can be performed, but multiple processor cycles and power consumption are required

Engineering Contradiction:
Improvedata access efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the address calculation process by introducing a bit vector that divides the data structure into populated and unpopulated elements. The bit vector acts as a segmentation mechanism that allows the processor to quickly identify which data elements actually exist, avoiding unnecessary address calculations for unpopulated elements. This segmentation resolves the contradiction by enabling efficient data access (improving productivity) while reducing power consumption through selective processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by pre-computing and storing the bit vector that indicates which data elements are populated before actual data access occurs. This preliminary action allows the processor to skip unnecessary address calculation steps for unpopulated elements, thereby improving data access efficiency while reducing power consumption by avoiding redundant operations.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If multiple program instructions are used to calculate addresses for data elements, then data access is possible, but the number of processor cycles increases

Engineering Contradiction:
Improvedata access simplicityVSAvoidprocessor cycles
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The bit vector segments the data structure to distinguish populated from unpopulated elements, allowing the processor to operate more simply by only accessing elements that actually contain data. This segmentation maintains ease of operation while reducing processor cycle loss by eliminating unnecessary address calculations for empty elements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The bit vector serves as an intermediary between the processor and the sparse data structure. Instead of directly calculating addresses for all potential elements, the processor uses the bit vector as a mediator to quickly identify which elements require access. This intermediary mechanism simplifies the operation by providing a clear indication of valid data locations while reducing the time lost to unnecessary processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If traditional address calculation methods are used for sparse data structures, then all potential data elements can be accessed, but computational efficiency decreases

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidaddress calculation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses segmentation to divide the address space into populated and unpopulated regions using the bit vector. This segmentation improves computational efficiency by allowing the processor to focus only on relevant data elements while reducing the apparent complexity of address calculation through the use of simple bit testing rather than complex address arithmetic for every potential element.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the essential information about data element validity into a separate bit vector structure. By taking out the population status information from the main data access path and placing it in the bit vector, the system improves computational efficiency while reducing address calculation complexity, as the processor can now use simple bit testing instead of complex address calculations to determine which elements to access.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10877755B2Processor load using a bit vector to calculate effective address
Publication Date: 2020.12.29 ORACLE INT CORP
  • US10877755B2 patent drawing
  • US10877755B2 patent drawing
  • US10877755B2 patent drawing

AI summary

Circuitry may be configured to identify a particular element position of a bit vector stored in a register, where a value of the element occupying the particular element position matches a first predetermined value, and determine an address value dependent upon the particular element position of the bit vector and a base address. The circuitry may be further configured to load data from a memory dependent upon the address value.