cui*_*hao 8 hardware cpu assembly
我有两个问题:1.一台机器有两个或更多个型号不同的CPU吗?2.如果我调用CPUID指令,当不同的CPU执行它时,结果会有什么不同吗?(如果对quesions1的回答是正确的,这很明显).如果是这样,我如何通过CPUID指令获取所有CPU的信息.
是的,不是.有许多系统,多处理器,并有很大的不同.游戏男孩推进,既有基于arm的游戏和基于z80的游戏男孩(不能同时使用两者).但是nds有一个arm9和arm7(可以/同时使用两者).你会在beagleboard中找到的omap有一个arm和一个TI dsp(可以同时使用两者).我假设你在谈论x86系统.大多数台式机只是一个x86.您的鼠标和键盘以及类似的东西可能有8051或其他各种类型的微控制器.但你不在乎,因为这些只是USB HID设备或cdrom驱动器或硬盘.你真的无法接触处理器,所以它显示出来并不重要.笔记本电脑和高端服务器系统以及可能的dekstops很快就会在那里安装第二台处理器或计算机,因为笔记本电脑可能是一只手臂,显着降低了功率,所以x86可以在待机模式下关闭,手臂保持活力,你把它唤醒它的速度非常快.在服务器上,其他系统作为防弹监视器,监视服务器,提供监视和一些远程重置以及其他功能.同样,你不能得到这个处理器,所以如果你找不到CPUID协议也没关系.另一个是你的视频卡,数百到数千gpus.您可以访问那些包含您的程序的程序,如omap dsp,但是您不进行通用处理,因此CPUID不再需要提供该信息.
所以是的,不是.您的计算机系统(包括外围设备)具有许多不同的处理器,但通用处理通常是同一系列中的单个或多个,通常位于同一芯片内.所以CPUID只需要给你那个核心/家庭.
为此,您必须区分"套接字"和"核心",因为术语"处理器"是不明确的.
CPUID为您提供有关当前套接字的信息,这意味着当前线程正在执行的核心所在的套接字(包含CPUID操作码的线程).
只要它们兼容,不同的套接字可以包含略有不同的硬件,因此:
要获取有关不同套接字的信息,您必须确保在有问题的套接字上执行您的进程:您可以命令您的操作系统在某个套接字上运行您的线程,但这是特定于操作系统的.搜索引擎:为操作系统中的线程设置处理器关联.
CPUID将告诉您有关当前套接字的所有信息,包括"逻辑处理器"的数量:如果核心未超线程,则逻辑处理器数量等于核心数量,如果超线程则为逻辑处理器数量将是双倍的.