Reading Notes : 180213 计算机的硬件构成与处理流程
读书《计算机组成原理》,《鸟哥的Linux私房菜基础篇》
基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和一些基本信息,简单认识,以后再深入了解。
1.计算机的硬件构成与运行流程
原始的冯诺依曼计算机在结构上是以运算器为中心的,而发展到现在,已转向以存储器为中心了,下图为计算机最基本的组成框图了。
中央处理器和内存储器(也叫主存储器)一起组成主机部分。除去主机以外的硬件装置(如输入设备、输出设备、外存储器等)称为外围设备或外部设备。
1.1 计算机硬件的五大单元
我们通过易拆解的台式计算机开始,来认识一下计算机的构成。通过外观来看,计算机分为三部分:
- 输入单元:包括键盘、鼠标、卡片阅读机、扫描仪、手写板、触摸屏幕等;
- 中央处理器(CPU):含有算数逻辑、控制、记忆等单元。
- 输出单元:例如屏幕、硬盘、打印机等。
我们主要通过输入设备来将一些数据输入到主机里面,然后由主机的功能处理成为图表或文章等信息后,将结果信息传回输出设备。这是计算机的一个工作流程,这里重点在于主机,主机是一个整体吗?拆开计算机发现主机里边是由一块主板、电源以及其它的一些芯片等构成的,这里边我们最应该注意的就是CPU和内存条(主存储器)了。
CPU(Central Processing Unit 中央处理器)是整台计算机的核心,CPU是一个具有特定功能的芯片,芯片里边有编写好的微指令集,我们在主机上的所有操作,如输入输出,阅读,视频,上网等这些都要参考CPU是否内置有相关微指令集才行。如果没有那么CPU无法处理这些操作。这里我们可以提前认识两个概念微指令、微操作,这里我们就不多介绍了,放在后面的CPU中一块认识。
由于CPU的工作主要在于管理和运算,因此在CPU中又可分为两个主要的单元,分别是算术逻辑单元(运算器)和控制单元(控制器)。其中算术逻辑单元主要负责程序运算与逻辑判断,控制单元则主要协调各组件和各单元的工作。
既然CPU的重点在于进行运算和判断,那么要被运算与判断的数据是从哪里来的?CPU读取的数据都是从主存储器来的!主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。
综合上面所说的,我们会知道其实计算机是由:输入单元、输出单元、CPU(控制单元、算术逻辑单元)与主存储器五大单元构成的。也可以说CPU+输入输出+主存储器构成了电子计算机的三大核心组件,相关性如下图:
上图中的系统单元其实指的就是计算机主机内的主要组件,重点在于CPU与内存,特别要关注的是CPU所发布的控制命令!而CPU实际要处理的数据则完全来自于主存储器!这个流程很重要。
通过上面我们知道计算机主要功能是处理输入设备输入的数据,这些数据会进入到内存中,所有的数据都是交由CPU的控制单元来负责协调的,由逻辑单元来处理的,处理后的数据仍然返回到内存中然后才会输出或者是存储,所以CPU才是计算机系统中最重要的部分!那么目前世界上的主流CPU由那些呢?我们笔记本上贴的Intel、AMD是怎么回事呢?下面我们来认识一下;
1.1.1 计算机的大脑_CPU
通常将运算器和控制器合称为中央处理器(Central Processing Unit,CPU)。在由超大规模集成电路构成的微型计算机中,往往将CPU制成一块芯片,称为微处理器。下面我们来认识一下。
1.1.1.1 CPU的分类
前面我们已经知道CPU内部是含有微指令集的,我们所使用的的软件都要经过CPU内部的微指令集来完成才行。这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要的CPU种类:分别是精简指令集(RISC)与复杂指令集(CISC)系统。下面我们就来谈谈这两种不同CPU种类的差异!
精简指令集
精简指令集(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。
复杂指令集
复杂指令集(Complex Instruction Set Computer,CISC)与RISC不同,在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。
由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机(Personal Computer)上面,因此,个人计算机常被称为x86架构的计算机!举个例子,我们在MySQL官网下载MySQL时名字为:
我们发现名字中有x86,这其实就是告诉我们该软件应用于x86结构的计算机。那么为何称为x86架构呢?这是因为最早的那颗Intel发展出来的CPU代号称为8086,后来依此架构又开发出80285、80386....,因此这种架构的CPU就被称为x86架构了。
在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,为了区别两者的差异,因此64位的个人计算机CPU又被统称为x86_64的架构了。
不同的x86架构的CPU的差别在哪呢?除了CPU的整体结构(如第二层缓存、每次运作可执行的指令数等)之外,主要是在于微指令集的不同。新的x86的CPU大多含有很先进的微指令集,这些微指令集可以加速多媒体程序的运作,也能够加强虚拟化的效能,而且某些微指令集更能够增加能源效率,让CPU耗电量降低,这对于高电费是个不错的消息。 试想一下,如果CPU的指令集都相同,那么OS是不是就不用分32bit和64bit了,各种程序的跨平台是不是就更简单了呢。
1.1.1.2 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历史参见链接:
总结:CPU按照指令集可以分为精简指令集CPU和复杂指令集CPU两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。
根据位数又可分为32bit和64bit(指的是CPU一次执行指令的数据带宽),这个具体后面了解。CPU往往又可细分为运算器和控制器两部分,下面我们再来叙说一下这两部分。
1.1.1.3 运算器
运算器是对信息进行处理和运算的部件。经常进行的运算是算术运算和逻辑运算,所以运算器又可称为算术逻辑运算部件(Arithmetic and Logical,ALU)。
运算器的核心是加法器。运算器中还有若干个通用寄存器或累加寄存器,用来暂存操作数并存放运算结果。寄存器的存取速度比存储器的存放速度快很多。关于寄存器,我们在后面介绍CPU的时候再认识。
1.1.1.4 控制器
控制器是整个计算机的指挥中心,它的主要功能是按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊的自动工作。
控制器从主存中逐条地读取出指令进行分析,根据指令的不同来安排操作顺序,向各部件发出相应的操作信号,控制它们执行指令所规定的任务。
控制器中包括一些专用的寄存器。
在计算机的硬件构成中,关于CPU我们讲解到这里也就可以了,详细的CPU认识,我们以后在花时间来讲解。
1.1.2 输入设备
输入设备的任务是把人们编好的程序和原始数据送到计算机中去,并且将他们转换成计算机内存所能识别和接受的信息方式。
安输入信息的形态可分为字符(包括汉字)输入、图形输入、图像输入及语言输入等。目前,常见的输入设备有:键盘、鼠标、扫描仪等。辅助存储器(磁盘、磁带)也可以看作输入设备。另外,自动控制和检测系统中使用的模数(A/D)转换装置也是一种输入设备。
1.1.3 输出设备
输出设备的任务是将计算机的处理结果以人或其他设备所能接受的形式送出计算机。
目前最常用的输出设备是打印机和显示器。辅助存储器也可以看做输出设备。另外,数模(D/A)转换装置也是一种输出设备。
1.1.4 存储器
存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。
在计算机系统中,规模较大的存储器往往分成若干级,称为存储系统。下图所示的是最常见的三级存储系统。
主存储器可由CPU直接访问,存取速度快,但容量较小,一般用来存放当前正在执行的程序和数据。辅助存储器设置在主机外部,它的存储容量大,价格较低,但存储速度较慢,一般用来存放暂时不参与运行的程序和数据。CPU不可以直接访问辅存,辅存中的程序和数据在需要时才传送到主存,因此它是主存的补充和后援。当CPU速度很高时,为了使访问存储器的速度能与CPU的速度相匹配,又在主存和CPU间增设了一级Cache。Cache的存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向CPU提供指令和数据。
实际上,我们日常所使用的个人PC的最常见的输入输出设备就是磁盘了,通过将磁盘中的数据读入主存储器然后交由CPU处理,处理完后的数据结果仍然返回主存储器,然后输出到相应的输出设备。
1.1.5 接口设备
单有CPU也无法运作计算机的,所以计算机还需要其他的接口设备才能够实际运作。除了前面稍微提到的输入输出设备,以及CPU与主存储器外,还有什么接口设备呢?其实最重要的接口设备是主板!因为主板负责将所有的设备通通连接在一起,让所有的设备能够进行协调与沟通。而主板上面最重要的组件就是主板芯片组!这个芯片组可以将所有的设备汇集在一起!
其他重要的设备还有:
- 储存设备:包括硬盘、软盘、光盘、磁带等;
- 显示设备:显示适配器对于3D游戏来说是非常重要的一环,他与显示的精致度、色彩与分辨率都有关系;
- 网络装置:网络成为生活不可分割的一部分,所以网卡对于计算机也是相当重要的!没有网络的计算机就好像没有眼睛一样,缺少了看世界的机会。
了解了计算机的各种接口,我们下面了解一下各组件的相关关系,也就是计算机是如何运作的。
1.2 运作流程
我们思考一个问题假设计算机是一个人,那么它的每个组件对应人类的什么部位呢?如下图:
- CPU:人的大脑,每个人会做的事情都不一样(微指令集的不同),但人所有的活动却都是通过大脑来判断和控制身体各部分完成的。
- 内存==脑袋中的记录区块:在实际活动中,我们的大脑能够将外界的活动暂时记录起来,提供CPU来进行判断。
- 硬盘==大脑中的记忆区块:将重要的数据存储起来,以便将来再次调用。对比上面我们发现记录和记忆,在这里我们要区别来,记录我们可以看做是缓存等待大脑处理,记忆可以看做是对以前的现在的数据的记录。
- 主板==神经系统:像人类的神经中枢一样,将所有重要的组将都连接起来,包括手脚的活动都是大脑发布命令后,通过神经(主板)传输给手脚来进行活动。
- 各项接口设备==人体与外界通信的手、脚、皮肤、眼睛等;就好像手脚一般,是人体与外界互动的关键部位。
- 显卡==脑袋中的影像:将来自眼睛的刺激装换成影像在脑袋中显现,所以显卡显示的数据也是CPU控制的。文件==》内存---》CPU---》内存----》显卡------》输出
- 电源(Power)==心脏:所有的组件要能运作,得要有足够的电力供给才行。这就好像心脏一样,如果心脏不跳动了,人就嗝屁了,电脑也是如果没有电源,那也就是一堆垃圾,什么作用都没有。
从上面的关系图中,我们知道整个活动中最重要的就是脑袋,而脑袋中与当前正在进行的工作有关的就是CPU与内存了。任何外界活动都必须由脑袋中的内存记录起来,然后交给脑袋中的CPU依据这些数据进行判断后,再发布命令给各个接口设备。如果需要过去的经验,那么就到过去的经验区块(硬盘)中读取。用计算机来说,对数据进行处理就一定会将数据先加载到内存,然后CPU处理,处理结果返回内存,然后才会交给其它接口进行处理。