返回介绍

1. 硬件简介

发布于 2024-10-12 21:58:06 字数 5995 浏览 0 评论 0 收藏 0

冯·诺依曼结构 将指令也作为数据,与数据合并存储。

缺点是数据传输效率远低于运算效率,通过增加缓存进行改善。

基本组成:

  • 控制器(CU):程序流程管理。
  • 运算器(ALU):算术和逻辑运算。
  • 存储器(memory)
  • 输入设备(input)
  • 输出设备(output)

总线

总线(BUS)是组件之间规范化数据传输方式,有地址、数据、控制等。

  • 数据总线。
  • 地址总线。
  • 控制总线。

主板上的 系统总线 (内总线)将各设备连接起来,常见标准是 Intel 主导的 PCI/PCIe 标准。

PCI Express 带宽高,能探测硬件变更,支持热插拔。

前端总线 (FSB)负责 CPU 与北桥芯片(north bridge),代表 CPU 与外界的通信速度。

北桥连接内存和显卡等高速设备,南桥连接硬盘、网卡等低速设备。不过现在 Intel、ADM 趋向于用单芯片替代南北桥方案。

处理器

解释指令,处理数据。编程实质上是对 CPU 而言的。

主频 是指 CPU 内核工作频率(clock speed, MHz), 外频 是系统总线的工作频率。

主频表达脉冲信号震荡速度,不代表运算速度。

运算速度要看流水线各方面指标,如指令集、缓存等等。

$ lscpu

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Model name:                      Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        6 MiB

指令集

包括基本数据类型、指令、寄存器、寻址模式、存储体系、中断和异常处理等。

  • CISC:复杂指令集。指令字长不等,顺序串行执行。指令丰富,速度慢。Intel、AMD。
  • RISC:精简指令集。指令和寻址方式少,格式统一,并行速度快。ARM、RSIC-V。

Intel IA-64 与 x86 不兼容,以模拟方式运行。AMD 则基于 386/IA-32 扩充,称作 x86-64。可以简单认为 x86-64、x64、AMD64 指相同指令集。Intel 是因厂商介入,才使用 AMD64 指令集,并发展出兼容的 Intel 64。

RISC-V 值得关注: https://cnrv.gitbooks.io/riscv-soc-book/content/

寄存器

CPU 内速度最快的存储单元,暂存指令、地址和数据。

分通用、指令、标志和段寄存器。

  • SP/BP/SI/DI 也属于通用寄存器。
  • IP 也称 PC,指令寄存器。
  • 标志寄存器 FR 反应 CPU 状态和运算结果特征。
  • 段寄存器 CS/DS/SS/ES。
  • AMD64 增加了 R8 - R15 通用寄存器。

快:距离近,专门硬件设计,工作方式简单。寄存器无须锁住 cache line,无须在不同存储间复制,无须 MMU 翻译地址。

缓存

存储系统的组成部分,存放指令和数据。根本原因是速度越来越快的 CPU 被多年没长进的内存拖累。缓存容量虽小,但速度接近 CPU 处理频率。

每个 core 都有自己专用的 L1 缓存,L3 多个核共享。至于 L2,不同厂商不同系列的产品会有不同,独享或共享。

CPU 总是先检查缓存。如果没有命中,则先填充缓存,然后再返回给处理器。每级缓存数据都是下一级的一部分。

基于时间和空间局部性,有较高的命中率。一级缓存分指令和数据两部分。

时间局部性:正在被访问的数据可能近期被再次访问;空间局部性:临近地址数据可能即将被访问;顺序局部性:大部分指令是顺序执行。

缓存由多个块(cache line)构成,每个块存储连续地址的数据单元。通过标志可检查缓存是否更新,以决定是否需要置换回内存。缓存减少更新次数。

$ cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size
64

多核

在一个处理器内集成多个独立实体物理内核。多核更好支持并行任务,且可通过共享 cache 进行通信。

  • SMP:对称多处理。
  • NUMA:非统一内存访问。

SMP 里每个处理器地位平等,对资源使用权相同。连接到共享的主存,由软硬件锁机制解决资源竞争问题。缺点是,随处理器数量增加,导致访问冲突增加。NUMA 将内存分散给多个处理器,避免存储器对处理器访问的限制(多任务资源分片)。

处理器可以访问全部内存,但访问本地内存更快。扩展性更好,适用于服务器。

超线程

利用特殊指令,在单个物理核内虚拟多个逻辑处理器。将指令等待时间做别的任务,充分利用相关资源,减少闲置时间。除自有状态外,共享其他单元。和软线程类似,多数时候可提升执行效率。

但如果资源冲突,依然需要等待,类似同步锁。某些时候可能导致性能下降。单位时间内,只有一个线程能运行。

内存

可直接寻址的存储空间,暂存数据。内存主频用来表示速度,所能达到的最高工作频率。

  • DRAM:主存,动态随机访问。结构简单,空间小,需要刷新。
  • SRAM:缓存,静态随机存储。结构复杂,成本高,速度快。

SDRAM 是 DRAM 的增强版本。DDR 是双倍 SDRAM 的意思,目前主流是 DDR3、DDR4。

双通道 在北桥内使用两个内存控制器,分别控制一个通道,从而增加寻址和存储带宽。主要是解决前端总线(FSB)远高于外频速度,内存通讯成为瓶颈。

UMA

统一内存架构(Unified Memory Architecture),如 Apple M1 芯片。将 CPU、GUP、DRAM、IO 控制器等整合在一块芯片(SoC)内。所有组件共享内存,按需要动态调整。有效减少数据复制,实现更快访问速度。

显卡

转换显示信息,向显示器提供扫描信号。

芯片:

  • 2D:处理 3D 时需要 CPU 参与,称作软加速。
  • 3D:自己完成,称作硬加速。

目前主要显卡芯片由 NVIDIA 和 AMD-ATI 设计生产。

GPU

不同于 CPU 通用性设计,GPU 专门为了执行复杂数学和几何计算。具备 2D、3D 加速功能,CPU 只需发出绘图指令,具体计算过程由 GPU 完成。GPU 称作众核,数量远超 CPU。

核缓存较小,逻辑单元简单,适合把指令并行分发到众核上。面向数据类型简单的密集计算、海量数据处理、并行。

GPU 擅长浮点运算和并行计算,发展出 OpenCL、CUDA 等面向异构系统并行编程标准。CPU 适合复杂计算和复杂数据依赖。

硬盘

主要持久化存储媒介。

类型:

  • HDD:机械硬盘
  • SSD:固态硬盘

SSD 使用非易失性内存 NAND Flash 存储数据,无须电力维持。分单层 SLC、双层 MLC、三层 TLC。单层最快,寿命最长,成本也最高。现在多使用 MLC,TLC 常作为 U 盘。

接口

  • SATA:使用专用数据排线和电源线连接。
  • PCIe: 直接使用主板 PCIe 插槽,由主板供电。
  • SCSI:用于小型机高速数据传输。

SATA 和 PCIe 是实际传输通道,分别使用 AHCI 和 NVMe 两种传输协议。AHCI 为机械硬盘设计,不能发挥 SSD 速度优势,NVMe 直接走 PCIe 更快。M.2 指外观尺寸更小的 SSD,有 SATA/ACHI 和 NVMe 两种规格。

工作模式

  • PIO:通过 CPU 执行 IO 指令读写数据。早期模式,速率低下,CPU 占用率高。
  • DMA:直接内存访问。CPU 只需开始和结束时参与,其他由 DMA 控制器完成。

DMA 让外部设备和内存之间直接读写数据,通过中断通知 CPU 传输结束。

IO 访问

CPU 访问外部设备方式。

  • PMIO:独立地址空间,以专用指令读写。
  • MMIO:和物理内存共享地址空间,相同常规读写指令。需要为设备保留地址范围。

如果外部设备比较慢,PMIO 不会拖累地址总线,影响内存访问。但是 MMIO 让 CPU 逻辑更少,且读写更方便。可以通过 DMA 将数据传送到 I/O 设备。

BIOS

基本输入输出系统,机器启动后加载的第一程序。检测并初始化硬件设备,隐藏硬件变化,引导操作系统。向操作系统提供系统参数,但现代操作系统可能会忽略 BIOS 抽象层,改为直接控制硬件。

EFI:可扩展固件接口,用以规范 BIOS 开发。Intel 发明。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文