Multi-Slice Processor Unaligned Load Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems face challenges in handling unaligned load operations across multiple processor slices, as existing methods struggle to efficiently manage data loading from caches associated with distinct processor slices, leading to inefficiencies in data processing and assembly.

Innovation Solution

A method for handling unaligned load operations in a multi-slice computer processor involves receiving a request to load data from a range of addresses, determining which addresses are associated with multiple caches, issuing requests to each processor slice to load data from its associated cache, executing these requests independently, and assembling the results from each processor slice over data communications buses, while formatting and shifting data to align with the original request.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data loading requests are issued to multiple processor slices simultaneously for unaligned load operations, then data processing efficiency is improved, but device complexity increases due to coordinating multiple caches and assembly operations

Engineering Contradiction:
Improvedata processing efficiencyVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the data loading operation into separate segments for each processor slice. Each slice independently handles its own cache memory portion, allowing parallel data loading without requiring complex centralized coordination. The unaligned load request is segmented into multiple aligned requests, each directed to a specific processor slice's cache, thereby improving efficiency while managing complexity through division of labor.

Inventive Principle:
Principle #1Segmentation

2Productivity

If processor slices operate independently to load data from their own caches, then system performance is enhanced through parallelism, but manufacturing precision requirements increase for ensuring accurate data assembly

Engineering Contradiction:
Improvesystem performanceVSAvoiddata assembly accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent introduces an intermediary assembly mechanism that receives data from multiple independent processor slices and correctly reassembles it. This intermediary component handles the coordination of data assembly, ensuring that data from different slices is correctly positioned and combined according to the original unaligned load request, thereby maintaining accuracy while allowing independent parallel operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies preliminary action by having each processor slice independently prepare and load its portion of data from cache before the final assembly step. This preliminary independent loading ensures that each slice completes its data retrieval operation without waiting for others, maximizing parallelism, while the subsequent assembly phase ensures accurate recombination of the independently loaded data portions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10884742B2Handling unaligned load operations in a multi-slice computer processor
Publication Date: 2021.01.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10884742B2 patent drawing
  • US10884742B2 patent drawing
  • US10884742B2 patent drawing

AI summary

Handling unaligned load operations, including: receiving a request to load data stored within a range of addresses; determining that the range of addresses includes addresses associated with a plurality of caches, wherein each of the plurality of caches are associated with a distinct processor slice; issuing, to each distinct processor slice, a request to load data stored within a cache associated with the distinct processor slice, wherein the request to load data stored within the cache associated with the distinct processor slice includes a portion of the range of addresses; executing, by each distinct processor slice, the request to load data stored within the cache associated with the distinct processor slice; and receiving, over a plurality of data communications busses, execution results from each distinct processor slice, wherein each data communications busses is associated with one of the distinct processor slices.