Shared Front-End Unit for Multi-Core Processor Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures prioritize reducing instruction latency by dedicating resources to active threads, which limits the number of threads that can be processed simultaneously, as the logic circuitry resources are not optimized for concurrent execution of multiple threads.

Innovation Solution

The processor architecture incorporates a shared front-end unit that fetches and decodes instructions for all threads, distributing them to multiple processing units capable of executing multiple hardware threads concurrently, thereby increasing overall throughput by reassigning resources to support more execution units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If dedicated resources are allocated to each active thread to reduce instruction latency, then individual thread execution speed is improved, but the number of concurrently processed threads is limited

Engineering Contradiction:
Improveinstruction execution speedVSAvoidconcurrent thread processing capacity
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

Multiple processing units are merged under a single shared front-end unit, allowing them to collectively process multiple threads concurrently while maintaining individual execution capabilities. The shared front-end consolidates instruction fetching and decoding resources that serve all processing units, enabling efficient resource utilization across multiple threads.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared front-end unit is designed to universally serve multiple processing units and multiple hardware threads simultaneously. It functions as a multi-functional resource that can dynamically allocate instruction fetch and decode capabilities to any active thread, rather than being dedicated to a single thread.

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

2Productivity

If logic circuitry resources are optimized for concurrent execution of multiple threads, then thread throughput is improved, but individual thread latency may increase

Engineering Contradiction:
Improvethread throughputVSAvoidindividual thread latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The processing system is segmented into multiple independent processing units, each capable of executing instructions with dedicated execution resources. This segmentation allows each thread to maintain low-latency execution paths while the shared front-end handles the overhead of managing multiple threads, effectively separating the throughput-enhancing shared resources from the latency-critical execution resources.

Inventive Principle:
Principle #1Segmentation

3Productivity

If more execution units are instantiated to process more threads, then concurrent processing capacity is improved, but logic circuitry resources are depleted

Engineering Contradiction:
Improveconcurrent thread processing capacityVSAvoidlogic circuitry resource consumption
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple processing units share common front-end resources including instruction fetch and decode units, reducing the total logic circuitry required compared to having completely independent execution pipelines for each thread. This merging allows the system to support more concurrent threads without proportionally increasing overall device complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10140129B2Processing core having shared front end unit
Publication Date: 2018.11.27 INTEL CORP
  • US10140129B2 patent drawing
  • US10140129B2 patent drawing
  • US10140129B2 patent drawing

AI summary

A processor having one or more processing cores is described. Each of the one or more processing cores has front end logic circuitry and a plurality of processing units. The front end logic circuitry is to fetch respective instructions of threads and decode the instructions into respective micro-code and input operand and resultant addresses of the instructions. Each of the plurality of processing units is to be assigned at least one of the threads, is coupled to said front end unit, and has a respective buffer to receive and store microcode of its assigned at least one of the threads. Each of the plurality of processing units also comprises: i) at least one set of functional units corresponding to a complete instruction set offered by the processor, the at least one set of functional units to execute its respective processing unit's received microcode; ii) registers coupled to the at least one set of functional units to store operands and resultants of the received microcode; iii) data fetch circuitry to fetch input operands for the at least one functional units' execution of the received microcode.