计算机硬件基础知识(二)CPU

一、 认识计算机的大脑

1.1、计算机所有的组成都是模仿人的某一功能或器官而产生的,计算机俗称“电脑”,计算机通上电后能够真的像人脑一样去工作。

1.2、为何要有计算机?为了执行人类的程序,从而把人类解放出来。优点:工作效率高。缺点:离开电活不了。

二、计算机硬件可分为五大部分:CPU(Central Processing Unit)、内存(RAM)、硬盘(hard disk)、输入设备(input)、输出设备(output)。

2.1、CPU:控制器+运算器+寄存器==>CPU又称中央处理器, 相当于人的大脑总的运算中心,控制中心。

  控制器:计算机的指挥系统。控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件在控制器控制下有条不紊地协调工作。

2.1.2、运算器:实现算术运算和逻辑运算的部件。

2.2、内存(内存储器): 临时存储数据. 优点:读取速度快。 缺点:容量小,造价高,断电即消失。

2.3、硬盘(外存储器): 长期存储数据. 优点:容量大,造价相对低,断电不消失。 缺点:读取速度慢。

  存储器:是计算机用来存放所有数据和程序的记忆部件。它的基本功能是按指定的地址存(写)入或者取(读)出信息。

  计算机中的存储器可分成两大类:

    内存储器,简称内存或主存;

    外存储器(辅助存储器),简称外存或辅存。 存储器由若干个存储单元组成,每个存储单元都有一个地址,计算机通过地址对存储单元进行读写。一个存储器所包含的字节数称为存储容量,换算单位如下

    b = bit 位(比特)

    B = Byte 字节1Byte = 8 bit    #一个字节等于8位 可以简写成 1B = 8b

    1KB = 1024B 1MB = 1024KB   1GB = 1024MB 1TB = 1024GB 1PB = 1024TB 1EB = 1024PB

2.4、输入设备(Input)+输出设备(Output)==>IO设备 。

  输入设备:是向计算机中输入信息(程序、数据、声音、文字、图形、图像等)的设备。常见的输入设备有:键盘、鼠标、图形扫描仪、触摸屏、条形码输入器、光笔等。 外存储器也是一种输入设备。

  输出设备:主要有显示器、打印机和绘图仪等。外存储器也当作一种输出设备。

2.5、计算机五大部分的工作流程是:输入单元-->内存-->CPU -->内存-->输出单元。如下图所示:

      

三、CPU工作流程

3.1、CPU工作流程:从内存中取出指令--->解码--->执行。

3.1.1、CPU:运算器和控制的合称:中央处理器(Central Processing Unit),运算器主要负责运算和逻辑判断,控制器主要协调各组件和各单元的的工作。CPU的主要工作就是管理和运算。

3.1.2、运算器:是对信息进行处理和运算的部件,主要负责算术运算和逻辑判断运算又称为算术逻辑运算部件(arithmetic logic unit,ALU)。运算器的核心是加法器。运算器中还有若干个通用寄存器累加寄存器,用来暂存操作数并存放运算结果。寄存器的存取速度比存储器的存放速度快。

3.1.3、控制器:是整台计算机的指挥中心,它主要的功能是按照人们事先定义好的操作步骤,控制整个计算机的各个部件有条不紊的自动工作。

 控制器从主存中逐条的读取出指令进行分析,根据指令的不同来安排操作顺序,向各个部件发出相应的操作信号,控制他们执行指令所规定的任务,控制器中包括一些专用的寄存器。如下图所示:

      

3.2、CPU指令集

  引子:在超大规模集成电路构成的微型计算机中,往往将CPU制成一块具有特定功能的芯片,称作微处理器,芯片里面有提前编写好指令集。我们使用程序对计算机的所有操作最终会转换成CPU认识的指令去完成,如:对文件的增删改查,阅读网页,观看影音,这些都要参考CPU是否内置有关的指令集,如果没有就不会操作。

  CPU是计算机的大脑,CPU在出厂时候集成了一系列具体控制其他身体器官做事的指令集(即指令集是CPU的灵魂),所以可以认为计算机的所有组件都是CPU发出的指令控制操作的。

  程序员编程的目的是为了操作计算机的硬件进行工作,编写的代码会转换成CPU的指令集从而控制其他硬件工作。如下图所示:

      

  1、内存中存放的是程序员的代码(代码即指令)。

  2、CPU从内存中取出这些指令后,翻译成自己能读懂的指令,再去执行该指令

3.3、指令集的深入学习:  

  一条指令一般包括两个部分:操作码和地址码。
    a) 操作码其实就是指令序列号,用来告诉CPU需要执行的是那一条指令。
    b) 地址码则复杂一些,主要包括源操作数地址、目的地址和下一条指令的地址。在某些指令中,地址码可以部分或全部省略,比如一条空指令就只有操作码而没有地址码。
    c) 举个例子吧,某个指令系统的指令长度为32位,操作码长度为8位,地址长度也为8位,且第一条指令是加,第二条指令是减。当它收到一个 “00000010000001000000000100000110”的指令时,先取出它的前8位操作码,即00000010,分析得出这是一个减法操作,有3个地址,分别是两个源操作数地址和一个目的地址。于是,CPU就到内存地址00000100处取出被减数,到00000001处取出减数,送到 ALU中进行减法运算,然后把结果送到00000110处。
  这只是一个相当简单化的例子,实际情况要复杂的多。

3.4、CPU分类(了解)不同的CPU指令集对应的功能不同

  我们已经知道CPU内部是含有微指令集的,我们所使用的的软件都要经过CPU内部的微指令集来完成才行。这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的
两种主要的CPU种类:分别是精简指令集(RISC)与复杂指令集(CISC)系统。下面我们就来谈谈这两种不同CPU种类的差异!
# 1.1、精简指令集(了解)   精简指令集(Reduced Instruction Set Computing,RISC):这种CPU的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;
但是若要做复杂的事情,就要由多个指令来完成。常见的RISC指令集CPU主要例如Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、与ARM系列等。
注:Sun已经被Oracle收购;】   SPARC架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主服务器也都有这类的计算机架构;   PowerPC架构的应用,如Sony出产的Play Station
3(PS3)使用的就是该架构的Cell处理器。   ARM是世界上使用范围最广的CPU了,常用的各厂商的手机、PDA、导航系统、网络设备等,几乎都用该架构的CPU。 # 1.2、复杂指令集   复杂指令集(Complex Instruction Set Computer,CISC)与RISC不同,在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的
长度并不相同。因此指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。
# 总结: CPU按照指令集可以分为精简指令集CPU和复杂指令集CPU两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的

事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间
较长,但每条个别指令可以处理的工作较为丰富。

3.5、X86架构的64位

#1、x86架构
    x86是针对cpu的型号或者说架构的一种统称,详细地讲,最早的那颗Intel发明出来的CPU代号称为8086,后来在8086的基础上又开发出了80285、80386....,因此这种架构的
CPU就被统称为x86架构了。 由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机上面,因此,个人计算机常被称为x86架构的计算机! 程序员开发出的软件最终都要翻译成cpu的指令集才能运行,因此软件的版本必须与cpu的架构契合,举个例子,我们在MySQL官网下载软件MySQL时名字为: Windows(x86,
32-bit),ZIP Archive (mysql-5.7.20-win32.zip) 我们发现名字中有x86,这其实就是告诉我们:该软件应该运行在x86架构的计算机上。 #2、64位 cpu的位数指的是cpu一次性能从内存中取出多少位二进制指令,64bit指的是一次性能从内存中取出64位二进制指令。 在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,到现在,个人计算机CPU通常都是x86_64的架构。 cpu具有向下兼容性,指的是64位的cpu既可以运行64位的软件,也可以运行32位的软件,而32位的cpu只能运行32位的软件。这其实很好理解,如果把cpu的位数当成是车道的宽,
而内存中软件的指令当做是待通行的车辆,宽64的车道每次肯定既可以通行64辆车,也可以通信32辆车,而宽32的车道每次却只能通行32辆车

X86架构的64位 cpu具有向下兼容性:64的cpu既能运行32位的程序也能运行64位的程序

 

3.6、CPU的历史发展

  微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等
操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。 计算机的发展主要表现在其核心部件——微处理器的发展上,每当一款新型的微处理器出现时,就会带动计算机系统的其他部件的相应发展,如计算机体系结构的进一步优化,存储器存取
容量的不断增大、存取速度的不断提高,外围设备的不断改进以及新设备的不断出现等。根据微处理器的字长和功能,可将其发展划分为以下几个阶段。 第1阶段(
1971——1973年)是4位和8位低档微处理器时代,通常称为第1代。 第2阶段(1974——1977年)是8位中高档微处理器时代,通常称为第2代。 第3阶段(1978——1984年)是16位微处理器时代,通常称为第3代。 第4阶段(1985——1992年)是32位微处理器时代,又称为第4代。 第5阶段(1993-2005年)是奔腾(pentium)系列微处理器时代,通常称为第5代。 第6阶段(2005年至今)是酷睿(core)系列微处理器时代,通常称为第6代。“酷睿”是一款领先节能的新型微架构,设计的出发点是提供卓然出众的性能和能效,提高每瓦特性能,也就是
所谓的能效比。 若想具体了解CPU历史参见百度百科: https:
//baike.baidu.com/item/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8/

284033?fr=aladdin&fromid=368184&fromtitle=%EF%BC%A3%EF%BC%B0%EF%BC%B5#10

 

四、内核态与用户态

代表cpu的两种工作状态
  1、内核态:运行的程序是操作系统,可以操作计算机硬件
  2、用户态:运行的程序是应用程序,不能操作计算机硬件

内核态与用户态的转换
  应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到
  内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换

五、多线程和多核芯片

多线程与多核芯片
  2核4线程:
    2核代表有两个cpu,4线程指的是每个cpu都有两个线程=》假4核

  4核8线程
    4核代表有4个cpu,8线程指的是每个cpu都有两个线程=》假8核 

原文地址:https://www.cnblogs.com/liunaixu/p/12370404.html