Detecting Multi-Core Processor Topology in an IA-32 Platform

Detect Multi-core CPU Intel Processor CPUID: This paper discusses a robust algorithm to help application software enumerate the processor and cache topology in any single or multi-processor platform, using Intel processors. Enumerating processor topology correctly is essential for implementing licensing policy requirements. Understanding processor and cache topology information allows multithreading software to make more efficient use of hardware multithreading resources and deliver optimal performance

Introduction

by Khang Nguyen and Shihjong Kuo

This paper discusses a robust algorithm to help application software enumerate the processor and cache topology in any single or multi-processor platform, using Intel processors. Enumerating processor topology correctly is essential for implementing licensing policy requirements. Understanding processor and cache topology information allows multithreading software to make more efficient use of hardware multithreading resources and deliver optimal performance.

Software must recognize hardware multi-processing support in all of these combinations. For licensing purposes, Intel recommends a policy based on discrete physical packages. For performance optimization purposes, software may need to manage physical resources depending on the details of the sharing topology implemented in these various forms of hardware multiprocessing.

We'll show how to detect the topological relationships between physical package, processor core, and logical processors sharing the same core in a multi-processing platform with IA-32 processors. The algorithm described applies across many hardware multi-processing configurations, including single-socket and multi-socket platforms, IA-32 processors supporting Hyper-Threading Technology, dual-core, and multiple cores.

If you're interested in this topic, these articles may be helpful:

Hyper-Threading Technology, Multi-core, and Mobile Intel
By Khang Nguyen A Hyper-Threading Technology (HT Technology) enable...
Intel® Multi-Core Processor Architecture Development
by Intel Corporation In the October 1989 issue of IEEE Spectrum, an...
Sea Change* in the Software World: Multi-Core Processing Opens Innovative Business Possibilities
Every so often a technology change sweeps through the industry and sha...
Hyper-Threading Technology and Multi-Core Processor Detection, Part One (Flash* 8.0MB)
Intel engineer Phil Kerly explains how to detect both Hyper-Threading ...
Performance Scaling in the Multi-Core Era
Introduction New strategies are needed to maintain historic rates of ...

Related Jobs:

Software Development Engineer in Test #134192 - WA - Redmond - Microsoft Corporation
The Windows Media Technology Group is looking for a strong developer t...
Information Systems Coordinator #23-05/06 - CA - Maritime Academy - California State University
Campus: Maritime Academy Appointment Type: Probationary Categ...
Support Consultants - DC - Washington - Saba Software
We have an awesome support services group. Through increasing busine...
Mgr, Engineering #REV090501 - WA - Everett - Intermec Technologies Corporation
Job Title Mgr, Engineering Department System Integration & Test Op...
Software Development Engineer #132895 - WA - Redmond - Microsoft Corporation
Is harnessing 500GFlops/sec of processing power and pushing 50GB/s of ...
IT Management #147445 - WA - Issaquah - Microsoft Corporation
Do you have passion for driving quality and delivering strategic solut...
SQA Specialist #57065 - CA - San Rafael - Autodesk, Inc.
Requirements Role/Purpose: Using software development tools, ...
Program Manager #132896 - WA - Redmond - Microsoft Corporation
Do you have a passion for technology and a strong interest operating s...
Technologist #143807 - WA - Redmond - Microsoft Corporation
Are you passionate about security? Are you a veteran in the art of hun...
Functional Analyst - TS/SCI + #6678 - VA - Chantilly - CACI International Inc
Requirements Analyze user needs to determine functional requireme...