计算机组成原理 | 原创,AI翻译
-
定义:计算机组成结构指计算机系统的运行结构与实现方式,重点关注硬件组件如何交互以执行指令。
-
历史演进:追溯从早期机械计算机到现代多核处理器的发展历程。
-
冯·诺依曼架构:基础模型,通过总线将CPU、内存和输入输出设备互联。
-
哈佛架构:将指令与数据的存储路径和信号通路分离,以提升性能。
-
CPU组件:包括算术逻辑单元(ALU)、控制单元(CU)和寄存器组。
-
ALU功能:执行算术与逻辑运算,如加减法、与或运算。
-
控制单元作用:通过译码指令并生成控制信号来指挥处理器运行。
-
寄存器:CPU内部的高速小型存储单元,用于暂存数据与指令。
-
高速缓存:靠近CPU的高速存储器,用于减少数据访问时间。
-
存储层次:根据速度与成本将存储器分为多级,包括寄存器、缓存、内存和辅助存储。
-
内存(随机存取存储器):易失性存储器,用于存储当前使用的数据和机器代码。
-
只读存储器:非易失性存储器,用于存储固件和系统启动指令。
-
总线结构:在计算机内外部件间传输数据的通信系统。
-
数据总线:传输实际处理中的数据。
-
地址总线:携带数据应发送或获取的位置信息。
-
控制总线:将控制信号从CPU传输至其他组件。
-
指令集架构:定义CPU可执行的指令集合。
-
精简指令集:采用小型高度优化指令集的ISA设计哲学。
-
复杂指令集:具有大型指令集的ISA,部分指令可执行复杂任务。
-
流水线技术:通过重叠多个指令阶段提升CPU吞吐量的技术。
-
流水线阶段:通常包括取指、译码、执行、访存和写回。
-
流水线冒险:可能中断流水线的数据冒险、控制冒险和结构冒险问题。
-
分支预测:通过预测分支指令方向保持流水线满载的方法。
-
超标量架构:允许单个流水线阶段同时处理多条指令。
-
并行处理:利用多处理器或多核并发执行指令。
-
多核处理器:单个芯片集成多个处理核心的CPU。
-
单指令多数据:单条指令同时操作多个数据点的并行处理架构。
-
多指令多数据:多处理器在不同数据上执行不同指令的并行架构。
-
内存管理:包括分页与分段在内的高效内存管理与分配技术。
-
虚拟内存:将物理内存扩展至磁盘存储,使系统能处理更大工作负载。
-
分页:将内存划分为固定大小的页面,简化内存管理并减少碎片。
-
分段:根据函数或数据结构等逻辑划分将内存分为可变长度段。
-
缓存映射技术:包括直接映射、全相联和组相联缓存。
-
缓存替换策略:决定替换哪个缓存条目,如最近最少使用或先进先出。
-
缓存一致性:确保多处理器系统中多个缓存的数据一致性。
-
内存一致性模型:为维持系统一致性定义操作执行的可见顺序。
-
输入输出系统:管理计算机与外部设备间的通信。
-
I/O设备分类:包括输入设备、输出设备和存储设备。
-
I/O接口:定义设备与主板通信方式的标准,如USB、SATA和PCIe。
-
直接内存访问:允许设备在无需CPU介入下直接与内存传输数据。
-
中断:通知CPU需要立即处理事件的信号,支持异步处理。
-
中断处理:CPU响应中断的过程,包括保存状态和执行中断服务例程。
-
DMA控制器:管理DMA操作的硬件组件,使CPU摆脱数据传输任务。
-
设备驱动程序:实现操作系统与硬件设备通信的软件。
-
外设组件互连标准:连接外设与主板的规范。
-
串行与并行通信:串行逐位发送数据,并行同时传输多位数据。
-
串行端口:用于设备串行通信的接口,如RS-232。
-
并行端口:用于并行通信的接口,常连接打印机等外设。
-
总线仲裁:管理多设备总线访问权限以避免冲突的过程。
-
系统总线与外设总线:系统总线连接CPU、内存等主要组件,外设总线连接外部设备。
-
中断向量表:存储中断服务例程地址的数据结构。
-
可编程中断控制器:管理多个中断请求并确定优先级的硬件。
-
总线宽度:总线可同时传输的比特数。
-
时钟频率:CPU执行指令的速率,以GHz计量。
-
时钟周期:CPU执行基本操作的最小时间单位。
-
时钟偏移:时钟信号到达电路不同部分的时延差异。
-
时钟分发:将时钟信号传递至CPU所有组件的方法。
-
散热:从CPU移除多余热量防止过热的过程。
-
散热方案:包括散热片、风扇和液冷系统等温度管理方案。
-
电源供应单元:为所有计算机组件提供所需电力。
-
电压调节器:确保向CPU等组件提供稳定电压。
-
主板架构:承载CPU、内存等关键组件的主电路板。
-
芯片组:管理CPU、内存与外设间数据流的集成电路组。
-
固件:写入只读存储器的永久性软件,用于控制硬件功能。
-
BIOS/UEFI:启动过程中初始化硬件并提供运行时服务的固件接口。
-
启动过程:系统通电时初始化的操作序列。
-
指令流水线阶段:通常包括取指、译码、执行、访存和写回。
-
流水线深度:流水线阶段数量,影响指令吞吐量与延迟。
-
流水线平衡:确保各阶段执行时间大致相等以最大化效率。
-
数据冒险:流水线中指令需要前序指令运算结果的情形。
-
控制冒险:由分支指令导致流水线中断的情况。
-
结构冒险:硬件资源无法同时支持所有指令执行时发生。
-
前递(数据旁路):通过在流水线阶段间直接路由数据来减少数据冒险的技术。
-
停顿(流水线气泡):在流水线中插入空闲周期以解决冒险。
-
乱序执行:根据资源可用性而非程序原始顺序执行指令。
-
推测执行:在确定指令是否需要前提前执行,以提升性能。
-
分支预测算法:包括静态预测、动态预测和两级自适应预测等分支方向预测技术。
-
指令级并行:单个CPU周期内同时执行多条指令的能力。
-
循环展开:通过增加循环体减少循环控制开销的优化技术。
-
超级流水线:增加流水线阶段数以支持更高时钟频率。
-
超长指令字:允许在单个指令字中编码多个操作的架构。
-
显式并行指令计算:通过编译器辅助实现并行指令执行的架构。
-
寄存器重命名:通过动态分配寄存器消除假数据相关性的技术。
-
超线程:英特尔使单个CPU核心能同时执行多线程的技术。
-
缓存层级:L1(最接近CPU、最快)到L2、L3缓存,容量递增且延迟增加。
-
写通与写回缓存:写通同时更新缓存与内存,写回仅更新缓存并延迟内存更新。
-
缓存相联度:决定缓存行如何映射到缓存组,影响命中率与访问时间。
-
预取:在实际请求前将数据加载至缓存以降低访问延迟。
-
内存访问模式:顺序访问与随机访问及其对缓存性能的影响。
-
非统一内存访问:内存访问时间随内存位置相对于处理器的不同而变化的内存设计。
-
对称多处理:多个处理器共享统一集中内存的系统。
-
分布式内存系统:每个处理器拥有私有内存并通过网络通信的系统。
-
互联网络:连接多处理器与内存单元的拓扑结构与协议。
-
可扩展性:通过增加资源提升计算机系统性能的能力。
-
容错性:系统在部分组件故障时仍能正常运行的能力。
-
冗余:通过额外组件提高可靠性与可用性。
-
错误检测与纠正:包括奇偶校验、校验和和纠错码等数据错误识别纠正技术。
-
能效设计:在保持性能的同时最小化功耗的系统设计。
-
热设计功耗:CPU或GPU在典型工作负载下预期产生的最大热量。
-
未来趋势:探索量子计算、神经形态架构与光子处理器等塑造计算机组成未来的先进技术。