Multiple Register Memory Access for Processor Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional single register memory access instructions lead to low bandwidth between cache and registers, especially in processors with narrow registers, as they fail to efficiently load or store wide packed data operands, requiring multiple instructions and increasing code size and processing time.

Innovation Solution

Implementing multiple register memory access instructions that allow loading or storing of multiple N-bit data portions into/from a set of N-bit registers, effectively handling at least half or all of an MxN-bit memory line in a single operation, thereby optimizing data transfer and reducing the need for multiple cache accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the width of packed data operands is increased to process more data elements concurrently, then processing performance is improved, but the area or footprint occupied by the registers on die increases

Engineering Contradiction:
Improveprocessing performanceVSAvoidregister footprint
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent segments the memory access operation into multiple register operations. Instead of requiring a single wide register to hold all data elements, the system divides the packed data into multiple narrower registers, each handling a portion of the data. This allows the processor to maintain narrow register widths while still processing wide packed data by coordinating accesses across multiple registers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to memory access by implementing instructions that can simultaneously access multiple memory locations and distribute data across multiple registers. This multi-dimensional memory access pattern allows the system to process wide packed data without requiring proportionally wider registers, as data is fetched and distributed across the register file in parallel.

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

2Productivity

If the width of packed data operands is increased to process more data elements concurrently, then processing performance is improved, but the amount of state data that needs to be moved on context switches increases

Engineering Contradiction:
Improveprocessing performanceVSAvoidcontext switch overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By dividing packed data operations across multiple narrower registers, the patent reduces the amount of state that must be saved and restored during context switches. Instead of saving and restoring large wide registers, the system only needs to manage state for multiple smaller registers, reducing context switch overhead while maintaining the ability to process wide packed data through coordinated multi-register operations.

Inventive Principle:
Principle #1Segmentation

3Area of stationary object

If single register memory access instructions are used, then register width is maintained, but bandwidth between cache and registers decreases

Engineering Contradiction:
Improveregister widthVSAvoiddata transfer bandwidth
Core Design Contradiction:
Area of stationary objectVSProductivity

Solution Approach 1:

The patent merges multiple memory access operations into a single coordinated instruction that simultaneously accesses multiple memory locations and distributes data to multiple registers. This merging of operations allows the system to maintain narrow register widths while achieving high bandwidth by parallelizing memory accesses across multiple memory ports and distributing results to multiple registers in a single operation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent enhances memory bandwidth by introducing multi-dimensional memory access capabilities that allow simultaneous access to multiple memory locations. The new instructions operate across multiple memory addresses and multiple destination registers in parallel, creating a multi-dimensional data transfer pattern that increases effective bandwidth without requiring wider individual registers.

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

4Area of stationary object

If multiple instructions are used to load wide packed data operands, then register width is maintained, but code size and processing time increase

Engineering Contradiction:
Improveregister widthVSAvoidcode size
Core Design Contradiction:
Area of stationary objectVSDevice complexity

Solution Approach 1:

The patent combines multiple separate load instructions into a single unified memory access instruction that can simultaneously fetch data from multiple memory locations and distribute it to multiple registers. This consolidation reduces code size by eliminating redundant instruction sequences while maintaining narrow register widths, as the single instruction coordinates the entire multi-register data loading operation.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3822772A1Multiple register memory access instructions, processors, methods, and systems
Publication Date: 2021.05.19 INTEL CORP
  • EP3822772A1 patent drawingFigure 1
  • EP3822772A1 patent drawingFigure 2
  • EP3822772A1 patent drawingFigure 3

AI summary

A processor includes N-bit registers and a decode unit to receive a multiple register memory access instruction. The multiple register memory access instruction is to indicate a memory location and a register. The processor includes a memory access unit coupled with the decode unit and with the N-bit registers. The memory access unit is to perform a multiple register memory access operation in response to the multiple register memory access instruction. The operation is to involve N-bit data, in each of the N-bit registers comprising the indicated register. The operation is also to involve different corresponding N-bit portions of an MxN-bit line of memory corresponding to the indicated memory location. A total number of bits of the N-bit data in the N-bit registers to be involved in the multiple register memory access operation is to amount to at least half of the MxN-bits of the line of memory.