zoukankan      html  css  js  c++  java
  • 指令集 CPU架构 x86 x86_64 arm,linux windows 查看CPU信息

    查看CPU信息

    Windows

    Linux

    • 查看操作系统位数

      32位的系统中int类型和long类型一般都是4字节

      64位的系统中int类型是4字节,long类型是8字节

      lfp@legion:~$ getconf LONG_BIT
      64
      lfp@legion:~$ getconf WORD_BIT
      32
      

      Ubuntu 18.04.3 LTS版本同样包含桌面和服务器版本,仅适用于64位系统的安装映像

    • 查看处理器架构

      hostnamectl

      lfp@legion:~$ hostnamectl
         Static hostname: legion
               Icon name: computer-laptop
                 Chassis: laptop
              Machine ID: b28d62113b6242exxxxxxxxxxxxxxxxxxx2
                 Boot ID: b387c673b99xxxxxxxxxxf3a46a24
        Operating System: Ubuntu 18.04.4 LTS
                  Kernel: Linux 5.3.0-51-generic
            Architecture: x86-64
      

      arch

      lfp@legion:~$ arch
      x86_64
      

      uname -p

      lfp@legion:~$ uname -p # processor type 处理器类型
      x86_64
      
    • 查看物理CPU个数

      lfp@legion:~$ cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
      1
      
    • 查看每个物理CPU中core的个数(即核数)

      lfp@legion:~$ cat /proc/cpuinfo| grep "cpu cores"| uniq
      cpu cores	: 6
      
    • 查看逻辑CPU的个数

      lfp@legion:~$ cat /proc/cpuinfo| grep "processor"| wc -l
      12
      

      总核数 = 物理CPU个数 X 每颗物理CPU的核数

      总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数(如果支持并开启超线程技术(HT))

    • 综合信息

      lscpu

      lfp@legion:~$ lscpu
      架构:           x86_64
      CPU 运行模式:   32-bit, 64-bit
      字节序:         Little Endian
      CPU:             12
      在线 CPU 列表:  0-11
      每个核的线程数: 2
      每个座的核数:   6
      座:             1
      NUMA 节点:      1
      厂商 ID:        GenuineIntel
      CPU 系列:       6
      型号:           158
      型号名称:       Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
      步进:           10
      CPU MHz:        1300.054
      CPU 最大 MHz:   2600.0000
      CPU 最小 MHz:   800.0000
      BogoMIPS:       5199.98
      虚拟化:         VT-x
      L1d 缓存:       32K
      L1i 缓存:       32K
      L2 缓存:        256K
      L3 缓存:        12288K
      NUMA 节点0 CPU: 0-11
      

      cat /proc/cpuinfo

      lfp@legion:~$ cat /proc/cpuinfo
      processor	: 0
      vendor_id	: GenuineIntel
      cpu family	: 6
      model		: 158
      model name	: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
      stepping	: 10
      microcode	: 0xca
      cpu MHz		: 1300.109
      cache size	: 12288 KB
      physical id	: 0
      siblings	: 12
      core id		: 0
      cpu cores	: 6
      .....
      

    CPU架构(指令集架构)

    计算机中央处理器的一种设计模式

    包括采用哪种指令集,哪种寄存器,等等

    不同架构主要由指令集架构决定,然后决定寄存器等相关设备的型号

    指令集架构相同,其他设计、工艺不同称为一种微架构。例如AMD的Zen2微架构,Intel Coffee Lake微架构

    指令集架构和微架构的关系:

    1. 指令集架构是指在处理器内被处理的程序,包括运行模型,寄存器,地址以及数据格式等

    2. 微架构包含处理器内部的构成以及这些构成起来的部分如何运行指令集架构。

      微架构通常被表示成流程图,以描述机器内部组件的链接状况,从一个闸或是寄存器,到算术逻辑单元(ALU)

    3. 拥有不同微架构的机器可能拥有相同的指令集架构,因此可以运行相同的程序。由于半导体科技的进步,新型的处理器可以以较快的速度运行相同的指令集架构。

    4. 计算机架构是微架构和指令集架构的结合

    指令集

    又称指令集架构(英语:Instruction Set Architecture,缩写为ISA)、指令集体系、机器语言

    计算机能够进行计算,主要靠cpu中大规模集成电路中由晶体管组成的逻辑电路,这些逻辑电路可以进行运算和判断,通过组合简单逻辑电路,可以完成复杂的运算

    通过一定格式的指令来控制逻辑电路进行运算,这些指令的总和就是指令集——机器语言

    可以理解成硬件的的接口。

    由高级语言编写的程序通过操作系统调用硬件接口完成计算

    是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O

    分为复杂指令集和精简指令集

    复杂指令集 CISC

    Complex Instruction Set Computing;CISC)

    每个指令可执行若干低端操作,诸如从存储器读取、存储、和计算操作,多个操作集于单一指令之中

    程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢

    包含许多应用程序中很少使用的特定指令,由此产生的缺陷是指令长度不固定

    包括

    • x86 指令集

    • x86-64指令集

      博主这样理解,但是没找到官方说法

    精简指令集 RISC

    Reduced Instruction Set Computing,RISC)

    对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高

    通过只执行在程序中经常使用的指令来简化处理器的结构

    包括

    • arm指令集

    x86架构

    背景

    x86 架构于1978年推出的 Intel 8086 中央处理器中首度出现,8086 在三年后为IBM PC 所选用,之后 x86 便成为了个人电脑的标准平台,成为了历来最成功的 CPU 架构。8086 是 16 位处理器,接着一系列的处理器进行了 32 位架构的改进,现在 x86 一般指 32 位的架构。

    该系列较早期的处理器名称是以数字来表示 80x86。由于以 86 作为结尾,包括 Intel 8086、80186、80286、80386 以及 80486,因此其架构被称为 x86

    生产 x86 架构的 CPU 除了因特尔,它还把专利授权给了现在比较出名的超微(AMD)。然后在 1999 年 AMD 首次公开 64 位集以扩展 x86,此架构称为 AMD64。后来英特尔也推出了与之兼容的处理器,并命名Intel 64。两者一般被统称为 x86-64x64,开创了 x86 的 64 位时代。

    Intel为了不让其他厂商模仿,申请了很多专利,与惠普联合设计了全新的架构 IA-64 ,但最大的问题就是它与之前的 x86 不兼容,且市场反应较冷淡,然后就凉凉了。

    32位

    x86、i386、IA-32架构

    IA-32(英特尔32位架构,Intel Architecture(架构)32-bit,缩写为IA-32)

    x86架构32位处理器,采用x86指令集

    x86指令集
    • 由英特尔公司于1985年推出的指令集架构。它是8086架构的延伸版本,可支持32位运算,首次应用在Intel 80386芯片中。
    x86 架构特征

    只有8个32位通用寄存器

    64位

    x86_64、x64、AMD64、Intel 64架构

    x86架构64位处理器,采用x86-64指令集

    x86-64指令集
    • 支持全部传统x86指令集,增加了一些新的指令以支持长模式

      通用指令、128位媒体指令、64位媒体指令、x87浮点指令

      长模式是传统的保护模式的扩展,由两个子模式组成:64位模式和兼容模式。

      • 64位模式支持x86-64架构的所有新特征和寄存器扩展。

      • 兼容模式支持与已存在的16位和32位应用程序兼容,

      长模式不支持传统的实模式或虚拟8086模式,也不支持硬件任务切换

    • x64于1999年由AMD设计并公开64位集以扩展给x86,称为“AMD64”。其后也为英特尔所采用

    • 各种数据长度对比

    x86-64架构特征

    x86-64架构的的需求是由高性能服务器、数据库管理系统和CAD工具等的应用程序,要求大型和高精度数据和大的虚拟和物理存储器的地址范围引出的。

    传统x86架构中可用的寄存器数只有8个,在强计算的应用程序中限制了性能

    x86架构的64位拓展,向前兼容于16位及32位的x86架构

    1. 扩展了寄存器资源
      • 新增8个通用寄存器
      • 所有16个GPRs从32位扩展到64位
      • 新增8个128位 XMM 寄存器
    2. 增加了64位寻址

    x86-64指令系统 https://www.cnblogs.com/chenxuming/p/9689747.html

    称谓

    • 苹果公司和RPM包管理员以【x86-64】或【x86_64】称呼此64位架构

    • 甲骨文公司及Microsoft称之为【x64】

    • BSD家族及其他Linux发行版使用【amd64】,32位版本则称为【i386】(或 i486/586/686),

    • Arch Linux用【x86_64】称呼此64位架构

    Arch Linux 仅支持 x86_64 架构

    Debian 支持 i386, x86_64 等等,Ubuntu是基于debian的商业发行版

    x86 x64 含义

    • x86含义

      1. x86 指令集
      2. x86 CPU架构
      3. x86(32位)操作系统
    • x64含义

      1. x86-64 指令集
      2. x86-64 CPU架构
      3. x64(64位)位操作系统

    ARM架构

    安谋控股公司(英语:ARM Holdings plc.),又称ARM公司设计的处理器架构

    采用arm指令集

    第一款基于ARM v7指令集的Cortex-A8构架于06年发布

    网上有这种描述

    ARM处理器广泛应用在嵌入式系统、移动通信设备,符合其主要设计目标为低成本、高性能、低耗电的特性

    ARM架构指定了CPU模式。在任何时刻,CPU只可处于某一种模式,但可由于外部事件(中断)或编程方式进行模式切换。

    32位

    ARM v3 --- ARM v7 指令集

    ARMv3到ARMv7架构支持32位空间和32位算数运算,大部分架构的指令为定长32位

    64位

    ARM v8 指令集

    ARMv8-A架构添加了对64位空间和64位算术运算的支持,同时也更新了32位定长指令集[

    ARMv8使用了两种执行模式,AArch32和AArch64。顾名思义,一个运行32位代码,一个运行64位代码。ARM设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。

    参考

    https://zhuanlan.zhihu.com/p/113157931

  • 相关阅读:
    C# Mongo Client 2.4.2创建索引
    MongoDB Driver:使用正确的姿势连接复制集
    C# Mongo Client 2.4.2判断是否存在表
    c# Mongodb批量更新
    c# Mongodb创建自增列
    class A where T:new()是什么意思
    Dapper Extensions中修改Dialect
    golang 中的 sizeof 以及 golang中的 union
    将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct
    golang 与 c语言 之间传递指针的规则提案
  • 原文地址:https://www.cnblogs.com/usmile/p/13038340.html
Copyright © 2011-2022 走看看