计算机硬件基础

计算机简介

计算机是一种拥有输入和输出设备的机器,它可以通过输入设备接受用户的输入,并经过中央处理器的数学与逻辑单元的处理,将这些输入转换成有用的信息进行生成或储存。因此,计算机可以说是一种具有高度智能化的信息处理工具。

计算机组成

计算机通常由五大部分组成,它们分别是输入单元、输出单元、中央处理器(CPU)内部的控制单元、算术逻辑单元和内存。这些部分协同工作,使得计算机能够完成复杂的计算和数据处理任务。其中,输入单元用于接收用户的输入信息,输出单元用于向用户展示计算机处理结果,控制单元则负责控制计算机的整个运作过程,算术逻辑单元则处理计算机的算术和逻辑运算,而内存则用于储存数据和程序。这五大部分共同构成了现代计算机的核心。

计算机分类

根据用途的不同,计算机可以被分为以下几类:

  • 超级计算机(Supercomputer):

    这是最快也最贵的计算机,通常用于需要进行高速计算的项目中,比如军事、气象、太空、模拟等。

  • 大型计算机(Mainframe Computer):

    这种计算机用于处理大规模的数据和复杂的运算,常见于证券、银行、大型企业数据库服务器等场所。

  • 迷你计算机(Minicomputer):

    迷你计算机是低配版的大型计算机,适用于那些场所环境要求不那么严格的场合,比如科研、工程分析、工厂等。

  • 工作站(Workstation):

    工作站是专门针对特定用途而设计的计算机,比如图形工作站、机器学习等。与个人电脑相比,工作站更强调稳定性。

  • 微型计算机(Microcomputer):

    微型计算机也称为个人计算机(PC),包括移动设备和桌面型电脑等。它们是普及度最高的计算机类型,广泛应用于个人和办公场所,具有性价比高和易于携带的优点。

CPU

中央处理器(CPU,Central Processing Unit)是计算机中最重要的组成部分之一,它是一个集成了微指令集和特定功能的芯片。CPU 通过执行指令来控制计算机的操作,包括算术逻辑运算、数据存储和检索等核心功能。因此,CPU 可以被认为是计算机的” 大脑 “,它的性能直接影响计算机的整体运行速度和效率。

CPU 的组成单元

  • 算术逻辑单元

    算术逻辑单元(ALU)是 CPU 中的一个重要组成部分,它主要负责执行算术运算和逻辑运算,如加、减、乘、除、与、或、非等。ALU 的运算结果将被存储在寄存器中,供其他单元继续使用。

  • 控制单元

    控制单元(CU)是 CPU 中的另一个重要组成部分,它主要负责协调和控制 CPU 各个单元之间的工作。CU 从内存中读取指令,并解析指令,然后根据指令的要求控制其他单元的操作。CU 还可以将运算结果写回内存或输出到外设。

通过 ALU 和 CU 的紧密配合,CPU 能够实现各种复杂的计算和操作,从而实现计算机的各种功能。

CPU 指令集

CPU 的指令集根据设计理念的不同,可以分为精简指令集(RISC)和复杂指令集(CISC)两种类型:

  • 精简指令集(RISC,Reduced Instruction Set Computing)

    精简指令集的微指令集比较简单明了,每个指令的执行时间都很短,完成的操作比较单一,执行效率高。常见的 RISC CPU 包括 Sun 公司的 SPARC 系列(主要用于学术和银行等大型工作站)、IBM 公司的 Power Architecture(包括 PowerPC,例如索尼 PS 游戏机)和 ARM 系列(主要用于手机、网络设备等嵌入式系统)。

  • 复杂指令集(CISC,Complex Instruction Set Computer)

    复杂指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而复杂,每条指令的长度不同,执行时间较长,但每个指令可以处理的工作较为丰富。常见的 CISC CPU 包括 AMD 和 Intel 的 x86、x64 架构处理器,其中 “x86” 是因为最早的 Intel 元组型号 8086 发展而来,架构从 8 位升级到 32 位,现在普遍使用的是 64 位 CPU,称为 x86_64 架构。

不同的指令集在硬件设计和编程语言的选择上有所区别,选择适合自己需求的 CPU 和指令集对于系统的性能和稳定性有着重要的影响。

微指令集

除了硬件参数差异(比如二级缓存大小)外,不同 x86 架构的 CPU 还有微指令集的区别。例如,Intel 处理器具有独特的指令集,如用于虚拟化(Intel-VT)、视频硬解码(MMX,SSE)等,可以有效提高特定工作的运行效率。

选择适合自己需求的 CPU 和指令集对于系统的性能和稳定性都有着重要的影响。特定的微指令集能够支持特定的操作,例如 SSE 指令集可以提高多媒体应用程序的性能,因此在开发需要高性能计算的应用程序时需要仔细选择微指令集。

多核心

多核心是指将两个或更多的运算核心嵌入到一颗 CPU 封装中。与单核 CPU 相比,多核 CPU 可以同时执行更多的指令,从而提高系统的运行效率。多核心处理器广泛应用于需要高性能计算的领域,如科学研究、金融分析、人工智能等。同时,多核心处理器也可以提高普通用户在运行多任务时的体验,例如同时打开多个应用程序或运行多个虚拟机。

CPU 频率

CPU 频率是指 CPU 每秒钟所执行的时钟周期数,通常以赫兹(Hz)为单位。频率越高表示 CPU 单位时间内可以执行更多的指令和计算任务。例如,CPU 的频率为 4.0 GHz 表示这颗 CPU 在一秒内可以执行 4 × 10^9 次时钟周期。

但是,CPU 频率并不是衡量 CPU 性能的唯一指标,还需要考虑 CPU 架构、核心数量、缓存大小、指令集支持等因素。相同频率的 CPU 在性能上可能存在巨大差异。因此,在选择 CPU 时需要全面考虑性能、功耗和预算等因素。

南桥和北桥

南桥和北桥是主板芯片组中的两个核心部件,它们起到协调 CPU 和其他系统组件之间通信的作用。

  • 北桥

    北桥是主板芯片组中的一部分,负责连接 CPU 和内存、显卡等高速设备,以及提供系统总线。早期,北桥还包含了内存控制器等重要的子系统,但随着技术的进步,现在内存控制器已经整合到了 CPU 封装中,因此北桥的功能逐渐减弱。

  • 南桥

    南桥则负责连接低速设备接口,如硬盘、USB、网卡等,提供输入输出总线。此外,南桥还包括了一些重要的子系统,如硬盘控制器、USB 控制器、声卡等。

在现代 CPU 架构中,北桥的功能已经被整合到了 CPU 封装中,因此南北桥已经不再是主板设计的必要组成部分。但是,南北桥的功能仍然存在于芯片组中,并且是支持 CPU 和其他系统组件之间通信的关键组件之一。

32 位与 64 位

CPU 的字组大小,也被称为 word size,指的是 CPU 每次能够处理的数据量。32 位 CPU 的字组大小基于 CPU 解析的大小,即 4 个字节。而 64 位 CPU 能够一次性读写 8 个字节(64 位)的数据。

通常情况下,CPU 的字组大小会影响总线宽度和内存读写能力。由于 32 位 CPU 的字组大小为 4 个字节,其最大寻址能力为 2^32 个字节,相当于 4GB。因此,最多只能支持 4GB 内存大小。相比之下,64 位 CPU 的字组大小为 8 个字节,其最大寻址能力为 2^64 个字节,相当于 16EB。因此,64 位 CPU 能够支持更大的内存容量。

外频与倍频

在早期的 CPU 架构中,北桥用于连接 CPU、内存和显卡设备,因此每个设备都必须与北桥连接,并且具有相同的工作频率。为了解决这个问题,前端总线(FSB,Front Side Bus)应运而生。然而,由于 CPU 的运算速度远远超过其他设备,因此需要使用外频和倍频来满足 FSB 的频率要求。

外频指的是 CPU 与外部元件进行数据传输时的速度。而倍频是 CPU 内部用来加速工作性能的一个倍数。

CPU 的实际频率可以通过以下公式计算:CPU 频率 = 外频 x 倍频。通过调整外频和倍频的值,可以提高 CPU 的性能。

超线程

超线程(HT,Hyper-Threading)是一种在 CPU 内部将重要的寄存器(register)分为两组的技术,使得每组寄存器都可以供程序使用。因此,两个程序可以同时竞争 CPU 的运算单元,而不需要通过操作系统的多任务切换。

通过 HT 机制,操作系统可以使用实际核心的两倍数量,并且让每个核心逻辑上分离。在支持多核心运行的程序时,只要运算达不到 100% 的 CPU 使用率,超线程确实能帮助提升执行速度,更好地利用 CPU 性能。

在某些情况下,超线程可能会降低性能,例如在 CPU 达到 100% 使用率时,超线程可能会增加 CPU 的开销并导致性能下降。

多级缓存

一般 CPU 拥有二级 (L2 Cache) 或更多级缓存,由比 DRAM 速度更快的静态随机访问内存 (SRAM, Static Random Access Memory) 组成,用于存放一些常用的数据。这样,数据可以不通过内存读取,从而大幅提升性能。

内存

CPU 处理的数据来源于内存,而处理完毕的数据也要先写回内存,再从内存传输到输出单元。

内存的主要组件是动态随机访问内存 (DRAM, Dynamic Random Access Memory),只有在通电时才能记录和使用。由于断电后数据会消失,因此也被称为挥发性内存。

内存类型

内存从 SDRAM 发展为 DDR(Double Data Rate),也就是所谓的双倍数据传输速度 SDRAM,它可以在一次工作周期中进行两次数据传输。例如 DDR400 的内存,代表数据宽度为 64bit,外频为 200MHz,频率为 400MHz,频宽为 3.2GB/s。

下一代 CXL(Compute Express Link) DRAM 作为一种开放性的互联协议,拥有更高的带宽,能够让 CPU 与 GPU、FPGA 或其他加速器之间实现高速高效的互联,满足现今高性能异构计算的要求,并且提供更高的带宽及更好的内存一致性。作为下一代接口,与主 DRAM 一起使用的时候,可以扩大带宽和容量,预计将广泛应用在人工智能(AI)和机器学习(ML)领域。

内存速度

内存工作频率由 CPU 内的内存控制器决定。例如,假如内存频率为 1600MHz,总线宽度为 64bit,理论最大传输速度为:

1600MHz64bit=1600MHz8Bytes=12800MB/s=12.8GB/s1600MHz * 64bit = 1600MHz * 8Bytes = 12800MB/s = 12.8GB/s

多通道设计

当两条同样的内存插入支持内存双通道的主板中时,总线宽度由 64bit 升级到 128bit,传输速度翻倍。这是双通道内存的设计理念。

除了双通道外,服务器提供三信道甚至四信道的内存环境。

物理地址扩展

物理地址扩展(PAE)是基于 x86 服务器的一种功能,它使运行 Windows Server 版本的计算机可以支持 4GB 以上物理内存。物理地址扩展允许将最多 64GB 的物理内存用作常规的 4 KB 页面,并扩展内核能使用的位数以将物理内存地址从 32 位扩展到 36 位。

主板

主板(Mainboard)是一种电脑硬件,由芯片组构成,用于沟通和连接各种设备,为 CPU 提供支持和资源。

现代主板一般集成了许多设备元件,如声卡、网卡、显卡、磁盘整合卡等。

CMOS 芯片

CMOS 芯片是一种低功耗的、非易失性的芯片,它用于记录主板的重要参数,例如系统时间、CPU 频率、设备 I/O 地址和 IRQ 等信息。由于这些参数需要在断电后仍能保持,CMOS 芯片需要额外的电子供电来保存这些设置。

BIOS

BIOS (Basic Input Output System) 是一种固化在主板上的程序,用于初始化和测试硬件设备,加载操作系统,并提供各种底层服务和功能。BIOS 存储在闪存(Flash Memory)或 EEPROM 中,可以在开机时被执行。主要用途是加载和修改 CMOS(Complementary Metal-Oxide Semiconductor)中的参数,例如系统时间、CPU 频率、设备 I/O 地址和 IRQ 等。同时,BIOS 也尝试调用存储设备中的开机程序,以启动操作系统。

通常在开机时按下 [del] 键或 [F1] 键可以进入 BIOS 设置界面,进行各种参数设置和硬件配置。

UEFI

UEFI (Unified Extensible Firmware Interface) 是新一代的固件接口标准,相比于传统的 BIOS 更加先进。UEFI 可以使用一个特制的 shell 来做一些管理工作。

固件

固件 (firmware) 是绑定在硬件上的控制软件,例如磁盘阵列卡、网卡等。通常储存在只读存储器 (Read Only Memory, ROM) 中,以保证固件的安全性。

PCI 插槽

主板上的扩展插槽主要有 PCI 和 PCI-E 两种类型,它们的速度和频宽如下:

规格 宽度 (bit) 速度 (MHz) 频宽
PCI 32 33 133 MB/s
PCI 2.2 64 66 533 MB/s
PCI-X 64 133 1064 MB/s
AGP 4x 32 66x4 1066 MB/s
AGP 8x 32 66x8 2133 MB/s
PCI-E 1.0 x4 1 GB/s
PCI-E 2.0 x2 1 GB/s
PCI-E 3.0 x1 1 GB/s
PCI-E 4.0 x1 2 GB/s
PCI-E 5.0 x1 4 GB/s

一般来说,PCI-E 的规格由插槽的长度决定,PCI-E 插槽的工作模式可以参考主板的说明书。如果将一个速度为 x16 的设备插在一个速度为 x8 的 PCI-E 插槽上,该设备将以 x8 的速度运行。

例如,一个 CPU 通常支持 16 个信道(PCI-E 3.0 x16),如果主板上有三个 PCI-E 插槽,那么 PCI-E 插槽的速度可以工作在以下模式:1 x16,2 x8,1 x8 + 2 x4,具体取决于插入的设备数量。

USB 接口

USB 接口一般用来连接 U 盘、移动硬盘盒、键盘、鼠标等设备。各版本的带宽与速度对比如下:

版本 带宽 速度 (MB/s)
USB 1.0 12 Mbit/s 1.5
USB 2.0 480 Mbit/s 60
USB 3.0 5 Gbit/s 500
USB 3.1 10 Gbit/s 1000

为了方便区分版本,主板给 USB 接口采用不同颜色进行显示:白色代表 USB 2.0,蓝色代表 USB 3.0,红色代表 USB 3.1。

其他接口

主板上常见的其他接口如下:

  • 音频输入与输出

    一些 3.5mm 圆形插孔,一般用绿色表示耳机插孔,粉红色表示麦克风输入插孔。

  • RJ-45 网络接口

    方形接口,用来插入网线。

  • HDMI 接口

    HDMI 接口一般用于视频输出。如果主板上有板载显卡,一般会提供该接口。

设备 I/O 地址与 IRQ 中断信道

主板芯片组通过 I/O 地址和 IRQ 中断信道来控制设备。

  • I/O 地址

    I/O 地址用来标识对应的设备,如果两个设备使用相同的 I/O 地址会造成地址冲突,导致设备无法正常工作。

  • IRQ 中断信道

    IRQ 用来标识设备工作状态,以方便 CPU 分配工作任务。每个设备都有自己的 IRQ 中断信道,当设备需要 CPU 处理时,会通过 IRQ 向 CPU 发出中断请求。CPU 会停止当前的任务,处理中断请求,并在完成处理后返回原先的任务。

显卡

显卡是计算机中的一种重要的组件,主要负责图像和影像的显示,也被称为视频显卡(Video Card)或图形加速卡(Graphics Card)。

显存

由于每个图像需要占用内存空间来存储颜色信息,因此显卡上有一个专门用于存储图像信息的内存,称为显存。

GPU

除了负责图像显示,显卡上还有一个专门用于进行 3D 运算的加速芯片,称为 GPU。

显卡插槽

由于显卡需要大量的数据传输,因此使用能提供高带宽的 PCI-E 插槽。

显卡接口

常见显卡上用来连接显示器的接口如下:

  • D-Sub(VGA)

    是较早之前的连接接口,主要为 15 针的连接,用于模拟信号传输。

  • DVI

    有提供数字传输的 DVI-D 和整合数字和模拟传输的 DVI-I 两种类型。

  • HDMI

    可以同时传输图像和声音。

  • DP(DisplayPort)

    类似于 HDMI。

硬盘

硬盘是计算机中用于存储数据的设备,一般分为机械硬盘和固态硬盘。

机械硬盘的组成

传统机械硬盘(HDD,Hard Disk Drive)的物理结构如下:

  • 盘片

    数据记录介质,可以有一个或多个盘片。

  • 主轴电机

    带动盘片旋转,转速越高,读写速度越快。常见的转速有 7200 rpm(转 / 分钟)和 5400 rpm。

  • 读写磁头

    读取和写入数据,每个盘片面都有一个磁头。

  • 机械臂

    控制磁头的位置,使其能够读取或写入指定的盘片面。

此外,硬盘电路板上还有一个小容量的闪存用作缓冲内存,用于临时提高硬盘性能。

机械硬盘非常脆弱,因此在通电状态下绝对不要发生碰撞或直接拔插电源线。否则可能会导致逻辑坏道(文件系统损坏)或物理坏道。

机械硬盘盘片

机械硬盘盘片的表面结构如下:

  • 扇区(sector)

    盘片同心圆上切出的小块区域,是硬盘的最小物理存储单元。传统硬盘的扇区容量为 512 字节,而现代硬盘则采用了 4KB 扇区设计。

  • 磁道(track)

    盘片同心圆上的一个圆环,由一系列相同半径的扇区组成。

  • 柱面(cylinder)

    所有盘片同心圆上的同一磁道就构成一个柱面。

由于同心圆外圈的扇区比内圈的扇区多,因此硬盘的数据读写是从外向内进行的。

传统机械硬盘的容量计算公式为:磁头数 * 柱面 * 扇区数 * 512Bytes

硬盘传输接口

硬盘与主板连接接口经过多次改版,目前主流的有 SATA 和 SAS 接口。

  • IDE 接口

    使用的平行线可以连接两个设备,因此有主 / 从 (Master/Slave) 构架,可以通过跳针设置。

    接口传输速度为 Ultra 133 规格,理论速度最高 133MB/s。

  • SATA 接口

    在家用机上 IDE 接口的替代接口。SATA 的平行线将数据传输和供电分开。一条平行线对应一个设备,没有跳针设计。

    目前主流使用的 SATA 3.0 版本传输速度为 600MB/s。

  • SCSI 接口

    在以前服务器硬盘常用接口。硬盘在控制器上含有一块处理器,用来支持一些高级功能。

  • SAS 接口

    SAS(Serial Attached SCSI)是串行式 SCSI 的意思,目前已在服务器领域全面取代了 SCSI。

    SAS 3.0 的传输速度能达到 1200MB/s。

固态硬盘

固态硬盘 (SSD, Solid State Disk) 以 NAND 闪存作为储存介质,因此不存在机械硬盘的磁头、盘片等结构,也没有数据分散的问题,读写速度和延迟时间比机械硬盘更优秀。

固态硬盘的寿命和速度取决于使用的内存颗粒类型,常见的类型从好到差分别为 SLC、MLC、TLC、QLC。

一般而言,电脑使用固态硬盘作为系统盘,数据储存在机械硬盘上,可以有效提升整个系统性能。

电源

电源供应器(Power Supply Unit,PSU)用于给主板、CPU、显卡和硬盘等硬件供电。选择质量好的电源可以有效降低硬件意外损坏的概率。

如果使用诸如 AIDA 等软件对未超频的电脑进行测试时,在测试过程中出现中途断电或重启等情况,说明电源的额定功率不够或者不稳定。需要减少设备连接或者更换更高功率的电源。

在选购电源时,除了考虑电源的额定功率之外,还需要考虑能源转换率,也就是 $ 输入功率 / 输出功率 $ 的值。转换率值越大越好。