AnsweredAssumed Answered

how to determine cache topology?

Question asked by tumar on Aug 22, 2013



i'm new to the forum. sorry if posted this topic in wrong place.

I'm writting cpuid program. I need help with getting number of each type of cache. not its size, but the number. for example i need get info such as below:


L1 data cache = 2 x 64KB.


CPUID will give me the size of each sort of cache, but not its number.

I have wrote algorithm to discorever CPU topology, but dont know what to do to get cache topology. I have written code, but it not always work.

I tried to use thread per cache parameter with LogToNearestPowerOf2(CPUID.8000001Dh EAX[25:14]). When this leaf is supported it works well, but it is not always supported on CPUs which have a shared cache. What to do if that leaf is not supported?


On MSDN i've found that GetLogicalProcessorsInformationEx proc might be helpful to get that number. but i'm not sure do i understood it right. I

guess, that member of CACHE_RELATIONSHIP structure, the GROUP_AFFINITY will be related with quantity.


maybe AMD has sample code how to do it? I searched it but didnt found. any ideas?


thanks in advance