Multi-thread Processor Interleaving Instructions via Separate Program Counters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern multi-core processors face performance penalties and increased power consumption when switching between threads due to their complex hardware management requirements, which are not efficiently addressed by prior art single pipeline processors.

Innovation Solution

A processing system with an execution block and a fetch block that interleaves instructions from multiple threads using separate program counters and a scheduler to manage contiguous clock cycle allocations, allowing for efficient thread switching and interrupt handling without relying on an operating system for thread management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multi-core processors are used to run multiple applications, then performance is improved, but power consumption and area increase substantially

Engineering Contradiction:
ImproveperformanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The processor is segmented into multiple functional blocks (fetch block, execution block, scheduling block) that share common resources like caches and memory interfaces. This allows single-core architecture to execute multiple threads simultaneously without duplicating entire processor cores, thereby improving performance while controlling power consumption and area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The fetch block and execution block are designed to handle multiple instruction threads universally. The fetch block can fetch instructions from multiple program counters (PC0, PC1, PC2) and the execution block can execute instructions from different threads using shared functional units, enabling multi-threading capability in a single-core processor without requiring separate processor cores for each thread.

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

2Adaptability or versatility

If single pipeline processor uses operating system for thread switching, then multi-thread processing is enabled, but significant performance penalty is incurred during thread changes

Engineering Contradiction:
Improvemulti-thread processingVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The processor maintains multiple program counters (PC0, PC1, PC2) and associated register states in ready state simultaneously. The scheduling block pre-loads instruction batches for multiple threads into the fetch block's instruction queue. When thread switching is needed, the processor can immediately resume execution from the pre-loaded state without requiring full context switching, thereby eliminating performance penalties during thread changes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The instruction dispatch mechanism ensures continuous instruction flow by maintaining instruction queues for multiple threads. The fetch block continuously fetches instructions for active threads and the execution block continuously executes instructions without idle cycles during thread transitions. This continuity eliminates the performance gaps that occur during traditional thread switching operations.

Inventive Principle:
Principle #20Continuity of useful action

3Ease of operation

If instructions are retrieved from memory individually, then precise control is achieved, but latencies are encountered

Engineering Contradiction:
Improveinstruction controlVSAvoidlatency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The fetch block pre-fetches batches of instructions for multiple threads and stores them in instruction queues before execution is needed. The instruction dispatch mechanism loads multiple instructions into the execution block's instruction window in advance. This preliminary action allows the execution block to execute instructions continuously without waiting for individual memory accesses, thereby reducing latency while maintaining precise control over instruction execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7941643B2Multi-thread processor with multiple program counters
Publication Date: 2011.05.10 MARVELL ASIA PTE LTD
  • US7941643B2 patent drawing
  • US7941643B2 patent drawing
  • US7941643B2 patent drawing

AI summary

A system, apparatus and method for an interleaving multi-thread processing device are described herein. The multi-thread processing device includes an execution block to execute instructions and a fetch block to fetch and issue instructions, interleavingly, of a first instruction execution thread and at least one other instruction execution thread. The fetch block includes at least one program counter, which is allocable and/or corresponds to each instruction execution thread.