计算机的组成主要分为以下几个部分:
- 输入单元:键盘、鼠标、读卡器、扫描机等等由外部设备向计算机内部输入信息的设备单元。
- 主机部分:主机部分通常叫做系统单元,位于主机机箱内部,主要包括 CPU、内存、显卡、硬盘、电源等设备。
- 输出单元:计算机向外部世界输出信息的设备单元,包括显示器、打印机等。
理论上,主机的运行是不需要输入单元和输出单元的,但是计算机最终要为人类服务,所以没有输入单元和输出单元,是无法为我们提供帮助的,没有输入单元和输出单元的计算机也没有任何价值。
不过计算机的核心就是位于主机部分的硬件设备,如果你拆开过机箱就会发现,主机内部其实就是一块主板,主板上安插了各种硬件设备,CPU、内存、硬盘等都安装在主板上面。
整部主机最重要的就是 CPU,CPU 也叫做中央处理器,CPU 的内部有非常多的芯片,还有一种称为微指令集的东西,这些微指令集可以做各种操作,不同的 CPU 型号能做的操作也不同。CPU 的主要工作就是运算和指令处理,分管这两个功能的单元分别被称为算术逻辑单元和控制单元。所以说 CPU 的主要工作就是获取外部提供的数据,进行运算、指令处理后再传输给外部设备。
那么 CPU 获取的信息究竟是从哪来的呢?
由内存提供。而内存提供的信息和数据则是由输入单元通过总线放入内存中的。CPU 在执行完运算后,也需要把数据写回到内存中,由内存传输到输出单元,经过输出设备处理后让我们使用。
CPU 架构
CPU 架构是一切设计的起点,我们使用的软件都要通过 CPU 内部的微指令进行处理后才能发挥其作用。而这些微指令又被分为两种设计:精简指令集 ( RISC ) 和 复杂指令集 ( CISC ) ,我们来讨论一下他们的差异。
- 精简指令集 RISC
精简指令集顾名思义就是微指令集较为精简,单个微指令无法处理太过复杂的操作,完成的动作也比较单一;不过此类指令集处理性能比较好,但是要做更复杂的事情,则需要多个指令配合一起完成。
比较常见的 RISC 有 PowerPC、ARM、SPARC等,基于这种架构的处理器在智能手机、平板电脑、笔记本电脑、游戏机和台式机以及越来越多的其他智能设备中很常见。
- 复杂指令集 CISC
与 RISC 不同的是,CISC 是一种被称为复杂指令集的架构,CISC 在每个微指令集可以继续划分,指令集中的每个指令可以单独完成低阶操作整个指令集却能够处理复杂的工作,这种指令集架构相对复杂,指令数目众多,而且指令执行的周期比较长。
比较常见的复杂指令集有 AMD、INTEL、VIA ,最常见的就是 x86 指令集架构,常用于个人电脑,因此个人电脑也被称为 x86 指令集架构的电脑。x86 架构其实指的是一个家族,也就是 8086 、80286 和 80386 CPU 代号。
我们知道,计算机中的各种设备单元都通过主板连接在一起,主板中有一块芯片组,这块芯片组用于链接所有设备单元,它们统一由 CPU 发送指令,协同配合工作。
计算机的各种硬件设备和我们人类的躯体非常相似:计算机的 CPU 就如同人类的大脑,由大脑来控制身体的各种动作;内存就如同我们脑袋中的记忆体,这部分用于给大脑提供信息,驱使大脑对信息进行分析,做出判断。
记忆体分为两种,一种是我们当前正在思考的记忆区块,一种是我们当前不太需要,但是需要时可以提取的记忆区块,可能不太好懂,举个简单的例子:我们工作的时候不会想着今天被子叠没叠吧?我们吃饭的时候不会想着马桶冲没冲吧,因为没人会给自己找不自在。这就是记忆深处的区块,这也是硬盘的主要功能。
主板相当于是神经系统,神经系统会有各种突触,受到刺激之后由大脑做出反应,主板中也会有各种元器件,收到外部信息后由 CPU 做出处理;人体的四肢就是各种输入输出设备,这个很好理解;显卡就像是大脑中的视觉神经,想象力是一个非常棒的东西;电源就是心脏,供血的,电流就像是血液,没血不行,电脑没电也不行。
所以其实计算机也是人的一种抽象。
计算机用途分类
我们能够接触到的计算机分类比较少,最常见的就是个人计算机,其他计算机类型可能接触比较少。这里和大家聊一下计算机都分为几种(按照电脑的复杂度进行分类)
- 超级计算机(Super Computer):这种计算机一般都是国家技术中心所使用的,维护成本非常高,主要用于超高速计算,比如国防军事,仿真等一些国家型项目使用的。
- 大型计算机(Mainframe Computer):大型计算机虽然计算速度没有超级计算机那么快,但是也可以说是计算机中独一档的存在,一般用在地区型项目,国企项目,证券交易所等。
- 小型计算机(Mini Computer):小型计算机是一类多用户计算机,通常用在中小企业,实验室,相比于大型计算机,小型计算机体积更小。
- 微型计算机(Micro Computer):微型计算机一般常指 20 世纪后期的计算机,这也是我们经常使用的电脑的一类统称,除了个人计算机外,还包括车载电脑,智能手机,掌上电脑等。
硬件杂谈
由于计算机中的主板的位置很重要,通常主板上的芯片组是影响性能的主要因素!计算机早期的芯片组分为南桥和北桥,北桥负责链接速度较快的 CPU、内存和显卡之间的接口。南桥负责链接速度较慢的硬盘、USB、网卡等等。不过现代的计算机都会把 CPU 和北桥融合起来,所以北桥一般是看不见的。
我们上面说到了不同的 CPU 具有不同的微指令集,不同的微指令集其指令所执行的操作是不同的,并且处理效率也不一样,不过,不同的 CPU 除了指令集架构不同外,它们的 CPU 频率也不一样。
CPU 频率就是 CPU 一个周期可以执行的指令数量,拿跑步举例子来说就是这个人在 10s 内能跑多少米,他的速度是多少。CPU 频率以 GHz(千兆赫兹)为单位,下面是三种不同频率的 CPU ,你感受一下。
所以频率越高也就意味着这个 CPU 的处理效率更高,单位时间内能做更多的事情,也就更受人们待见,同样造价也就更贵。但是这里要注意一点,不能和不同的 CPU 指令集之间比 CPU 效率,因为指令集不同是无法进行比较的。
上面这些知识点想必大部分程序员应该都知道,确切的应该说懂点电脑的人都懂,但是下面这些知识你可能,嘿嘿嘿,没听过。
CPU 的工作频率会分为外频和倍频,外频指的是 CPU 和外部设备元件进行数据传输时的速度,倍频指的是 CPU 内部用来加速工作效能的一个倍数,外频和倍频的乘积才是 CPU 频率速度。
现在组装电脑动不动就搞什么超频,超频是啥?我之前理解的意思就是说这个 CPU 能够发挥到最大性能,但是好像有点太含糊,今天花了点时间理解了一下。
超频是一种增加硬件工作频率的操作,超频不单单用在 CPU,叫做 CPU 超频,还可以用在 GPU 上,叫做 GPU 超频。使用超频的确会使每秒执行更多的操作,压榨 CPU/GPU ,发挥极致性能,但是也会产生额外的热量,需要更强大的冷却手段。
(我下面通常以 CPU 来进行说明,GPU 也适用)
CPU 通常在出厂时会设置以某个最大的速度运行,如果你在 CPU 冷却的情况下运行,不会产生任何问题。但是如果你不想限制 CPU 速度,使其发挥最大性能,那么你需要在 BIOS 中设置更高的频率来提高 CPU 工作效率。但是如果你的冷却装置不太行,可能会造成屏幕蓝屏或者重新启动,容易造成物理损坏。
但是超频在某些情况下不是你想超频就能超频的。许多主板和 Intel CPU 都带有锁定的乘法器,防止你修改它们的值进行超频操作。不过 Intel 更多的是未带有锁定乘法器的 CPU,目标是希望超频并从 CPU 中榨取极致性能,嗯,我只能说,这很英特尔。一般 K 系列的都是可以超频的。
这里给大家推荐一款工具, CPU-Z ,能够检测自己的电脑情况(为了方便大家下载,我已经放在了阿里云盘中,你可以在本公众号后台回复 "CPUZ" 即可拿到链接进行下载)
不过现在某些 CPU 都会自动的帮你进行超频了,你有可能会发现 CPU 频率一直在变动,这个不懂担心,没坏。
除了超频这种性能提升之外,还有一种称为超线程 ( Hyper-Threading, HT ) 的机制。
这是一种软件方面的性能提升,因为我们现在使用的 CPU 基本上都是双核以上,CPU 在执行任务的同时,也会等待内存或者缓存传过来的数据(因为 CPU 比内存快太多了), 所以 CPU 有很多闲置的时间,为了提高 CPU 的利用率,减少其划水的时间,后面有了多线程,不过注意一点,这个多线程和超线程可不一样。
那到底超线程是啥,痛快点解释不行吗?
当我们有大量的任务需要执行时,使用多线程技术对于单核来说只是提升了它的执行效率,但是没有提升并行性,在某个时刻我们看到的 CPU 还是只能执行一个程序,因为还是一个核,这其实是一种假并行。但是超线程可不一样了,它可以同时执行两个程序,这如何实现的呢?
真实情况是 CPU 每个核还是单独的那个,只不过它会给你抽象出来一个核,所以说超线程就是把物理内核抽象为虚拟内核的过程,超线程允许内核同时做两件事情,它就是把 CPU 内部的一些寄存器分为两块,让程序运行各块的寄存器,超线程不经操作系统的多任务切换。
上面说到 CPU 的所有数据都是来自主存储器,也叫做内存,不管是什么数据,都需要读入内存之后才能让 CPU 使用。我们用的内存组件主要是 动态随机存取内存 ( DRAM ) ,随机存取只能在通电时使用,断电后数据就会直接消失。
DRAM 也更新了好几代了,主要分为 SDRAM 和 DDR SDRAM 两种,这两种内存的差别除了胶位和工作电压上的不同之外,DDR 用的是类似 CPU 倍频的技术,能够达到双倍数据传输的速度,也就是说能够传输双倍的数据,而且传输效率方面也比 SDRAM 要好,所以新一代的个人计算机一般用的都是 DDR。
DDR SDRAM 又依据技术的发展,分为 DDR、DDR2、DDR3、DDR4 这几代,DDR2 的频率是 4 倍,DDR3 的频率是 8 倍,目前我们使用的是 DDR4 ,可以够到 16 倍,效率杠杠的。
除了频率这一因素之外,内存容量也是很重要的一个因素,由于所有的数据都需要装载到内存中才能运行,所以如果内存容量不够大的话可能会导致应用程序无法运行,这时候有同学会说,内存不是会不断的进行换入换出么,所以内存只要有一定空间就可以了。确实是这样,不过这样频繁的换入换出,你电脑的运行效率也不会很高,所以为啥 2GB 的内存跑的就不如 4 GB 的快了,因为换入换出也是需要时间的!
除了容量之外,还应该考虑的一个因素是总线宽度,总线宽度就是总线一次能够传输的数据量是多少。一般总线宽度是 64 位,为了加大一次能够传输的数据量,厂商通常将两个主存储器汇总在一块,如果一个内存是 64 位,那么另外一个也是 64 位,这样加起来就能够传输 128 位数据了,而且最好内存的型号也一样。
主板上的内存插槽一般都是两两成对的,这就是为了双通道的设计而来的,所以内存条插的时候为什么讲究 1、3 和 2、4 这么插了。
RAM 一个最显著的特征就是电源断电后,内存中的信息会被清空,这样可不太行,所以计算机内部还有一种断电之后还能够保存数据的元件,这就是 ROM ( Read-only memory ) 。一个最常见的使用 ROM 的地方就是存放 BIOS 程序的。BIOS 是一套程序,它被写死到主板上面,主板上面存储 BIOS 的芯片即使断电也能保存数据,这就是使用了 ROM。
说完内存相关,我们再来说一下硬盘。
这是一个比较清晰的硬盘构造图,可以看到硬盘盒中由许许多多圆形磁盘、机械臂、磁盘读取头、马达所构成。实际的数据都是写在磁盘中,由马达负责驱动机械手臂,然后让机械臂中的磁盘读取头对圆形磁盘进行读写。这一个个的圆形磁盘就是存储数据的地方,其内部构造如下所示。
磁盘是通过其物理表面划分成多个空间来使用的。划分的方式有两种:可变长方式和扇区方式。前者是将物理结构划分成长度可变的空间,后者是将磁盘结构划分为固定长度的空间。一般 Windows 所使用的硬盘和软盘都是使用扇区这种方式。扇区中,把磁盘表面分成若干个同心圆的空间就是磁道,把磁道按照固定大小的存储空间划分而成的就是扇区,扇区是最小的物理存储单元。通常在读写时,会由外圈向内圈进行读写。
像这种传统的硬盘有个致命的问题,就需要马达驱动对磁盘进行读写,这会造成很严重的磁盘读取延迟(因为你不知道数据是存在哪个扇区的,数据存储的比较分散)。后来有厂商拿闪存(外存的一种,也是非易失性的)造成高容量的设备,外型和硬盘一样,这种磁盘叫做 固态硬盘(Solid State Disk,SSD) ,传统的硬盘叫做 Hard Disk Drive, HDD。
固态硬盘最大的好处就是它没有马达,不需要转动,它具有内存直接读写的特性,没有数据延迟所以读写速度快,不过 SSD 有致命的缺陷就是它会限制写入次数,因此一般 SSD 用两年就差不多了,所以存放数据时,需要考虑到备份,要使用 RAID 机制防止 SSD 的损毁。
初学者基本常识基础计算机电脑