Intel处理器都支持Turbo和EIST,且一般情况下,各家厂商在BIOS中都会设置EIST和PState的开关,那么这些开关与CPU的频率的关系是什么呢?今天对此做个总结:

按照国际惯例,本次梳理将会解决下列问题:

1. EIST是什么?

2. EIST与Turbo与PState和CPU频率得关系

3. 如何在linux下使用Pwr工具查看CPU频率,以及Linux系统安装MSR相关的驱动接口

4. BIOS关闭了EIST,为何Linux系统下CPU主频会降低?

EIST是什么?

EIST---全称为“Enhanced Intel SpeedStep Technology”,是Intel开发的专门为移动平台和服务器平台处理器开发的一种节电技术。它能够根据不同的系统工作量自动调节处理器的电压和频率,以减少耗电量和发热量。这样一来,我们就不需要大功率散热器散热,也不用担心长时间使用电脑会不稳定,而且更加节能。

EIST与Turbo与PState的关系

Turbo是睿频开关,顾名思义,如果设为Enable,则CPU可以睿频运行。一般来说,EIST作为智能降频开关,优先级较高,如果EIST设为diable,则不允许CPU节能,CPU正常运行主频应当一直在标频。Turbo为睿频开关,当EIST设为disable后则Turbo应当加灰失效。

PState属于ACPI中得一个概念,本节不是主要介绍ACPI,因此再此不多赘述,PState标志着CPU节能等级,如果PState被设置为Enable后,则CPU将会在不同得PState状态之间进行切换,一般应用较多得是P0-P4,后面还可以到P10。CPU在P状态之间进行切换时,CPU的频率,CPU内部核心电压,Cache缓存的数据量以及唤醒时间会有所变化,总之最终得目的亦是为了节省能耗。

EIST与Turbo和Pstate三者之间得关系:仅关注CPU主频角度来看得话,EIST是总开关,如果设为Disable则Pstate也会设为Disable,体现在BIOS中你可以看到,Pstate得开关会随着EIST得disable而加灰,意思是禁止PState。此时进入到OS后,CPU得主频应该稳定在标频运行,此时Turbo开关也会随着EIST而加灰无效,意为不可睿频,此时即使使用PTU工具加压,也只会稳定在标频。但若EIST设为Enable,情况还稍微复杂下,但也基本是反着来得。我用下面得表格加以说明:

如何在linux下使用Pwr工具查看CPU频率,以及Linux系统安装MSR相关的驱动接口

Linux系统下可以通过‘cat /proc/cpuinfo’命令来看CPU各个核心得频率是多少,同时Intel也提供了PTU加压与查看主频得工具包可以直接使用。以笔者使用得Broadwell De得处理器为例,在intel官网上直接下载工具包后,在Linux系统下运行即可。这里补充一个小问题,有时可能会遇到Pwr得工具无法运行,报错显示MSR得driver没有提供。如下图

针对这个问题,方法其实很简单:

  1)  查看/dev/cpu/路径下,按理来说应该有CPU每个core访问MSR得驱动接口才对,如果没有,可以用如下指令:

  2)  modprobe msr

  3)运行完后,再查看/dev/cpu/路径下,应该会多点什么东西,如下图:

这时候再运行PWR工具即可直接运行,

BIOS关闭了EIST,为何Linux系统下CPU主频会降低?

有时候可能遇到BIOS中管别EIST,此时PState也失效了,但是在系统下查看CPU主频发现,频率还是在波动,这个是什么原因呢?

答: Linux内核在加载得时候,有可能会把BIOS关闭得PState重新打开,导致CPU仍开启节能模式,CPU主频会波动,解决方式有两个:

  1) 如果有OS源码,直接找到这个地方,关闭即可。

  2) 在GRUB添加配置项,load OS时关闭PState即可,以笔者得为例:

    a. 在GRUB界面,选择即将加载得os选项,然后按e,进入到开机参数编辑界面

    b. 添加指令 ‘intel_pstate=disable’

    c. 按下F10保存开机即可

【UEFI】---关于BIOS,EIST和PState&CState和CPU主频变化得关系的更多相关文章

  1. BIOS设置之UEFI/Legacy BIOS切换图文详解

    近几年出现的电脑其中相当一部分都配置了UEFI BIOS,不过大多都默认以Legacy BIOS方式启动.而Win8正式上市后, 所有预装Win8(或Win8.1)的电脑都配置了UEFI BIOS并且 ...

  2. 尽可能保留原有数据,建立UEFI与BIOS双启PE优盘

    尽可能保留原有数据,建立UEFI与BIOS双启PE优盘1.确保优盘或者移动硬盘有一个FAT32分区,如果没有FAT32分区,就用傲梅分区助手或者ppm转换一个现有的分区到FAT32分区0x0C,或者新 ...

  3. surface 其实是UEFI与BIOS并存,借用官网的进入方法(少有更改)

    surface 其实是UEFI与BIOS并存,借用官网的进入方法(少有更改) 第一种: 1.       Swipe in from the right edge of the screen, and ...

  4. UEFI、BIOS、Secure Boot的关系和知识介绍

      从Windows 8操作系统时代开始,安装操作系统的方法也有了很大的改变,Windows 8采用了Secure Boot引导启动的方式,而不是过去Win XP和Win 7的Legacy启动方式,从 ...

  5. [转帖]UEFI和BIOS

    UEFI和Legacy及UEFI+Legacy启动的区别 https://www.cnblogs.com/net5x/p/6850801.html 一直给人装系统 但是连这些最基本的都不知道 感觉自己 ...

  6. Q35+uefi or bios+legacy // PCI | PCIE

    1:首先统一可扩展固件接口(UEFI)是一种规范定义操作系统和平台固件之间的软件接口. UEFI旨在替代基本输入/输出系统(BIOS)固件接口.(legacy) 硬件平台厂商越来越多地采用UEFI管理 ...

  7. 【UEFI】---BIOS中UserPassword的重复校验总结

    UEFI作为目前较为流行的一套X86架构初始化的标准框架,已受到业界内的广泛认可.而其中很多编程所采用的思想确实值得学习.今天总结下UEFI的框架下修改代码的一点小经验,仅供菜鸟参考. 先列干货,具体 ...

  8. 【UEFI】---BIOS中对Guid的使用以及Lib函数的使用总结

    ---恢复内容开始--- BIOS发展至今传统的汇编实现早已被抛弃,UEFI作为目前一套主流的标准定义接口,被广泛使用.之前被一些有关GUID和一些Lib函数的使用以及跨Pkg调用给折腾的不行,每次改 ...

  9. UEFI、BIOS、GPT、MBR等概念的辨析

    (本文转移自本人的旧博客) 从各个地方包括知乎,Wiki,CSDN搜索到的一些整理,这些概念极易混淆. 先说互相的关系 BIOS和UEFI是两种固件接口标准 MBR和GPT是两种分区表 Legacy模 ...

随机推荐

  1. 2019-10-7-dotnet-Framework-源代码-·-ScrollViewer

    title author date CreateTime categories dotnet Framework 源代码 · ScrollViewer lindexi 2019-10-07 13:15 ...

  2. H3C RIP路由表的维护

  3. SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)

    本次的项目环境为 SpringBoot 2.0.4, JDK8.0. 服务器环境为CentOS7.0, Nginx的忘了版本. 前言 SpringBoot使用MultiPartFile接收来自表单的f ...

  4. Linux 内核 /sys/class类

    我们在本章中要考察最后的设备模型概念是类.一个类是一个设备的高级视图, 它抽象出 低级的实现细节. 驱动可以见到一个 SCSI 磁盘或者一个 ATA 磁盘, 在类的级别, 它们都 是磁盘. 类允许用户 ...

  5. 关于electron中入口文件main.js一些重要参数(持续更新maybe)

    const {app, BrowserWindow} = require('electron') const path = require('path') let mainWindow functio ...

  6. k8s生产环境部署

    建议配置: 服务器 900G*2 SSD 安装操作系统 CPU 16核心*2 40G网卡*2 RAM 64G*8 操作系统建议:Centos7.4/Centos 7.6 不建议使用CentOS8 分布 ...

  7. Channel 9视频整理【2】

    JadeChang https://channel9.msdn.com/Niners/JadeChang 繁体中文视频 2016 Nano Server / Docker / Containers 打 ...

  8. 不同RAM空间存储变量区分

  9. 024.讲MFC_窗口指针

    窗口指针通过HWND获得CWnd指针 //如何通过窗口句柄获得窗口指针获得应用程序主窗口的指针 //如何获得应用程序主窗口的指针一.建立名为dialogPoint的mfc工程,添加两个button 双 ...

  10. 浅析 Nginx 网络事件

    Nginx 是一个事件驱动的框架,所谓事件主要指的是网络事件,Nginx 每个网络连接会对应两个网络事件,一个读事件一个写事件.在深入了解 Nginx 各种原理及在极端场景下的一些错误场景处理时,需要 ...