gpt4 book ai didi

c - 是否有类似 x86 cpuid() 的东西可用于 PowerPC?

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:46 25 4
gpt4 key购买 nike

我想编写一些 C 代码来查询 PowerPC 上的处理器属性,就像可以在 x86 上使用 cpuid 一样。我在寻找诸如品牌、型号、步进、SIMD 宽度、可用操作之类的东西,以便在出现问题之前可以在运行时确认代码正在兼容平台上使用。

是否有在 PowerPC 上执行此操作的通用机制?如果是这样,人们可以在哪里读到它?

最佳答案

请注意,PowerPC 没有 x86 那样的许多扩展/功能。需要读取可能依赖于内核的特定特权寄存器。

我在 Linux 上检查过,你可以访问 PVR,内核中有一个陷阱来管理它。

如果支持Altivec,读取/proc/cpuinfo 可以返回,内存和L2 缓存大小......但那不是很方便。

这里描述了一个更好的解决方案: http://www.freehackers.org/thomas/2011/05/13/how-to-detect-altivec-availability-on-linuxppc-at-runtime/

使用/proc/self/auxv 的内容提供“在执行时传递给进程的 ELF 解释器信息”。

该示例是关于 Altivec 的,但您可以获得其他功能(在 include "asm/cputable.h"中列出):32 或 64 位 cpu、Altivec、SPE、FPU、MMU、4xx MAC,...

最后,您将找到有关缓存的信息(大小、行大小、关联性……),查看以下文件:/sys/devices/system/cpu/cpu0/cache

关于c - 是否有类似 x86 cpuid() 的东西可用于 PowerPC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17948969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com