Merging Level Cache and Data Cache Units for Speculative Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for exploiting instruction-level parallelism in single-threaded processors lead to complex hardware structures with high power consumption and diminishing returns, while chip multiprocessors face challenges in efficiently executing sequential programs decomposed into multiple threads.

Innovation Solution

The implementation of fine-grain speculative multithreading, which decomposes sequential code into individual instructions and executes them in parallel across multiple cores, using pre-computation slices and explicit inter-thread communications to manage data dependences, and reconstructs the original sequential order to ensure correct execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instruction-level parallelism is exploited in single-threaded processors, then processor performance is improved, but hardware complexity and power consumption increase significantly

Engineering Contradiction:
Improveprocessor performanceVSAvoidhardware structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The invention segments the instruction stream into multiple threads at the instruction level, allowing parallel execution of independent instructions. Each thread is assigned to a separate execution pipeline, dividing the complex parallelism management into manageable thread-level units rather than requiring complex instruction-level coordination hardware.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention transitions from exploiting parallelism within a single thread (instruction-level) to exploiting parallelism across multiple threads (thread-level). This dimensional shift from intra-thread to inter-thread parallelism allows simpler hardware structures to achieve comparable or better performance by executing multiple threads concurrently on available execution units.

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

2Productivity

If fine-grain speculative multithreading is implemented, then thread-level parallelism is improved, but management complexity of data dependences increases

Engineering Contradiction:
Improvethread-level parallelismVSAvoiddata dependence management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The invention performs preliminary analysis of data dependences between instructions during thread decomposition. The compiler or hardware identifies and marks dependent instructions before execution, allowing the execution engine to automatically handle dependence constraints without complex runtime analysis. This preliminary characterization simplifies the management of data dependences during speculative execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention implements feedback mechanisms where the execution monitor continuously checks speculative thread execution against identified data dependences. When dependence violations are detected, the system provides feedback to squash or rollback the speculative execution, ensuring correctness while maintaining simple parallel execution hardware.

Inventive Principle:
Principle #23Feedback

3Speed

If sequential code is decomposed into multiple threads for parallel execution, then execution speed is improved, but ensuring correct sequential order becomes more difficult

Engineering Contradiction:
Improveexecution speedVSAvoidsequential execution correctness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The invention introduces an intermediary execution monitor or reorder buffer that mediates between parallel thread execution and the final sequential output. This intermediary structure captures results from multiple speculative threads and reorders them according to the original sequential program order before committing to the architectural state, ensuring correctness while maintaining parallel execution speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The invention creates copies of the instruction stream for each speculative thread, allowing independent parallel execution of identical or similar instruction sequences. By copying instructions rather than sharing execution state, the system can explore multiple execution paths simultaneously while maintaining the ability to reconstruct the correct sequential result from the copies.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10621092B2Merging level cache and data cache units having indicator bits related to speculative execution
Publication Date: 2020.04.14 INTEL CORP
  • US10621092B2 patent drawing
  • US10621092B2 patent drawing
  • US10621092B2 patent drawing

AI summary

Systems, methods, and apparatuses for decomposing a sequential program into multiple threads, executing these threads, and reconstructing the sequential execution of the threads are described. A plurality of data cache units (DCUs) store locally retired instructions of speculatively executed threads. A merging level cache (MLC) merges data from the lines of the DCUs. An inter-core memory coherency module (ICMC) globally retires instructions of the speculatively executed threads in the MLC.