计算机体系结构离不开三个部分,处理和运算模块、存储模块和通信模块。在单机系统中,对应的是CPU、内存和硬盘、系统总线。

无论是服务器还是PC,架构都是差不多的,只是在每个具体的组件上对性能和稳定性有一些特殊的要求。比如服务器要求稳定,因为服务器要保证7x24服务,而个人电脑强调的是更强的性能,偶尔宕机只需要重启,用户可以接受。一台典型的电脑配置包括几个部分:CPU、内存、硬盘、显卡、主板、北桥(内置内存控制器等模块)、南桥以及供电前期的散热系统。

1、CPU是计算机的核心部件,是计算机系统的核心。主要包括运算器、控制器、寄存器和之间的总线,以及各种缓存和指令集。CPU的主要参数包括主频和多级缓存,以及核心架构,还有制造工艺和核心数量。一般来说,主频越高,单位时间能做的处理越快,早期CPU位宽比较低。现在,位宽是64位。只有64位处理器支持64和32操作系统,而32位处理器只支持32。好在现在几乎所有的CPU都支持64。当然,在同一架构下比较主频是有意义的,否则单纯比较不同架构之间的主频是没有意义的。算术单元将把中间值缓存到多级缓存中。cacheL1~L3,L1很小,但是速度最快,L3第二。当然是越大越好,但是由于其成本高,空间限制,不可能做的太大。由于同一个运算结果经常被多次访问,这样的缓存结构可以大大提高数据访问的命中率,从而大大消除运算和存储的差距。控制器可以有序地协调多个部件的操作,指令集是各种组合操作的原语集合,优化了各种指令的执行效率。有兴趣的可以了解一下管道的概念。目前CPU主要分为两种指令集:简化RISC和复杂CISC。RISC主要由简单指令组成复杂指令,执行效率高。CISC用复杂指令包含尽可能多的常用操作,执行效率较低。现在主流的x86架构是CISC,intel和AMD处理器都是x86架构。更广泛的RISC是IBM的powerPC,用于playstation游戏,或者著名的ARM是RISC,广泛用于智能手机。CPU的制造工艺就是SOC上晶体管逻辑门之间的距离。一般来说,进程是一个数字。这个数字越小意味着越精密,在相同面积下可以放的晶体管越多,相同面积的范围处理能力越强,漏电越低,功耗越低。根据著名的摩尔定律,从20世纪60年代开始,每18个月,相同面积的芯片上的晶体管数量就会增加一倍。当然,这几年摩尔定律的时间周期在延长,因为已经逼近10nm了。个人认为,这与人们对节能计算需求的紧迫性有关。毕竟大部分人的手机比十年前的PC好,计算能力已经过剩,间接加速了云计算的发展。著名的CPU设计师有英特尔、AMD、高通、ARM、IBM、三星、连欣科技和联发科。著名的代工厂有TSMC (TSMC)、三星和globalfoundries。

2、内存:内存的存在也是为了解决CPU和硬盘的速度差。内存的特点是易失性存储,因为断电后其数据会消失,所以不能永久存储,但速度较快。因为早期的磁盘都是机械部件,现在的存储一般都是容量和价格不兼顾,内存就是为了解决这个问题。任何程序都会从外部存储器直接加载到内存中,然后提供给CPU进行处理。内存的指标主要看内存类型,最高级的是DDR4内存,也看带宽。程序和CPU的通信是通过前端总线的,前端总线的带宽基本上可以通过外接频率乘以x=主频得到,主频为x,如果主板支持多插槽插座,同类型的内存也可以形成双通道,可以大大提高带宽。内存一般由闪存颗粒组成,闪存颗粒有很多种,比如NANDSLC、TLC等。主要是性能和生活的区别。

3、硬盘:硬盘是真正存储数据的介质,现在主要分为机械硬盘和固态硬盘,因为这几十年,计算能力提升了上百倍,但是存储接口提升的非常慢,导致CPU吃不饱的现象,木桶效应明显。毕竟机械硬盘是由机械臂、磁盘、转轴、控制器和硬盘缓存组成的,虽然内部是真空的。但由于是机械部分,其寻轨时间很慢。提高缓存可以在一定程度上提高速度,但不能从根本上解决问题,这就导致了固态硬盘的发展。固态硬盘使用闪存技术存储数据,电子会比机械跑得更快。闪存中有多种介质。SLC性能相对较低(但仍比机械硬盘大很多),但寿命长,TLC性能高,但寿命短。固态硬盘也分各种接口。SATA可以直接兼容老的机械硬盘,但是由于接口协议的限制,速度无法释放,所以理论上是600M/s,PCI-E和M.2接口很快。至于接口,这里就不展开了,主要是因为各种协议和通道的差异导致的理论速度差异,以及不同主控和写入格式和制造工艺带来的差异,这些都会导致固态硬盘在市场上的价格。固态硬盘的主要厂商有三星、Intel、Puckett等。主要的机械硬盘有希捷、西部数据、HGST。

4、显卡:显卡主要由一块GPU和一块PCB面板组成。GPU被称为图形处理器单元。早期的电脑只有集成显卡,也就是集成在主板上,或者后来有了APU。早期的GPU只是辅助图像处理,因为图像的显示需要处理像素单元,所以不是特别适合CPU做这样的操作。CPU主要适合做一些复杂的逻辑运算,而图像显示处理大多是大量的简单工作。一般有四八个CPU核,甚至服务器最多32个,跟功耗和软件支持有很大关系。GPU自然是设计了大量的内核,但是每个内核都不是特别复杂,非常适合做一些并行运算,这也是现在火热的比特币挖矿的技术支撑。GPU每转一次都有上百个核心,每个核心都可以做细微的操作,然后合并到显存中输出。这就是显卡的原理。Nvidia的CUDA框架也可以让你用GPU做一些非图像的事情,比如深度学习模型的训练。

5、主板:主板很重要,但却是最容易被忽视的部分。它是所有硬件之间通信的基础。只有主板能够协调所有硬件的工作,整个计算机系统才能正常运行。主板主要包括电路板、主板芯片、CMOS芯片、CPU和GPU、内存硬盘等插槽、IO面板等。早期的主板芯片分为南桥和北桥。北桥主要由内存控制器、集成显卡和连接南桥的通道组成。现在内存控制器早就集成到CPU里了,北桥在很多主板里消失了,功能转移到了其他部件上。南桥主要连接CPU和各种IO组件之间的通信。IO面板提供鼠标、键盘、网线等接口。主板也分为大板Ex-ATX和小板M-ATX和普通主板。ATX代表设计布局,统一布局便于兼容机箱。