Address Generator Circuit for Single-Buffer Array Transposition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for transposing two-dimensional arrays in integrated circuits require two memory banks, which consume a large amount of memory and are limited to arrays with rows and columns that are powers of two, making it desirable to use single-buffering for arrays with different dimensions to reduce cost and latency.

Innovation Solution

An address generator circuit with a status flag generation circuit, modulo adder circuit, and address processing circuit is used to generate read and write access signals for a single storage circuit, allowing the transposition of two-dimensional arrays with arbitrary row and column counts by employing modulo arithmetic and delayed signals to efficiently map input to output positions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If two memory banks are used for transposing two-dimensional arrays, then read and write operations can be performed simultaneously, but memory consumption and device complexity increase

Engineering Contradiction:
Improvetransposition speedVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent employs periodic action by alternating between write and read phases in a single memory bank. During write phase, data is stored in the memory bank; during read phase, the transposed data is retrieved. This periodic switching allows the system to achieve transposition functionality without requiring simultaneous read-write capability, thus eliminating the need for a second memory bank while maintaining transposition speed

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The patent merges the functions of two separate memory banks into a single memory bank by carefully coordinating address generation and timing. The address generator circuit produces write addresses and read addresses that sequentially access the same memory bank, combining the storage and retrieval functions that previously required separate physical memory banks, thereby reducing memory consumption and device complexity

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If two memory banks are used for transposing two-dimensional arrays, then simultaneous read and write operations are enabled, but device complexity increases

Engineering Contradiction:
Improvetransposition speedVSAvoidcircuit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the functions of two separate memory banks into a single memory bank by carefully coordinating address generation and timing. The address generator circuit produces write addresses and read addresses that sequentially access the same memory bank, combining the storage and retrieval functions that previously required separate physical memory banks, thereby reducing memory consumption and device complexity

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The single memory bank is designed to serve multiple functions: it acts as both the write buffer and read buffer at different time phases. The same physical memory bank is universally used for both storing input data and retrieving transposed output data, eliminating the need for dedicated separate memory banks and reducing overall device complexity

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

3Quantity of substance

If single-buffering is used for transposing two-dimensional arrays, then memory consumption and device complexity are reduced, but latency increases

Engineering Contradiction:
Improvememory consumptionVSAvoidtransposition latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent employs periodic action by alternating between write and read phases in a single memory bank. During write phase, data is stored in the memory bank; during read phase, the transposed data is retrieved. This periodic switching allows the system to achieve transposition functionality without requiring simultaneous read-write capability, thus eliminating the need for a second memory bank while maintaining transposition speed

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The patent applies preliminary action by pre-calculating and storing address sequences in lookup tables before the actual transposition operation. The address generator circuit uses these pre-computed addresses to efficiently navigate the memory bank during write and read phases, reducing the computational overhead and latency during the actual transposition process

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If traditional address generation methods are used, then arrays with rows and columns as powers of two are supported, but adaptability to arbitrary dimensions is limited

Engineering Contradiction:
Improvedimension compatibilityVSAvoidaddress generation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by using variable address increment values that adapt to the specific dimensions of the input array. The address generator circuit modifies its addressing parameters (row stride, column stride, increment values) based on the actual array dimensions provided, allowing it to handle arbitrary dimensions rather than being restricted to power-of-two sizes. This dynamic parameter adjustment enables versatility while managing complexity through systematic address calculation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10031846B1Transposition of two-dimensional arrays using single-buffering
Publication Date: 2018.07.24 ALTERA CORP
  • US10031846B1 patent drawing
  • US10031846B1 patent drawing
  • US10031846B1 patent drawing

AI summary

The present embodiments relate to an address generator circuit for addressing a storage circuit. The address generator circuit may generate address signals for read and write access operations at the storage circuit. The write access operation may store a two-dimensional array in the storage circuit and the read access operation may retrieve a transpose of the two-dimensional array from the storage circuit. The address generator circuit may include a status flag generation circuit that generates status flag signals, a modulo adder circuit that receives first and second signals and computes a modulo adder output signal, and an address processing circuit. The address processing circuit may receive the modulo adder output signal from the modulo adder circuit and the plurality of status flag signals from the status flag generation circuit and provide the first and second signals to the modulo adder circuit.