cpuid相关内容

C++ 中的 CPUID 实现

我想知道这里是否有人有一些很好的 C++ CPUID 实现示例,可以从任何托管 .net 语言中引用. 另外,如果不是这样的话,我应该知道 X86 和 X64 之间的某些实现差异吗? 我想使用 CPUID 获取有关运行我的软件的机器的信息(崩溃报告等...),并且我希望尽可能广泛地兼容所有内容. 我问这个问题的主要原因是,尽管我对 CPU 寄存器等有基本的了解,但在编写可能是所有 ..
发布时间:2021-12-18 09:19:40 C/C++开发

我如何调用“cpuid"?在 Linux 中?

在为 Windows 编写新代码时,我偶然发现了 Windows API 中的 _cpuinfo().由于我主要处理 Linux 环境 (GCC),因此我想访问 CPUInfo. 我尝试了以下方法: #include int main(){国际a, b;for (a = 0; a 这个使用程序集,但我不想重新发明轮子.有没有其他方法可以在没有汇编的情况下实现 CPUInfo? 编 ..
发布时间:2021-12-18 08:55:57 C/C++开发

如何保证RDTSC是准确的?

我已经读到 RDTSC 可以提供错误的读数,不应依赖. 这是真的吗?如果是这样,我们可以做些什么? 解决方案 非常老的 CPU 有一个准确的 RDTSC. 问题 但是较新的 CPU 有问题. 工程师们认为 RDTSC 非常适合告诉时间. 但是,如果 CPU 限制频率,则 RDTSC 将无法告诉时间. 前面提到的脑残工程师决定通过让 TSC 始终以相同频率运行来“解决"这 ..
发布时间:2021-09-29 19:34:21 其他开发

ASP.net获取硬件信息

如果我创建一个ASP.net页,是否可以获取当前用户的CPUID和BIOS序列号?还是出于安全原因不允许这样做? 我目前有一个获取这些值的Visual Basic.net应用程序,我只是想知道我是否可以在网页上做同样的事情. 解决方案 在坚果壳中,没有,您不能仅使用常规html&JavaScript网页. 但这并不是说不可能. 如果您的客户端计算机安装了Java,Flas ..
发布时间:2021-04-10 19:53:52 C#/.NET

确定英特尔ID指南中列出的CPUID

在Intel Intrinsics Guide中,一些Intrinsics的底部都有“延迟和吞吐量信息",列出了多个CPUID的性能. 例如,《内在指南》中的表对于内在_mm_hadd_pd如下所示: CPUID(s) Parameters Latency Throughput 0F_03 ..
发布时间:2020-11-30 04:48:38 其他开发

什么是CPUID标准功能01H?

我需要检查 ECX 的第30位,这是 RDRAND 所必需的CPU功能。从 RDRAND Wiki , 如果支持,则在调用CPUID标准函数01H之后,将ECX寄存器的第30位设置。 我不确定这是什么意思。 “标准功能 01H ”? 这是否意味着 EAX = 80000001h ?我不太确定如何继续。 解决方案 我认为这意味着调用cpuid函数时%eax应该为1。 。硬件 ..
发布时间:2020-10-11 00:22:45 其他开发

如何接收L1,L2&在x86中使用CPUID指令的L3缓存大小

我在准备汇编程序x86项目时遇到问题,该问题是编写一个程序以获取L1数据,L1代码,L2和L3高速缓存大小。 我试图在Intel Documentation&在互联网上,但我失败了。 主要问题是:对于AMD处理器,只需将EAX寄存器设置为80000005h& 80000006h值,并从ECX和EDX寄存器获取所需的数据,但是对于Intel,我只能为L2获取此信息。 我应该怎么做才 ..
发布时间:2020-09-28 05:05:57 其他开发

如何使用CPUID作为序列化指令?

CPUID可以用作序列化指令,如此处和// Is that enough? // What to do with registers and memory? // Is volatile necessary? asm volatile("CPUID":::); 解决方案 您是否没有使用篱笆操作是有原因的吗?如果目标是序列化一段代码,则可以执行类似的操作 asm __volat ..
发布时间:2020-09-12 23:57:58 C/C++开发

如何在Mac框架中调用cpuid指令?

我想使用cpuid指令来识别Intel CPU的功能.我在Kernel.framework中找到了cpuid.h标头,因此我将Kernel.framework添加到了项目中,并在源文件中包含了.产生了 kern/kern_types.h: No such file or directory 我不明白.但是我想使用的函数do_cpuid是内联定义的 ..
发布时间:2020-08-11 19:26:02 其他开发

从Intel上的CPUID结果了解TLB

我正在研究cpuid指令的第0x02页,并提出了一些问题.文档中有一个表 ,该表描述了cpuid结果对TLB配置的含义.他们在这里: 情况1 56H TLB Data TLB0: 4 MByte pages, 4-way set associative, 16 entries [...] B4H TLB Data TLB1: 4 KByte pages, 4-way associati ..
发布时间:2020-07-11 02:04:24 其他开发

为什么没有将超线程报告为处理器支持?

我正在尝试收集系统信息,并在Intel Xeon E5420上注意到以下内容: 执行CPUID(EAX=1)后,将设置EDX [28],表示支持超线程,尽管该处理器在英特尔网站上被列为不支持超线程(有人对此有解释吗? 解决方案 根据英特尔开发人员手册,以下是该位的定义: 保留的最大APIC ID字段为有效. HTT的值为0表示存在 软件包和软件中仅应包含一个逻辑处理器 仅保留一 ..
发布时间:2020-06-18 19:34:20 其他开发

使用串行化指令的内联汇编

我们认为我们在 GCC (或 GCC -compatible)编译器> X86_64 架构,并且 eax , ebx , ecx , edx 和 level 是变量( unsigned int 或 unsigned int * )用于指令的输入和输出(如 here )。 ASM( “CPUID” :: :); asm volatile(“CPUID”:: :); asm volat ..
发布时间:2018-04-21 10:38:23 C/C++开发

类似信息的CPUID的内在?

考虑到我用C ++编写代码,如果可能,我想使用类似Intrinsics的解决方案来读取有关硬件的有用信息,我的注意事项是: 我不知道程序集,这将是一个相当大的投资,只是为了获得这种信息(看起来像CPU只是关于翻转值和读取寄存器。) 至少有两种流行的语法用于asm(Intel和AT& T),所以它是分段的 奇怪的是Intrinsics比asm更受欢迎和支持 并不是所有的编译器在我的雷达现 ..
发布时间:2016-10-17 10:49:16 C/C++开发

获取CPU ID代码,从C#是在C ++

我有这个C#代码获取处理器ID,但我不能将它传递给C ++,我尝试了很多,但我真的不能,我刚刚开始在C + +,我想要能够得到CPU ID和C ++一样,像C#一样 这是C#中的代码: public static string GetProcessorID() { string sProcessorID =“”; string sQuery =“SELECT Processo ..
发布时间:2016-10-08 16:06:14 C#/.NET

检测CPU的能力,而不总成

我一直在寻找方法,以确定CPU,它的能力(如SEE,SSE2,等等)。 但是所有的方法我发现使用CPUID指令涉及的组装code。由于在C做组装的不同方式/ C ++编译器,甚至目标(没有为VC下64位的目标内联汇编)之间,ID,而避免。 有没有一些简单的库周围,或OS功能(适用于Windows和Linux)获取这些信息? 目前我只用在x86和x86-64 CPU的平台感兴趣,而且我挑衅需要 ..
发布时间:2016-08-23 10:39:35 C/C++

逻辑CPU数回报16而不是4

我有一个英特尔酷睿i5-2450M(2个物理处理器和4个逻辑处理器),我想找到一种方法,依靠AMD和英特尔CPU的逻辑和物理内核。 但是,一些搜索后,我发现了一些奇怪的。而不是返回4个逻辑单元,我的code给我16。 静态LogicalProcCount中int8_t(无效) { 如果(!超线程) 返回1; uint32_t的未使用的,EBX; CPUID ..
发布时间:2016-08-19 00:27:38 C/C++开发

Rdrand instrucrtion SIGILL

CPUID说,我有我的rdrand系统上,但rdrand指令抛出SIGILL。我使用的VMware Workstation 11里Linux Mint的,我用Google搜索工作站支持rdrand,他们说,自从9日的版本,它启用。主持人Proccess是i5-2550k,它应该支持rdrand。我能以某种方式解决这一问题?下面是GDB上市: 断点1,在0x08048060 _start() (G ..
发布时间:2016-07-18 21:42:33 .NET Framework

在__asm​​__ C ++错误

我想阅读下列鳕CPUID信息,但它不工作。我使用Visual Studio 2010的: 的#include“stdafx.h中” #包括LT&;&stdio.h中GT;诠释的main() { 诠释A,B; 用于:(a = 0;一个小于5;一个++) { __asm​​ __(“CPUID” :“= A”(B)// EAX成B(输出) ..
发布时间:2016-07-18 21:26:07 C/C++开发