问题标签 [cpuid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
x86 - 如何保证RDTSC是准确的?
我读过 RDTSC 可以给出错误的读数,不应该依赖。
这是真的吗?如果是这样,可以做些什么呢?
assembly - 连接寄存器中的字符串并打印它们
我正在尝试调用 cpuid 并将 EBX、ECX 和 EDX 的输出打印到控制台,但它打印的是空行
这是我的代码:
c - 与高级语言不同的 CPUID 使用
我正在尝试使用需要特定处理器架构的 x86 ASM 功能。我了解调用“ CPUID 标准函数 01H ”后需要检查特定位。下面是来自CPUID Wikipedia页面的用于调用 CPUID的C实现:
虽然Linux 内核使用以下函数:
哪一个更好?其他他们本质上是等价的?
c - CPUID标准函数01H是什么?
我需要检查ECX
第 30 位,这是RDRAND
. 来自RDRAND
维基,
如果支持,则在调用 CPUID 标准函数 01H 后设置 ECX 寄存器的第 30 位。
我不完全知道这意味着什么。“标准函数01H
”?
这是否意味着EAX=80000001h?我不确定如何进行。
c++ - 加载时动态链接库调度
我希望我的 Windows 应用程序能够引用包含在 DLL 中的大量类和函数,但我需要能够引导应用程序在加载该 DLL 之前选择正确版本。我熟悉使用 dllexport / dllimport 和生成导入库来完成加载时动态链接,但我似乎无法在互联网上找到任何关于可能在导入库本身中找到某种入口点函数的信息,所以具体来说,我可以使用 CPUID 来检测主机 CPU 配置,并根据该信息决定加载特定的 DLL。更具体地说,我想构建一个 DLL 的 2 个版本,一个是用/ARCH:AVX
并充分利用 SSE - AVX 指令,另一个假设没有比 SSE2 更新的可用指令。
一个要求:要么必须在加载时链接 DLL,要么需要一种超级简单的方法来手动绑定从 DLL 外部引用的函数,并且有很多,主要是封装在类中。
额外问题:由于我的库将是跨平台的,是否有基于 Linux 的共享对象的等价物?
wmi - WMI 如何获取 ProcessorId?
我想在不使用 WMI 的情况下获取处理器 ID。
但是,如果我尝试使用 EAX=3 的 CPUID 来获取它,我会得到一个空结果。
WMI 如何获取 ProcessorId?有没有办法在不使用 WMI 的情况下获得它?
macos - 在使用 Virtualbox (5.x) 部署 El Capitan VM 后,`uname -m` 与 `arch` 不同
我将获得一个 El Capitan 虚拟机。我有一个在 CentOS-7.2/i5-6042P x64 机器上运行的 VirtualBox v5.1.6。我按照步骤“ https://techsviewer.com/how-to-install-mac-os-x-el-capitan-on-pc-on-virtualbox/ ”,最终帮助我获得了我的 El Capitan VM。但奇怪的事情让我感到困惑。请参阅下面的 CLI 输出。
本地主机:~ sid$ uname -a
达尔文本地主机 15.0.0 达尔文内核版本 15.0.0:2015 年 8 月 26 日星期三 16:57:32 PDT;根:xnu-3247.1.106~1/RELEASE_X86_64 x86_64
本地主机:~ sid$ 拱门
i386
本地主机:~ sid$ uname -m
x86_64
本地主机:~ sid$
我猜它设置了错误的 CPUID(只是猜测......)。所以,如果有问题,请纠正我。提前致谢!
——席德
linux-kernel - CPUID 和 MSR 读取 Linux-x86
我正在研究一个 Linux 内核模块,我需要在其中读取处理器的 CPUID 以查看是否存在某个功能。芯片组文档指出:
“当 CPUID (EAX=14H, ECX=0):ECX[bit 0] 或 CPUID.(EAX=14H, ECX=0):ECX[bit2] 时支持访问此 MSR”
但是我正在使用以下代码来读取 CPUID:
改编自:https ://en.wikipedia.org/wiki/CPUID#EAX.3D1:_Processor_Info_and_Feature_Bits
但我不知道它是如何工作的,也不知道我正在阅读哪些价值观。有人可以向我解释这段代码是如何工作的,以及我如何阅读上述 CPUID 寄存器以及 EAX=80000008h。
谢谢
cpu - 手动将 CPU 标志暴露给来宾 VM 以进行测试
我有一个带有Intel E5-26xx v3处理器的 Ubuntu(在 14.04 或 16.04 上试用)KVM 主机。
我需要向来宾 VM 公开某个标志,但 QEMU/libvirt 没有公开它,即使我cpu mode='host-passthrough'
在我的 VM libvirt XML 定义中使用了。我相信这是由于此文件/usr/share/libvirt/cpu_map.xml
中定义的内容未定义我想要暴露的标志。
所以,我希望能够修改cpu_map.xml
和手动添加 CPU 标志定义,但我不知道如何/在哪里可以得到CPUID
函数的结果以及它们是否在ebx
/ecx
等等。任何指针表示赞赏.
免责声明:我没有涉足 CPU 架构,所以我在这方面的知识非常有限。
c++ - 如何检查 CPUID.(EAX=14H, ECX=0)?
根据英特尔参考手册,如果该指令抛出#UD 异常CPUID.(EAX=14H, ECX=0):EBX.PTWRITE [Bit 4] = 0
如何检查这些值?
如果我从那时起使用int __get_cpuid (unsigned int __level, unsigned int *__eax, unsigned int *__ebx, unsigned int *__ecx, unsigned int *__edx)
什么<cpuid.h>
应该是论点?