¿Cómo obtener mediante programación el tamaño de la página de caché de la CPU en C++?

¿Cómo obtener mediante programación el tamaño de la página de caché de la CPU en C++?

En Win32, GetLogicalProcessorInformation te devolverá un SYSTEM_LOGICAL_PROCESSOR_INFORMATION que contiene un CACHE_DESCRIPTOR , que tiene la información que necesita.


En Linux, pruebe la biblioteca proccpuinfo, una API de C independiente de la arquitectura para leer /proc/cpuinfo


Para x86, la instrucción CPUID. Una búsqueda rápida en Google revela algunas bibliotecas para win32 y c++. También he usado CPUID a través del ensamblador en línea.

Algo más de información:

  • http://www.intel.com/Assets/PDF/appnote/241618.pdf
  • http://softpixel.com/~cwright/programming/simd/cpuid.php