目录
一、电脑硬件的五大单元
二、一切设计的起点:CPU 的架构
三、其他单元的设备
四、运行流程
五、电脑的分类
六、电脑上面常用的计算单位(容量、速度等)
操作系统跟硬件有相当程度的关联性,所以,如果不了解一下计算机概论,要很快地了解 Linux 的概念是有点难度的。
计算机:接受用户输入的命令与数据,经由中央处理器的算数与逻辑单元运算处理后,产生或存储有用的信息。因此,只要有输入设备(不管是键盘还是触摸屏)及输出设备(例如电脑屏幕或直接由打印机打印出来),让你可以输入数据使该机器产生信息的,那就是一台计算机了。
根据计算机的定义,一般商店用的简易型加减乘除计算器、打电话用的手机、开车时用的卫星定位系统、取款用的提款机、上课会使用的台式电脑、外出可能会带的笔记本电脑,还有平板电脑、智能手机、单板电脑、智能手表、智能穿戴式电脑等等都是计算机。
那么计算机主要的组成组件是什么呢?下面我们以常见的个人电脑或服务器工作站主机来作说明。
一、电脑硬件的五大单元
关于电脑的硬件组成部分,其实你可以观察台式电脑来分析一下,依外观来说主要可以分为以下三个部分:
-
输入单元:包括键盘、鼠标、读卡器、扫描仪、手写板、触摸屏等;
-
主机部分:这个就是系统单元,被主机机箱保护着,里面含有一堆板子、CPU 与内存等;
-
输出单元:例如屏幕、打印机等。
我们主要通过输入设备,如鼠标与键盘,将一些数据输入到主机里面,然后再由主机处理成图表或文章等信息后,将结果传输到输出设备,如屏幕或打印机上面。那主机里面含有什么组件呢?如果你曾经拆开过电脑主机机箱(包括拆开你的智能手机也一样),会发现其实主机里面最重要的就是一块主板,上面安插了中央处理器(CPU)以及内存、硬盘(或存储卡),还有一些适配卡设备而已。当然大部分智能手机是将这些组件直接焊接再主板上面而不是插卡。
整台主机的重点在于中央处理器(Central Processing Unit,CPU),CPU 为一个具有特定功能的芯片,里面含有微指令集,如果你想要让主机进行什么特殊的功能,就得参考这颗 CPU 是否有相关内置的微指令集才可以。由于 CPU 的工作主要在于管理与运算,因此在 CPU 内又可分为两个主要单元,分别是:算数逻辑单元与控制单元。其中算数逻辑单元主要负责程序运算与逻辑判断,控制单元则主要在协调各周边组件与各单元间的工作。
既然 CPU 的重点是在进行运算与判断,那么要被运算与判断的数据是从哪里来的?CPU 读取的数据都是从内存中来的,内存中的数据则是从输入单元所传输进来的,而 CPU 处理完毕的数据也必须要先写回内存中,最后数据才从内存传输到输出单元。
为什么我们都会说,要加快系统性能,通常将内存容量加大就可以获得相当好的效果?如同下图以及上面的说明,因为所有的数据都要经过内存的传输,所以内存的容量如果太小,数据读写性能就不足,对性能的影响相当大,尤其针对 Linux 最为服务器的环境下。
综合上面所说的,我们知道其实电脑是由几个单元所组成的,包括输入单元、输出单元、CPU 内部的控制单元、算数逻辑单元与内存五大部分,它们的关联性如下图所示:
上图中的 "系统单元" 其实指的就是电脑机箱内的主要组件,而重点在于 CPU 与内存。特别要看的是实现部分的传输方向,基本上数据都是流经内存再转出去的,至于数据会流进/流出内存则是 CPU 所发出的命令控制。而 CPU 实际要处理的数据则完全来自于内存(不管是程序还是一般文件)。这是个很重要的概念,这也是为什么当你的内存不足时,系统的性能就很糟糕,也是为什么现在人们买智能手机时,对于可用内存的要求都很高的原因。
由上图我们也能知道,所有单元都是由 CPU 内部的控制单元来负责协调的,因此 CPU 是整个电脑系统的最重要部分!那么目前世界上有哪些主流的 CPU 呢?
二、一切设计的起点:CPU 的架构
如前面说过的,CPU 其实内部已经含有一些微指令,我们所使用的软件都要经过 CPU 内部的微指令集来完成。那这些指令集的设计又主要被分为两种设计理念,这就是目前世界上常见到的两种主要 CPU 架构,分别是:
-
精简指令集(Reduced Instruction Set Computer,RISC):
这种 CPU 的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的操作也很简单,指令的执行性能较佳;但是若要做复杂的事情,就要由多个指令来完成。常见的 RISC 微指令集 CPU 主要例如甲骨文(Oracle)公司的 SPARC 系列、IBM 公司的 Power Architecture(包括 PowerPC)系列与 ARM 公司的 ARM CPU 系列等。
在应用方面,SPARC CPU 的电脑常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的电脑架构;至于 PowerPC 架构的应用上,例如索尼(Sony)公司出产的 Play Station 3(PS3)就是使用 PowerPC 架构的 Cell 处理器;那 ARM 公司的 的 ARM 呢?你常使用的各品牌手机、PDA、导航系统、网络设备(交换器、路由器等)等,几乎都是使用 ARM 架构的 CPU。老实说,目前世界上使用最广的 CPU 可能就是 ARM 这种架构。
-
复杂指令集(Complex Instruction Set Computer,CISC):
与 RISC 不同,CISC 在微指令集的每个小指令可以执行一些较低级的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条别指令可以处理的工作较为丰富。常见的 CISC 微指令集 CPU 主要有 AMD、Intel、VIA 等的 x86 架构的 CPU。
由于 AMD、Intel、VIA 所开发出来的 x86 架构 CPU 被大量使用于个人电脑(Personal Computer),因此个人电脑常被称为 x86 架构电脑。那为何称为 x86 架构?这是因为最早的那块 Intel 研发出来的 CPU 代号称为 8086,后来依此架构又开发出 80286、80386 等,因此这种架构的 CPU 就被称为 x86 架构了。
在 2003 年以前由 Intel 所开发的 x86 架构 CPU 由 8 位升级到 16、32 位,后来 AMD 依此架构修改新一代的 CPU 为 64 位,为了区分两者的差异,因此 64 位的个人电脑 CPU 又被统称为 x86_64 的架构。
所谓的位指的是 CPU 一次数据读取的最大量,64 位 CPU 代表 CPU 一次可以读写 64 位数据,32 位 CPU 则是 CPU 一次可以读写 32 位数据。
那么不同的 x86 架构的 CPU 有什么差异呢?除了 CPU 的整体结构(如第二层高速缓存、每次运行可执行的指令数等)之外,主要是在于微指令集的不同。
三、其他单元的设备
五大单元中最重要的控制、算数逻辑被整合到 CPU 的封装中,但系统当然不可能只有 CPU。那其他三个重要电脑单元的设备还有哪些?其实在主机机箱内的设备大多是通过主板(main board)连接在一块,主板上面有连接沟通所有设备的芯片组,这个芯片组可以将所有单元的设备连接起来,好让 CPU 可以对这些设备下达命令。其他单元的重要设备主要有:
-
系统单元:包括 CPU 与内存及主板相关组件。而主板上面其实还有很多的硬件接口与相关的适配卡,包括网卡、磁盘阵列卡、还有显卡等。尤其是显卡,这东西对于玩 3D 游戏来说是非常重要的一环,它与显示的精细度、色彩与分辨率都有关系。
-
存储单元:包括内存(main memory,RAM)与辅助存储,其中辅助存储其实就是大家常听到的 "存储设备",包括硬盘、软盘、光盘、磁带等。
-
输入、输出单元:同时覆盖输入输出的设备最常见的大概就是触摸屏了。至于单纯的输入设备包括前面提到的键盘鼠标之外,目前的体感设备也是重要的输入设备。至于输出设备,除了屏幕外,打印机、扬声器、HDMI 电视、投影仪、蓝牙耳机等都算。
四、运行流程
假设电脑是一个人体,那么每个组件对应到哪个地方?
-
CPU = 脑袋:每个人会做的事情都不一样(微指令集的差异),但主要都是通过脑袋来判断与控制身体各部分的活动。
-
内存 = 脑袋中存放正在被思考的数据的区块:在实际活动过程中,我们的脑袋需要有外界刺激的数据(例如光线、环境、语言等)来分析,那这些互动数据暂时存放的地方就是内存,主要是用来提供给脑袋判断用的信息。
-
硬盘 = 脑袋中存放回忆的记忆区块:跟刚刚的内存不同,内存是提供脑袋目前要思考与处理的信息,但是有些生活琐事或其他没有要立刻处理的事情,就当成回忆先放置到脑袋的记忆深处吧!那就是硬盘!主要目的是将重要的数据记录起来,以便未来将这些重要的数据(经验)再次使用。
-
主板 = 神经系统:好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是脑袋发布命令后,通过神经(主板)传导给手脚来进行活动。
-
各项周边设备 = 人体与外界沟通的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的重要关键。
-
显卡 = 脑袋中的影像:将来自眼睛的刺激转成影像后在脑袋中呈现,所以显卡所产生的数据源也是 CPU 控制的。
-
主机电源(Power)= 心脏:所有的组件要能运行得要有足够的电力供给才行。这电力供给就好像心脏一样,如果心脏不够给力,那么全身也就无法动弹得。心脏不稳定呢?那你的身体当然可能就断断续续地不稳定了。
由这样的关系图当中,我们知道整个活动中最重要的就是脑袋。而脑袋当中与现在正在进行的工作有关的就是 CPU 与内存。任何外界的接触都必须要由脑袋中的内存记录下来,然后脑袋中的 CPU 依据这些数据进行判断后,再发布命令给各个周边设备。如果需要用到过去的经验,就得从过去的经验(硬盘)当中读取。
五、电脑的分类
电脑的分类非常多样,如果以电脑的复杂度与计算能力进行分类的话,主要可以分为以下这几类:
-
超级计算机(Supercomputer):超级计算机是运行速度最快的电脑,但是它的维护、操作费用也很高。主要是用于需要有高速计算的项目中,例如:国防军事、气象预测、太空科技,用在仿真的领域也比较多。
-
大型计算机(Mainframe Computer):大型计算机通常也具有数个高速的 CPU,功能上虽不及超级计算机,但也可用来处理大量数据与复杂的计算,例如:大型企业的主机、全国性的证券交易所等每天需要处理数百万条数据的企业机构,或者是大型企业的数据库服务器等。
-
迷你电脑(Minicomputer):迷你电脑仍保有大型计算机同时支持多使用者的特性,但是主机可以放在一般工作环境中,不必像前两个大型计算机需要特殊的空调机房。通常用来作为科学研究、工程分析与工厂的流程管理等。
-
工作站(Workstation):工作站的价格又比迷你电脑便宜许多,是针对特殊用途而设计的电脑。在个人电脑的性能还没有提升到目前的状况之前,工作站电脑的性能/性价比是所有电脑当中较佳的,因此在学术研究与工程分析方面相当常见。
-
微电脑(Microcomputer):个人电脑就属于这部分的电脑分类,也是我们本章主要探讨的目标。体积最小,价格最低,但功能还是五脏俱全的。大致又可分为桌上型、笔记型等。
若光以性能来来说,目前的个人电脑性能已经最够快了,甚至已经比工作站等级以上的电脑运算速度还要快,但是工作站电脑强调的是稳定不死机,并且计算过程要完全正确,因此工作站等级以上的电脑在设计时的考虑与个人电脑并不相同,这也是为什么工作站等级以上的电脑售价比较贵的原因。
六、电脑上面常用的计算单位(容量、速度等)
电脑的运算能力除了 CPU 微指令集设计的优劣之外,主要还是由速度来决定的,至于存放在电脑存储设备当中的数据也是有单位的。
-
容量单位:
电脑对数据的判断主要依据有没有通电来记录信息,所以理论上对于每一个记录而言,它只认识 0 与 1 而已。0/1 这个二进制的单位我们称为位(bit,亦称比特),但位实在太小了,所以在存储数据时每份简单的数据都会使用 8 个位的大小来记录,因此定义出了字节(Byte)这个单位,它们的关系为:1 字节 = 8 位。
不过同样的,字节还是太小了,在较大的容量情况下,使用字节相当不容易判断数据的大小,所以后来就有了一些常见的简化单位表达式,例如 K 表示 1024,M 表示 1024K 等,而这些单位在不同的进位制下有不同的数值表示,下面就列出了常见的单位与进位制对应:
进位制 Kilo Mega Giga Tera Peta Exa Zetta 二进制 1024 1024K 1024M 1024G 1024T 1024P 1024E 十进制 1000 1000K 1000M 1000G 1000T 1000P 1000E 一般来说,数据容量使用的是二进制的方式,所以 1GB 的文件大小实际上为:1024*1024*1024B;速度单位则常使用十进制,例如 1GHz 就是 1000*1000*1000Hz。
-
速度单位:
CPU 的运算速度常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是 "次数/秒" 的意思。而在网络传输方面,由于网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits per second,亦即每秒多少 Mbit。