如何学?
实践范例,每个命令代表的意义。man在线文档
什么是计算机:
只要有输入输出,使得输入的数据能够产生信息(中央处理器),就是计算机了。
计算机硬件五大单元
依外观来说这家伙主要可分为三部分,分别是: |
|
|
|
重点在于主机。其内部最重要的就是一块主板,上面安插了中央处理器(Central Processing Unit, CPU),以及内存,适配卡。
CPU为一个具有特定功能的芯片,里头含有微指令集。如果你想要让主机进行什么特异的功能,那么就得参考CPU是否有相关内置的微指令集才可以。
CPU主要工作就是管理和运算,所以又可分为算术逻辑单元(程序运算和逻辑判断)和控制单元(协调各个组件和单元之间工作)。
既然 CPU 的重点是在进行运算与判断,那么要被运算与判断的数据是从哪里来的? CPU 读取的数 据都是从主存储器来的! 主存储器内的数据则是从输入单元所传输进来!而 CPU 处理完毕的数据
也必须要先写回主存储器中,最后数据才从主存储器传输到输出单元。
为什么我们都会说,要加快系统效能,通常将内存容量加大就可以获得相当好的成效? 如同下图以及上面的说明,因为所有的数据都要经过主存储器的传输, 所以内存的容量如果太小,数据快取就不
足~影响效能相当大啊!尤其针对 Linux 作为服务器的环境下!
综合上面所说的,我们会知道其实计算机是由几个单元所组成的,包括输入单元、输出单元、CPU 内 部的控制单元、算数逻辑单元与主存储器五大部分
|
上面图标中的『系统单元』其实指的就是计算机机壳内的主要组件,而重点在于 CPU 与主存储器。
特别要看的是实线部分的传输方向,基本上数据都是流经过主存储器再转出去的! 至于数据会流进/
流出内存则是 CPU 所发布的控制命令!而 CPU 实际要处理的资料则完全来自于主存储器 (不管是 程序还是一般文件数据)!这是个很重要的概念喔! 这也是为什么当你的内存不足时,系统的效能就 很糟糕!也是为什么现在人们买智能型手机时,对于可用内存的要求都很高的原因!
而由上面的图示我们也能知道,所有的单元都是由 CPU 内部的控制单元来负责协调的,因此 CPU 是整个计算机系统的最重要部分! 那么目前世界上有哪些主流的 CPU 呢?是否刚刚我们谈到的硬
件内全部都是相同的 CPU 架构呢?底下我们就来谈一谈。
一切设计的起点: CPU 的架构
如前面说过的,CPU 其实内部已经含有一些微指令,我们所使用的软件都要经过 CPU 内部的微指 令集来达成才行。 那这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两
种主要 CPU 架构, 分别是:精简指令集 (RISC) 与复杂指令集 (CISC) 系统。底下我们就来谈谈 这两种不同 CPU 架构的差异啰!
主要有两种类型:
1、精简指令集(Reduced Instruction Set Computing, RISC)
常见的有ARM,PowerPC系列等。目前使用最广泛的可能就是ARM。 用于大型工作站。金融体系的服务器等。
特点:微指令集精简,执行时间短。执行性能佳。但是完成的操作比较单纯。对于复杂的需要多个指令来完成。
2、复杂指令集(Complex Instrcution Set Computing)
常见的:Intel,AMD等X86架构的CPU。大量使用在个人计算机
由于 AMD、Intel、VIA 所开发出来的 x86 架构 CPU 被大量使用于个人计算机(Personal computer)用途 上面, 因此,个人计算机常被称为 x86 架构的计算机!那为何称为 x86 架构(注 8)呢? 这是因为最 早的那颗 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 一次可以读写 64bits
这么多的数据,32 位 CPU 则是 CPU 一次只能读取 32 位的意思。 因为 CPU 读取数据量有限制,因此能够从内存 中读写的数据也就有所限制。所以,一般 32 位的 CPU 所能读写的最大数据量,大概就是 4GB 左右
那么不同的 x86 架构的 CPU 有什么差异呢?除了 CPU 的整体结构(如第二层快取、每次运作可执行
的指令数等)之外, 主要是在于微指令集的不同。新的 x86 的 CPU 大多含有很先进的微指令集, 这 些微指令集可以加速多媒体程序的运作,也能够加强虚拟化的效能,而且某些微指令集更能够增加能
源效率, 让 CPU 耗电量降低
其他单元的设备
单有CPU也无法运行计算机的。除了输入输出设备,CPU,内存外还需要接口设备。
最重要的接口设备就是主板。
主板负责将所有的设备连在一起,进行协调和通信。
主板上面最重要的组件就是主板芯片组。 它可以将所有的设备汇集在一起。
其他重要的设备还有:
存储设备:硬盘,光盘
显示设备: 显卡
网络设备:网卡
运作流程
前面说了各个组件,那么各组件之间的关系是啥,就是计算机是如何运行的?
CPU=脑袋瓜子:每个人会作的事情都不一样(微指令集的差异),但主要都是透过脑袋瓜子来进行判断与控 制身体各部分的活动;
主存储器=脑袋中放置正在被思考的数据的区块:在实际活动过程中,我们的脑袋瓜子需要有外界刺激的数 据 (例如光线、环境、语言等) 来分析,那这些互动数据暂时存放的地方就是主存储器,主要是用来提供给 脑袋瓜子判断用的信息。
硬盘=脑袋中放置回忆的记忆区块:跟刚刚的主存储器不同,主存储器是提供脑袋目前要思考与处理的信息, 但是有些生活琐事或其他没有要立刻处理的事情, 就当成回忆先放置到脑袋的记忆深处吧!那就是硬盘!
主要目的是将重要的数据记录起来,以便未来将这些重要的经验再次的使用;
主板=神经系统:好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是脑袋瓜子发布命
令后, 透过神经(主板)传导给手脚来进行活动啊!
各项接口设备=人体与外界沟通的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的重要关键!
显示适配器=脑袋中的影像:将来自眼睛的刺激转成影像后在脑袋中呈现,所以显示适配器所产生的数据源 也是 CPU 控制的。
电源供应器 (Power)=心脏:所有的组件要能运作得要有足够的电力供给才行!这电力供给就好像心脏一样,
如果心脏不够力, 那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续的~不稳定!
由这样的关系图当中,我们知道整个活动中最重要的就是脑袋瓜子! 而脑袋瓜子当中与现在正在进
行的工作有关的就是 CPU 与主存储器!任何外界的接触都必须要由脑袋瓜子中的主存储器记录下来,
然后给脑袋中的 CPU 依据这些数据进行判断后,再发布命令给各个接口设备!如果需要用到过去的 经验, 就得由过去的经验(硬盘)当中读取啰!
也就是说,整个人体最重要的地方就是脑袋瓜子,同样的,整部主机当中最重要的就是 CPU 与主存 储器, 而 CPU 的数据源通通来自于主存储器,如果要由过去的经验来判断事情时, 也要将经验(硬 盘)挪到目前的记忆(主存储器)当中,再交由 CPU 来判断
计算机用途的分类
如果以计算机的复杂度与运算能力进行分类的话,
主要可以分为这几类:
超级计算机(Supercomputer) 超级计算机是运作速度最快的计算机,但是他的维护、操作费用也最高!主要是用于需要有高速计算的计
划中。
大型计算机(Mainframe Computer)
大型计算机通常也具有数个高速的 CPU,功能上虽不及超级计算机,但也可用来处理大量资料与复杂的运 算。 例如大型企业的主机、全国性的证券交易所等每天需要处理数百万笔数据的企业机构, 或者是大型 企业的数据库服务器等等。
迷你计算机(Minicomputer) 迷你计算机仍保有大型计算机同时支持多用户的特性,但是主机可以放在一般作业场所, 不必像前两个大 型计算机需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。
工作站(Workstation) 工作站的价格又比迷你计算机便宜许多,是针对特殊用途而设计的计算机。在个人计算机的效能还没有提
升到目前的状况之前, 工作站计算机的性能/价格比是所有计算机当中较佳的,因此在学术研究与工程分析 方面相当常见。
微电脑(Microcomputer) 个人计算机就属于这部份的计算机分类,也是我们本章主要探讨的目标!体积最小,价格最低,但功能还 是五脏俱全的! 大致又可分为桌上型、笔记型等等。
若光以效能来说,目前的个人计算机效能已经够快了,甚至已经比工作站等级以上的计算机指令周期
还要快! 但是工作站计算机强调的是稳定不当机,并且运算过程要完全正确,因此工作站以上等级 的计算机在设计时的考虑与个人计算机并不相同啦! 这也是为啥工作站等级以上的计算机售价较贵 的原因。
计算机上面常用的计算单位 (容量、速度等)
计算机的运算能力除了 CPU 微指令集设计的优劣之外,但主要还是由速度来决定的。至于存放在计
算机储存设备当中的数据容量也是有单位的
容量单位
计算机对数据的判断主要依据有没有通电来记录信息,所以理论上对于每一个纪录单位而言,它只认
识 0 与 1 而已。0/1 这个二进制的的单位我们称为 bit。 但 bit 实在太小了,所以在储存数据时每 份简单的数据都会使用到 8 个 bits 的大小来记录,因此定义出 byte 这个单位,他们的关系为:
1 Byte = 8 bits
不过同样的,Byte 还是太小了,在较大的容量情况下,使用 byte 相当不容易判断数据的大小,举
例来说,1000000 bytes 这样的显示方式你能够看得出有几个零吗?所以后来就有一些常见的简化单 位表示法,例如 K 代表 1024 byte,M 代表 1024K 等。 而这些单位在不同的进位制下有不同的数 值表示,底下就列出常见的单位与进位制对应:
一般来说,文件容量使用的是二进制的方式,所以 1 GBytes 的文件大小实际上为:1024x1024x1024 Bytes 这么大! 速度单位则常使用十进制,例如 1GHz 就是 1000x1000x1000 Hz 的意思。
什么是『进位』呢?以人类最常用的十进制为例,每个『位置』上面最多仅能有
一个数值,这个数值不可以比 9 还要大!那比 9 还大怎办? 就用『第二个位置来装一个新的 1 』!所以, 9 还 是只有一个位置, 10 则是用了两个位置了。好了那如果是 16 进位怎办?由于每个位置只能出现一个数值, 但 是数字仅有 0~9 而已啊!因此 16 进位中,就以 A 代表 10 的意思,以 B 代表 11 的意思,所以 16 进位就是
0~9, a, b, c, d, e, f,有没有看到, 『每个位置最多还是只有一个数值而已』喔!好了,那回来谈谈二进制。因为每 个位置只能有 0, 1 而已,不能出现 2 (逢 2 进一位) 啦!这样了解乎?
速度单位
CPU 的指令周期常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是秒分之一。而在网络传 输方面,由于网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits per second,亦即 是每秒多少 Mbit。举例来说,大家常听到的 20M/5M 光世代传输速度,如果转成文件容量的 byte 时, 其实理论最大传输值为:每秒 2.5Mbyte/ 每秒 625Kbyte 的下载/上传速度喔!
例题:
假设你今天购买了 500GB 的硬盘一颗,但是格式化完毕后却只剩下 460GB 左右的容量,这是什么原因?
答:
因为一般硬盘制造商会使用十进制的单位,所以 500GByte 代表为 500*1000*1000*1000Byte 之意。 转成文件的容 量单位时使用二进制(1024 为底),所以就成为 466GB 左右的容量了。
硬盘厂商并非要骗人,只是因为硬盘的最小物理量为 512Bytes,最小的组成单位为扇区(sector), 通常硬盘容量的 计算采用『多少个 sector』,所以才会使用十进制来处理的。相关的硬盘信息在这一章后面会提到的!
后续待补充