2 Replies Latest reply on Aug 22, 2013 2:57 PM by tumar

    how to determine cache topology?




      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