zoukankan      html  css  js  c++  java
  • 对/proc/cpuinfo文件下的各个参数的说明及实践

      

    我们通常要检查系统的cpu的相关信息,之前在进行查看cpu的信息的时候,我最长用的方式 是,直接将/etc/cpuinfo下的所有的内容进行显示,然后通过对全部文件的查看,来提取我们需要的信息,虽然查看过这方面的信息,但是对于这个文 件中的内容了解的还是不够详细,今天看到了一篇文章写的不错,作为一个笔记,拿过来借鉴学习,并作为一个积累。

    以上输出项的含义如下:--------->>>>>原博客地址 :http://blog.csdn.net/lgstudyvc/article/details/7889364

    processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
    vendor_id :CPU制造商     
    cpu family :CPU产品系列代号
    model   :CPU属于其系列中的哪一代的代号
    model name:CPU属于的名字及其编号、标称主频
    stepping   :CPU属于制作更新版本
    cpu MHz   :CPU的实际使用主频
    cache size   :CPU二级缓存大小
    physical id   :单个CPU的标号
    siblings       :单个CPU逻辑物理核数
    core id        :当前物理核在其所处CPU中的编号,这个编号不一定连续
    cpu cores    :该逻辑核所处CPU的物理核数
    apicid          :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
    fpu             :是否具有浮点运算单元(Floating Point Unit)
    fpu_exception  :是否支持浮点计算异常
    cpuid level   :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
    wp             :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
    flags          :当前CPU支持的功能
    bogomips   :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
    clflush size  :每次刷新缓存的大小单位
    cache_alignment :缓存地址对齐单位
    address sizes     :可访问地址空间位数
    power management :对能源管理的支持,有以下几个可选支持功能:

      ts:  temperature sensor

      fid:   frequency id control

      vid:  voltage id control

      ttp:  thermal trip

      tm:

      stc:

      100mhzsteps:

      hwpstate:

    CPU信息中flags各项含义:

    fpu: Onboard (x87) Floating Point Unit
    vme: Virtual Mode Extension
    de: Debugging Extensions
    pse: Page Size Extensions
    tsc: Time Stamp Counter: support for RDTSC and WRTSC instructions
    msr: Model-Specific Registers
    pae: Physical Address Extensions: ability to access 64GB of memory; only 4GB can be accessed at a time though
    mce: Machine Check Architecture
    cx8: CMPXCHG8 instruction
    apic: Onboard Advanced Programmable Interrupt Controller
    sep: Sysenter/Sysexit Instructions; SYSENTER is used for jumps to kernel memory during system calls, and SYSEXIT is used for jumps: back to the user code
    mtrr: Memory Type Range Registers
    pge: Page Global Enable
    mca: Machine Check Architecture
    cmov: CMOV instruction
    pat: Page Attribute Table
    pse36: 36-bit Page Size Extensions: allows to map 4 MB pages into the first 64GB RAM, used with PSE.
    pn: Processor Serial-Number; only available on Pentium 3
    clflush: CLFLUSH instruction
    dtes: Debug Trace Store
    acpi: ACPI via MSR
    mmx: MultiMedia Extension
    fxsr: FXSAVE and FXSTOR instructions
    sse: Streaming SIMD Extensions. Single instruction multiple data. Lets you do a bunch of the same operation on different pieces of input: in a single clock tick.
    sse2: Streaming SIMD Extensions-2. More of the same.
    selfsnoop: CPU self snoop
    acc: Automatic Clock Control
    IA64: IA-64 processor Itanium.
    ht: HyperThreading. Introduces an imaginary second processor that doesn’t do much but lets you run threads in the same process a  bit quicker.
    nx: No Execute bit. Prevents arbitrary code running via buffer overflows.
    pni: Prescott New Instructions aka. SSE3
    vmx: Intel Vanderpool hardware virtualization technology
    svm: AMD “Pacifica” hardware virtualization technology
    lm: “Long Mode,” which means the chip supports the AMD64 instruction set
    tm: “Thermal Monitor” Thermal throttling with IDLE instructions. Usually hardware controlled in response to CPU temperature.
    tm2: “Thermal Monitor 2″ Decrease speed by reducing multipler and vcore.
    est: “Enhanced SpeedStep”

    根据以上内容,我们则可以很方便的知道当前系统关于CPU、CPU的核数、CPU是否启用超线程等信息。

    查询系统具有多少个逻辑核:

    cat /proc/cpuinfo | grep "processor" | wc -l

    查询系统CPU的物理核数:

    cat /proc/cpuinfo | grep "cpu cores" | uniq

    查询系统CPU是否启用超线程:

    cat /proc/cpuinfo | grep -e "cpu cores"  -e "siblings" | sort | uniq

      输出举例:

        cpu cores    : 6
        siblings     : 6

      如果cpu cores数量和siblings数量一致,则没有启用超线程,否则超线程被启用。

    查询系统CPU的个数:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

    以上为原博客中所提到的,下面进行我的补充,作为自己学习的拓展:

     cat /proc/cpuinfo |grep flags | grep ' lm ' | wc -l  //结果大于0, 说明支持64位计算。lm指long mode, 支持lm则是64位<span style="color:#FF0000;"></span>
    <span style="color:#FF0000;">cat/proc/cpuinfo | grep name | cut –f 2 –d : | uniq -c  //查看CPU型号</span>
    <span style="color:#FF0000;"># cat /proc/cpuinfo |grep physical | uniq -c  //查看实际有几颗CPU</span>
    <span style="color:#FF0000;">#  egrep --color "lm|svm|vmx" /proc/cpuinfo //进行查看cpu是否支持硬件虚拟化</span>

     

    查询系统CPU是否支持某项功能,则根以上类似,输出结果进行sort, uniq和grep就可以得到结果

    后续如果有对这方面的补充,会继续添加相关内容进行总结

  • 相关阅读:
    borderInterpolate()函数
    cvtColor(src, src_gray, CV_BGR2GRAY)报错
    用OpenCV读取摄像头
    OpenCV的视频输入和相似度测量
    C++ main函数中参数argc和argv含义及用法
    OpenCV的视频读取
    MySql与Oracle的几个主要区别
    OLTP与OLAP的介绍(理论知识)
    IDEA激活
    short i =1; i=i+1与short i=1; i+=1的区别
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/7384349.html
Copyright © 2011-2022 走看看