指令集 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: b28d62113b6242ecafa29e8ef9a77662
               Boot ID: b387c673b9964ca99c5e90f4f3a46a24
      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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章