CPUID Instruction Multi-Level Processor Topology Enumeration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-processor systems face challenges in efficiently enumerating and managing complex multi-level processor topologies, as existing processor identification instructions lack the capability to provide detailed information about various levels of processor grouping, such as SMT and multi-core environments.

Innovation Solution

Modifying the CPUID instruction to include a topological level number, allowing software to enumerate multi-level processor topologies by associating this number with the identification instruction, which returns information about processor identity, level type, mask, and processor count, enabling detailed topology enumeration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If existing processor identification instructions are used, then processor identification is simple, but detailed multi-level topology information cannot be obtained

Engineering Contradiction:
Improveprocessor topology informationVSAvoidprocessor identification instruction
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The processor topology information is segmented into multiple hierarchical levels (level 0 for logical processors, level 1 for cores, level 2 for processor packages, etc.). Each level can be independently queried using the CPUID instruction with different input values, allowing software to obtain detailed information about each hierarchical level separately rather than requiring a single complex identification mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The existing CPUID instruction is enhanced to serve multiple functions: it can still perform traditional processor identification while simultaneously providing multi-level topology information. By adding level number input capability and corresponding output fields (processor count, core count, SMT count) to the existing instruction, the instruction becomes universal and can handle both simple identification and detailed topology enumeration without requiring separate specialized instructions.

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

2Loss of information

If processor topology enumeration is performed at multiple levels, then comprehensive topology information is obtained, but software complexity increases

Engineering Contradiction:
Improvemulti-level processor topology informationVSAvoidsoftware enumeration process
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The system performs preliminary organization of processor topology data at the hardware level, with each processor level (logical processors, cores, packages) pre-configured with identification information and hierarchical relationships. When software queries the topology, this pre-organized information is readily available through the CPUID instruction, eliminating the need for software to perform complex analysis or make multiple indirect queries to determine processor relationships.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The CPUID instruction implements a feedback mechanism where software can input a level number and receive structured topology information in return. The instruction outputs include processor count, core count, and SMT count fields that provide immediate feedback about the processor hierarchy. This allows software to iteratively query different levels and build a complete topology understanding through systematic feedback from the processor itself.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8122230B2Using a processor identification instruction to provide multi-level processor topology information
Publication Date: 2012.02.21 TAHOE RES LTD
  • US8122230B2 patent drawing
  • US8122230B2 patent drawing
  • US8122230B2 patent drawing

AI summary

Embodiments of an invention for using a processor identification instruction to provide multi-level processor topology information are disclosed. In one embodiment, a processor includes decode logic and control logic. The decode logic is to receive an identification instruction having an associated topological level value. The control logic is to provide, in response to the decode logic receiving the identification instruction, processor identification information corresponding to the associated topological level value.